WCAG 2.1 AA Accessibility Checklist
40+ concrete checks organized around the four POUR principles of WCAG. A practical pre-audit checklist for developers and QA teams to use before commissioning a formal conformance audit.
Note: This checklist is a developer pre-audit tool — it is NOT a formal WCAG conformance audit. A legal conformance audit requires a qualified expert applying the full WCAG 2.1 AA Success Criteria methodology.
Perceivable
Information and UI components must be presentable to users in ways they can perceive.
- All non-text content has a meaningful text alternative (alt), or is marked decorative with alt="".
- Complex images (charts, diagrams) have a long description accessible via aria-describedby or adjacent text.
- Pre-recorded video content has synchronized captions.
- Pre-recorded audio-only content has a full text transcript.
- Color contrast is at least 4.5:1 for normal text and 3:1 for large text.
- Information is not conveyed by color alone (e.g., error fields need an icon or label in addition to red).
- HTML uses semantic landmarks (<header>, <nav>, <main>, <footer>) and a logical heading hierarchy <h1>-<h6>.
- Each page has exactly one <h1> that describes its purpose.
- Content remains readable and functional at 200% text zoom without loss of information.
- Content is not restricted to a single display orientation (portrait or landscape).
- Input fields identify their purpose via autocomplete attributes (email, name, tel, etc.).
Operable
UI components and navigation must be operable by keyboard and within adequate time.
- All functionality is accessible via keyboard alone, with no keyboard traps.
- A visible focus indicator is present on all interactive elements.
- Tab order follows a logical reading sequence.
- A skip link allows users to jump directly to main content.
- Time limits are adjustable, extendable, or can be turned off.
- No content flashes more than 3 times per second.
- Every page has a unique, descriptive <title> element.
- Link text is descriptive out of context ("Read the article" rather than "Click here").
- Multiple ways to navigate are available (menu, sitemap, search).
- Touch targets are at least 24x24 CSS pixels.
Understandable
Information and the operation of UI components must be understandable.
- The page language is declared via <html lang="en"> (or the appropriate code).
- Passages in a different language are marked with the lang attribute.
- Navigation mechanisms are consistent across pages (order, location, labels).
- Components with the same functionality are identified consistently.
- Every form field has a programmatically associated <label>.
- Input errors are identified and described in text (not only by color).
- Suggestions for correction are provided when possible.
- Reversible, checkable, or confirmable for legal, financial, and data-deletion actions.
- No change of context occurs on focus or input without warning.
- Instructions do not rely solely on sensory characteristics (shape, position, color).
Robust
Content must be robust enough to be interpreted by a wide variety of user agents, including assistive technologies.
- HTML is valid: properly closed tags, unique IDs, correct nesting.
- Every interactive component exposes an accessible name, role, and value.
- ARIA roles are used only when native HTML is insufficient.
- Status messages are announced via aria-live or role="status".
- Custom widgets (modals, menus, tabs) follow official WAI-ARIA authoring patterns.
- Iframes and frames have a title attribute describing their contents.
- No element removes the default focus outline without providing a visible replacement.
- Screen reader testing (NVDA, VoiceOver) has been performed on critical user flows.
How to automate this checklist
Manually ticking 40 boxes on every page takes hours. Scrutia checks all the technical criteria automatically in 5 minutes and returns a full report with remediation code.
Related resources: