Skip to content

Improve accessibility: add ARIA labels and keyboard navigation #20

@pragmaticAweds

Description

@pragmaticAweds

Context

The app has basic accessibility through Radix UI's built-in ARIA support, but significant gaps remain. Only ~18 custom aria-label instances exist across the entire codebase. Form inputs, action buttons, icon-only buttons, and navigation elements lack proper accessible names. Keyboard-only users cannot reliably navigate the distribution table or stream action menus.

What Success Looks Like

  • All icon-only buttons (trash, plus, upload, refresh) have descriptive aria-label attributes
  • Form inputs have proper aria-describedby linking to their error messages
  • The sidebar navigation has aria-current="page" on the active link
  • The distribution recipients table supports keyboard navigation (Tab through rows, Enter to edit)
  • Interactive elements have visible focus indicators (:focus-visible ring)
  • The app passes Axe DevTools audit with zero critical violations

Implementation Guidance

Key files to audit and update:

  • apps/web/src/components/ui/app-sidebar.tsx — navigation needs aria-current
  • apps/web/src/app/(overview)/distribution/page.tsx — recipient table delete buttons (line 352-358) lack aria-label
  • apps/web/src/components/organisms/RecipientTable.tsx — table needs aria-label on the table element
  • apps/web/src/components/modules/payment-stream/StreamActionsCell.tsx — action buttons need labels
  • apps/web/src/components/offramp/OfframpForm.tsx — form inputs need error association
  • Add role="status" to loading indicators and toast notifications
  • Use aria-live="polite" on areas that update dynamically (balance displays, transaction status)

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty: mediumStandard features across multiple codebase sections

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions