-
Notifications
You must be signed in to change notification settings - Fork 3.8k
fix: Clean up accessibility node hierarchy (experimental) #9449
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
Merged
BenHenning
merged 17 commits into
RaspberryPiFoundation:add-screen-reader-support-experimental
from
BenHenning:clean-up-node-hierarchy
Dec 18, 2025
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
b1d3d6d
feat: Clean up a11y node hierarchy.
BenHenning a7f7810
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning f81e2b2
fix: Fix CI failures.
BenHenning cc5d002
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning 7e1b4d5
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning 18200c9
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning eeaff73
chore: Simplify connectiong gating logic.
BenHenning 5e28067
chore: Reduce complexity.
BenHenning 4a6f102
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning 14cd72c
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning 8dacb41
fix: Broken tests due to connection change.
BenHenning c19eaa5
chore: Lint fixes.
BenHenning 71a9678
fix: Fix output connections in C-shaped blocks.
BenHenning be3e909
Merge branch 'add-screen-reader-support-experimental' into clean-up-n…
BenHenning 3c9df1f
chore: Remove redundant check.
BenHenning a063709
chore: Attempt a different approach.
BenHenning f9e745f
chore: Remove ownership code.
BenHenning File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels weird to me but I can't totally articulate why. I guess it feels like we're relying on some rendering detail to make a decision about something that feels more like a business logic decision. But I'm not sure in which scenarios the highlight Svg wouldn't exist, so maybe that's okay.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that unease is valid, and I think I also share it. We compromised on how the highlight SVG is managed for focus which is why there's a tight coupling between the SVG and focus-related operations. This should increase the safety of interacting with
RenderedConnectionsincegetFocusableElementwill throw if the SVG is missing since it's the focusable element. Ideally we would change the lifecycle management to always guarantee the SVG's presence and rely only on visibility rather than presence but, as I understand it, the highlight SVG is created separately from the class (due to it being created asynchronously in the rendering pipeline rather than part of much of the rest of the DOM).