Checklist
WCAG 2.2 checklist for WordPress
WCAG 2.2 Levels A and AA contain 55 success criteria. This checklist explains each one in plain language, shows how to check it on a WordPress site, and marks which ones an automated checker such as Lumtera can test for you — and which always need a person.
Updated September 28, 2026. General information, not legal advice.
How to use this checklist
Work through it one template at a time — home page, a post, a page, an archive, search, the 404 page and, for stores, product, cart and checkout. Most accessibility problems repeat across every page that shares a template, so fixing the template fixes them everywhere.
Criteria marked "Partly automated" have at least one Lumtera check that finds common failures. Treat these as a head start, not a pass: a criterion can still fail in ways no tool can see. Criteria marked "Manual" need a person with a keyboard, a screen reader or both.
The checklist
37 of the 55 criteria have at least one check in the free plugin that finds common failures automatically, and 7 more have a Lumtera Pro test. A check that covers a criterion looks at it; it does not prove the page meets it. The rest need a person.
1. Perceivable
-
Images, icons and image buttons need a text alternative that serves the same purpose; decorative images should be hidden from screen readers.
How to check: In the block editor, check every Image block has Alternative text or is marked decorative. With a screen reader, listen to linked images and icon buttons.
Lumtera checks: Image has no alternative text, Image has empty alt text, Alt text looks like a file name, Alt text repeats "image of", Alt text is very long, Image map area has no text, Image button has no text, Alt text is a placeholder, Alt text repeats nearby text
-
Audio-only content needs a transcript; video-only content needs a transcript or an audio track describing it.
How to check: For each podcast or silent video, look for a transcript on the page or linked next to it.
Lumtera checks: Check audio has a transcript
-
Pre-recorded video with speech needs synchronized captions.
How to check: Play each video with the sound off. Speech should be captioned accurately — check YouTube or Vimeo captions, not just auto-captions.
Lumtera checks: Video has no captions track, Check captions on embedded video
-
Pre-recorded video needs audio description or a full text alternative for information shown only visually.
How to check: Watch with your eyes closed. If you miss important information, add a description or a text version.
-
Live video with audio needs captions.
How to check: For webinars and live streams, confirm live captioning is switched on in the streaming service.
-
Pre-recorded video needs audio description of important visual information.
How to check: Check that key visuals are narrated, or provide an audio-described version.
-
Structure shown visually — headings, lists, tables, labels — must also exist in the markup.
How to check: Use the block editor's List View outline and real Heading, List and Table blocks. Check form fields have labels a screen reader announces.
Lumtera checks: Heading is empty, Heading level is skipped, Content uses an H1 heading, Bold text may be a heading, Heading is very long, Form field has no label, Form field has more than one label, Options are not grouped with their question, Table has no header cells, Table header cell is empty, Table may be used for layout, Table has empty rows, Text is formatted as a list by hand, List item is outside a list, Empty paragraphs used for spacing, Emoji used as bullets or icons, Underlined text looks like a link, Label points to a missing element, Page headings are missing an H1 or skip levels, Page landmarks are missing or share a name
-
When order matters, the reading order in the code must match the visual order.
How to check: Turn off CSS (or use a screen reader) and read the page top to bottom; columns and layouts should still make sense.
Lumtera checks: Items are shown in a different order from the page's HTML, Tab order jumps back up the page
-
Instructions must not rely only on shape, size, position or sound.
How to check: Search your content for phrases like "click the round button" or "see the box on the right" and add a text reference.
Lumtera checks: Instruction may rely on shape, position, color or sound
-
Content must work in both portrait and landscape.
How to check: Rotate a phone; nothing should be locked to one orientation.
-
Fields asking for personal information should say what they are for (autocomplete).
How to check: Check contact and checkout forms use autocomplete attributes such as name, email and street-address.
Lumtera checks: Personal-data field has no autocomplete, Autocomplete value is not valid
-
Color must not be the only way information is shown.
How to check: Look at links in body text, form errors and charts. Each needs an underline, icon or text, not just a color.
Lumtera checks: Instruction may rely on shape, position, color or sound, Links look the same as the text around them, Errors are shown by colour alone Pro
-
Audio that plays automatically for more than three seconds needs a way to pause or stop it.
How to check: Load each page with sound on; nothing should start playing by itself.
Lumtera checks: Media plays sound automatically
-
Text needs a contrast ratio of at least 4.5:1 (3:1 for large text).
How to check: Check text colors, especially light grey text, buttons and text over images, with a contrast checker.
Lumtera checks: Text color has low contrast, Text has low contrast on the live page, Text is hard to read on hover, focus or press Pro
-
Text must resize up to 200% without losing content or function.
How to check: Zoom the browser to 200%. Menus, buttons and forms should still work and nothing should be cut off.
Lumtera checks: Text is very small, Zooming is disabled
-
Use real text instead of images of text, except for logos.
How to check: Look for banners, quotes or buttons saved as images. Replace them with styled text.
-
Content must reflow to a 320px-wide screen without scrolling in two directions.
How to check: Zoom to 400% or view at 320px wide. You should only need to scroll vertically.
Lumtera checks: Page scrolls sideways at this width
-
Buttons, form borders, icons and chart elements need 3:1 contrast against their background.
How to check: Check input borders, icon buttons and focus outlines with a contrast checker.
Lumtera checks: Controls or icons are hard to see, Focus indicator has low contrast, Controls fade on hover, focus or press Pro
-
Content must survive increased line, word and letter spacing.
How to check: Apply a text-spacing bookmarklet; text should not overlap or get cut off.
Lumtera checks: Text is cut off or overlaps when text spacing is increased
-
Tooltips and pop-ups that appear on hover or focus must be dismissable, hoverable and persistent.
How to check: Hover and Tab to menus and tooltips; press Escape to close them and move the mouse onto them.
Lumtera checks: Pop-up content on focus does not close with Escape
2. Operable
-
Everything must work with a keyboard alone.
How to check: Put the mouse away. Using Tab, Shift+Tab, Enter, Space and arrow keys, use the menu, sliders, forms and checkout.
Lumtera checks: Dragging may be the only way to use this, Menu or disclosure toggle does not work as announced, Submenu opens on hover only, Tabs do not work as tabs, Carousel to test with the keyboard
-
Keyboard focus must never get stuck.
How to check: Tab through embeds, pop-ups and modals. You should always be able to Tab or Escape out.
Lumtera checks: Possible keyboard trap
-
Single-key shortcuts must be switchable off or remappable.
How to check: Check plugins that add keyboard shortcuts (chat widgets, galleries) for a way to turn them off.
-
Time limits must be adjustable, extendable or switchable off.
How to check: Check session time-outs, timed offers and quizzes warn people and let them extend the time.
Lumtera checks: Page refreshes or redirects on a timer
-
Moving, blinking or auto-updating content needs a pause, stop or hide control.
How to check: Look for sliders, animations, tickers and videos that move by themselves for more than five seconds.
Lumtera checks: Moving video cannot be paused, Scrolling or blinking text, Check that the slider can be paused, Animated image may need a way to pause, Carousel to test with the keyboard, Carousel moves on its own Pro
-
Nothing may flash more than three times per second.
How to check: Review videos, GIFs and animations for rapid flashing.
Lumtera checks: Animated image may need a way to pause
-
Provide a way to skip repeated blocks such as the header and menu.
How to check: Load a page and press Tab once. A "Skip to content" link should appear and work.
Lumtera checks: No working way to skip to the main content
-
Every page needs a title that describes its topic or purpose.
How to check: Check the browser tab text on each template: home, posts, archives, search and 404.
Lumtera checks: Page title is missing or generic
-
Focus must move in an order that preserves meaning.
How to check: Tab through the page; focus should follow the visual reading order.
Lumtera checks: Hidden element can still be focused, Positive tabindex changes the focus order, Keyboard focus goes somewhere invisible, Tab order jumps back up the page, Dialog or pop-up is hard to use with a keyboard
-
The purpose of each link must be clear from its text or context.
How to check: Scan for "click here", "read more" and bare URLs. Make link text say where it goes.
Lumtera checks: Link has no text, Link text is vague, Link opens a document file, Link text is a web address, Same link text goes to different pages, Image and text link go to the same page, In-page link goes nowhere
-
There must be more than one way to find a page (menu, search, sitemap, links).
How to check: Check the site has a search form or an HTML sitemap as well as navigation.
Lumtera checks: No search box or site map on the pages checked Pro · Growth+
-
Headings and labels must describe their topic or purpose.
How to check: Read your headings and form labels on their own — they should make sense out of context.
-
Keyboard focus must be visible.
How to check: Tab through the page. Every link, button and field should show a clear focus outline.
Lumtera checks: No visible keyboard focus, Keyboard focus goes somewhere invisible
-
Focused elements must not be completely hidden by sticky headers, cookie banners or chat widgets.
How to check: Tab through the page with the cookie banner open and a sticky header; focus should stay visible.
Lumtera checks: Sticky bar hides the keyboard focus
-
Actions that use multi-point or path gestures need a single-pointer alternative.
How to check: Check maps, carousels and sliders can be used with simple taps or buttons.
-
Actions should happen on release, not press, so mistakes can be cancelled.
How to check: Custom buttons and drag interactions should trigger on click/release.
-
A control's accessible name must contain its visible label.
How to check: Compare button text with its aria-label; the visible words should be included.
Lumtera checks: Accessible name leaves out the visible text
-
Features triggered by shaking or tilting need a button alternative and a way to switch off.
How to check: Rare in WordPress — check any motion-based feature from plugins.
-
Anything done by dragging must also be possible with single clicks.
How to check: Check sortable lists, sliders and file uploaders offer buttons or inputs.
Lumtera checks: Dragging may be the only way to use this
-
Pointer targets must be at least 24×24 CSS pixels or have enough spacing.
How to check: Check small icon links, pagination and close buttons on a phone.
Lumtera checks: Link or button may be too small to tap, Small, crowded click target
3. Understandable
-
The page language must be set in code.
How to check: Check Settings → General → Site Language and that the theme outputs a lang attribute on <html>.
Lumtera checks: Page language is missing or not valid
-
Passages in another language must be marked with their language.
How to check: Mark foreign-language quotes and phrases with a lang attribute.
Lumtera checks: Language code is invalid
-
Focusing an element must not change the context unexpectedly.
How to check: Tab through forms and menus; nothing should submit, open or redirect just on focus.
Lumtera checks: Focusing an element changes the page
-
Changing a form setting must not change the context unexpectedly without warning.
How to check: Check dropdowns (like language or currency switchers) don't redirect on selection without a button.
Lumtera checks: Dropdown changes page when an option is chosen
-
Navigation repeated across pages must stay in the same order.
How to check: Compare the header and footer menus across templates.
Lumtera checks: Menus list their links in a different order on different pages Pro · Growth+
-
Components with the same function must be identified consistently.
How to check: Icons and buttons that do the same thing should use the same labels site-wide.
Lumtera checks: Links to the same page have different names on different pages Pro · Growth+
-
Help mechanisms (contact details, chat, FAQ links) must appear in the same place on each page.
How to check: Check contact links and chat widgets keep a consistent position.
Lumtera checks: Help is in a different place on different pages Pro · Growth+
-
Input errors must be identified and described in text.
How to check: Submit forms with mistakes. Errors should be written out and tied to the field, not just a red border.
Lumtera checks: Form errors are not announced to screen readers Pro, No error appears when required fields are empty Pro, Fields with errors are not marked as invalid Pro, Error messages are not linked to their fields Pro, Focus does not move to the first error Pro, Errors are shown by colour alone Pro
-
Fields need labels or instructions.
How to check: Check every form field has a visible label, and required formats are explained.
Lumtera checks: Form field has no label, A field has no lasting label Pro
-
When an error is detected, suggest a correction if possible.
How to check: Error messages should say how to fix the problem, e.g. "Enter an email like name@example.com".
Lumtera checks: Error messages could say what to fix Pro
-
Legal, financial or data submissions must be reversible, checked or confirmed.
How to check: Check checkout and account forms offer a review step or confirmation.
-
Don't ask for the same information twice in one process.
How to check: Checkout should offer "same as billing address" or remember earlier answers.
Lumtera checks: Form asks for the same email twice
-
Logging in must not require a cognitive test such as remembering or transcribing a code, unless there is an alternative.
How to check: Check logins allow password managers and paste, and CAPTCHAs have an accessible alternative.
Lumtera checks: Password field blocks pasting or password managers, Check the CAPTCHA has an accessible alternative
4. Robust
-
Every interface component needs a name, role and state that assistive technology can read.
How to check: With a screen reader, check buttons, menus, tabs and custom widgets announce what they are and whether they are open or selected.
Lumtera checks: Link has no text, Link does not go anywhere, Button has no text, Form field has no label, Embedded frame has no title, Embedded frames share the same title, Hidden element can still be focused, Unknown ARIA role, Duplicate ID, Only a tooltip names this control, Menu or disclosure toggle does not work as announced, Dialog or pop-up is hard to use with a keyboard, Tabs do not work as tabs, Fields with errors are not marked as invalid Pro
-
Status messages must be announced without moving focus.
How to check: Add an item to the cart or submit a form; the confirmation should be announced by a screen reader.
Lumtera checks: Form errors are not announced to screen readers Pro
What automated checks can and cannot tell you
Automated checks are good at things that are clearly present or absent in the code: an image with no alt attribute, a form field with no label, a heading level that jumps. They cannot judge meaning — whether alt text describes the image well, whether the reading order makes sense, or whether a custom menu works with a keyboard.
That is why a Lumtera score of 100 means "no automated issues found", never "compliant". Use the checks to clear the common problems quickly, then spend your manual testing time on the criteria below that need judgement.
Some criteria can only be tested on the finished page, with the theme in place: contrast of menu and footer text, the skip link, landmarks, target size, focus hidden behind a sticky header, and whether menus and dialogs work with a keyboard. Lumtera's free review mode runs 33 whole-page checks for these in your browser, including a keyboard walk that numbers every Tab stop and widget tests for menus, dialogs and tabs.
With review mode, Lumtera's automated checks cover 37 of these 55 criteria, fully or in part; the checks of saved content alone cover 25. Covering a criterion means a check looks at it, not that your site meets it. For the rest, Lumtera's free guided checklists walk you through each test and record the result.
What changed in WCAG 2.2
WCAG 2.2 became a W3C Recommendation in October 2023 and was published as ISO/IEC 40500:2025 in October 2025. It keeps everything from WCAG 2.1 except 4.1.1 Parsing, which was retired, and adds six criteria at Levels A and AA:
- 2.4.11 Focus Not Obscured (Minimum) — sticky headers and banners must not hide the focused element.
- 2.5.7 Dragging Movements — anything done by dragging must also work with single clicks.
- 2.5.8 Target Size (Minimum) — small links and buttons need at least 24×24 pixels or enough space around them.
- 3.2.6 Consistent Help — contact details and help links stay in the same place on every page.
- 3.3.7 Redundant Entry — do not ask for the same information twice in one process.
- 3.3.8 Accessible Authentication (Minimum) — logging in must not depend on a memory or transcription test.
Questions
Which WCAG level should a WordPress site aim for?
Level AA. It is what the European Accessibility Act's standard, the ADA Title II rule and most policies point to. Level A alone leaves out important criteria such as color contrast.
Does passing this checklist make my site compliant?
It is a strong foundation, but what the law asks of you depends on where you operate and on how thoroughly each criterion is tested. For your most important pages and services, an audit by an accessibility specialist gives you an independent view. This checklist is general information, not legal advice.
Is WCAG 2.1 still acceptable?
Several laws still reference WCAG 2.1 AA. Because 2.2 includes nearly everything in 2.1, meeting 2.2 covers 2.1 as well — apart from the retired 4.1.1 Parsing.
Sources
Find these issues on your own site
Lumtera checks every post, page and product against 69 WCAG 2.2 checks while you write, checks the rendered page in review mode, keyboard included, and scans the whole site in one click. Free, with no account.
Lumtera features that help
-
Free
Honest coverage meter
Next to every automated score, a meter shows how many WCAG 2.2 A/AA criteria the checks cover, how many have evidence and how many need a person.
-
Free
Keyboard walk and widget tests
Review mode's Keyboard tab numbers every Tab stop on the page, flags focus you cannot see, and opens menus, dialogs and tabs from the keyboard.
-
Free
Guided checklists
One guided item for each WCAG 2.2 A and AA criterion that needs a person, with steps anyone can follow, recorded per page with who checked it and when.
Start with the free plugin today
All 69 content checks and 33 whole-page checks, fixes you approve with undo, and the site report — free, with no account and no page limits.