Skip to content

Bokeh WrapperAccessible data navigation for Bokeh charts

One function call. Smart defaults. Works with screen readers, keyboard, and more.

What is this?

@data-navigator/bokeh-wrapper makes it easy to add accessible data navigation to any Bokeh chart. It is part of the Data Navigator project.

Bokeh charts are visually rich but historically inaccessible — assistive technologies can't meaningfully interact with the canvas or SVG output. This wrapper builds a parallel accessible interface that lets users navigate and interact with the underlying data and visualization.

Bokeh's Accessibility Efforts

This project is informed by the ongoing Bokeh Accessibility Audit, which documents and tracks accessibility issues in Bokeh. The audit is a separate project — check it out if you want to understand the problem space more deeply (or are interested in embarking on your own ecosystem-wide accessibility overhaul). The audit and this work has been supported by a CZI Essential Open Source Software (EOSS) Cycle 6 grant, “Accessible interactive data visualizations in Python with Bokeh." This wrapper's contributions have been led by Frank Elavsky, in collaboration with folks from Quansight, Anaconda, and Bokeh.

Quick Start

bash
npm install data-navigator @data-navigator/bokeh-wrapper
js
import { addDataNavigator } from '@data-navigator/bokeh-wrapper';
import 'data-navigator/text-chat.css';

// After your Bokeh chart is rendered:
const wrapper = addDataNavigator({
    plotContainer: '#my-plot',
    data: myData
});

That's it. The wrapper will:

  1. Set the Bokeh plot to inert so screen readers skip the inaccessible output
  2. Infer the chart type from your data
  3. Build a navigable graph structure
  4. Append a text-chat interface after the plot

Data Navigator

This package is part of the Data Navigator ecosystem. If you are building a custom integration or want lower-level control, the core library and Inspector are available separately.

Released under the MIT License.