Description
An accessibility tool that works on your site’s real markup.
Most “accessibility” plugins add a floating widget that recolors text or reads pages aloud. Those overlays do not make a site compliant, and overlay vendors have been named in hundreds of ADA lawsuits because the underlying markup stays inaccessible.
ComplyClear Accessibility works the other way around. It surfaces real WCAG problems in your content and helps your team fix them at the source. It is purpose-built for government and public-sector websites with Section 508 and ADA Title II obligations.
Key features
- Real-time editor audit. A sidebar in the Elementor and block editors that scans the page you’re editing and sorts what it finds into confirmed problems, likely problems, manual checks, and suggestions, with click-to-navigate to the exact element.
- WCAG 2.1 vs 2.2 AA selector. 2.2 AA by default, as recommended practice. 2.1 AA is available and is the technical standard the DOJ Title II rule sets. The auditor adjusts its rules to the chosen standard.
- One-click Accessibility Statement generator. A complete, properly structured draft page covering conformance status, feedback channels, known limitations, assessment approach, and formal-complaint rights.
- Site-wide accessibility report. Server-side scan of all published pages and posts.
- Code-level improvements. Skip-navigation links (2.4.1), enforced visible focus indicators (2.4.7), and
<html lang>enforcement (3.1.1). - Accessibility widgets for Elementor. Statement, issue-report contact form, conformance checklist, and accessibility status badge.
What the automated scan checks
While you edit a page (Elementor or the block editor), the live scan checks:
- Images missing alt text, and alt text that looks like a file name instead of a description (1.1.1).
- Heading structure: skipped levels and empty headings (1.3.1 / 2.4.6).
- Links and buttons with no accessible name, and vague link text like “click here” (2.4.4 / 4.1.2).
- Form fields with no label, and missing input-purpose autocomplete on contact fields (1.3.1 / 1.3.5).
- Data tables with no header cells or caption, with layout tables recognized and handled separately (1.3.1).
- Mouse-only event handlers and click handlers on non-interactive elements, which keyboard users cannot reach (2.1.1).
- Color contrast of text against its real background (1.4.3).
- In-text links set apart by color alone, with no underline or other cue (1.4.1).
- Required fields whose visible label does not say they are required (3.3.2), and form status messages that screen readers will not announce (4.1.3).
- Buttons and links whose visible text is missing from their accessible name, which breaks voice control (2.5.3).
- Links that open a new window without warning, iframes with no title (4.1.2), very long alt text that may be an image of text (1.4.5), videos without caption tracks, embedded video to verify (1.2.2), and media that autoplays with sound (1.4.2).
- Duplicate IDs (4.1.1). On WCAG 2.2: tap-target size (2.5.8), focus not obscured (2.4.11), and dragging alternatives (2.5.7).
- Keyboard reachability and tab-order signals (2.1.1 / 2.4.3), raised as “verify this” advisories.
The site-wide report scans every published page, post, and uploaded document on the server:
- Page title (2.4.2), site language (3.1.1), viewport zoom blocking (1.4.4), timed refresh or redirect (2.2.1), and a skip link or main landmark (2.4.1), plus the structural checks above that can be read from the page markup.
- PDF and Word files in the Media Library: tagging, language, a title that displays, a real text layer, heading structure, image alt text, and table headers.
What still needs a human
Automated testing reliably catches roughly 30 to 50% of WCAG success criteria. The rest need a person, and this plugin is built to tell you plainly what it could not check for you, so nothing gets mistaken for a clean bill of health:
- Whether alt text and captions are actually accurate and meaningful, not only present.
- Keyboard operation end to end: tab through the published page, operate every control, and confirm the focus order makes sense.
- A screen-reader pass: NVDA on Windows, VoiceOver on macOS, or Orca on Linux.
- Visible focus styles in practice (2.4.7). The plugin can add a global focus style for you under Settings, but it does not grade your theme’s own focus styling.
- Color or shape used as the only way to convey meaning beyond links, for example “required fields are red,” or status shown by color alone.
- Captions and transcripts for video and audio. For YouTube embeds, turn captions on and review the auto-generated text for accuracy, or upload your own.
- Meaning, reading order, and page context that only a person can judge.
Important disclaimer
This plugin assists with building and maintaining accessible content. It does not by itself guarantee or certify legal WCAG, ADA, or Section 508 conformance, and no tool can. Pair it with the manual checks above.
Screenshots






Installation
- Upload the
complyclear-accessibilityfolder to/wp-content/plugins/, or install the ZIP via Plugins Add New Upload Plugin. - Activate the plugin through the Plugins menu.
- Go to Settings ComplyClear to choose your WCAG standard and enter your agency details.
- (Optional) Edit a page in Elementor and open the “Accessibility” tab on the right edge of the editor panel.
FAQ
-
Does this make my site ADA compliant?
-
No tool can do that alone. Compliance requires both automated and manual testing plus human judgement. This plugin gives you a prioritized, standards-mapped to-do list and helps you fix issues in your real content.
-
What page builders are supported?
-
The real-time editor panel, with click-to-navigate highlighting and plain-language guidance, works in both the Elementor editor and the WordPress block editor today. Support for more builders is being considered and will be prioritized by demand, so tell us which one your team uses.
-
Does it work without a page builder?
-
Yes. The site-wide accessibility report with per-page findings, the PDF and Word document checks, the accessibility statement generator, and the code-level improvements (skip-to-content links, visible focus outlines, and the page language attribute) all run on any theme, with or without a page builder. Only the in-editor panel is builder-specific.
-
What’s the difference between WCAG 2.1 and 2.2?
-
2.2 is the current W3C standard and adds criteria such as Target Size (2.5.8) and Focus Not Obscured (2.4.11), while removing the deprecated 4.1.1 Parsing criterion. The plugin defaults to 2.2 AA because it is good practice, not because it is required of you. 2.1 AA is the technical standard the DOJ Title II rule sets, so choose it if you want to audit against that minimum on its own, or if a contract or policy names it.
-
Is this an accessibility overlay?
-
No, and that is deliberate. Overlays are widely criticized and have been the subject of numerous lawsuits. This plugin helps you remediate the underlying markup instead.
-
Where is the data stored?
-
Audit results are computed on demand and cached transiently. No content is sent to any third-party service.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“ComplyClear Accessibility” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “ComplyClear Accessibility” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.7
- The site-wide scan now finishes on its own. Before, a scan of more than fifteen pages stopped part way and only continued if you clicked again in the same browser session, so a refresh sent it back to the start. It now runs through to the end, and a scan interrupted by a page reload picks up where it left off.
- The scan now covers your custom content types, not just posts and pages. Sites using types like events, meetings, agendas or staff profiles were being told coverage was complete while that content had never been looked at. Reports and exports now name which content types were checked and which were not.
- Findings are described by what you need to do about them. Where the plugin used to say “errors and warnings”, it now sorts everything into Confirmed problems, Likely problems, Manual checks and Suggestions, with a one-line explanation of each. The old wording described how sure the checker was, which is not the same question as what lands on your desk.
- The report opens with a ring for each of those four, so a page with nothing confirmed but twenty manual checks no longer looks finished at a glance.
- New installs now default to WCAG 2.2 AA, described as recommended practice rather than a legal requirement. WCAG 2.1 AA is still available and is the standard the DOJ Title II rule sets. Existing sites keep whichever standard they were already using.
- The editor panels no longer show a green all clear over content they could not read. Embeds, shortcodes, raw HTML blocks and similar are named as not checked, because a clean result over content nobody looked at is not a clean result.
- An image with no alt text is no longer reported as having a file name for alt text. The panel now reads the block’s own setting instead of whatever the editor happened to render.
- The report now says when a scan cannot support formal evidence. If your server cannot fetch its own pages, the scan still gives useful guidance, but it will say plainly that it cannot back an Accessibility Conformance Report or an export, instead of leaving you to discover that later.
- Pages whose fetch failed for a temporary reason are retried automatically in the background, so a busy server no longer costs you formal coverage.
- The accessibility statement no longer states things about your organization that the plugin cannot know. Staff training, procurement practice, testing you have performed, response times and the conformance claim itself are now marked as examples for you to keep, edit or delete, with an explanation at the top of the page.
- Corrected how Section 508 and ADA Title II are described. They are different laws covering different bodies, and the statement was presenting them as one requirement covering everyone.
- ComplyClear now has its own menu item instead of living under Settings. The Settings link still works.
- Jumping to a block from the block editor panel now opens that block’s settings, so the field you need is already in front of you.
- Page titles with an ampersand or curly quotes now display correctly in the report instead of showing the underlying character codes.
- Counts now read correctly when there is only one of something, and the report and exports now agree on what “a page with issues” means.
- Fixed a fault that made the block editor go blank as soon as the ComplyClear panel was opened. It affected every page, not just the panel.
- Fixed the ComplyClear admin pages loading without their styling or controls after the menu moved. The report would not display results and the scan buttons did nothing.
- New check: a button with no name a screen reader can announce. Links were already checked for this; buttons were not.
- New check: a page with headings but no H1. This is flagged as a suggestion rather than a failure, because no WCAG criterion requires an H1, but other checkers report it and now so does this one.
- A page using reCAPTCHA or hCaptcha is now flagged for review. It was being missed entirely, while gentler checks like Turnstile were reported.
- Advice about a skipped heading now names the levels actually found on your page, on the public scanner as well as in the plugin.
- Advice about an unlabelled form field now tells you where to set the label in the builder you are using, instead of describing HTML you cannot edit.
- Exports now use the same four categories as the rest of the plugin. The issue table in the printed report and the CSV were still saying Error, Warning and Notice.
- Every report, export and conformance draft now states that color contrast was not measured, because those are built from the HTML your server returns. The editor panels, which read the rendered page, say that it was.
- Summaries no longer roll Likely problems and Manual checks into one count, and now read correctly when there is exactly one of something.
- The conformance draft now describes one body of evidence per row. A criterion with five confirmed failures now says five pages, counting only the pages those failures were found on.
- Color contrast is checked again. A rule that was supposed to replace the old contrast check had been switched off by mistake since 1.0.6, so pages with hard-to-read inline colors were reported as having nothing to look at. It comes back as a manual check, because a scan of your server’s HTML cannot see colors set in a stylesheet and should not pretend otherwise.
- Small tap targets on icon-only links are flagged for review again, on sites set to WCAG 2.2. This was switched off by the same mistake.
- The Accessibility Report now shows your last completed scan when you come back to the page, instead of appearing empty until you run a new one.
- A measured color contrast failure is now reported as a confirmed problem. The editor reads the real colors from the page, so when the numbers fail there is nothing left to confirm. Cases the rules exempt, like disabled buttons and logos, stay listed as likely problems with a note saying why.
- Advice for an unlabelled form field now names the Label setting in the editor you are using, in the finding itself as well as the fix.
- Advice for tables now talks about tables. Two table findings were showing general advice meant for other kinds of content.
- Findings keep their identity between scans, so a card you expanded no longer swaps its advice for another finding’s after the page rescans itself.
- The Documents tab now uses the same four categories as the rest of the plugin, and counts of one read correctly.
- The Accessibility Report now shows whichever scan ran most recently, whether you started it yourself or it ran on a schedule. Before, a scheduled scan could leave the report describing an older manual scan while showing the newer results.
- If pages have been re-checked since the scan you are looking at finished, the report says so rather than quietly mixing them in.
- The report is tied to your last full scan. The printed and CSV exports and the conformance draft describe every published page as it stands right now, and each of them says so, because after re-checking a single page those are different questions with different answers. Every published page stays counted in the exports and the draft even when its last check failed, so a coverage gap is always visible rather than quietly dropped.
- The editor panels now show all four categories at once, including any that are empty. Manual checks in particular used to disappear when a page happened to have none, which made it look like an occasional extra rather than something always waiting for a person.
- Each finding now carries its category, criterion number, level and criterion name on one line, and the block editor panel names the criterion and level it was previously unable to show at all.
- The Elementor panel button has moved off the middle of the page, where it sat over the design you were editing. Its counters now name what they count, and every category a scan finds is visible on the button instead of only two of them.
- The Elementor panel now narrows on a small screen instead of covering the page it is describing.
- The explanations of what was and was not checked in the editor panels now sit behind a heading you can open, rather than taking up permanent room.
- The editor panel explains why one measured contrast failure is a confirmed problem and another is a likely problem. The difference is a rule exception that cannot be settled automatically, and the panel now says so instead of appearing inconsistent.
- The Auto-scan checkbox now matches the panel it sits in. It was drawn by the operating system, so on a dark panel it could appear as a bright square that read as a color swatch rather than a checkbox.
- Opening a block’s settings from the block editor panel now offers a way back to the audit, and your results are kept while you are away.
- Saving alt text from the Elementor panel now tells you first that it saves to the Media Library, applies wherever that image appears, and is not part of the page’s own save or undo. It checks whether the change could be undone and tells you before you save, instead of promising an Undo and only afterwards admitting it was not possible. When it is possible, the Undo stays in the panel until you use it or dismiss it, so live auto-scan refreshing the results no longer takes it away before you can reach it.
- Adding a table caption from the block editor panel now clears the caption finding in the same session. The caption was being saved correctly all along, but the panel could not see it in the editor canvas and went on reporting the same problem, which left no way to tell a working fix from a broken one.
- Spelling is now consistent American English throughout, matching the rest of the plugin’s wording.
1.0.6
- Accuracy pass. Several checks were reporting problems that were not actually there, and a few were reported with more certainty than a page scan can support. Findings are now labelled by how well they can be established, so a real failure is never confused with something that just needs a look.
- Every finding now says whether it is a confirmed failure, something that needs review, a manual check, or advisory guidance. Confirmed means the page itself shows the problem. Nothing else is presented as a failure.
- Removed checks that were applying the wrong standard: a CAPTCHA on an ordinary page is not an Accessible Authentication failure, a page without a help link is not a Consistent Help failure, and a form with several fields is not evidence of Redundant Entry.
- A missing table caption and an unwarned new-window link are now advisory notes rather than failures. Both are recommended techniques, not requirements.
- Color contrast is now a manual check. The previous check guessed at the background when it could not see one, which produced false failures on dark sections and quietly skipped light text entirely. It now tells you what to check instead of guessing.
- Tap target size is now a manual check. It was estimating from link text length rather than the rendered size, which is not something a page scan can measure.
- Decorative images marked with role=”presentation” or aria-hidden are no longer reported as missing alt text. An image with empty alt that is the only content of a link is still reported, because that link has no name.
- Hidden form fields, including spam honeypots, are no longer reported as unlabelled. They are not shown to anyone.
- Timed refresh: a redirect with no delay is no longer flagged, and very long delays are exempt as the standard intends.
- Fixed a missed failure: a link whose aria-labelledby pointed at an element that does not exist was treated as if it had a name. That is a real problem for screen reader users and was being skipped.
- The numeric score has been removed for now, since it was calculated from the checks corrected above. Findings and coverage are shown instead.
1.0.5
- Fixed the “Report an Issue” contact form in the accessibility widget, which could not submit. Reports now send properly, show a confirmation message in place, and work even with JavaScript turned off. If your site shows this widget with the contact form, please update.
- Vague link text such as “Read more” is no longer flagged when the link has a descriptive accessible name from aria-label, aria-labelledby, or a title attribute. This matches how screen readers announce the link and how the in-editor check already judged it, so the site report and the editor now agree.
- Hardened the PDF document scanner against malformed files: a damaged or crafted PDF can no longer crash the media uploader, and files that cannot be read are now reported honestly as “could not be checked” instead of failing silently.
- PDFs saved with incremental updates are no longer misread as scanned, image-only documents.
- Code snippets in the site-wide report now display correctly instead of showing raw HTML entity codes.
- Word (.docx) documents are now scanned with the same safeguards as PDFs, and unusually large or highly compressed files are handled gracefully instead of straining the server.
- The plugin no longer adds its own viewport tag, which could duplicate the one your theme already sets. Skip links now hide automatically when their target is not present in the theme, so a visitor never lands on a broken skip link.
- The Documents report and the Media Library accessibility column are now more accurate. A file that changed after it was scanned, or whose type no longer matches, is shown as needing a rescan instead of keeping an old result.
- Very large or unusually complex pages now report as incomplete with guidance, rather than returning a partial score, so a page that could not be fully checked is never mistaken for a clean pass.
- Additional security hardening in document parsing and the Elementor editor preview.
1.0.4
- Fixed a false contrast error in the block editor. Text placed over a Cover block or a page-builder color overlay was being measured against the wrong background and could be reported as failing when it was fine. The editor now reads the actual color behind the text, so white text on a colored hero passes as it should. Genuine low-contrast text is still caught.
1.0.3
- Fewer false positives on tables used for visual layout. A table with no header cells and no caption is usually a layout table, so instead of asking you to add headers and a caption (the wrong fix for layout), the tool now raises a single advisory to confirm it and, if it is layout, add role=”presentation”. Real data tables are still checked for headers and a caption.
- New keyboard checks: elements that respond only to the mouse (a hover handler with no keyboard equivalent) and click handlers placed on something that is not a button or link, both of which leave keyboard users stuck (2.1.1).
- Links injected by a CDN such as Cloudflare (paths under /cdn-cgi/) are no longer flagged, since they are not part of your source and you cannot edit them.
- Detection results were cross-checked against axe-core and WAVE on a standard test page to keep this tool consistent with the checkers people already use.
1.0.2
- Six new detections, checked in the editors and in the site-wide report: form status messages that screen readers will not announce (4.1.3), buttons and links whose visible text is missing from their accessible name, which breaks voice control (2.5.3), media that autoplays with sound and no controls (1.4.2), pages that refresh or redirect themselves on a timer (2.2.1), required fields whose label does not say they are required (3.3.2), and pages with no skip link or main landmark (2.4.1).
- The editor panel now also checks what the site report already covered, so the two never disagree: very long alt text that may be an image of text (1.4.5), iframes with no title (4.1.2), links that open a new window without warning (4.1.2), and videos without caption tracks (1.2.2).
- Fewer false flags: a muted background video with no controls is no longer asked for captions, and the new name matching ignores punctuation and arrows so a “Read more” link with a longer aria-label passes.
- Verified against WordPress 7.0.1 in both editors.
1.0.1
- Fewer false positives on page-builder layouts. A plain section with no accessible name is no longer flagged as an unlabeled landmark. Builders like Elementor wrap content in many sections, and an unnamed section is not announced as a landmark, so it does not belong in that check. Multiple navigation or complementary regions without unique labels are still flagged.
- Clearer contrast results for text over background images. When a solid color overlay sits over the image, the tool now measures the real contrast against it instead of asking for a manual review. The cases that genuinely cannot be measured are grouped into a single advisory rather than one warning per element.
- The focus-obscured check (WCAG 2.4.11) no longer flags small corner widgets such as the reCAPTCHA badge, chat bubbles, or back-to-top buttons. It now looks only at wide sticky bars that could actually cover a focused element.
- Clearer wording on the autocomplete suggestion for email and phone fields, explaining that the autocomplete attribute is separate from the field type and what it does for people who rely on auto-fill.
- More accurate contrast on tinted sections. A translucent background color (such as a light color overlay on a section) is now blended with the background behind it before measuring, instead of being read as a solid color. This removes false contrast failures on text that sits on a subtle tint.
1.0.0
First public release. ComplyClear Accessibility audits your content against WCAG 2.1 and 2.2 AA and Section 508, in the Elementor and block editors and across your whole site, with plain-language fixes and an accessibility statement generator.
* One detection engine for both editors, environment-aware so each check runs only where it reads reliably.
* New checks: alt text that looks like a file name (1.1.1) and in-text links distinguished by color alone (1.4.1).
* Accuracy: image and logo links now take their accessible name from the image they contain, and images explicitly marked decorative no longer raise an empty-alt advisory.
* The readme now spells out what the scan checks and what still needs a human (alt and caption accuracy, end-to-end keyboard, screen-reader testing, real focus styles).
0.5.2
- The admin bar now shows a “ComplyClear Accessibility” menu that links to each settings section (Report, Documents, Statement, Settings), and it works on the block editor and on sites without a page builder.
- Settings tabs are now extensible, so the Pro add-on can add its own License tab.
- Renamed the report section to “Accessibility Report.”
0.5.1
- The block editor panel now scans automatically the first time you open it, so issues appear without clicking Run scan first. This matches the Elementor panel.
0.5.0
- Both editor panels now share one accessibility engine, so the Elementor and block editor audits apply the same checks wherever they can be measured reliably. The block editor gains checks it did not run before, including empty headings, missing form autocomplete, tables marked as presentational, duplicate landmark labels, and tap-target size on WCAG 2.2.
- The full audit, click-to-locate, and plain-language fix guidance remain free in both editors. One-click fixes and live auto-scan are moving to the upcoming Pro add-on.
- A manual rescan now clears the list while it re-checks, so it is clear the scan has started over.
0.4.2
- Elementor panel: the audit tab now shows a separate amber count for warnings alongside the red error count, so a page with only warnings is no longer mistaken for a clean one at a glance.
- Elementor panel: fixed the audit tab lingering over the canvas after the panel was dragged loose. While the panel floats it carries its own close button, and the tab returns when the panel is closed or re-docked.
0.4.1
- Block editor panel: each image with empty alt text now has its own “scroll to block” link instead of one combined note.
- Block editor panel: text placed over a background image is now flagged for manual contrast review, rather than skipped, since its contrast cannot be measured automatically.
- Block editor panel: scan results are kept when you switch to another sidebar (such as Settings) and back, so you no longer have to re-run the scan.
0.4.0
- New: real-time accessibility panel in the block editor (Gutenberg). A pinnable sidebar scans the page you are editing, lists issues with plain-language guidance, and scrolls straight to the block that needs attention. It works alongside the existing Elementor panel and on sites that do not use a page builder.
0.3.0
- Rebranded to ComplyClear Accessibility. The plugin, settings, REST API, and assets now use the ComplyClear name and the complyclear-accessibility slug. Existing settings carry over automatically. References to the WCAG standard itself are unchanged.
0.2.1
- Documents are now scanned automatically the moment they are uploaded, so problems surface right away.
- The Media Library list view shows an Accessibility column for each PDF and Word file (errors, warnings, or passed), linking to the Documents report.
0.2.0
- New: Document accessibility scanning. A “Documents” tab in the Compliance area scans the PDF and Word files in your Media Library and reports issues with plain-language fixes. Posted documents fall under the same ADA Title II obligation as web pages, and nothing else in WordPress surfaces these problems.
- PDF checks: tagging, document language, a title that displays, a real text layer versus a scanned image, bookmarks on long files, and encryption. Reads real-world PDFs correctly, including compressed cross-reference and object streams.
- Word (.docx) checks: language, title, heading styles for structure, image alternative text, and table header rows. Scanning the source is where most problems start and where they are fixable, and a well-structured source also exports a clean PDF.
- This is detection only and is part of the free feature set. It flags issues and explains how to fix them at the source; it does not change your files.
0.1.17
- Elementor’s color picker and other control popovers now appear above the audit panel instead of behind it. The panel sits below Elementor’s popup layer while staying above the canvas, so picking a color over the panel area works normally.
0.1.16
- Versioning note: ahead of the public 1.0.0 launch the plugin adopted 0.x pre-release version numbers.
- The audit panel now sits just below the editor’s top bar, matching the Elements panel, instead of overlapping it.