vega / altair

Declarative statistical visualization library for Python
https://altair-viz.github.io/
BSD 3-Clause "New" or "Revised" License
9.39k stars 795 forks source link

improve accessibility for screen reader users #3575

Closed mattijn closed 2 months ago

mattijn commented 2 months ago

What is your suggestion?

Olli is a library for converting web visualizations into accessible text structures for blind and low-vision screen reader users. See the website and GitHub repository.

We might be able to utilise the Altair’s Renderer Framework to render Altair specifications as Olli charts (eg. alt.renderers.enable("olli"))

Inspiration for implementation might come from the recent introduced alt.renderers.enable("jupyter") in https://github.com/vega/altair/pull/3283.

For improving accessibility within Altair we are free to request input from @jonathanzong if needed.

Have you considered any alternative solutions?

There is also Umwelt (see the paper), which treats visualization, sonification, and textual description as coequal representations, where Olli is merely focussing on providing information for screen-readers.

In the paper of Umwelt it is phrased that:

Umwelt extends Vega-Lite’s concept of view composition to express multi-view textual structures and sonifcations.

I'm not sure if Umwelt also (will) support Vega-Lite specifications as-is, or if it require prior changes in the Vega-Lite repository. We could start with Olli, because it can be fed by Vega-Lite specifications as are currently created by Altair.

binste commented 2 months ago

@jonathanzong Do you think it makes sense to start with Olli or is it preferable to wait for an Umwelt release? If the later, do you think it's realistic that this would happen within weeks/months? No pressure at all, just to have your assessment. Starting with Olli sounds great to me.

jonathanzong commented 2 months ago

I do agree that it makes sense to start with Olli since there isn't currently a concrete timeline for Umwelt release.

binste commented 2 months ago

Got a working PoC, I'll try to create a PR soon:

image