=== A11yMate – Accessibility Checker ===
Contributors: oakfox
Tags: accessibility, accessibility checker, wcag, ada, alt text
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Accessibility checker for WCAG 2.2: scan every page for contrast, alt text and more, with plain-English fixes. Not an overlay.

== Description ==

A11yMate ("ally mate") helps you work towards WCAG 2.2 AA on your own WordPress site. It finds the real problems, explains each one like a helpful colleague, tells you exactly what to change, and stops new ones appearing as people write.

**It is not an overlay.** A script cannot make a site compliant, and disabled people and regulators know it. A11yMate does not claim to. It helps you fix the site itself.

**Everything runs on your own site.** No account, no tracking, no external API. No page content, URL or data ever leaves your server.

= What you get, free =

* **Site Scan, with no page limit.** Finds your homepage, every published post, page and public custom post type, a sample of archives, the search results page and the 404 page. Two passes per page: a server pass (structure, labels, names) and a browser pass (real contrast, text sizes, line height, click target size, focus rings, reflow at 320px, text spacing, motion). You can set a page limit in Settings if you want one; by default every page is scanned.
* **Grouped results.** The same problem on the same template element across 48 pages shows once, as "on 48 pages". That is what makes the results usable.
* **Plain-English rules.** About 70 rules mapped to WCAG 2.2 success criteria, each with why it matters, how to fix it, a code example and the W3C guidance.
* **Dashboard and Issues.** A 0 to 100 score with a documented formula, the best fixes to make next, a breakdown by area, and an issues list you can filter, search, ignore and re-open.
* **Editor Assistant.** A sidebar and pre-publish panel in the block editor that checks the post as it is written: missing alt text, skipped headings, vague links, empty buttons, low-contrast colour settings, tables without headers, long paragraphs. Nudges, never blocks.
* **Safe Fixes.** Front-end fixes you switch on one by one: skip link, restore pinch-zoom, a visible focus ring, "(opens in a new tab)" text, iframe titles, reduced motion, underlined links, missing page language, no positive tabindex, alt text from the Media Library. Nothing in your database is rewritten.
* **For developers.** WP-CLI (`wp a11ymate scan`, `issues`, `score`, `rules`), a REST API at `/wp-json/a11ymate/v1`, and the hooks `a11ymate_rules`, `a11ymate_scan_urls` and `a11ymate_scan_complete`.

= Honest about limits =

Automated checks find roughly a third to a half of WCAG issues. A11yMate says which results need a human and keeps them out of your score. It helps you work towards WCAG 2.2 AA; it does not guarantee compliance.

= A11yMate Pro =

The free plugin is complete: it is not limited, locked or timed. A separate paid plugin, A11yMate Pro, adds Alt Text Manager, Colour Studio and Typography Studio, scheduled scans and email digests, printable reports with CSV and JSON export, an accessibility statement generator and an optional visitor toolbar.

* **Pro:** £89 a year, 1 site.
* **Agency:** £249 a year, up to 25 sites, plus white-label client reports.

See [a11ymate.co.uk/pricing](https://a11ymate.co.uk/pricing/).

= Context =

The European Accessibility Act (in force since 28 June 2025), the UK Equality Act 2010 and public sector accessibility regulations, and the ADA in the US all expect accessible websites.

= Made by =

[OakFox](https://oakfox.co.uk/), a small UK studio.

== Installation ==

1. Upload the plugin to `/wp-content/plugins/a11ymate`, or install it from the Plugins screen.
2. Activate it. A new A11yMate menu appears in wp-admin.
3. Open A11yMate, then Scan, and run your first scan. Keep the tab open: the browser pass runs in your own browser.

== External services ==

A11yMate does not connect to any external service. It makes no requests to OakFox or anyone else, loads no scripts, fonts or images from a CDN, and has no tracking or telemetry. Scanning fetches pages from your own site (the same server, over its own address) and examines them in your own browser. The links to the W3C's WCAG guidance and to a11ymate.co.uk are ordinary links that only open if you click them.

== Frequently Asked Questions ==

= Is this an accessibility overlay? =

No. Overlays inject a script that claims to fix a site. A11yMate finds real problems and helps you fix them in your site.

= Is there a limit on pages or scans? =

No. The free plugin scans every page, as often as you like.

= Does it send my pages or data anywhere? =

No. Pages are fetched from your own server and examined in your own browser. A11yMate makes no external requests, uses no CDN assets and has no tracking or telemetry.

= Will this make my site WCAG compliant? =

No tool can do that on its own. A11yMate helps you work towards WCAG 2.2 AA by finding and explaining problems. Automated testing finds roughly a third to a half of issues, so test with a keyboard and a screen reader as well.

= Why does the scan need the browser tab to stay open? =

Colour contrast, font sizes, focus rings and reflow depend on how a page really looks. A11yMate loads each page in a hidden frame in your admin and measures it. The scan is resumable if you close the tab. WP-CLI scans run the server pass only, and say so.

= Does it change my content? =

Only when you ask. Safe Fixes change what visitors receive on the front end and are off by default. Your posts are not rewritten.

= What does the score mean? =

A number from 0 to 100, weighted by severity and by how many pages each problem affects. Needs-review items do not count. The formula is documented on the website.

= Can I add my own rules? =

Yes. Use the `a11ymate_rules` filter to add rule metadata, and `a11ymate_server_checks` to add a server-pass check object.

= Can I run it from the command line? =

Yes: `wp a11ymate scan`, `wp a11ymate issues --format=csv`, `wp a11ymate score`. The command line runs the server pass only.

= Why does A11yMate need PHP 8.2 or newer? =

PHP 8.1 and older stopped getting security fixes from the PHP project at the end of 2025. In October 2026 a critical flaw in PHP itself, PHP2Shell (CVE-2026-109618 and CVE-2026-109619), was fixed in official releases only for supported versions: 8.2.35, 8.3.36, 8.4.27 and 8.5.12. Older versions rely on whatever patches their host backports. We don't want A11yMate to be a reason to stay on an unprotected PHP version. If WordPress says your PHP is too old, ask your host to move you to PHP 8.3 or newer. When PHP 8.2's security support ends on 31 December 2026, A11yMate's minimum will move to 8.3.

= What happens to my data if I uninstall? =

Nothing is deleted unless you tick "Delete all data when the plugin is deleted" in Settings.

== Screenshots ==

1. Dashboard: the score, the best fixes to make next and a breakdown by area.
2. Issues grouped by problem, with the detail drawer open: why it matters and how to fix it.
3. The site scan: both passes, with progress you can pause and resume.
4. The block editor assistant, checking a post as it is written.
5. Safe Fixes: front-end fixes you switch on one at a time.

== Changelog ==

= 1.0.0 =
* First release: site scan (server and browser passes, no page limit), about 70 rules, grouped issues, Dashboard, Editor Assistant, Safe Fixes, WP-CLI and REST API.

== Upgrade Notice ==

= 1.0.0 =
First release.
