Check library
88 content checks and 38 whole-page checks for WordPress
Every check in the free plugin, mapped to WCAG 2.2. The content checks run as you write; the whole-page checks run on the rendered page in review mode, keyboard included. Together they cover 38 of the 55 WCAG 2.2 A and AA success criteria automatically, fully or in part. Covering a criterion is not the same as meeting it: the rest need a person, and the guided checklists walk you through them.
Updated for Lumtera 1.3.0 and Lumtera Pro 1.2.0.
- Error
- 23
- Needs review
- 40
- Tip
- 25
Default severities of the 88 content checks. Every check can be set to Error, Needs review, Tip or Off on your site.
Images
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Image has no alternative text | 1.1.1 Non-text Content (A) | Error | Alt text shortcut |
| Image has empty alt text | 1.1.1 Non-text Content (A) | Needs review | Guided fix |
| Alt text looks like a file name | 1.1.1 Non-text Content (A) | Needs review | Alt text shortcut |
| Alt text repeats "image of" | 1.1.1 Non-text Content (A) | Tip | Alt text shortcut |
| Alt text is very long | 1.1.1 Non-text Content (A) | Tip | Alt text shortcut |
| Image map area has no text | 1.1.1 Non-text Content (A) | Error | Guided fix |
| Image button has no text | 1.1.1 Non-text Content (A) | Error | Guided fix |
| Alt text is a placeholder | 1.1.1 Non-text Content (A) | Needs review | Alt text shortcut |
| Alt text repeats nearby text | 1.1.1 Non-text Content (A) | Tip | Guided fix |
Links & buttons
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Link has no text | 2.4.4 Link Purpose (In Context) (A) also 4.1.2 | Error | Guided fix |
| Link text is vague | 2.4.4 Link Purpose (In Context) (A) | Needs review | Guided fix |
| Link does not go anywhere | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| Link opens a new tab without warning | 3.2.5 Change on Request (AAA) | Tip | One-click fix |
| Button has no text | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
| Link opens a document file | 2.4.4 Link Purpose (In Context) (A) | Needs review | Guided fix |
| Link text is a web address | 2.4.4 Link Purpose (In Context) (A) | Tip | Guided fix |
| Same link text goes to different pages | 2.4.4 Link Purpose (In Context) (A) | Needs review | Guided fix |
| Image and text link go to the same page | 2.4.4 Link Purpose (In Context) (A) | Tip | Guided fix |
| In-page link goes nowhere | 2.4.4 Link Purpose (In Context) (A) | Error | Guided fix |
| Link or button may be too small to tap | 2.5.8 Target Size (Minimum) (AA) | Needs review | Guided fix |
| Clickable element cannot be used with the keyboard | 2.1.1 Keyboard (A) | Needs review | Guided fix |
| Linked image describes itself, not the link | 2.4.4 Link Purpose (In Context) (A) | Needs review | Guided fix |
Headings
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Heading is empty | 1.3.1 Info and Relationships (A) | Error | One-click fix |
| Heading level is skipped | 1.3.1 Info and Relationships (A) | Needs review | One-click fix |
| Content uses an H1 heading | 1.3.1 Info and Relationships (A) | Tip | One-click fix |
| Bold text may be a heading | 1.3.1 Info and Relationships (A) | Tip | One-click fix |
| Heading is very long | 1.3.1 Info and Relationships (A) | Tip | Guided fix |
| Long content has no subheadings | 2.4.10 Section Headings (AAA) | Tip | Guided fix |
| Heading inside a table cell | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Short quotation may be a heading | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
Forms
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Form field has no label | 4.1.2 Name, Role, Value (A) also 1.3.1, 3.3.2 | Error | Guided fix |
| Form field has more than one label | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Options are not grouped with their question | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Personal-data field has no autocomplete | 1.3.5 Identify Input Purpose (AA) | Tip | Guided fix |
| Form asks for the same email twice | 3.3.7 Redundant Entry (A) | Tip | Guided fix |
| Password field blocks pasting or password managers | 3.3.8 Accessible Authentication (Minimum) (AA) | Error | Guided fix |
| Check the CAPTCHA has an accessible alternative | 3.3.8 Accessible Authentication (Minimum) (AA) | Needs review | Guided fix |
| Dropdown changes page when an option is chosen | 3.2.2 On Input (A) | Needs review | Guided fix |
| Dragging may be the only way to use this | 2.5.7 Dragging Movements (AA) also 2.1.1 | Needs review | Guided fix |
| Autocomplete value is not valid | 1.3.5 Identify Input Purpose (AA) | Error | Guided fix |
| Collapsible section has no label | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
Tables
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Table has no header cells | 1.3.1 Info and Relationships (A) | Needs review | One-click fix |
| Table header cell is empty | 1.3.1 Info and Relationships (A) | Tip | Guided fix |
| Table may be used for layout | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Table has empty rows | 1.3.1 Info and Relationships (A) | Tip | Guided fix |
| Table cell points at a header that is not in its table | 1.3.1 Info and Relationships (A) | Error | Guided fix |
| Table header has no cells | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
Audio, video & embeds
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Media plays sound automatically | 1.4.2 Audio Control (A) | Error | Guided fix |
| Moving video cannot be paused | 2.2.2 Pause, Stop, Hide (A) | Needs review | Guided fix |
| Video has no captions track | 1.2.2 Captions (Prerecorded) (A) | Needs review | Guided fix |
| Check audio has a transcript | 1.2.1 Audio-only and Video-only (Prerecorded) (A) | Needs review | Guided fix |
| Embedded frame has no title | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
| Embedded frames share the same title | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| Scrolling or blinking text | 2.2.2 Pause, Stop, Hide (A) | Error | Guided fix |
| Check captions on embedded video | 1.2.2 Captions (Prerecorded) (A) | Needs review | Guided fix |
| Check that the slider can be paused | 2.2.2 Pause, Stop, Hide (A) | Tip | Guided fix |
| Animated image may need a way to pause | 2.2.2 Pause, Stop, Hide (A) also 2.3.1 | Needs review | Guided fix |
| Embedded object has no name | 1.1.1 Non-text Content (A) | Error | Guided fix |
Structure
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Text is formatted as a list by hand | 1.3.1 Info and Relationships (A) | Tip | One-click fix |
| List item is outside a list | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Empty paragraphs used for spacing | 1.3.1 Info and Relationships (A) | Tip | One-click fix |
| Emoji used as bullets or icons | 1.3.1 Info and Relationships (A) | Tip | Guided fix |
| Page refreshes or redirects on a timer | 2.2.1 Timing Adjustable (A) also 3.2.5 | Error | Guided fix |
| Instruction may rely on shape, position, color or sound | 1.3.3 Sensory Characteristics (A) also 1.4.1 | Tip | Guided fix |
| Text spacing is locked with !important | 1.4.12 Text Spacing (AA) | Needs review | Guided fix |
Text & readability
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Text is justified | 1.4.8 Visual Presentation (AAA) | Tip | Guided fix |
| Underlined text looks like a link | 1.3.1 Info and Relationships (A) | Tip | Guided fix |
| Text is very small | 1.4.4 Resize Text (AA) | Tip | Guided fix |
| Long passage in capital letters | 1.4.8 Visual Presentation (AAA) | Tip | Guided fix |
Color
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Text color has low contrast | 1.4.3 Contrast (Minimum) (AA) | Error | Guided fix |
ARIA & keyboard
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Hidden element can still be focused | 4.1.2 Name, Role, Value (A) also 2.4.3 | Error | Guided fix |
| Unknown ARIA role | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| Label points to a missing element | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Duplicate ID | 4.1.2 Name, Role, Value (A) | Tip | Guided fix |
| Positive tabindex changes the focus order | 2.4.3 Focus Order (A) | Needs review | Guided fix |
| Accessible name leaves out the visible text | 2.5.3 Label in Name (A) | Needs review | Guided fix |
| Only a tooltip names this control | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| Custom control is missing a required state | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
| ARIA attribute has an invalid value | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
| Unknown ARIA attribute | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| ARIA attribute is not allowed here | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| ARIA role is outside its required parent | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| ARIA role is missing the children it requires | 1.3.1 Info and Relationships (A) | Needs review | Guided fix |
| Decorative element is still announced | 4.1.2 Name, Role, Value (A) | Needs review | Guided fix |
| Control contains another focusable control | 4.1.2 Name, Role, Value (A) | Error | Guided fix |
| Custom control cannot be reached with the keyboard | 2.1.1 Keyboard (A) | Error | Guided fix |
Language
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Language code is invalid | 3.1.2 Language of Parts (AA) | Needs review | Guided fix |
| Text may be in a different language from its tag | 3.1.2 Language of Parts (AA) | Tip | Guided fix |
Whole page
Free. These 38 checks run on the finished page — theme, menus, footer and all — in review mode, on demand and one page at a time: the Whole page tab, and the Keyboard tab for the keyboard walk and the widget tests. Some rows cover a few closely related checks. Lumtera Pro runs the same checks on many pages, at desktop and phone width, on a schedule.
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| Page title is missing or generic | 2.4.2 Page Titled (A) | Error | Whole page tab |
| Page language is missing or not valid | 3.1.1 Language of Page (A) | Error | Whole page tab |
| Page headings are missing an H1 or skip levels | 1.3.1 Info and Relationships (A) | Needs review | Whole page tab |
| Page landmarks are missing or share a name | 1.3.1 Info and Relationships (A) | Needs review | Whole page tab |
| No working way to skip to the main content | 2.4.1 Bypass Blocks (A) | Needs review | Whole page tab |
| Zooming is disabled | 1.4.4 Resize Text (AA) | Error | Whole page tab |
| Page scrolls sideways at this width | 1.4.10 Reflow (AA) | Needs review | Whole page tab |
| Text is cut off or overlaps when text spacing is increased | 1.4.12 Text Spacing (AA) | Needs review | Whole page tab |
| Items are shown in a different order from the page's HTML | 1.3.2 Meaningful Sequence (A) | Needs review | Whole page tab |
| Text has low contrast on the live page | 1.4.3 Contrast (Minimum) (AA) | Error | Whole page tab |
| Controls or icons are hard to see | 1.4.11 Non-text Contrast (AA) | Needs review | Whole page tab |
| Links look the same as the text around them | 1.4.1 Use of Color (A) | Error | Whole page tab |
| Small, crowded click target | 2.5.8 Target Size (Minimum) (AA) | Needs review | Whole page tab |
| Scrolling box cannot be reached with the keyboard | 2.1.1 Keyboard (A) | Needs review | Whole page tab |
| Text is cut off by its box | 1.4.10 Reflow (AA) | Needs review | Whole page tab |
| Content blinks or flashes | 2.2.2 Pause, Stop, Hide (A) also 2.3.1 | Needs review | Whole page tab |
| Large text looks like a heading | 1.3.1 Info and Relationships (A) | Needs review | Whole page tab |
| Page is locked to one orientation | 1.3.4 Orientation (AA) | Needs review | Whole page tab |
Keyboard and widgets
| Check | WCAG | Default | In Lumtera |
|---|---|---|---|
| No visible keyboard focus | 2.4.7 Focus Visible (AA) | Needs review | Keyboard tab |
| Sticky bar hides the keyboard focus | 2.4.11 Focus Not Obscured (Minimum) (AA) | Needs review | Keyboard tab |
| Keyboard focus goes somewhere invisible | 2.4.7 Focus Visible (AA) also 2.4.3 | Error | Keyboard tab |
| Tab order jumps back up the page | 2.4.3 Focus Order (A) also 1.3.2 | Needs review | Keyboard tab |
| Focusing an element changes the page | 3.2.1 On Focus (A) | Error | Keyboard tab |
| Pop-up content on focus does not close with Escape | 1.4.13 Content on Hover or Focus (AA) | Needs review | Keyboard tab |
| Possible keyboard trap | 2.1.2 No Keyboard Trap (A) | Needs review | Keyboard tab |
| Focus indicator has low contrast | 1.4.11 Non-text Contrast (AA) | Needs review | Keyboard tab |
| Menu or disclosure toggle does not work as announced | 4.1.2 Name, Role, Value (A) also 2.1.1 | Error | Keyboard tab |
| Submenu opens on hover only | 2.1.1 Keyboard (A) | Needs review | Keyboard tab |
| Dialog or pop-up is hard to use with a keyboard | 2.4.3 Focus Order (A) also 4.1.2 | Needs review | Keyboard tab |
| Tabs do not work as tabs | 4.1.2 Name, Role, Value (A) also 2.1.1 | Error | Keyboard tab |
| Carousel to test with the keyboard | 2.2.2 Pause, Stop, Hide (A) also 2.1.1 | Needs review | Keyboard tab |
Pro page tests
These tests need Lumtera Pro, because they act on the page: they submit forms, hover and focus controls, watch carousels over time, or compare many pages. They run on the same engine as review mode.
Consistency across pages
| Check | WCAG | Default | Plan |
|---|---|---|---|
| Menus list their links in a different order on different pages | 3.2.3 Consistent Navigation (AA) | Needs review | Pro · Growth+ |
| Links to the same page have different names on different pages | 3.2.4 Consistent Identification (AA) | Needs review | Pro · Growth+ |
| Help is in a different place on different pages | 3.2.6 Consistent Help (A) | Needs review | Pro · Growth+ |
| No search box or site map on the pages checked | 2.4.5 Multiple Ways (AA) | Needs review | Pro · Growth+ |
States and motion
| Check | WCAG | Default | Plan |
|---|---|---|---|
| Text is hard to read on hover, focus or press | 1.4.3 Contrast (Minimum) (AA) | Needs review | Pro |
| Controls fade on hover, focus or press | 1.4.11 Non-text Contrast (AA) | Needs review | Pro |
| Carousel moves on its own | 2.2.2 Pause, Stop, Hide (A) | Needs review | Pro |
Form tests
| Check | WCAG | Default | Plan |
|---|---|---|---|
| Form errors are not announced to screen readers | 4.1.3 Status Messages (AA) also 3.3.1 | Needs review | Pro |
| No error appears when required fields are empty | 3.3.1 Error Identification (A) | Needs review | Pro |
| Fields with errors are not marked as invalid | 3.3.1 Error Identification (A) also 4.1.2 | Needs review | Pro |
| Error messages are not linked to their fields | 3.3.1 Error Identification (A) | Needs review | Pro |
| Focus does not move to the first error | 3.3.1 Error Identification (A) | Needs review | Pro |
| A field has no lasting label | 3.3.2 Labels or Instructions (A) | Needs review | Pro |
| Errors are shown by colour alone | 1.4.1 Use of Color (A) also 3.3.1 | Needs review | Pro |
| Error messages could say what to fix | 3.3.3 Error Suggestion (AA) | Tip | Pro |
How accurate are the checks?
In our tests against the W3C ACT Rules test cases, Lumtera reported 296 of the 393 failing examples at any severity. Read that as generous: 121 were reported as errors, and the other 175 only ask a person to review or give a tip. The check mapped to a rule reported 1 of the 816 passing or inapplicable examples as an error.
How we tested: the ACT Rules test cases are small example pages published by the W3C, each marked as passing or failing a rule. We ran each example through Lumtera's content checks and through the whole-page checks in a real browser, including the keyboard walk and a run at 320 pixels wide. A failing example counts as reported when a check mapped to that rule says anything about it, at any severity.
We also ran the checks on 532 pages that meet WCAG 2.2 AA or nearly so, and read every error. Review mode and the browser checks had 0 false alarms; the check of raw content had 8, on names and hidden fields that a script sets while the page runs. Our own test, not an independent audit.
What this does not show: the test cases are small, focused examples, not real sites, and neither figure is a share of all accessibility problems. The WCAG criteria that need a person are not in these numbers. No automated checker finds every barrier.
Run on November 5, 2026 with the code of Lumtera 1.3.0. W3C: ACT Rules and their test cases
About the checks
Something else on your mind? Contact support
Do these checks cover all of WCAG 2.2?
No automated tool can. With review mode, Lumtera's automated checks cover 38 of the 55 WCAG 2.2 A and AA criteria, fully or in part; the checks of saved content alone cover 26, Lumtera Pro's form tests bring it to 41, and its consistency checks on the Growth plan and up to 45. A check that covers a criterion looks at it; it does not prove the site meets it. Whether alt text is accurate or a task can be done with a screen reader needs a person, and the free guided checklists walk you through those tests.
What is the difference between Error, Needs review and Tip?
Errors are problems Lumtera is sure about. Needs review means a person has to decide — for example whether empty alt text is intentional. Tips are best practices that improve the experience but are not strict failures. A check can lower its confidence for one finding, never raise it.
Can I add my own checks?
Yes. Developers can register rule classes with the lumtera_rule_classes filter; they appear everywhere the built-in checks do.
Start with the free plugin today
All 88 content checks and 38 whole-page checks, fixes you approve with undo, and the site report — free, with no account and no page limits.