Web Accessibility Checklist: 50 Points for WCAG 2.1 AA
Your Complete WCAG 2.1 AA Checklist
Achieving WCAG 2.1 Level AA conformance requires meeting 50 success criteria across four principles: Perceivable, Operable, Understandable, and Robust. This checklist provides a practical, actionable way to audit your website against every requirement. Use it alongside automated testing tools like EAAPass to ensure comprehensive coverage.
Each item below maps to a specific WCAG success criterion. Items marked with [A] indicate automated tools can detect issues, while [M] indicates manual testing is required.
Perceivable (Items 1-22)
Text Alternatives
- [A][M] All images have alt text — Every
<img>element has an alt attribute. Informative images have descriptive text; decorative images have empty alt (alt=""). (1.1.1) - [M] Alt text is meaningful — Alt text describes the purpose and content of each image in context, not just what it literally shows. (1.1.1)
- [A] Form image buttons have alt text — Image-based submit buttons have descriptive alt text. (1.1.1)
- [A] Complex images have detailed descriptions — Charts, graphs, and infographics have extended descriptions via aria-describedby or a linked description. (1.1.1)
Time-Based Media
- [M] Videos have captions — All pre-recorded video content has synchronized captions. (1.2.2)
- [M] Videos have audio descriptions — Visual-only information in videos is available through audio description or text alternative. (1.2.5)
- [M] Live video has captions — Live audio content in video has real-time captions. (1.2.4)
- [M] Audio content has transcripts — Pre-recorded audio-only content has text transcripts. (1.2.1)
Adaptable Content
- [A] Proper heading hierarchy — Headings follow a logical order (H1 > H2 > H3) without skipping levels. (1.3.1)
- [A] Lists use proper markup — Lists use
<ul>,<ol>, or<dl>elements, not visual formatting. (1.3.1) - [A] Tables have headers — Data tables use
<th>elements to identify headers. (1.3.1) - [A] Form fields have labels — Every form input has a programmatically associated label. (1.3.1)
- [A] Reading order is logical — Content makes sense when CSS is disabled. (1.3.2)
- [M] Instructions do not rely on sensory characteristics — Directions do not use only shape, size, color, or location. (1.3.3)
- [M] Content works in any orientation — No restriction to portrait or landscape. (1.3.4)
- [A] Input purpose is identified — Personal data fields use autocomplete attributes. (1.3.5)
Distinguishable
- [M] Color is not the only indicator — Information is not conveyed by color alone. (1.4.1)
- [A] Text contrast is at least 4.5:1 — Normal text meets 4.5:1 ratio; large text meets 3:1. (1.4.3)
- [A] Text can be resized to 200% — Text resizes without loss of content or functionality. (1.4.4)
- [M] No images of text — Real text is used instead of images of text (except logos). (1.4.5)
- [M] Content reflows at 320px width — No horizontal scrolling at 320 CSS pixels. (1.4.10)
- [A] Non-text contrast is at least 3:1 — UI components and graphics meet 3:1 ratio. (1.4.11)
Operable (Items 23-37)
Keyboard Accessible
- [M] All functionality works with keyboard — Every interactive element can be operated via keyboard. (2.1.1)
- [M] No keyboard traps — Focus can always be moved away from any component using keyboard. (2.1.2)
- [M] Character shortcuts can be disabled — Single-character key shortcuts can be turned off or remapped. (2.1.4)
Enough Time
- [M] Time limits are adjustable — Users can turn off, adjust, or extend time limits. (2.2.1)
- [M] Auto-updating content can be paused — Moving, blinking, or auto-updating content has pause/stop/hide controls. (2.2.2)
Seizures
- [M] No content flashes more than 3 times/second — No flashing content above threshold. (2.3.1)
Navigable
- [A] Skip navigation link exists — A skip link allows bypassing repeated content. (2.4.1)
- [A] Pages have descriptive titles — Each page has a unique, descriptive title. (2.4.2)
- [M] Focus order is logical — Tab order follows a meaningful sequence. (2.4.3)
- [A][M] Link purpose is clear — Link text describes the destination or action. (2.4.4)
- [A] Multiple navigation methods — At least two ways to find pages (nav, search, sitemap). (2.4.5)
- [M] Headings and labels are descriptive — All headings and labels describe their topic. (2.4.6)
- [M] Focus indicator is visible — Keyboard focus is clearly visible on all interactive elements. (2.4.7)
Input Modalities
- [M] Gestures have alternatives — Multipoint/path gestures also work with single tap/click. (2.5.1)
- [M] Labels match accessible names — Visible labels are contained in the accessible name. (2.5.3)
Understandable (Items 38-46)
Readable
- [A] Page language is set — The HTML lang attribute is present and correct. (3.1.1)
- [A] Language changes are marked — Content in other languages uses lang attribute. (3.1.2)
Predictable
- [M] Focus does not trigger changes — Receiving focus does not cause unexpected context changes. (3.2.1)
- [M] Input does not trigger unexpected changes — Changing a setting does not cause context changes without warning. (3.2.2)
- [M] Navigation is consistent — Navigation appears in the same order across pages. (3.2.3)
- [M] Components are identified consistently — Same functionality uses same labels. (3.2.4)
Input Assistance
- [A][M] Errors are identified in text — Input errors are described in text, not just color. (3.3.1)
- [M] Error suggestions are provided — When errors are detected, suggestions are offered. (3.3.3)
- [M] Important submissions are reversible — Legal/financial submissions can be reviewed, corrected, or confirmed. (3.3.4)
Robust (Items 47-50)
- [A] HTML is valid — No duplicate IDs, proper nesting, complete tags. (4.1.1)
- [A] Custom components have names and roles — All UI components have programmatic name, role, and value. (4.1.2)
- [M] Status messages use ARIA live regions — Dynamic messages are announced without focus change. (4.1.3)
- [A] ARIA attributes are valid — All ARIA roles, states, and properties are used correctly. (4.1.2)
How to Use This Checklist
- Run an automated scan first: Use EAAPass to check all items marked [A]. This covers about half the checklist automatically.
- Fix automated issues: Address all issues identified by the automated scan.
- Manual testing: Work through items marked [M] using keyboard navigation and a screen reader.
- Document results: Record your findings for each item, noting any issues and their locations.
- Retest after fixes: Run the automated scan again and repeat manual checks for fixed areas.
Start Your Audit Now
This checklist gives you the roadmap — EAAPass gives you the automated testing to cover the first half efficiently. Start with a free audit and use this checklist to complete your manual review. Get your free WCAG 2.1 AA audit today.