-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
3 / 33 of 3 issues completedClosed
3 / 33 of 3 issues completed
Copy link
Labels
issue: feature requestDescribes a new feature and why it should be addedDescribes a new feature and why it should be added
Description
Check for duplicates
- I have searched for similar issues before opening a new one.
Problem
Core Blockly doesn't currently have a good way to handle the following user flows:
- Ensuring element selection/navigation via the keyboard navigation plugin ties back to DOM focus (which is necessary screenreader support).
- Ensuring that currently focused elements have clear visual indicators (this sort of works today for elements that are selectable, but otherwise we rely on browser focus visual indicators which are very subtle or outright may not work in certain SVG contexts).
- Ensuring that distinct focus 'domains' (e.g. the workspace and toolbox) can represent 'passive' focus (that is, the last element within that logical context that held DOM focus but doesn't currently). This is especially useful for communicating which visual element will receive focus when returning to that context (such as navigating from the toolbox back to the workspace).
- Ensuring cases when focus context needs to be taken temporarily (such as for drop-downs) can be done in a clean way.
Request
RaspberryPiFoundation/blockly-keyboard-experimentation#142 (comment) describes the high-level solution for this, but specifically this issue is meant to track adding (see also the sub-issues):
Alternatives considered
The technical design above has a lot of context on alternative considerations.
Additional context
The technical design above should have all important additional context. #8771 tracks more specific components that need to be updated in order for the system introduced with this issue to be useful. RaspberryPiFoundation/blockly-keyboard-experimentation#142 tracks the work to integrate the new focus system within the keyboard navigation plugin.
Sub-issues
Metadata
Metadata
Assignees
Labels
issue: feature requestDescribes a new feature and why it should be addedDescribes a new feature and why it should be added