Replies: 2 comments 2 replies
-
|
Thanks for starting this discussion @kmcnaught! My current experimentation with using Chromevox with a basic version of roving tab index (not quite https://opensource.adobe.com/spectrum-web-components/tools/roving-tab-index/ but close) has mostly "just worked" (with a lot of caveats). At least with Chromevox, I haven't run into issues with screenreader shortcuts overriding keyboard navigation because. Is this something that you've observed? If so, it would be helpful to better understand what you tried so that I can look into it. For the long-term, I see screen reader support coming from completing two areas of work:
(1) is currently undergoing design, and (2) will go through some a design phase afterwards. I'm expecting that we will file a number of tasks for both areas of work that, together, should provide an MVP experience for screen reader output. I do have two WIP branches (one in the plugin and the other in core Blockly) which, together, demonstrate very basic screen reader support. I can provide instructions for how to use those locally if you're interested. Edit: I also want to add one thing: while the mechanisms for making screen reader support work with keyboard navigation seem straightforward (as does making the nodes read out the correct context), our understanding of this is in a much more basic place than the broader keyboard navigation. In practice, I expect that this means a path to even an MVP state will likely encounter a lot of unexpected problems. Post-MVP, I expect a lot of iteration on the screen reader experience (especially as it comes to readout context and less commonly used Blockly features that may not be covered initially). |
Beta Was this translation helpful? Give feedback.
-
|
I'm tagging @joreneng here to continue discussion based on feedback in #639 In particular, I'd like to explain our decisions about these two issues:
I discussed the details of browse vs application mode with several accessibility experts and concluded that we need to use application mode for Blockly because of the level of complexity and our desire to have single-key shortcuts. This does mean that we will have conflicts with JAWS and NVDA shortcuts, and that users need to intentionally enter and exit the Blockly workspace. This is also why we chose to use tab to move between larger regions, but arrow keys inside Blockly. In particular, Blockly's components map most closely to an ARIA We don't remap keys to specifically avoid JAWS or NVDA shortcuts right now because there is no way to check which screen reader is in use (or, in fact, whether a screen reader is in use) from the browser. However, it is possible to remap shortcuts to use different keys, so we could consider separate mappings for different screenreaders and have the user choose their mapping. If that's the case, we still need a good default mapping because not every keyboard user will use a screenreader. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
This is a thread to discuss what is planned / pictured for screen reader integration. We are starting to look at fixing keyboard accessibility of various MakeCode divs, and want to be conscious of making design decisions that don't break anything for screen reader access, even though we imagine there will be a later pass to really nail screen reader access across the board.
Currently screen readers are in browse mode in the blockly workspace, which means their shortcuts override our keyboard navigation (this is not a surprise because we're not expecting screen reader support yet). But we'd like to understand more what direction you are planning to go in, so we can be consistent with it.
Are we planning for the
blocklyDiv(or some child component of it) to haverole="application"to support us in overriding screen reader defaults for right arrow? This would also protect us against issues with single-key shortcuts. But it means there's lots of behaviour you'd usually get 'for free' from a screenreader browsing a well-labelled DOM, that you'll then need to replicate by hand. I imagine if we went this way, we'd leaveblocklyWidgetDiv,blocklyDropDownDivandblocklyTooltipDivas native elements and expect normal screen reader functionality there, is that right?Or is there a plan for some kind of shadow-DOM that a screen reader navigates?
Or do we expect a screen reader user to be able to use standard browse paradigms within the blockly workspace? If so, how does this play nicely with the current keyboard nav?
Or something else entirely? If the direction isn't known yet, do we know what options are under consideration?
I don't expect final answers yet, but would be great to understand the general expected direction.
@BenHenning because I think you might be looking at this kind of thing...
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions