Content
View differences
Updated by Alexander Coles 13 days ago
## What to build
Make selection feedback convey which work package is selected and the effect of selection changes, including batch size and scope. Agree the feedback with <mention class="mention" data-id="64880" data-type="user" data-text="@Behrokh Satarnejad">@Behrokh Satarnejad</mention> Behrang and implement it using accessible control state and concise announcements without redundant speech.
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
* [ ] Users of assistive technology can identify the focused work package and its selection state, separately from the work package open in the details pane.
* [ ] Toggle, range extension/shrinking/reversal, clear, and select-all operations provide understandable feedback about the resulting selection.
* [ ] Changes to membership are communicated where needed even when the total count stays the same.
* [ ] Select-all feedback distinguishes loaded selected cards from work packages omitted by truncation; it does not imply that unloaded work packages were selected.
* [ ] After server updates or row replacement, accessible state reflects retained and removed selection. Relevant membership changes are communicated without stale state or misleading counts.
* [ ] Menu actions that change selection and perform an operation provide coordinated feedback, without competing or redundant queued announcements. Coordinate with [AGILE-364](https://community.openproject.org/wp/AGILE-364).
* [ ] Messages are concise, translatable and plural-aware. Repeated operations remain understandable without reading the entire batch on every change.
## Hints for QA
Check actual screen-reader output for single toggle, same-count membership replacement, range resizing, clear, truncated select-all, server removal of selected cards, list expansion and menu-triggered changes. Confirm both the accessible state of the focused card and the live announcement, including repeated identical operations.
## Merge checklist
* [ ] Agree wording and the division between accessible control state and live announcements with Behrang.
* [ ] Implement and verify feedback with VoiceOver, coordinating with the companion VoiceOver interaction follow-up.
* [ ] Add regression coverage for membership changes, loaded scope and reconciliation.
* [ ] Verify menu/action announcement composition against AGILE-364 and update interaction documentation.
## Scope
Consolidates the proposed server-update selection announcements, truncated select-all disclosure, and menu announcement coordination. Does not introduce a persistent visible count/action bar, change selection permissions, or widen select-all scope. VoiceOver navigation and event handling are owned by the companion follow-up.
## Related implementation
[AGILE-423 — VoiceOver interaction](https://community.openproject.org/wp/AGILE-423)
Make selection feedback convey which work package is selected and the effect of selection changes, including batch size and scope. Agree the feedback with <mention class="mention" data-id="64880" data-type="user" data-text="@Behrokh Satarnejad">@Behrokh Satarnejad</mention>
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
* [ ] Users of assistive technology can identify the focused work package and its selection state, separately from the work package open in the details pane.
* [ ] Toggle, range extension/shrinking/reversal, clear, and select-all operations provide understandable feedback about the resulting selection.
* [ ] Changes to membership are communicated where needed even when the total count stays the same.
* [ ] Select-all feedback distinguishes loaded selected cards from work packages omitted by truncation; it does not imply that unloaded work packages were selected.
* [ ] After server updates or row replacement, accessible state reflects retained and removed selection. Relevant membership changes are communicated without stale state or misleading counts.
* [ ] Menu actions that change selection and perform an operation provide coordinated feedback, without competing or redundant queued announcements. Coordinate with [AGILE-364](https://community.openproject.org/wp/AGILE-364).
* [ ] Messages are concise, translatable and plural-aware. Repeated operations remain understandable without reading the entire batch on every change.
## Hints for QA
Check actual screen-reader output for single toggle, same-count membership replacement, range resizing, clear, truncated select-all, server removal of selected cards, list expansion and menu-triggered changes. Confirm both the accessible state of the focused card and the live announcement, including repeated identical operations.
## Merge checklist
* [ ] Agree wording and the division between accessible control state and live announcements with Behrang.
* [ ] Implement and verify feedback with VoiceOver, coordinating with the companion VoiceOver interaction follow-up.
* [ ] Add regression coverage for membership changes, loaded scope and reconciliation.
* [ ] Verify menu/action announcement composition against AGILE-364 and update interaction documentation.
## Scope
Consolidates the proposed server-update selection announcements, truncated select-all disclosure, and menu announcement coordination. Does not introduce a persistent visible count/action bar, change selection permissions, or widen select-all scope. VoiceOver navigation and event handling are owned by the companion follow-up.
## Related implementation
[AGILE-423 — VoiceOver interaction](https://community.openproject.org/wp/AGILE-423)