WOWStudio Accessibility Remediation helps you find, fix and document accessibility issues in your WordPress site. It scans your pages against WCAG 2.2 A and AA success criteria, explains what it found in plain language, and proposes real changes to your markup that you review before anything is applied.
It is not an accessibility overlay. Nothing is injected into your front end, and no widget or toolbar is added for your visitors. Fixes are changes to the code itself.
Automated testing can only detect part of WCAG. Many criteria — meaningful sequence, focus order, whether your alt text is actually accurate — require a human being. This plugin tells you which is which, in a coverage panel you can read at any time, and it will never report your site as finished.
This plugin does not determine or certify whether your site complies with the ADA, the European Accessibility Act, Section 508, AODA, the UK Equality Act, or any other law. It is a tool that helps you do accessibility work and keep a record of it. It is not legal advice, and it is not a substitute for testing with disabled users.
This plugin bundles Action Scheduler by Automattic, which runs the
background work — checking many pages at once — so that long jobs never block
an admin page or time out half-finished. It is licensed GPLv3 or later; this
plugin’s own code is GPLv2 or later.
Action Scheduler makes no outbound requests of its own. Source and documentation:
https://actionscheduler.org
Every line of this plugin is public, including the JavaScript and CSS that ship
compiled:
https://github.com/wowstudio-dev/WOWStudio-Accessibility-Remediation
The admin interface is React, built with @wordpress/scripts (webpack and
Babel), and the styles are Sass. What ships in build/ is generated from
assets/src/ in that repository:
build/index.js from assets/src/index.js — the admin screensbuild/style-index.css from assets/src/style.scssbuild/editor.js from assets/src/editor/index.js — the block editor panelbuild/editor.css from assets/src/editor/editor.scssbuild/blocks/statement/index.js from assets/src/blocks/statement/index.jsbuild/blocks/statement/style-index.css fromEach stylesheet also has an -rtl counterpart, generated for right-to-left
locales from the same source.
To build it yourself, from a clone of that repository:
npm install then `npm run build` produces `build/`.
composer install --no-dev --optimize-autoloader produces `vendor/`.
bin/build.sh --zip does both and assembles the distributable zip.
npm run start rebuilds on change while developing, and `bash bin/gate.sh`
runs the ten checks — tests, linters, static analysis and the guards — that
every commit has to pass.
Not everything is compiled. assets/front/site-fixes.js is the only JavaScript
this plugin puts on the front end, and it ships exactly as it was written:
readable, commented, and loaded only when a site-wide fix that needs it is
switched on.
This plugin contacts no external service, ever. There is no API, no account, no
telemetry, and no phone-home. The scanner, the fixes, the alt-text screen, the
statement generator and the reports all run entirely on your own site, and the
plugin works the same whether or not the server can reach the internet.
That is also why there are no scanning limits. Nothing is metered because
nothing is being paid for per page.