Olli is an open-source library for converting data visualizations into accessible text structures for screen reader users. Starting with an existing visualization specification created with a supported toolkit, Olli produces a keyboard-navigable tree view with descriptions at varying levels of detail. Users can explore these structures both to get an initial overview, and to dive into the data in more detail.
For a user tutorial, quickstart guide, and examples, see the Olli website.
- Fork and clone the
mitvis/olli
repository. - In the
olli
directory, runnpm install
to install dependencies for all packages. We use npm workspaces to manage the two packages in this repo. - In the
core
oradapters
package directories, runnpm run start
to start the webpack bundler in development mode with file watching.- Note:
olli
must be built beforeolli-adapters
the first time you run the build scripts. - Run
npm run build
to run webpack for production.
- Note:
- To run scripts for both packages at the same time, run commands from the
olli
directory using the-ws
flag, e.g.npm run build -ws
.
- The documentation site uses jekyll, and is served on github pages from the
docs/
folder. See more about jekyll and gh-pages here. - Run
bundle exec jekyll serve
indocs
to serve the page atlocalhost:4000/olli
.
- Run
npm run start
in the package(s) you are developing (i.e. incore
and/oradapters
). This starts webpack in watch mode with the dev config. - Run
bundle exec jekyll serve --livereload
to serve the page atlocalhost:4000/olli
with live reloading. - Use the example gallery at
localhost:4000/olli/examples
to test changes locally.- When testing features, it's recommended to do initial testing on the multi-series line chart and scatterplot.
- Validate across more examples before putting features into production.
- Making data visualization more accessible for blind and low-vision individuals | MIT News
- Rich Screen Reader Experiences for Accessible Data Visualization | MIT Visualization Group
If you encounter issues when using Olli, please file an issue on GitHub. Please include enough information to reproduce the issue. For example, if the issue is a bug with a chart that Olli should support with one of its adapters, please include the spec and dataset for the chart. For accessibility issues, please share what browser and screen reader you are using.
Interested in contributing to Olli? Please see our contribution and development guidelines, and our code of conduct.
Olli was originally created by Matt Blanco and the library is maintained by the MIT Visualization Group.