deckhearth/.convoys/scanner-redesign-a11y-fixes.md
varutasu 66717c4198
fix(scanner): close redesign a11y audit findings (#45)
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>
2026-05-27 14:22:18 -05:00

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.