Accessibility Audit Guide
A full accessibility audit for screen-reader and keyboard navigation requires combining automated checks, manual testing, and real-user assistive technology workflows. Automated tools only surface a subset of issues (~30-40%), so manual testing is essential.
Audit Process Overview
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Automated │ ──▶ │ Keyboard │ ──▶ │ Screen Reader │
│ Scanning │ │ Testing │ │ Testing │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ Document & Report Findings │
└─────────────────────────────────────────────────────────────────┘
Phase 1: Automated Scanning
Automated tools are fast and catch common issues (missing alt text, ARIA mistakes, color contrast, label issues). They give you a baseline.
Recommended Tools
| Tool | What It Does | Cost |
|---|---|---|
| axe DevTools | Deep rule set integrated in browser DevTools | Free + Paid |
| WAVE (WebAIM) | Browser extension highlights errors inline | Free |
| Lighthouse | Quick overall accessibility score | Free |
| Pa11y | CLI/CI accessibility testing automation | Free |
| Accessibility Insights | Fast automated + guided manual tests | Free |
How to Use
- Install axe or WAVE extension in Chrome/Edge
- Open your target page
- Run the scan on critical pages and record findings
- Export report (CSV/JSON) for later comparison
warning
Automated checks typically catch only ~30-40% of total issues — this is just one part of the audit.
Phase 2: Keyboard Navigation Testing
Automated tools can't fully assess keyboard experiences. You need to walk through the app manually.
What to Test
| Action | What to Check |
|---|---|
Tab | Is order logical and predictable? |
Shift+Tab | Does backward navigation work? |
Enter/Space | Do buttons and links activate? |
Arrow keys | Do they work in dropdowns, radio groups? |
Escape | Does it close modals/dialogs? |
Checklist
- All interactive elements reachable by Tab
- Focus indicator is clearly visible
- No keyboard traps
- Custom components (dropdowns, sliders, modals) are keyboard-operable
- Focus is trapped inside open dialogs
- Focus returns to triggering element after dialog close
- Skip link exists and works
Phase 3: Screen Reader Testing
This is where automated tools do not help. You must test with actual screen readers.
Recommended Screen Readers
| Platform | Screen Reader |
|---|---|
| Windows | NVDA (free), JAWS (paid) |
| macOS | VoiceOver (built-in) |
| iOS | VoiceOver (built-in) |
| Android | TalkBack (built-in) |
What to Check
- Meaningful link/button announcements
- Correct headings structure (H1, H2, ...)
- Form labels read aloud
- ARIA role accuracy (menus, dialogs, live regions)
- Dynamic updates announced
- Content not announced twice
Basic Commands
NVDA/JAWS:
H- Navigate by headingsT- Navigate by tablesF- Navigate by form fieldsK- Navigate by linksB- Navigate by buttonsInsert+F7- List all elements
VoiceOver (Mac):
Cmd+F5- Start/Stop VoiceOverVO+A- Start readingVO+Right Arrow- Next itemVO+Cmd+H- Next headingVO+U- Rotor menu
Phase 4: Document Findings
For each page or flow, record:
- Page/component name
- Device/OS/browser/screen reader used
- Automated errors/warnings
- Keyboard issues
- Screen reader confusion points
- Severity & screenshots
- Fix recommendations
Recommended Workflow
Week 1: Automated + Keyboard Testing
| Day | Task |
|---|---|
| 1 | Install and configure automated tools |
| 2-3 | Keyboard navigation testing on all pages |
| 4-5 | Run automated scans with multiple tools |
Week 2: Screen Reader Testing
| Day | Task |
|---|---|
| 1 | Setup screen readers (NVDA, VoiceOver) |
| 2-4 | Test critical user flows |
| 5 | Document findings and prioritize fixes |
Priority Order
Critical (Blockers)
- Keyboard traps
- Missing form labels
- Inaccessible interactive elements
High Priority
- Missing alt text on meaningful images
- Poor heading structure
- Color contrast issues
Medium Priority
- Missing landmarks
- Non-descriptive link text
- Missing skip links
Low Priority
- Minor ARIA issues
- Redundant alt text