Skip to main content

Accessibility Audit Checklist

A comprehensive checklist for screen readers and keyboard navigation, aligned with WCAG 2.1 AA. Use this page-by-page or flow-by-flow.

Structure & Semantics

  • Page has one <h1> describing the page purpose
  • Headings follow a logical order (no skipping levels)
  • Landmarks exist (<main>, <nav>, <header>, <footer>)
  • Landmark names are meaningful (e.g., "Main content")
  • Reading order matches visual order
  • Content makes sense when CSS is disabled

Keyboard Navigation

  • All interactive elements reachable by Tab
  • Tab order is logical and predictable
  • No keyboard traps
  • Focus indicator is clearly visible
  • Custom components (dropdowns, sliders, modals) are keyboard-operable
  • Enter / Space activates buttons appropriately
  • Escape closes modals / dialogs
  • Focus is trapped inside open dialogs
  • Focus returns to triggering element after dialog close
  • Skip link exists and works

Screen Reader - General

Test with NVDA + VoiceOver if possible

  • Page title is descriptive
  • All buttons and links have accessible names
  • Icon-only controls have labels (aria-label or text)
  • Links are meaningful out of context
  • Decorative elements are hidden (aria-hidden="true")
  • Content is not announced twice
  • Dynamic updates are announced (ARIA live regions where needed)

Forms & Inputs

  • Every input has a <label>
  • Placeholder is not the only label
  • Required fields announced by screen reader
  • Error messages announced automatically
  • Errors are programmatically linked to inputs
  • Instructions are read before the input
  • Fieldsets and legends used for grouped inputs
  • Validation does not rely on color alone

Modals, Alerts, Notifications

  • Modals are announced as dialogs
  • Background content is inaccessible when modal is open
  • Focus moves into modal on open
  • Alerts are announced automatically
  • Toasts don't steal focus unexpectedly
  • Buttons used for actions, links for navigation
  • No div/span used as buttons without roles + keyboard support
  • Button labels clearly describe the action
  • Disabled buttons are announced correctly

Images & Media

  • Informative images have meaningful alt text
  • Decorative images have empty alt=""
  • Complex images have long descriptions
  • Videos have captions (if applicable)
  • Auto-playing media can be paused

Visual (Relevant to SR/Keyboard)

  • Focus styles meet contrast requirements
  • Content does not rely solely on color
  • Zoom to 200% works without loss of content
  • Reflow at small widths works logically

Responsive & Platform

  • Screen reader works on mobile
  • Touch targets accessible via SR
  • Orientation changes handled correctly

Severity Scale

LevelDescription
CriticalBlocks task completion (must fix)
HighMajor frustration / fails WCAG
MediumConfusing but workaround exists
LowMinor annoyance / improvement