Skip to content

Accessibility deep-dive on QR scan and batch modals #160

Description

@truthixify

Tier: M (2-4 days) | Type: a11y

Context. Wave 7 fixed page-level a11y basics but the complex overlays shipped this wave (QR scanner camera view, batch withdraw modal, batch send progress) were audited only at a surface level. Keyboard-only users cannot cancel the scanner, screen readers do not announce per-row progress, and focus escapes the modals on Escape.

Scope.

  • Trap focus inside every dialog; return focus to the trigger on close.
  • Announce per-row progress in the batch withdraw and batch send flows via aria-live=polite.
  • Keyboard shortcuts for the scanner: Escape closes, Space toggles camera, U triggers upload-fallback.
  • Screen-reader labels on the camera preview and the QR canvas.
  • Add Playwright a11y tests for each of the three modals under tests/a11y/modals.spec.ts.
  • Add test:a11y script to package.json that runs the a11y-tagged Playwright specs (no such script exists today; tests/a11y/send.spec.ts currently rides on the general test:e2e runner).

Acceptance.

  • pnpm test:a11y script exists in package.json and covers StellarBatchWithdrawModal, QRCodeModal, and the batch-send progress dialog with zero critical or serious violations
  • Contributor keyboard-only recording of scanning, batch withdraw, and batch send
  • VoiceOver announces per-row progress correctly
  • Focus is restored to trigger after each dialog closes

Files. src/components/QRCodeModal.tsx, src/components/StellarBatchWithdrawModal.tsx, src/pages/StellarSplit.tsx, tests/a11y/modals.spec.ts (new).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar wave programa11yAccessibilitydemoAuto-created for Wave 8dripsFunded via Drips Networkhelp wantedExtra attention is neededstellar-waveAuto-created for Wave 8uxUser experiencewave-8Auto-created for Wave 8

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions