Skip to content

Overview & Architecture ​

Olli converts data visualizations and diagrams into accessible, keyboard-navigable tree views for screen reader users. This section covers the architecture and developer API. If you're a screen reader user, see Using Olli instead.

Data flow ​

  1. An adapter converts an external format (primarily Vega-Lite) into Olli's own spec type.
  2. A lowerer (part of a domain) converts the spec into a hypergraph — a directed, multi-parent graph.
  3. The navigation runtime manages focus, selection, expansion state, and builds a nav tree from the hypergraph.
  4. The renderer produces an accessible ARIA tree view from the nav tree.

Packages ​

PackagePurpose
olliVanilla JS entry points (olliVis, olliDiagram, olli) and the OlliHandle API
olli-coreHypergraph data model, navigation runtime, description framework
olli-visVisualization domain: spec types, lowerer, tokens, dialogs, keybindings, presets
olli-diagramDiagram domain: spec types, lowerer, tokens
olli-adaptersAdapters for Vega-Lite, Bluefish, and other visualization formats
olli-render-solidSolid.js ARIA tree renderer, keyboard handling, dialog system

Where to go next ​

Released under the BSD-3-Clause License.