Overview
The app has received no accessibility review. Run a full WCAG 2.1 AA audit and fix all critical and serious violations — focusing on screen-reader compatibility and keyboard-only navigation.
Acceptance Criteria
- Axe-core audit run on all main pages: home, dashboard, invoice detail, pay modal, create form
- All images have meaningful
alt text or aria-hidden="true" for decorative ones
- All interactive elements reachable and operable via keyboard (Tab, Enter, Space, Escape)
- Focus ring visible on all interactive elements (no
outline: none without a replacement)
- Modals trap focus correctly and return focus to the trigger on close
- Form fields all have associated
<label> elements or aria-label
- Status badges use
aria-live="polite" for dynamic updates
- Colour contrast ratio ≥ 4.5:1 for all text (verified with contrast checker)
- axe-core report included in PR with before/after violation counts
Overview
The app has received no accessibility review. Run a full WCAG 2.1 AA audit and fix all critical and serious violations — focusing on screen-reader compatibility and keyboard-only navigation.
Acceptance Criteria
alttext oraria-hidden="true"for decorative onesoutline: nonewithout a replacement)<label>elements oraria-labelaria-live="polite"for dynamic updates