Add support for accessibility "object nav"
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
Bevy currently supports accessibility via tab navigation and directional navigation. However, desktop UI frameworks such as Java Swing or Qt support a deeper level of integration with platform accessibility APIs, which is known as "object nav". This allows the a11y framework to navigate though the hierarchy using commands from the platform accessibility service. These commands could potentially be triggered by certain gestures, overlay controls, or specific hardware button events. The "object nav" commands allow navigation up and down the hierarchy as well as laterally, as well as the ability to reach entities that are not otherwise focusable.
## What solution would you like?
AccessKit supports object nav, but I know little about how it works. So the first step would be to research it and come up with a plan. We would then need to decide how to annotate the ECS hierarchy to support the necessary a11y metadata. Then, we would likely need to update our UI libraries to include these annotations.
## What alternative(s) have you considered?
Continue to rely solely on tab-navigation as the primary means of accessibility support.
Contributor guide
Research direction
Start by researching AccessKit's object nav model and documenting how its commands and metadata map onto Bevy's ECS hierarchy. Then inspect the existing accessibility support and UI libraries to identify the annotations they would need; done means producing an agreed implementation plan before coding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- accessibility
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100