Give one flow correct labels, roles, and announcements
A flow a screen reader announces as a list of unnamed controls, corrected against the accessibility tree.
The ticket
Give every control in one flow a correct accessible name, role, and state.
Acceptance criteria
- Every control has a meaningful accessible name
- Roles and states match what the control actually does
- Dynamic changes are announced
- Tests assert against the accessibility tree rather than class names
What lands as proof
Tests reading the accessibility tree, which is what a screen reader consumes, rather than the markup a developer sees.
Why teams defer it
- The markup looks right in a browser, and the accessibility tree is a separate thing most people never open.
- Fixing it properly means learning what each role implies, which is a day of reading before the first line changes.
Questions
- What does the agent actually change?
- The ticket is scoped to one outcome: give every control in one flow a correct accessible name, role, and state. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.
- How do I know the work is done?
- The pull request carries the evidence, not only the diff. Here that means assertions against the accessibility tree, not the markup, so a reviewer can confirm the result without reproducing the work locally.
- How much oversight does this need?
- None is required before the run starts. Every claim this ticket makes can be checked by machine, so the agent works straight through and a person reviews the finished pull request like any other.