A WCAG 2.1 AA checklist for agencies
Fifty success criteria make up WCAG 2.1 Level AA, and the official numbering (1.4.11, 2.5.3, 4.1.2) tells you almost nothing about who on your team should fix what. This checklist reorganizes the criteria the way agency work is actually divided: by the part of the page and the discipline responsible. Use it as a working document during remediation, not as a substitute for reading the criteria you are unsure about.
Global page structure
These issues are usually template-level, so fixing them once fixes them everywhere.
- Every page has a unique, descriptive title (2.4.2)
- The page language is declared, and language changes within content are marked (3.1.1, 3.1.2)
- Heading levels form a real hierarchy: one h1, no skipped levels used for styling (1.3.1)
- Landmarks or a skip link let keyboard users bypass repeated navigation (2.4.1)
- Navigation appears in the same relative order across pages, and components with the same function are labeled consistently (3.2.3, 3.2.4)
- Content reflows at 320 pixels wide without horizontal scrolling (1.4.10)
- Nothing traps keyboard focus, and nothing is operable only by hover (2.1.1, 2.1.2)
Text and color
Mostly a design responsibility, and mostly checkable by software.
- Body text contrast is at least 4.5:1; large text at least 3:1 (1.4.3)
- Interface components and meaningful graphics have at least 3:1 contrast against adjacent colors (1.4.11)
- Color is never the only signal: error states, links in prose, and chart series all have a second cue (1.4.1)
- Text resizes to 200 percent without loss of content or function (1.4.4)
- Users can override text spacing without breakage (1.4.12)
- No images of text where real text would do (1.4.5)
Images and media
- Every informative image has alt text that conveys its purpose; decorative images have empty alt (1.1.1)
- Pre-recorded video has captions and an audio description or media alternative (1.2.2, 1.2.3, 1.2.5)
- Live audio content has captions where in scope (1.2.4)
- Nothing flashes more than three times per second (2.3.1)
- Audio that plays automatically for more than three seconds can be paused or stopped (1.4.2)
Forms
Forms generate more real-world accessibility complaints than any other page region, and checkout forms carry the highest stakes under the European Accessibility Act.
- Every field has a programmatically associated label, not just placeholder text (1.3.1, 4.1.2)
- The accessible name contains the visible label text (2.5.3)
- Common input fields declare their purpose via autocomplete attributes (1.3.5)
- Errors are identified in text, described helpfully, and suggestions are offered where possible (3.3.1, 3.3.3)
- Legal and financial submissions can be reviewed, corrected, or reversed (3.3.4)
- Focus does not jump unexpectedly, and changing a setting never triggers a surprise context change (3.2.1, 3.2.2)
Interactive components
Custom widgets are where front-end teams earn their keep.
- Everything works with a keyboard alone, in a sensible focus order (2.1.1, 2.4.3)
- Focus is always visible (2.4.7)
- Custom components expose correct name, role, and value to assistive technology (4.1.2)
- Status messages (added to cart, form saved) are announced without stealing focus (4.1.3)
- Content that appears on hover or focus is dismissible, hoverable, and persistent (1.4.13)
- Multipoint and path-based gestures have single-pointer alternatives, and down-events alone do not trigger actions (2.5.1, 2.5.2)
- Motion-activated features have a conventional alternative (2.5.4)
- Anything that moves, blinks, or auto-updates can be paused (2.2.2)
- Session time limits can be extended or turned off (2.2.1)
- Orientation is not locked without a real reason (1.3.4)
Findability
- More than one way exists to find any given page: navigation plus search or a sitemap (2.4.5)
- Headings and labels describe their content honestly (2.4.6)
- Link text makes sense in context, without "click here" mysteries (2.4.4)
Running the checklist across a client portfolio
A checklist is only useful if its state survives between audits. The pattern that works: run automated detection first, since it reliably covers roughly half of these criteria (contrast, labels, name-role-value, structure), then work the manual half by hand, recording a pass, fail, or not-applicable per criterion per site.
This split is how Complaudax structures the work: the extension audits any page your browser can open, including behind client logins, and each site carries a persistent manual checklist for the human-judgment criteria. Findings and checklist state accumulate per client, so the next audit starts from history instead of from zero, and the flat pricing means the checklist can run across every client without a per-seat bill growing alongside it.
One habit separates agencies that stay conformant from those that re-fail every year: attach this checklist to your definition of done for new components, not just to annual audits. Fifty criteria reviewed one component at a time is light work; fifty criteria discovered across a whole site under a deadline is not.