Find the accessibility problems your site actually has.
A11y Check scans a WordPress site against nine WCAG 2.1 AA checks and shows you the exact page and element behind every finding. It adds nothing to your front end — no overlay, no injected script, no tracking. Free, and no account.
Before releasing it, we tried to break it on 19 real websites
Most accessibility tools report everything they can detect. On a well-built site that produces a list of things that are not wrong — and a list like that teaches you to ignore the one item that is.
The first version of A11y Check reported 25 problems on Apple's homepage. We checked every single one by hand. All 25 were ours, not theirs: their logo carries its alt text on a parent element, their icon buttons are correctly hidden from screen readers, their decorative iframe is marked decorative. Correct markup, wrongly flagged.
So we rewrote the rules. Apple's homepage now reports zero. A large Chinese news portal reports 73 findings, and when we sampled them by hand, almost all were real.
| Site | Findings | Checked by hand |
|---|---|---|
| apple.com homepage | 0 | 25 earlier false positives traced and fixed |
| Large Chinese news portal, homepage | 73 | Sampled — almost all genuine |
| Deliberately broken test page | 15 | All 15 genuine |
The hard part of this category is not detection. It is not crying wolf. A scanner that reports 25 fake problems trains you to skip all 25 — and then you miss the real one, which is usually the one that matters.
What it checks
Nine checks against WCAG 2.1 AA. Each finding names the page, the element, and what to change.
- Images without useful alt text (1.1.1) — including images whose alt text is just the filename
- Form fields with no label (1.3.1, 4.1.2)
- Empty links and buttons (4.1.2) — icon-only controls with no accessible name
- Links with meaningless text (2.4.4) — "click here", "read more"
- Heading structure problems (1.3.1)
- Page language not declared (3.1.1)
- Data tables without header cells (1.3.1)
- Iframes without a title (4.1.2)
- Media that starts on its own (1.4.2)
It also generates a plain-language accessibility statement you can publish — the kind of page a lawyer, a client, or a procurement form will ask for.
What it deliberately does not do
Four things you should know before you install it, because a tool that hides its limits is worse than no tool:
- It does not test colour contrast. That needs the rendered page and the final CSS, and doing it badly produces more noise than signal.
- It reads the HTML your server sends. Anything a script adds after the page loads is outside what it can see.
- It will not tell you that you are compliant. No automated tool can. It tells you what it found, on the pages it read.
- It skips pages over 3 MB of HTML, to keep the scan light. Those are listed as skipped rather than silently dropped.
And it does not touch your site. No widget in the corner, no CSS override, no JavaScript on your front end. If you deactivate it, nothing changes — because nothing was ever added.
Install
Free, GPL, on the WordPress plugin directory.
wordpress.org/plugins/a11y-check
Requires WordPress 5.8 or later and PHP 7.4 or later. No account, no email, no API key.
About this page
This page is the product's first customer. It has no JavaScript, no external fonts, no third-party requests, and no autoplaying media. It is one column of text that works at 200% zoom, from the keyboard alone, and in a screen reader. If any of that is not true on your device, that is a bug — please tell us.