All 55 Level A and AA criteria, in plain language.
The official WCAG specification is written for precision, not for reading. This is the same 31 Level A and 24 Level AA success criteria translated into what they actually require — plus the failure we find most often for each one. It's the working reference behind our audits, published because it's more useful to you than it is proprietary to us.
How to use this
Level AA conformance means meeting every Level A and Level AA criterion — conformance isn't a percentage or a score. 12 of these arrived in WCAG 2.1 and 6 in WCAG 2.2, which matters because most regulations still cite 2.1: the 2.2 additions are where you get ahead rather than catch up. Level AAA criteria are excluded here deliberately — W3C doesn't recommend AAA as a general policy target, and no major regulation cites it.
Note that WCAG 2.2 removed 4.1.1 Parsing, so it's absent by design rather than omission. For normative language, always cite the W3C specification itself — this page is a translation, not a substitute.
Perceivable
20 criteria at Level A and AA.
Non-text Content
Level AEvery image, icon, chart, and control that isn't text needs a text alternative that serves the same purpose. Purely decorative images need to be marked so assistive technology skips them.
Where it fails: Alt text that describes the file rather than the meaning — "chart.png" instead of what the chart says — and icon-only buttons with no accessible name.
Audio-only and Video-only (Prerecorded)
Level APrerecorded audio needs a transcript. Prerecorded video with no audio needs either a transcript or an audio description of what happens.
Where it fails: Podcast episodes and silent explainer videos published with no transcript at all.
Captions (Prerecorded)
Level APrerecorded video with sound needs accurate captions, including speaker identification and meaningful non-speech audio.
Where it fails: Relying on auto-generated captions without correcting them — names, jargon, and numbers are exactly what auto-captioning gets wrong.
Audio Description or Media Alternative (Prerecorded)
Level AVisual information in a video that isn't conveyed by the audio needs either an audio description or a full text alternative.
Where it fails: A demo video where the narrator says "click here and you'll see this" — with no description of what "this" is.
Captions (Live)
Level AALive audio content in synchronized media needs real-time captions.
Where it fails: Streamed council meetings, webinars, and town halls published live with no CART or live captioning arranged.
Audio Description (Prerecorded)
Level AAAt Level AA, prerecorded video needs an actual audio description track for visual content the narration doesn't cover — a text alternative alone no longer satisfies it.
Where it fails: Assuming captions cover this. Captions serve deaf users; audio description serves blind users. They're different obligations.
Info and Relationships
Level AStructure that's visually obvious — headings, lists, tables, labels, groups — has to exist in the markup too, not just in the styling.
Where it fails: The single most-cited criterion in audits. Bold text standing in for headings, layout tables, and form labels that are just text sitting next to an input.
Meaningful Sequence
Level AWhen reading order matters, the order in the code has to match the order a sighted user perceives.
Where it fails: CSS grid or flexbox reordering that makes the visual sequence differ from the DOM, so screen reader users hear content in a nonsensical order.
Sensory Characteristics
Level AInstructions can't rely only on shape, size, position, or sound to identify something.
Where it fails: "Click the round button on the right" or "see the box below" — useless to anyone not perceiving the layout visually.
Orientation
Level AA New in 2.1Content can't be locked to portrait or landscape unless a specific orientation is essential.
Where it fails: Mobile views that force rotation, which blocks users whose device is mounted to a wheelchair in a fixed orientation.
Identify Input Purpose
Level AA New in 2.1Fields collecting information about the user — name, email, address, phone — need programmatic autocomplete values so browsers and assistive tools can fill or relabel them.
Where it fails: Custom-built forms with no autocomplete attributes, forcing manual entry for users who depend on autofill.
Use of Color
Level AColor can't be the only way you convey information, indicate an action, or mark an error.
Where it fails: Required fields shown only in red, chart series distinguished only by color, and links inside text that are colored but not underlined.
Audio Control
Level AAudio that plays automatically for more than three seconds needs a way to pause, stop, or control its volume independently.
Where it fails: Background video with sound that starts on load, drowning out a screen reader the user cannot then hear to find the pause control.
Contrast (Minimum)
Level AANormal text needs a contrast ratio of at least 4.5:1 against its background; large text (18pt, or 14pt bold) needs 3:1.
Where it fails: Light gray body text, white text on brand colors that were chosen for the logo rather than for reading, and text over photographic backgrounds.
Resize Text
Level AAText has to scale to 200% without losing content or breaking functionality.
Where it fails: Fixed-height containers that clip text when it grows, and buttons whose labels overflow and become unreadable.
Images of Text
Level AAUse real text rather than pictures of text, except for logos and cases where a specific presentation is essential.
Where it fails: Campaign graphics, infographics, and price tables published as flat images — unreadable at zoom and invisible to search.
Reflow
Level AA New in 2.1Content has to reflow into a single column at 320 CSS pixels wide (equivalent to 400% zoom) without requiring scrolling in two directions.
Where it fails: Wide data tables and fixed-width layouts that force horizontal scrolling for low-vision users working at high zoom.
Non-text Contrast
Level AA New in 2.1Interface components and meaningful graphics need at least 3:1 contrast against what's adjacent to them.
Where it fails: Input borders and toggle states rendered in pale gray, and focus indicators that don't contrast with the background they sit on.
Text Spacing
Level AA New in 2.1No content or function may be lost when users override line height, paragraph spacing, letter spacing, and word spacing.
Where it fails: Fixed-height buttons and cards where increased line spacing pushes text out of its container or behind other elements.
Content on Hover or Focus
Level AA New in 2.1Content that appears on hover or focus must be dismissible, hoverable, and persistent until dismissed.
Where it fails: Tooltips and dropdown menus that vanish the moment the pointer moves toward them, so a magnifier user can never read them.
Operable
20 criteria at Level A and AA.
Keyboard
Level AEverything that can be done with a mouse must be doable with a keyboard alone.
Where it fails: Custom controls built from div and span elements with click handlers and no keyboard event handling, tab index, or role.
No Keyboard Trap
Level AIf keyboard focus can move into a component, it has to be able to move out again using the keyboard.
Where it fails: Modal dialogs and embedded media players that swallow focus, leaving keyboard users stuck until they reload the page.
Character Key Shortcuts
Level A New in 2.1Single-character keyboard shortcuts must be able to be turned off, remapped, or limited to when a component has focus.
Where it fails: Application shortcuts that fire while a speech-input user is dictating into a field, triggering unintended actions.
Timing Adjustable
Level ATime limits need to be turned off, adjusted, or extendable — with a warning and at least 20 seconds to respond.
Where it fails: Session timeouts on banking, benefits, and patient portals that expire silently and discard everything the user entered.
Pause, Stop, Hide
Level AMoving, blinking, scrolling, or auto-updating content lasting more than five seconds needs a user control to pause or stop it.
Where it fails: Homepage hero carousels that rotate automatically with no pause button — a focus and cognitive barrier as well as a WCAG failure.
Three Flashes or Below Threshold
Level ANothing may flash more than three times per second unless it stays below defined flash thresholds.
Where it fails: Rare, but severe when present — animated advertising and video content that can trigger photosensitive seizures.
Bypass Blocks
Level AUsers need a way to skip past navigation and other content repeated on every page.
Where it fails: No skip link and no landmark regions, so a keyboard user tabs through 40 navigation links on every single page.
Page Titled
Level AEvery page needs a title that describes its topic or purpose.
Where it fails: Every page in a web application titled with the product name alone, giving no orientation when tabbing between windows.
Focus Order
Level AFocus has to move in an order that preserves meaning and operability.
Where it fails: Positive tabindex values, and modals that open without moving focus into them — so the next Tab continues behind the overlay.
Link Purpose (In Context)
Level AThe purpose of each link has to be determinable from its text, or from its text together with its immediate context.
Where it fails: A page of twelve identical "Read more" links, which a screen reader user encounters as a list of twelve identical destinations.
Multiple Ways
Level AAThere needs to be more than one way to find a page — search, a sitemap, or a navigation index — unless the page is a step in a process.
Where it fails: Deep content reachable only by navigating a multi-level menu, with no search and no sitemap.
Headings and Labels
Level AAHeadings and labels must actually describe the topic or purpose of what they introduce.
Where it fails: Generic headings like "More information" and form labels like "Field 3" that technically exist but convey nothing.
Focus Visible
Level AAKeyboard focus has to be visible. Always.
Where it fails: A stylesheet containing `outline: none` with nothing replacing it — the most common and most consequential single line in web accessibility.
Focus Not Obscured (Minimum)
Level AA New in 2.2When an element receives keyboard focus, it can't be entirely hidden behind other content.
Where it fails: Sticky headers, cookie banners, and chat widgets that cover the focused element, so keyboard users can't see where they are.
Pointer Gestures
Level A New in 2.1Any multipoint or path-based gesture needs a single-pointer alternative.
Where it fails: Maps, sliders, and image galleries operable only by pinch or swipe, with no buttons doing the same job.
Pointer Cancellation
Level A New in 2.1Actions should complete on release, not on press, so a user who lands on the wrong control can move off and cancel.
Where it fails: Controls wired to mousedown that fire irreversibly the instant they're touched.
Label in Name
Level A New in 2.1A control's accessible name has to contain the text that's visible on it, so speech-input users can say what they see.
Where it fails: A button reading "Submit application" with an aria-label of "Send" — the voice command matching the visible text does nothing.
Motion Actuation
Level A New in 2.1Functions triggered by device motion or gestures need a conventional control alternative, and motion actuation must be able to be disabled.
Where it fails: Shake-to-undo and tilt-to-navigate with no button equivalent, which excludes users with tremor or a mounted device.
Dragging Movements
Level AA New in 2.2Anything operated by dragging needs a single-pointer alternative that doesn't require dragging.
Where it fails: Kanban boards, reorderable lists, and range sliders with drag as the only way to change a value.
Target Size (Minimum)
Level AA New in 2.2Interactive targets need to be at least 24 by 24 CSS pixels, or have enough spacing around them to reach that effective size.
Where it fails: Tightly packed icon rows, small close buttons, and pagination links crammed together on mobile.
Understandable
13 criteria at Level A and AA.
Language of Page
Level AThe default human language of each page has to be declared in the markup.
Where it fails: A missing or wrong lang attribute, which makes a screen reader pronounce the entire page with the wrong voice and rules.
Language of Parts
Level AAPassages in a different language than the page default need to be marked as such.
Where it fails: Spanish-language service information embedded in an English page with no lang attribute on the section.
On Focus
Level AMoving focus to a component must not by itself cause a change of context.
Where it fails: Focusing a select element that immediately navigates to a new page before the user has chosen anything.
On Input
Level AChanging a setting must not automatically change context unless the user was warned beforehand.
Where it fails: Forms that auto-submit when the last field is filled, or dropdowns that navigate on selection with no Go button.
Consistent Navigation
Level AANavigation repeated across pages has to stay in the same relative order.
Where it fails: Department microsites that reorder the global navigation, so the pattern a user learned no longer holds.
Consistent Identification
Level AAComponents with the same function have to be identified consistently across the site.
Where it fails: The same action labeled "Search," "Find," and "Look up" in three places, or the same icon meaning different things.
Consistent Help
Level A New in 2.2If help is available — contact details, a chat option, a help link — it has to appear in the same relative place on every page that offers it.
Where it fails: Support links that move between the header, the footer, and a floating widget depending on which section you're in.
Error Identification
Level AWhen an input error is detected, the item in error must be identified and described in text.
Where it fails: Red outlines with no message, and error summaries that appear visually but are never announced to assistive technology.
Labels or Instructions
Level AInputs need labels or instructions — including format requirements the user can't guess.
Where it fails: Placeholder text used as the only label, which disappears the moment typing starts and often fails contrast anyway.
Error Suggestion
Level AAIf you know how to fix the error, say so — unless doing that would compromise security.
Where it fails: "Invalid input" with no indication of what format was expected or which of nine fields is the problem.
Error Prevention (Legal, Financial, Data)
Level AASubmissions with legal or financial consequence must be reversible, checked, or confirmable before they're final.
Where it fails: Payment, benefits application, and permit submissions that commit instantly with no review step.
Redundant Entry
Level A New in 2.2Information the user already entered in the same process has to be auto-populated or available to select — not retyped.
Where it fails: Multi-step applications that ask for the same address three times across four steps.
Accessible Authentication (Minimum)
Level AA New in 2.2Logging in can't require a cognitive function test — remembering, transcribing, or solving a puzzle — unless an alternative exists or the field supports password managers.
Where it fails: Blocking paste in password fields, and image-recognition CAPTCHA with no non-cognitive alternative.
Robust
2 criteria at Level A and AA.
Name, Role, Value
Level AEvery interactive component must expose its name, its role, and its current state to assistive technology.
Where it fails: Custom toggles, tabs, and comboboxes that look right and announce as nothing — or as "clickable" with no state.
Status Messages
Level AA New in 2.1Status updates that don't take focus — results counts, cart confirmations, validation success — must still be announced.
Where it fails: "Added to cart" and "12 results found" rendered visually with no live region, so screen reader users never learn anything happened.
Roughly two-thirds of these can't be checked by a tool.
Scanners evaluate a minority of these criteria reliably — contrast ratios, missing attributes, some structural errors. Whether alt text is meaningful, whether focus order preserves meaning, whether an error message actually tells someone how to fix the problem: those require a person, a keyboard, and a screen reader.
That's not an argument against automated testing. It's an argument against treating a clean scan as a conformance claim.
How We Audit