WCAG 2.2, decoded

WCAG in plain language

The official guidelines are dense. Here's every success criterion explained simply: what it means, who it helps, how to meet it, and where sites get it wrong.

87 criteria
Perceivable
1.1.1Non-text ContentLevel A

Every image, icon, and image button needs a text alternative that says what it is or does, so people who can't see it still get the message.

1.2.1Audio-only and Video-only (Prerecorded)Level A

Audio with no video needs a transcript, and silent video needs a text or audio description of what's shown.

1.2.2Captions (Prerecorded)Level A

Videos with sound need captions, so people who are deaf or hard of hearing can follow along.

1.2.3Audio Description or Media Alternative (Prerecorded)Level A

For video, blind viewers need the important visual details covered, either by an audio description or a full text alternative.

1.2.4Captions (Live)Level AA

Live video with audio (a launch stream, a live shopping event) needs real-time captions too.

1.2.5Audio Description (Prerecorded)Level AA

At AA, prerecorded video specifically needs audio description of the important visuals, a transcript alone isn't enough.

1.2.6Sign Language (Prerecorded)Level AAA

Provide a sign-language interpretation for prerecorded video with audio, for people who read sign language rather than captions.

1.2.7Extended Audio Description (Prerecorded)Level AAA

When a video's normal pauses are too short to describe what's on screen, pause the video to fit in a fuller description.

1.2.8Media Alternative (Prerecorded)Level AAA

Provide a full text version of prerecorded video, so it can be read instead of watched or heard.

1.2.9Audio-only (Live)Level AAA

For live audio-only broadcasts, provide a live text version so deaf and hard-of-hearing people can follow along.

1.3.1Info and RelationshipsLevel A

The structure you show with visual design, like headings, lists, labels, and tables, must also exist in the code, so assistive tech understands it too.

1.3.2Meaningful SequenceLevel A

The reading order in the code must make sense, because screen readers and reflowed layouts follow the code order, not the visual position.

1.3.3Sensory CharacteristicsLevel A

Don't give instructions that rely only on shape, size, position, or sound, like 'click the round button on the right'.

1.3.4OrientationLevel AAnew in 2.1

Don't lock your store to portrait or landscape only, it must work whichever way the device is held.

1.3.5Identify Input PurposeLevel AAnew in 2.1

Fields that collect personal info (name, email, address) should use the right autocomplete value, so browsers can autofill them.

1.3.6Identify PurposeLevel AAAnew in 2.1

Mark up the purpose of regions, icons, and controls in code, so tools can adapt them (swap icons, add symbols, simplify).

1.4.1Use of ColorLevel A

Color can't be the only way you signal something, because not everyone sees color the same way, or at all.

1.4.2Audio ControlLevel A

If sound plays automatically for more than 3 seconds, give people an easy way to pause, stop, or mute it.

1.4.3Contrast (Minimum)Level AA

Text has to stand out enough from its background to be readable: at least 4.5:1 contrast for normal text, 3:1 for large text.

1.4.4Resize TextLevel AA

People must be able to zoom text up to 200% and still use everything, and nothing should get cut off or overlap.

1.4.5Images of TextLevel AA

Use real text, not pictures of text, so it stays sharp, resizable, and readable by screen readers (logos excepted).

1.4.6Contrast (Enhanced)Level AAA

The stricter version of the contrast rule: text needs a 7:1 contrast ratio against its background, not just 4.5:1.

1.4.7Low or No Background AudioLevel AAA

In audio with speech, keep background music and noise low (or removable) so the words stay clear.

1.4.8Visual PresentationLevel AAA

Give blocks of text reader-friendly formatting: narrow columns, adjustable colours, generous line spacing, no forced justification.

1.4.9Images of Text (No Exception)Level AAA

The strict version: don't use pictures of text at all, except where the exact look is essential (like a logo).

1.4.10ReflowLevel AAnew in 2.1

Content has to reflow into a single column on a narrow screen (or high zoom), with no two-directional scrolling to read.

1.4.11Non-text ContrastLevel AAnew in 2.1

Buttons, form borders, icons, and focus outlines need enough contrast too, at least 3:1, not just your text.

1.4.12Text SpacingLevel AAnew in 2.1

If someone increases line height or letter/word spacing to read more easily, your content must not break or get cut off.

1.4.13Content on Hover or FocusLevel AAnew in 2.1

Tooltips and pop-ups that appear on hover or focus must be dismissable, stay put while you move onto them, and not disappear on their own.

Operable
2.1.1KeyboardLevel A

Everything on the page must work with a keyboard alone, not just a mouse: menus, sliders, add-to-cart, modals, all of it.

2.1.2No Keyboard TrapLevel A

If keyboard focus can move into something, it must be able to move back out, so no one gets stuck in a widget or popup.

2.1.3Keyboard (No Exception)Level AAA

The strict version: everything on the page must work with a keyboard, with no exceptions at all.

2.1.4Character Key ShortcutsLevel Anew in 2.1

If a single letter key triggers an action, let people turn it off or remap it, so it doesn't fire by accident.

2.2.1Timing AdjustableLevel A

If a page has a time limit, let people turn it off, adjust it, or extend it, because not everyone works at the same speed.

2.2.2Pause, Stop, HideLevel A

Moving, blinking, or auto-updating content that runs more than 5 seconds needs a way to pause, stop, or hide it.

2.2.3No TimingLevel AAA

The strict version: don't put any time limits on using the page, except for real-time events like live auctions.

2.2.4InterruptionsLevel AAA

Let people postpone or turn off interruptions like popups and auto-refreshes, except for genuine emergencies.

2.2.5Re-authenticatingLevel AAA

If a session expires, let people log back in and continue without losing the data they'd already entered.

2.2.6TimeoutsLevel AAAnew in 2.1

Warn people how long they can be inactive before a timeout wipes their data, unless the data is kept for at least 20 hours.

2.3.1Three Flashes or Below ThresholdLevel A

Nothing should flash more than three times per second, because rapid flashing can trigger seizures.

2.3.2Three FlashesLevel AAA

The strict version: nothing on the page may flash more than three times a second, full stop, regardless of size or brightness.

2.3.3Animation from InteractionsLevel AAAnew in 2.1

Let people turn off non-essential motion animation that fires when they scroll or interact.

2.4.1Bypass BlocksLevel A

Give people a way to skip past the stuff repeated on every page (like the nav) and jump straight to the main content.

2.4.2Page TitledLevel A

Every page needs a clear, unique title that says what the page is, it's the first thing a screen reader announces.

2.4.3Focus OrderLevel A

As you Tab through the page, focus should move in an order that makes sense, matching the visual and logical flow.

2.4.4Link Purpose (In Context)Level A

Link text should make clear where the link goes, so 'View cart' beats a row of identical 'click here' links.

2.4.5Multiple WaysLevel AA

Give people more than one way to find things, like a menu plus a search box or a sitemap.

2.4.6Headings and LabelsLevel AA

Headings and form labels should actually describe what they're about, not be vague or generic.

2.4.7Focus VisibleLevel AA

The element you've Tabbed to must show a clear focus outline, so keyboard users can always see where they are.

2.4.8LocationLevel AAA

Help people know where they are within your site, usually with breadcrumbs and a clear sitemap.

2.4.9Link Purpose (Link Only)Level AAA

The strict version: a link's own text should say where it goes, without needing the surrounding sentence for context.

2.4.10Section HeadingsLevel AAA

Break up content with real headings that label each section, so people can scan and jump around.

2.4.11Focus Not Obscured (Minimum)Level AAnew in 2.2

When you Tab to something, a sticky header, footer, or cookie bar must not completely hide it from view.

2.4.12Focus Not Obscured (Enhanced)Level AAAnew in 2.2

The strict version: when you tab to something, no part of it may be hidden by sticky headers, banners, or chat widgets.

2.4.13Focus AppearanceLevel AAAnew in 2.2

The keyboard focus outline must be big enough and high-contrast enough to actually notice.

2.5.1Pointer GesturesLevel Anew in 2.1

Anything done with a complex gesture (pinch, swipe-along-a-path) must also work with a simple tap or click.

2.5.2Pointer CancellationLevel Anew in 2.1

Actions should fire when you lift your finger, not the moment you touch down, so you can slide off to cancel a mistap.

2.5.3Label in NameLevel Anew in 2.1

A control's coded name must include its visible text, so voice-control users can say what they see.

2.5.4Motion ActuationLevel Anew in 2.1

If shaking or tilting the device does something, there must also be a normal button, and a way to turn motion control off.

2.5.5Target Size (Enhanced)Level AAAnew in 2.1

The strict version: tap targets should be at least 44 by 44 pixels, roomier than the AA minimum.

2.5.6Concurrent Input MechanismsLevel AAAnew in 2.1

Don't lock people into one way of interacting; let them switch freely between touch, mouse, keyboard, and other inputs.

2.5.7Dragging MovementsLevel AAnew in 2.2

Anything you do by dragging must also work with a simple tap or click, because not everyone can drag.

2.5.8Target Size (Minimum)Level AAnew in 2.2

Tap targets like buttons and links should be at least 24 by 24 pixels, or have enough space around them, so they're easy to hit.

Understandable
3.1.1Language of PageLevel A

Tell the browser what language the page is in, with one small lang attribute, so screen readers pronounce it correctly.

3.1.2Language of PartsLevel AA

Mark any phrase that's in a different language, so a screen reader switches to the right pronunciation for it.

3.1.3Unusual WordsLevel AAA

Explain jargon, idioms, and unusual words, with a definition or a glossary link, so everyone can follow.

3.1.4AbbreviationsLevel AAA

Spell out or explain abbreviations and acronyms, so people aren't left guessing what the letters mean.

3.1.5Reading LevelLevel AAA

Where text is harder to read than lower-secondary level, provide a simpler version or supporting aids.

3.1.6PronunciationLevel AAA

Where a word's meaning depends on how it's pronounced, provide the pronunciation so it isn't ambiguous.

3.2.1On FocusLevel A

Simply moving to an element must not trigger a surprise, like a popup, a jump, or a page change.

3.2.2On InputLevel A

Changing a form field's value must not automatically do something surprising, unless you've warned people first.

3.2.3Consistent NavigationLevel AA

Keep your navigation in the same order on every page, so people don't have to relearn where things are.

3.2.4Consistent IdentificationLevel AA

Call the same thing by the same name everywhere, don't label the same feature 'Search' on one page and 'Find' on another.

3.2.5Change on RequestLevel AAA

The strict version: big changes (new pages, popups, redirects) happen only when the user asks, never automatically.

3.2.6Consistent HelpLevel Anew in 2.2

If you offer help (a contact link, phone number, or chat), put it in the same place on every page that has it.

3.3.1Error IdentificationLevel A

When a form field is wrong, say so in clear text, and point to the exact field, not just a red border.

3.3.2Labels or InstructionsLevel A

Every form field needs a clear, persistent label (and any needed instructions), not just placeholder text that vanishes.

3.3.3Error SuggestionLevel AA

When you can tell what someone meant, suggest the fix, not just 'invalid', but 'the date should be MM/YYYY'.

3.3.4Error Prevention (Legal, Financial, Data)Level AA

For purchases, legal commitments, or data changes, let people review, correct, or undo before it's final.

3.3.5HelpLevel AAA

Offer context-sensitive help where people fill in forms, so they aren't stuck on a confusing field.

3.3.6Error Prevention (All)Level AAA

The strict version: any form that submits data must be reversible, checked, or confirmed, not just legal or financial ones.

3.3.7Redundant EntryLevel Anew in 2.2

Don't make people type the same information twice in one process, auto-fill it or let them pick it instead.

3.3.8Accessible Authentication (Minimum)Level AAnew in 2.2

Logging in must not require a memory or puzzle test, let people paste passwords and use password managers.

3.3.9Accessible Authentication (Enhanced)Level AAAnew in 2.2

The strict version: logging in must never rely on a memory or puzzle test, including recognising objects or your own images.

Robust

Prefer a hands-on checklist?

Work through the practical checklist to see where your own store stands against these criteria.

Open the checklist