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 25, 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
24 of the 55 criteria have at least one Lumtera check that finds common failures automatically. 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 generic word, 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 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.
-
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.
-
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
-
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: Links look the same as the text around them
-
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 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
-
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.
-
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.
-
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.
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.
-
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.
-
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.
-
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, GIF may be animated
-
Nothing may flash more than three times per second.
How to check: Review videos, GIFs and animations for rapid flashing.
-
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: Positive tabindex changes the focus order
-
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.
-
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: Focus outline removed in CSS
-
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 can hide 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.
-
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 targets
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 invalid
-
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.
-
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.
-
Navigation repeated across pages must stay in the same order.
How to check: Compare the header and footer menus across templates.
-
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.
-
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.
-
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.
-
Fields need labels or instructions.
How to check: Check every form field has a visible label, and required formats are explained.
-
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".
-
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 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
-
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.
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 and focus hidden behind a sticky header. Lumtera's free Review mode has a Whole page tab with 12 checks for these, run in your browser on the page you are viewing.
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 compliance depends on the law that applies to you and on how thoroughly each criterion is tested. For legal certainty, pair it with an audit by an accessibility specialist.
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 64 WCAG 2.2 checks while you write, checks the rendered page in Review mode, and scans the whole site in one click. Free, with no account.
Lumtera features that help
-
Free
Site-wide report and bulk scan
Scan every post, page and product, then see the average score, errors, items to review, coverage and the most common issues across the site.
-
Free
Whole-page review
Check a page the way visitors see it — theme, header, menus, footer and page-builder output — with real color contrast, target size and keyboard focus checks, from Review mode.
-
Pro
Branded client reports
Reports with your logo and colors, covering all 55 WCAG 2.2 A and AA criteria, as a tagged PDF — plus CSV export of every finding.
Start with the free plugin today
All 64 checks, the editor sidebar, Elementor panel and site report — free, with no account and no page limits.