Add focus traps for modals, accessible names for icon/select controls, ownership badge role=status, list semantics for the scan queue, and aria-live updates for the card count. Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
1.1 KiB
Markdown
30 lines
1.1 KiB
Markdown
---
|
|
name: scanner-redesign-a11y-fixes
|
|
classification: fix
|
|
success_metric: |
|
|
Post-audit a11y gaps from audit-redesign-scanner-flow-44 closed: ownership
|
|
badge exposed to AT, icon/select controls labeled, modals trap focus, queue
|
|
uses list semantics and live count updates.
|
|
depends_on:
|
|
- redesign-scanner-flow
|
|
status: open
|
|
created: 2026-05-27
|
|
---
|
|
|
|
# Convoy: scanner-redesign-a11y-fixes
|
|
|
|
Closes P1 follow-up from `audit-redesign-scanner-flow-44`.
|
|
|
|
## Scope
|
|
|
|
- `components/ScannedCardItem.js` — ownership `role="status"`, labeled selects/buttons
|
|
- `components/CameraScanner.js` — camera control labels, disambiguation focus trap, video label, heading fix
|
|
- `pages/scanner.js` — create-collection modal a11y, bulk toolbar labels, queue list semantics, live count
|
|
- `lib/use-focus-trap.js` (new) — shared modal focus trap
|
|
|
|
## Acceptance criteria
|
|
|
|
1. Ownership badge announced by screen readers.
|
|
2. All icon-only and placeholder `<select>` controls have accessible names.
|
|
3. Disambiguation + create-collection modals trap focus and restore on close.
|
|
4. Scanned cards queue uses list semantics; count updates are polite live region.
|