Keyboard Accessibility Review Workflow
Traverse every critical journey with keyboard only, check focus order, visibility, traps, and skip links, and fix findings before release.
Objective
Verify that every critical journey is fully operable with the keyboard alone.
Environment
- A representative set of pages and journeys
- Keyboard-only testing (no mouse)
Steps
1. Tab through each journey and record
Tab through each journey and record focus order.
Expected state: Focus follows a logical, predictable order.
2. Verify visible focus indicators on every
Verify visible focus indicators on every interactive element.
Expected state: Keyboard users can see where they are.
3. Test modals, menus, and dialogs
Test modals, menus, and dialogs for traps and escape behavior.
Expected state: Focus is not trapped and can be dismissed.
4. Verify skip links and that dynamic
Verify skip links and that dynamic content does not strand focus.
Expected state: Navigation and updates remain operable.
Decision points
Fix blockers only or all findings?
- Blockers now, rest scheduled
- All now
Fix keyboard traps and unreachable controls before release; schedule lower-severity issues with owners.
Automated scan enough?
- No, manual keyboard test
- Automated only
Automated tools miss focus order and traps; manual keyboard testing is required.
Expected outcome
Every critical journey is completable with the keyboard alone, with visible focus, no traps, and working skip links.
Verification
Confirm each journey was completed using only the keyboard and that removing a focus handler makes the review catch the failure.
Cleanup
Record findings with severity and file fixes before release.
Overview
Verify that every critical journey is fully operable with the keyboard alone. Confirm each journey was completed using only the keyboard and that removing a focus handler makes the review catch the failure.
Steps
- Tab through each journey and record focus order. Expected state: Focus follows a logical, predictable order.
- Verify visible focus indicators on every interactive element. Expected state: Keyboard users can see where they are.
- Test modals, menus, and dialogs for traps and escape behavior. Expected state: Focus is not trapped and can be dismissed.
- Verify skip links and that dynamic content does not strand focus. Expected state: Navigation and updates remain operable.
npx @axe-core/cli https://staging.example.com/checkout --exit
# then tab through the whole journey manually
Verification
- Every critical journey is completable with the keyboard alone, with visible focus, no traps, and working skip links.
Decision points
- Fix blockers only or all findings? Options: Blockers now, rest scheduled; All now. Recommended: Fix keyboard traps and unreachable controls before release; schedule lower-severity issues with owners.
- Automated scan enough? Options: No, manual keyboard test; Automated only. Recommended: Automated tools miss focus order and traps; manual keyboard testing is required.