feat: Remove main workspace tree/treeitem & use top-level regions (experimental)#9412
Merged
gonfunko merged 1 commit intoRaspberryPiFoundation:add-screen-reader-support-experimentalfrom Oct 13, 2025
Conversation
Also, use regions for identifiying toolbox, workspace, and flyout.
This was
linked to
issues
Oct 8, 2025
maribethb
approved these changes
Oct 8, 2025
| // 'block', | ||
| // ); | ||
| } else if (this.workspace.isFlyout) { | ||
| aria.setRole(this.pathObject.svgPath, aria.Role.TREEITEM); |
Contributor
There was a problem hiding this comment.
I think it's kind of weird for the flyout workspaces to still be treeitems. The categories in a toolbox make sense as trees, but blocks in a flyout should probably be treated like blocks in the workspace, in my opinion.
Collaborator
Author
There was a problem hiding this comment.
Yeah that seems right. It seems maybe useful to treat it like a list of some kind, but we may be stretching the definition of list item here. I can just go back to the idea of no list entirely and see what testing brings up.
Contributor
|
Talked with @rachel-fenichel and decided to merge now to unblock further work. |
c8a7fc6
into
RaspberryPiFoundation:add-screen-reader-support-experimental
14 of 16 checks passed
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The basics
The details
Resolves
Fixes #9395
Fixes RaspberryPiFoundation/blockly-keyboard-experimentation#428
Fixes part of #9312
Proposed Changes
Removes all
treeandtreeitemroles from non-flyout workspaces, and usesregionfor top-level workspace, toolbox, and flyout roles.Demonstration of changes:
Screen.recording.2025-10-08.10.37.10.AM.webm
(This shows the reintroduction of block role description, the new regions, the removal of tree/tree items for blocks, and an attempt at fixing mutators though with apparent issues).
Reason for Changes
Recent feedback from micro:bit panelists and accessibility experts suggests that the tree-based approach may be adding too much contextual information to the point of not actually being helpful (and potentially even being harmful from a UX perspective). Additionally, VoiceOver has mixed support for trees and tree items and it may be very difficult or impossible to work around these and continue with those roles.
The new plan is to test with less explicit context and add some more context through block labeling (particularly for C-shaped blocks), which is ongoing work in #9299. Longer term it may be necessary to add a more 'verbose' readout mode, or add some sort of 'where am I?' shortcut to re-add the contextual positioning information (so the code removed in this PR may be useful for future referencing).
Some specific notes on regions:
Note also that this reintroduces the 'block' role description for the main workspace and is leveraging
figure(https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/figure_role) as the base role for blocks. This seems like the best fit as blocks are not inherently buttons, and overwriting the role description is supposed to provide the correct context to readers. This may well need to change if more incompatibilities are discovered (such as with VoiceOver).Test Coverage
None since this is an experimental change.
Documentation
None since this is an experimental change.
Additional Information
None