Background
Custom UI components like the token selection modal, network switcher dropdowns, and custom sliders were built without ARIA attributes or keyboard navigation support.
Problem
Screen reader users and users who rely on keyboard navigation cannot effectively use the dApp, blocking a segment of users and failing standard accessibility compliance.
Expected Outcome
A fully accessible UI that passes WCAG 2.1 AA standards, ensuring all interactive Web3 elements are focusable, readable by screen readers, and operable via keyboard.
Suggested Implementation
- Run automated accessibility audits using Lighthouse and
eslint-plugin-jsx-a11y.
- Refactor custom select menus and modals to utilize Radix UI or Headless UI primitives, which have built-in accessibility.
- Add appropriate
aria-labels, aria-expanded, and role attributes to all interactive elements.
- Ensure sufficient color contrast ratios for text on active/inactive buttons.
Acceptance Criteria
Likely Affected Files
src/components/Modals/TokenSelectModal.tsx
src/components/Inputs/AmountInput.tsx
src/styles/theme.ts
Requirements
- Focus trapping must be properly implemented within all open modals.
Background
Custom UI components like the token selection modal, network switcher dropdowns, and custom sliders were built without ARIA attributes or keyboard navigation support.
Problem
Screen reader users and users who rely on keyboard navigation cannot effectively use the dApp, blocking a segment of users and failing standard accessibility compliance.
Expected Outcome
A fully accessible UI that passes WCAG 2.1 AA standards, ensuring all interactive Web3 elements are focusable, readable by screen readers, and operable via keyboard.
Suggested Implementation
eslint-plugin-jsx-a11y.aria-labels,aria-expanded, androleattributes to all interactive elements.Acceptance Criteria
Tab,Enter, andArrowkeys.Likely Affected Files
src/components/Modals/TokenSelectModal.tsxsrc/components/Inputs/AmountInput.tsxsrc/styles/theme.tsRequirements