-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TASK - Scope and plan accessibility audit - what, how #8
Comments
As promised, here are my initial thoughts on scoping the audit. Since Bokeh plots can be used in multiple contexts like dashboards, Jupyter notebooks, and websites, I'd suggest prioritising standard reusable components regardless of the final context in which the plots are presented and that are provided by default/natively by Bokeh. Including:
At a later stage and depending on findings, we can expand to other items like: Separately, someone in our design team could look into:
On the how we can reuse some of the examples in the Bokeh documentation - @frankelavsky what works best here for you in general, have one single place with all the things you need to audit for findability? Pinging @frankelavsky @mattpap for ideas, thoughts, questions on the above |
As for accessibility prior work, I think the most reliable source right now is the issue tracker: https://github.com/bokeh/bokeh/issues?page=2&q=sort:updated-desc+accessibility Documentation and discussions: |
That would be awesome, but not if it slows us down too much. Building out a page wouldn't just be good for finding what to audit but also for controlling the archive as well as providing more flexibility for experimenting/adjusting if we need to. For example, if we have questions about a particular capability, we could adjust the artifact directly as opposed to finding a representative example that is already made. Again, the advantages might sound great but if it is a lot of lift to build this out, then I'm happy to find examples and simply point to them instead. |
@pavithraes we could perhaps reuse some of the examples and official tutorial bits. |
Wanted to write that this is great and your suggested starting places for the audit look good. A few comments/questions:
My instinct with the second point here is that even though we can anticipate we will want to treat the navigation design between something like a scatter or a group of bars differently, keeping track of the audit results between them might not be as informative for now. That being said, for the sake of a comparative audit at the end, it might be awesome to show that different data structures are now handled from a navigation perspective that weren't initially. |
Also, I plan to assemble a simple, example piece of audit "evidence" on the Plot Tools just to start the discussion on formatting. It'll be a real test, even though the file+format itself is open to discussion. Since we will get a lot of evidence through the process, it's helpful to go over the format and settle on a template we like. Generally, it will have an organization to it like "Summary/explanation of failure" (with links to the guidelines or standards used in the test), "Video/image proof," "Steps to reproduce," "Expected results," links to the artifact itself that was evaluated, and then any technical details (like whatever screen reader or browser I was using). |
I forgot Pavithra was on PTO, so I checked with other folks. We can easily set up a self-contained set of examples and make them available as a dashboard pretty easily.
I like this, and I would like to have this in a separate repo as we did at https://github.com/Quansight-Labs/JupyterLab-user-testing
For this initial scope and audit, I do not think we need to examine a wide variety of plots; one or a maximum of two would be perfectly fine for now as I mostly anticipate we or mostly you would encounter the same interactions and barriers across most of the plots.
🔥 absolutely!
yes, here is where I would put stuff like:
In general, panning, zooming, clicking, and dragging are available by default. And I almost forgot: there are some keybindings associated with Edit tools
This sounds great looking forward to it.
As the default, yes. There are, however, svg and png exporters. But I am not 100% sure so will need someone to confirm or I will have to double check. |
There are three output backends:
SVG and PNG export works by running code in a (preferably) headless web browser and capturing a screenshot of the relevant page region, thus it's implementation independent. However, save and copy (to clipboard) tools are implementation dependent, and can only capture what's painted onto Also for future reference, when I'm saying painting onto |
Interactivity of plots consists predominantly of tools that act on the canvas, the (cartesian) frame and certain renderers like axes, or a combination of these. Additionally certain annotations can be interactive like clickable legends (e.g. see here) and editable/interactive annotations like Side note, the naming convention is quite inconsistent across bokeh models and is a side effect of historical artifacts, naming clashes (we use a flat namespace for most models, except of user defined and some experimental sub-modules). Thus we get e.g. Tools are a great source of various accessibility issues. Discoverability is bad (e.g. try to notice an arrow when hovering over tool buttons that support context menus; you need to press to show the associated menu). Keyboard support is very bad, with multiple active tools working at the same time, which results in confusing results at best. Then again, discoverability is bad or rather non-existent (see relevant issue bokeh/bokeh#8512). The most hopeless case are edit tools, which we previously decided need a redesign. Interacting with glyphs via tools or with annotations directly can be quite tricky, e.g. for small entities, because hit regions are too small and often there are no visual cues if the user is hitting anything relevant with their pointer device. Touch or mobile device experience is bad, primarily because we hardly ever have resources to work in that area. I sometimes test and do some work there, but it's not a consistent effort. Thus this can be a great source of all sort of issue related to accessibility or general usability. I will keep updating this comment as I recall more relevant problematic areas. |
Just commenting to note that I've read the above - really helpful context all around, thanks to both of you @trallard and @mattpap. A note on canvas is that some of the issues will be "cleaner" than ones created by SVG-based rendering (which can suddenly run into strange browser-level support for things like text navigation). I think we can approach just canvas rendering for now, before we decide if a separate SVG-based audit is worthwhile. Likely the solution (if we go with Data Navigator) will be agnostic about the rendering choice anyway. |
As for exporting formats, that is a whole separate discussion from rendering, I think. Folks I've worked with in the past were passionate about accessible exporting, and basically only SVG has potential for that because it is markup (raster exports are just pixel data, essentially). But I'm not too keen on including accessible image exporting in the scope of our work (certainly doubt auditing this would be helpful at the moment), but I'm open to considering this down the road once we start strategizing and prioritizing the various approaches we want to take. |
+1 on approaching canvas rendering for now
💯 agree here, I do not think we should include exporting in our scope. At least until we have a better grasp of our current accessibility baseline and work needed |
Hi all, just a note that Plot Tools has been "finished" as far as collecting evidence is concerned. See: Quansight-Labs/bokeh-a11y-audit#5 As for the next thing to audit - any priority items? I'm thinking of just going for the plotting interface next, but if it would make sense to do the "smaller" pieces first (axis + annotations), then I'm happy to move on to those instead. As far as axis and annotations are concerned: does the demo contain everything we'd want to include in regards to those two items? cc'ing @pavithraes in particular on that. If not, I can move to plotting next while we think about what/if to add for those. |
This sounds good; let's move on to the interface (which includes axes 😬)
yes, this should all be included there |
Sounds good! 🫡 |
Now that I'm nearly done with the audit, I want to note that this specific interaction is missing from our demo app. Does anyone (@pavithraes, @trallard, or perhaps @mattpap) have an existing link I can go check out to test this? It's not necessarily a blocker right now, but if we want this in the final pass that I hope to finish this month, all I'd need is a link (or perhaps someone can throw this into the demo before the month is up). Apologies for not catching this sooner, I've been going through everything a bit serially, so I just didn't catch it until now. And a note on auditing "keybindings" also: I've just used existing links outside of our demo for this part, so we don't really need to do anything additional here unless we just want for posterity's sake. |
@frankelavsky - Thanks, we missed this indeed. I can add an example to the dashboard this week. Alternatively, here is the example from the Bokeh gallery used in the screenshot: https://docs.bokeh.org/en/latest/docs/examples/interaction/linking/data_table_plot.html |
Before starting any hands-on audits, we need to align on the following:
🙋🏽 Who: @trallard @frankelavsky @mattpap
The text was updated successfully, but these errors were encountered: