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.