Skip to content

The A11y Plugin

Somebody is trying to read your site right now. Let's make it easy for them!

Stop paying accessibility subscription fees and give your site real control over your site's presentation. A WordPress accessibility plugin that is actually useful for folks, with backend reporting in your dashboard that tells you what to improve on your site.

Best of all... it's free!

GPL-2.0-or-later · WordPress 6.3+ · PHP 8.0+

Be sure to check out what The A11y Plugin does not do

Running right now

See that round button in the bottom-right corner? That is the plugin!

Not a video and not a screenshot. It is installed on this page, right now. Everything you change saves to your own browser, and nothing about this visit leaves your device.

Try this
  • 01Open it and set text size to 175%. Watch the whole page reflow, not just zoom.
  • 02Press Reset, then turn on the reading mask and follow a paragraph with it.
  • 03Reload the page. Whatever you left on is still on.

The toolbar helps in the browser. It does not replace this.

AccessibilitystatementEvery visitor should be ableto read this page, whateverthey need to do to get there.Read moreAccessibility optionsTEXTReset all optionsText size175%Line spacing1.6Letter spacingNone
Accessibility statementEvery visitor should be able to read thispage, whatever they need to do to getthere. Contrast is raised across everyelement, not just the body copy.Read moreAccessibility optionsQUICK PROFILESReset all optionsVisionimpairedHighcontrastDyslexiafriendlyFocus modeSeizure safeMotorimpaired
Accessibility statementEvery visitor should be able to read thispage, whatever they need to do to getthere. The mask follows the pointer downthe page, one line at a time, so the eyenever loses its place partway through.Read moreAccessibility optionsREADINGReset all optionsReading maskStop animationsReading guide
Accessibility statementEvery visitor should be able to read thispage, whatever they need to do to getthere. Focus rings thicken and thepointer is enlarged.Read moreAccessibility optionsQUICK PROFILESReset all optionsVisionimpairedHighcontrastDyslexiafriendlyFocus modeSeizure safeMotorimpaired
Text at 175%

What it does

Two halves. One for your visitors, one for you.

For your visitors

A toolbar people will actually use

Fourteen adjustments and six presets. Bigger text, looser spacing, higher contrast, a dyslexia-friendly typeface, a reading mask, stopped animations. Set once, remembered across your site, stored on their own device.

Try it on this page ↑
For you

A checker that speaks English

Add the pages that matter. Press check. Get a list that opens with what you can fix yourself in WordPress this afternoon. 41 rules rewritten out of developer jargon, with real contrast measured from computed styles.

See how it sorts the work ↓

Inside your dashboard

One screen. The work, in the order you can do it.

No score, no dials, no chart to interpret. The first group is open by default because that is where the wins are, and every finding carries the sentence that tells you what to change.

Download the plugin
yoursite.org/wp-admin › Accessibility

Accessibility check

6 pages tracked · last checked 2 days ago

12 fixed 3 new WCAG 2.2 AA
12 images have no description

Someone using a screen reader hears the file name, or nothing at all, instead of what the picture shows.

How to fix it

Open each page, click the image, and write a short sentence describing what it shows. Do not start with "image of".

The Accessibility screen in wp-admin, version 0.6.0.

A Tuesday afternoon with it

Sorted by who can fix it, not by how bad it is.

Every other tool sorts by severity, so item one is a critical ARIA fault the person reading it cannot act on. They close the tab. Here is how it actually goes.

01

You press Check pages, and go make coffee.

A real browser engine loads every page you track and reads the computed styles, so contrast is measured rather than guessed. Six pages takes under a minute.

02

Everything lands in one of three groups.

14 · you 4 · a decision 23 · a developer

"12 images have no description" is editable in WordPress, so it opens first. A 3.9:1 button needs a color chosen. A focus-order fault needs the theme. You always know which pile you are looking at, and the third group is an itemised scope of work, already written.

03

You clear the first group, then check again.

Plain instructions and the exact pages, no CSS selector unless you ask. Fix, re-check, and the count drops. Every run is kept, which is the remediation record you would want if anyone ever asks for one.

Progress over time

19 findings now, 34 fewer than Jun 1.

No axis, no gridlines, and no score. The shape is the message.

And at the end of it

A report you can hand to somebody.

accessibility-report-2026-08-02.pdf
  • 19 open findings, grouped by owner
  • Every item WCAG-referenced
  • What has been fixed, and when
  • No score, and no compliance claim

Board, funder, client, or the developer you are about to hire.

That is the whole loop. It takes about a minute to install.

No account, no license key, no phone home.

Download 0.6.0 ws-a11y-0.6.0.zip · 612 KB · WP 6.3+ · PHP 8.0+

Tell me when it's listed on WordPress!

Yup, I'll send you an email once 0.6.0 it clears review on WordPress.org.

No spam. Pinky promise!

Before you install

Read this part first ↓

Automated checks catch roughly a third of accessibility problems. Clearing this list is real progress; it is not the same as being done. Saying so is the reason to trust the rest of the page. Anything that will not print its own limits is asking you to take a claim on faith.

It does.

  • Give visitors real control over presentation. Fourteen adjustments, saved to their own device, applied before first paint.
  • Check the pages you add against axe-core. A real browser engine reads computed styles, so contrast is measured rather than guessed.
  • Group findings by who can fix them. You, a design decision, or a developer. The third group is an itemised scope of work, already written.
  • Generate a statement you can stand behind. W3C structure, defaulting to partially conformant, because that is usually the truth.

It does not.

  • Make you compliant. Conformance is a property of your code, established by testing. No plugin confers it.
  • Fix anything automatically. It never touches your markup. It tells you what to change and where, then you change it.
  • Scan on a schedule. Honest contrast measurement needs a browser engine. Cron has no browser, so it reminds you instead.
  • Give you a score. A number out of 100 becomes a compliance claim the moment somebody screenshots it.
  • See the whole picture. The rest of accessibility needs a person and assistive technology. Nothing changes that.
  • Protect you from anything. Documented remediation effort is worth more than a badge, and that is what this produces.

Got more questions? The FAQ below covers them, including the awkward ones.

Read the FAQ
Scanning

Checks run axe-core in a real browser frame, so color contrast is measured rather than guessed.

Isolation

The toolbar lives in its own shadow root, so your theme cannot break it and it cannot break your theme.

Security

It only ever loads pages from your own domain. Nothing is fetched from anywhere else.

Accessibility statement

Builds a statement page on the W3C structure, starting at partially conformant.

~10 KB added to your front end No external requests, cookies, or accounts Translated, and works in right-to-left languages Free and open source, GPL-2.0-or-later WordPress 6.3 or newer PHP 8.0 or newer

Questions? Answers.

Can't find what you're looking for? Reach out!

No, and be suspicious of anything that says it does. Conformance is a property of your code, established by testing. This finds the machine-detectable problems and explains how to fix them, which is real progress and roughly a third of the picture. The rest needs manual testing with assistive technology.

Overlays try to rewrite your site's code as the page loads. That approach was the subject of a $1 million FTC action in 2025, and sites running these tools still appear in a quarter of ADA web lawsuits. This plugin does the two things that genuinely work: it gives visitors presentation controls, and it tells you what to fix. It does not touch your markup.

Because a score would tell you nothing you can act on, and it would quietly become a compliance claim. The screen opens with the work instead.

No. Checks run a real browser engine, which is the only way to measure color contrast honestly, and scheduled tasks have no browser. Anything advertising automatic scans is either doing a shallow HTML parse or paying for a headless browser service. Instead it tracks how long it has been and reminds you, with a default window of 30 days.

About 3.4 KB inlined in the head so saved preferences apply before first paint, and about 6.6 KB deferred to the footer. No external requests, no jQuery, no framework. Nothing loads at all when the toolbar is switched off. The 559 KB scanning engine loads only on the check screen in your admin, and never touches the front end.

Nowhere. Preferences live in the visitor's own browser. The plugin makes no network requests to anything, sets no cookies, and has no account system.

Nothing. It is GPL-2.0-or-later, self-hosted, with no account, no per-scan cost, and no per-client fee. If you run twelve client sites, you install it twelve times and pay nothing twelve times.

The toolbar renders in a shadow root specifically so aggressive theme CSS cannot break it. Two honest caveats. Text scaling only moves themes that size text in rem, so a theme with hardcoded pixel sizes will not respond. And contrast modes apply a filter over the whole page, which some layouts take better than others, so you can switch that control off.

Yes, and it is worth stating plainly, because an inaccessible accessibility widget is a common failure mode in this category. The panel is keyboard operable end to end, traps focus while open, closes on Escape, returns focus to the trigger, exposes state through ARIA, uses live regions for adjustments and scan progress, respects reduced-motion preferences, and never conveys information by color alone.

Version 0.6.0 is in review. Until it is listed you can download the zip here and install it from Plugins, Add New, Upload. Leave your email below and you will get one message when it goes live, and nothing else.

How I work

This is how I approach everything.

I start with the person on the other side of the screen. That is the whole method. It is why this plugin opens with the visitor's controls instead of your dashboard, and it is the same instinct behind every donation flow, intake form, and rebuild I take on.

If that is how you want your project handled, I would like to hear about it.