Content
View differences
Updated by Alexander Coles 13 days ago
## What to build
Provide a reliable, discoverable way for VoiceOver users to navigate Backlogs cards, select or deselect work packages, and reach batch actions. The reported failure is that arrow navigation reaches links rather than cards and Space scrolls instead of toggling selection. Establish the cause and deliver a working interaction; diagnosis alone does not complete this work package.
Follow-up to [AGILE-361](https://community.openproject.org/wp/AGILE-361), delivering the multi-selection feature in [AGILE-181](https://community.openproject.org/wp/AGILE-181). Source: [Henriette’s follow-up review](https://github.com/opf/openproject/pull/24525#pullrequestreview-5142945740).
## Acceptance criteria
* [ ] VoiceOver users can identify a work package, determine its selected state, toggle it, form a batch, and reach applicable batch actions through a documented interaction.
* [ ] Keyboard focus, batch membership, and the work package open in the details pane remain distinct. Navigation alone does not change batch membership.
* [ ] Card links, menus and inputs remain operable. Users can return from a card’s inner controls to card navigation without getting stuck.
* [ ] Keyboard users can reach structural controls such as “Show more”; these controls do not enter the batch selection.
* [ ] The supported interaction works with VoiceOver Quick Nav enabled and disabled, with any required mode transitions documented. It does not rely on every bare arrow or Space key reaching the application.
* [ ] Ordinary keyboard selection remains consistent with the range rules in AGILE-361.
## Hints for QA
Record macOS, browser and VoiceOver versions, Quick Nav state, and exact reproduction steps. Verify with VoiceOver in Safari and the reviewer’s browser, and repeat the ordinary keyboard path without VoiceOver. Include navigation into and out of card links/menus and structural controls.
## Merge checklist
* [ ] Capture the original failure and verify the implemented interaction manually with VoiceOver.
* [ ] Add regression coverage for DOM focus and keyboard event handling; automated tests supplement the assistive-technology check.
* [ ] Document the supported interaction and coordinate accessible state and speech with the selection-feedback follow-up.
## Scope
Includes the previously proposed follow-up for structural-row navigation and recovery from inner controls. Selection-feedback wording is owned by the companion follow-up. A full grid redesign, permission-independent selection, and broader select-all scopes are separate decisions.
## Related implementation
[AGILE-424 — selection-feedback](https://community.openproject.org/wp/AGILE-424)
Provide a reliable, discoverable way for VoiceOver users to navigate Backlogs cards, select or deselect work packages, and reach batch actions. The reported failure is that arrow navigation reaches links rather than cards and Space scrolls instead of toggling selection. Establish the cause and deliver a working interaction; diagnosis alone does not complete this work package.
Follow-up to [AGILE-361](https://community.openproject.org/wp/AGILE-361), delivering the multi-selection feature in [AGILE-181](https://community.openproject.org/wp/AGILE-181). Source: [Henriette’s follow-up review](https://github.com/opf/openproject/pull/24525#pullrequestreview-5142945740).
## Acceptance criteria
* [ ] VoiceOver users can identify a work package, determine its selected state, toggle it, form a batch, and reach applicable batch actions through a documented interaction.
* [ ] Keyboard focus, batch membership, and the work package open in the details pane remain distinct. Navigation alone does not change batch membership.
* [ ] Card links, menus and inputs remain operable. Users can return from a card’s inner controls to card navigation without getting stuck.
* [ ] Keyboard users can reach structural controls such as “Show more”; these controls do not enter the batch selection.
* [ ] The supported interaction works with VoiceOver Quick Nav enabled and disabled, with any required mode transitions documented. It does not rely on every bare arrow or Space key reaching the application.
* [ ] Ordinary keyboard selection remains consistent with the range rules in AGILE-361.
## Hints for QA
Record macOS, browser and VoiceOver versions, Quick Nav state, and exact reproduction steps. Verify with VoiceOver in Safari and the reviewer’s browser, and repeat the ordinary keyboard path without VoiceOver. Include navigation into and out of card links/menus and structural controls.
## Merge checklist
* [ ] Capture the original failure and verify the implemented interaction manually with VoiceOver.
* [ ] Add regression coverage for DOM focus and keyboard event handling; automated tests supplement the assistive-technology check.
* [ ] Document the supported interaction and coordinate accessible state and speech with the selection-feedback follow-up.
## Scope
Includes the previously proposed follow-up for structural-row navigation and recovery from inner controls. Selection-feedback wording is owned by the companion follow-up. A full grid redesign, permission-independent selection, and broader select-all scopes are separate decisions.
## Related implementation
[AGILE-424 — selection-feedback](https://community.openproject.org/wp/AGILE-424)