The 50 WCAG 2.1 AA criteria, in plain language
WCAG 2.1 AA is the technical standard behind the European Accessibility Act (EN 301 549). It consists of 50 success criteria. Automated checks test 3 of them in full and 27 in part; 20 need human review — every Wexlo report states this per criterion. Below is the full list, with a plain-language check for everything a machine can't fully judge.
- Automated — the rule engine tests this criterion in full
- Partially automated — rules catch part of it; a human checks the rest
- Human review — no reliable automated test exists
1. Perceivable
| Criterion | Automated | Partially automated | Human review |
|---|
| 1.1.1 non-text contentLevel ACheck that every meaningful image has alt text that conveys its purpose, and that decorative images have empty alt text — the AI layer flags obviously weak alt text, but a human still confirms whether it matches the image. | —No | ✓Yes | —No |
|---|
| 1.2.1 audio-only and video-only (prerecorded)Level ACheck that audio-only and video-only content has a text alternative that tells the same story — the scan lists the media it found per page and whether a transcript link sits nearby, but a human confirms the alternative is equivalent. | —No | ✓Yes | —No |
|---|
| 1.2.2 captions (prerecorded)Level ACheck that captions are accurate and synchronised — the automated check only sees whether an HTML5 captions track exists; the media inventory also lists any embedded videos (YouTube/Vimeo) so you can check each for captions. | —No | ✓Yes | —No |
|---|
| 1.2.3 audio description or media alternative (prerecorded)Level ACheck that prerecorded video has an audio description or a media alternative for information that is only visible on screen. | —No | —No | ✓Yes |
|---|
| 1.2.4 captions (live)Level AACheck that live video with speech is captioned. | —No | —No | ✓Yes |
|---|
| 1.2.5 audio description (prerecorded)Level AACheck that prerecorded video has audio description where visuals carry information the audio does not. | —No | —No | ✓Yes |
|---|
| 1.3.1 info and relationshipsLevel ACheck that visual structure (headings, lists, tables, form groups) is also expressed in markup — the automated check catches only specific patterns. | —No | ✓Yes | —No |
|---|
| 1.3.2 meaningful sequenceLevel ACheck that the reading order stays meaningful when styling is removed, for example with a screen reader or a linearised view. | —No | —No | ✓Yes |
|---|
| 1.3.3 sensory characteristicsLevel ACheck that instructions never rely on shape, size, position, colour or sound alone ("click the round button on the right") — the AI layer does a first pass over the page text, and a human confirms the flagged cases. | —No | ✓Yes | —No |
|---|
| 1.3.4 orientationLevel AACheck that the site works in both portrait and landscape orientation — the automated check only catches hard orientation locks (CSS that hides content in one orientation, or a script that locks it); subtle layout loss still needs a human. | —No | ✓Yes | —No |
|---|
| 1.3.5 identify input purposeLevel AACheck that fields collecting personal data carry the matching autocomplete attribute — the automated checks validate the attributes present and flag evidently personal fields (email, phone, name) that carry none. | —No | ✓Yes | —No |
|---|
| 1.4.1 use of colorLevel ACheck that color is never the only way information is conveyed (links, charts, error states) — the automated checks cover links inside text and form fields whose only error cue is a colour/border change; charts and images still need a human. | —No | ✓Yes | —No |
|---|
| 1.4.2 audio controlLevel ACheck that any audio that starts automatically can be paused, stopped or muted — the automated check only catches autoplay markup. | —No | ✓Yes | —No |
|---|
| 1.4.3 contrast (minimum)Level AA | ✓Yes | —No | —No |
|---|
| 1.4.4 resize textLevel AACheck that the page remains usable at 200% browser zoom without loss of content — the automated checks flag zoom-blocking markup and content that clips or scrolls horizontally at a 200%-zoom viewport. | —No | ✓Yes | —No |
|---|
| 1.4.5 images of textLevel AACheck that text is real text rather than an image of text, except for logos. | —No | —No | ✓Yes |
|---|
| 1.4.10 reflowLevel AACheck that content reflows at 320 CSS pixels without two-dimensional scrolling — Wexlo's automated check flags overflow but can't judge legitimate exceptions such as data tables or maps. | —No | ✓Yes | —No |
|---|
| 1.4.11 non-text contrastLevel AACheck that UI components and meaningful graphics have at least 3:1 contrast against adjacent colors. | —No | —No | ✓Yes |
|---|
| 1.4.12 text spacingLevel AACheck that no content or function is lost when users increase text spacing — the automated check only detects overflow after applying the spacing metrics. | —No | ✓Yes | —No |
|---|
| 1.4.13 content on hover or focusLevel AACheck that content appearing on hover or focus can be dismissed, hovered over, and stays visible until dismissed. | —No | —No | ✓Yes |
|---|
2. Operable
| Criterion | Automated | Partially automated | Human review |
|---|
| 2.1.1 keyboardLevel ACheck that every function works with the keyboard alone — the automated checks cover focusable frames, scroll areas and a tab walk, not full operability. | —No | ✓Yes | —No |
|---|
| 2.1.2 no keyboard trapLevel ACheck that keyboard focus can always move in and out of every component — Wexlo's tab walk flags obvious traps; custom widgets still need a hands-on pass. | —No | ✓Yes | —No |
|---|
| 2.1.4 character key shortcutsLevel ACheck that single-character shortcuts can be switched off or remapped, or only fire when the relevant control has focus. | —No | —No | ✓Yes |
|---|
| 2.2.1 timing adjustableLevel ACheck that any time limit can be turned off, adjusted or extended — the automated check only catches meta-refresh. | —No | ✓Yes | —No |
|---|
| 2.2.2 pause, stop, hideLevel ACheck that moving, blinking or auto-updating content can be paused, stopped or hidden — the automated check only catches legacy blink/marquee markup. | —No | ✓Yes | —No |
|---|
| 2.3.1 three flashes or below thresholdLevel ACheck that nothing flashes more than three times per second. | —No | —No | ✓Yes |
|---|
| 2.4.1 bypass blocksLevel ACheck that the skip link or landmark structure actually lets keyboard users jump past repeated blocks — the automated check only verifies the mechanism exists. | —No | ✓Yes | —No |
|---|
| 2.4.2 page titledLevel ACheck that each page title actually describes the page — the automated checks verify a title exists, flag placeholder and duplicate titles across pages, and the AI layer flags titles that read as non-descriptive. | —No | ✓Yes | —No |
|---|
| 2.4.3 focus orderLevel ACheck that tabbing through each page follows a logical order that preserves meaning. | —No | —No | ✓Yes |
|---|
| 2.4.4 link purpose (in context)Level ACheck that each link's purpose is clear from its text or direct context — the automated check verifies links have an accessible name, and the AI layer flags vague link text ("click here", "read more"). | —No | ✓Yes | —No |
|---|
| 2.4.5 multiple waysLevel AACheck that there is more than one way to find a page — the automated check counts a sitemap, a site search and navigation, and flags sites offering fewer than two; confirm the ways actually work. | —No | ✓Yes | —No |
|---|
| 2.4.6 headings and labelsLevel AACheck that headings and labels describe the topic or purpose of what follows — the AI layer flags headings that don't match the content beneath them, and a human confirms the flagged cases. | —No | ✓Yes | —No |
|---|
| 2.4.7 focus visibleLevel AACheck that every interactive element shows a clearly visible focus indicator — Wexlo's tab walk flags measurably missing indicators; subtle cases still need a human eye. | —No | ✓Yes | —No |
|---|
| 2.5.1 pointer gesturesLevel ACheck that gestures like swiping or pinching have a single-pointer alternative (buttons, taps). | —No | —No | ✓Yes |
|---|
| 2.5.2 pointer cancellationLevel ACheck that pointer actions complete on release, can be aborted, or can be undone. | —No | —No | ✓Yes |
|---|
| 2.5.3 label in nameLevel ACheck that the accessible name of a control contains the text visible on it (important for voice control) — the automated check flags clear mismatches; review controls whose visible label is an icon or image. | —No | ✓Yes | —No |
|---|
| 2.5.4 motion actuationLevel ACheck that motion-triggered functions (shake, tilt) can be switched off and have a conventional alternative. | —No | —No | ✓Yes |
|---|
3. Understandable
| Criterion | Automated | Partially automated | Human review |
|---|
| 3.1.1 language of pageLevel A | ✓Yes | —No | —No |
|---|
| 3.1.2 language of partsLevel AACheck that passages in another language carry their own lang attribute — the automated checks validate the attributes present and flag text blocks that read as one of Wexlo's four languages but differ from the page's declared language and carry no lang of their own. | —No | ✓Yes | —No |
|---|
| 3.2.1 on focusLevel ACheck that merely focusing an element never triggers a context change such as navigation or a popup. | —No | —No | ✓Yes |
|---|
| 3.2.2 on inputLevel ACheck that changing a form control (selecting an option, ticking a box) never unexpectedly changes context, unless announced beforehand. | —No | —No | ✓Yes |
|---|
| 3.2.3 consistent navigationLevel AACheck that navigation appears in the same relative order across the site — Wexlo's cross-page check compares the scanned pages only. | —No | ✓Yes | —No |
|---|
| 3.2.4 consistent identificationLevel AACheck that components with the same function are named and presented consistently across pages. | —No | —No | ✓Yes |
|---|
| 3.3.1 error identificationLevel ACheck that every validation error is described in text near the field — Wexlo's form check triggers client-side validation only and can miss server-side flows. | —No | ✓Yes | —No |
|---|
| 3.3.2 labels or instructionsLevel ACheck that every field has a visible label or instruction that says what to enter — the automated check catches only specific labelling patterns. | —No | ✓Yes | —No |
|---|
| 3.3.3 error suggestionLevel AACheck that error messages suggest a fix when one is known (expected format, example value). | —No | —No | ✓Yes |
|---|
| 3.3.4 error prevention (legal, financial, data)Level AACheck that legal or financial submissions can be reviewed, corrected or reversed before they are final. | —No | —No | ✓Yes |
|---|
4. Robust
| Criterion | Automated | Partially automated | Human review |
|---|
| 4.1.1 parsingLevel ANo action needed: for HTML this criterion is considered satisfied under the W3C errata for WCAG 2.1. | —No | —No | ✓Yes |
|---|
| 4.1.2 name, role, valueLevel A | ✓Yes | —No | —No |
|---|
| 4.1.3 status messagesLevel AACheck that status updates (added to cart, saved, filter results) are announced to screen readers via a live region. | —No | —No | ✓Yes |
|---|
See where your site stands — run a free one-page scan.