All 55 success criteria you need for WCAG 2.2 Level AA (31 at A, 24 at AA), each in plain language with a quick way to test it. Tick them off as you go: your progress stays in this browser, and nothing is sent anywhere.
| Criterion | What it means | How to check | |
|---|---|---|---|
| 1.1.1 Non-text Content A | Every meaningful image, icon and control has a text alternative; decorative ones are hidden from screen readers. | Check alt on each img (alt="" for decoration) and accessible names on icon buttons. | |
| 1.2.1 Audio-only and Video-only (Prerecorded) A | Recorded audio has a transcript; silent video has a transcript or audio track. | Find each media file and its alternative. | |
| 1.2.2 Captions (Prerecorded) A | Recorded video with sound has accurate captions. | Play with captions on; check they match speech and name speakers. | |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) A | Important visual-only information in video is described, or a full text alternative exists. | Watch without looking: is anything important missed? | |
| 1.2.4 Captions (Live) AA | Live video with sound has live captions. | Check your streaming setup produces captions. | |
| 1.2.5 Audio Description (Prerecorded) AA | Recorded video has audio description of important visual content. | Look for a described version or description track. | |
| 1.3.1 Info and Relationships A | Headings, lists, tables and form labels are marked up as such, not just styled to look like it. | Inspect the HTML or use a screen reader's headings and form lists. | |
| 1.3.2 Meaningful Sequence A | The reading order in the code makes sense. | Turn CSS off, or read the page with a screen reader. | |
| 1.3.3 Sensory Characteristics A | Instructions don't rely only on shape, position, color or sound ("click the round button on the right"). | Read the instructions and help text. | |
| 1.3.4 Orientation AA | Works in both portrait and landscape, unless one is essential. | Rotate a phone or tablet. | |
| 1.3.5 Identify Input Purpose AA | Fields about the user (name, email, address) have the right autocomplete attribute. | Inspect personal-data inputs for autocomplete. | |
| 1.4.1 Use of Color A | Color is never the only way information is shown: errors, required fields, links in text, chart series. | View in grayscale or with the color blindness simulator. | |
| 1.4.2 Audio Control A | Audio that plays by itself for more than 3 seconds can be paused or muted. | Load pages with sound. | |
| 1.4.3 Contrast (Minimum) AA | Text contrast is at least 4.5:1, or 3:1 for large text. | Check each text color pair. The rules, checker. | |
| 1.4.4 Resize Text AA | Text can be zoomed to 200% without losing content or function. | Zoom the browser to 200%. | |
| 1.4.5 Images of Text AA | Real text is used instead of pictures of text, except logos. | Look for text inside images. | |
| 1.4.10 Reflow AA | At 320 CSS pixels wide (400% zoom on a 1280px screen), content fits without scrolling sideways. | Zoom to 400% or set the window 320px wide. | |
| 1.4.11 Non-text Contrast AA | Borders of inputs and buttons, focus indicators, icons and chart parts have at least 3:1 contrast. | Check component edges against their background. | |
| 1.4.12 Text Spacing AA | Nothing is cut off when users increase line, letter, word and paragraph spacing. | Apply a text-spacing bookmarklet and look for clipping. | |
| 1.4.13 Content on Hover or Focus AA | Tooltips and popovers can be dismissed with Esc, can be hovered themselves, and stay until dismissed. | Hover and focus every tooltip. | |
| 2.1.1 Keyboard A | Everything works with a keyboard alone. | Unplug the mouse; use Tab, Shift+Tab, Enter, Space, arrows. | |
| 2.1.2 No Keyboard Trap A | Keyboard focus never gets stuck. | Tab through every widget, modal and embed. | |
| 2.1.4 Character Key Shortcuts A | Single-key shortcuts can be turned off or remapped, or only work when a component has focus. | List any single-letter shortcuts. | |
| 2.2.1 Timing Adjustable A | Time limits can be turned off, adjusted or extended. | Look for session timeouts and timed steps. | |
| 2.2.2 Pause, Stop, Hide A | Moving, blinking or auto-updating content can be paused. | Find carousels, animations, tickers. | |
| 2.3.1 Three Flashes or Below Threshold A | Nothing flashes more than three times a second. | Review video and animation. | |
| 2.4.1 Bypass Blocks A | A skip link or landmarks let keyboard users jump past repeated navigation. | Press Tab on page load; look for "Skip to content". | |
| 2.4.2 Page Titled A | Each page has a title describing it. | Read the browser tab titles. | |
| 2.4.3 Focus Order A | Tab order follows a logical order. | Tab through the page. | |
| 2.4.4 Link Purpose (In Context) A | Each link's purpose is clear from its text or sentence ("read more" alone fails). | List links with a screen reader. | |
| 2.4.5 Multiple Ways AA | There's more than one way to find pages: navigation plus search or a sitemap. | Check the site's navigation options. | |
| 2.4.6 Headings and Labels AA | Headings and labels describe their content. | Read the heading outline. | |
| 2.4.7 Focus Visible AA | You can always see which element has keyboard focus. | Tab through; look for outline: none without a replacement. | |
| 2.4.11 Focus Not Obscured (Minimum) AA | The focused element isn't completely hidden by sticky headers, cookie banners or chat widgets. | Tab through with every sticky element showing. New in 2.2. | |
| 2.5.1 Pointer Gestures A | Anything done with multi-finger or path gestures can be done with a single tap or click. | Check maps, sliders, carousels. | |
| 2.5.2 Pointer Cancellation A | Actions fire on release, not press, so users can slide off to cancel. | Press a button, drag away, release. | |
| 2.5.3 Label in Name A | A control's accessible name contains its visible label text. | Compare visible labels with names in the accessibility tree. | |
| 2.5.4 Motion Actuation A | Shake or tilt features also have a normal control and can be turned off. | Look for motion-triggered features. | |
| 2.5.7 Dragging Movements AA | Anything done by dragging can also be done with single clicks. | Try sortable lists, sliders, drag-to-upload. New in 2.2. | |
| 2.5.8 Target Size (Minimum) AA | Click targets are at least 24×24 CSS pixels, or have enough space around them. | Measure small icons and links. New in 2.2. | |
| 3.1.1 Language of Page A | The page's main language is set in <html lang>. | Inspect the html element. | |
| 3.1.2 Language of Parts AA | Passages in another language are marked with lang. | Find quotes or phrases in other languages. | |
| 3.2.1 On Focus A | Focusing an element doesn't change the page or context by itself. | Tab through; nothing should submit or navigate. | |
| 3.2.2 On Input A | Changing a setting doesn't unexpectedly change context (no auto-submitting selects). | Change every select, checkbox and field. | |
| 3.2.3 Consistent Navigation AA | Repeated navigation appears in the same order on every page. | Compare a few pages. | |
| 3.2.4 Consistent Identification AA | The same function has the same name everywhere. | Compare icon and button labels across pages. | |
| 3.2.6 Consistent Help A | Help (contact, chat, FAQ) appears in the same place on every page that has it. | Compare pages. New in 2.2. | |
| 3.3.1 Error Identification A | Form errors are described in text and point to the field. | Submit forms with mistakes. | |
| 3.3.2 Labels or Instructions A | Fields have visible labels, and required formats are explained. | Check every form field. | |
| 3.3.3 Error Suggestion AA | Errors suggest how to fix them when possible. | Read each error message. | |
| 3.3.4 Error Prevention (Legal, Financial, Data) AA | Legal, payment and data-deleting submissions can be reviewed, corrected or undone. | Walk through checkout and account deletion. | |
| 3.3.7 Redundant Entry A | Users aren't asked to type the same information twice in one process. | Walk through multi-step forms. New in 2.2. | |
| 3.3.8 Accessible Authentication (Minimum) AA | Logging in doesn't require a memory or puzzle test; pasting passwords and password managers work. | Try pasting into the password field; check CAPTCHAs. New in 2.2. | |
| 4.1.2 Name, Role, Value A | Custom controls expose a name, role and state to assistive technology. | Inspect custom widgets in the accessibility tree. | |
| 4.1.3 Status Messages AA | Status updates ("Saved", "3 results") are announced without moving focus. | Trigger messages with a screen reader on; check for role=status or aria-live. |
Test a handful of representative pages rather than every page: the home page, a content page, a form, checkout or sign-up, and anything unusual like a map or a data table. Automated tools find a minority of issues quickly; everything with "Tab", "screen reader" or "read" in its test column needs a person. A step-by-step audit process is here, and how to write the result up as an ACR/VPAT is here.
Handles the contrast rows of this list, 1.4.3 and 1.4.11, across whole pages: it checks every visible text element, composites transparent layers and gradients, suggests the nearest passing color, and exports the findings as a report with your logo. Checking a pair and five full-page scans a month are free.
See ContrastForgeMore on this topic: Accessible color palette generator