{"id":323251,"date":"2026-06-18T11:55:22","date_gmt":"2026-06-18T11:55:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/reala11y\/"},"modified":"2026-06-29T14:00:24","modified_gmt":"2026-06-29T14:00:24","slug":"reala11y","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/reala11y\/","author":23512574,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"reala11y","header_author":"reala11y","header_description":"Real accessibility for real WordPress sites. Scans for WCAG 2.2 AA issues and applies safe, code-level fixes. Pairs automated scanning with manual review.","assets_banners_color":"fdfbf7","last_updated":"2026-06-29 14:00:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/ncp\/payment\/L8J9CJPTJ6R8S","header_plugin_uri":"https:\/\/reala11y.com","header_author_uri":"https:\/\/profiles.wordpress.org\/wkh0000\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":165,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wkh0000","date":"2026-06-18 11:54:40"},"1.0.1":{"tag":"1.0.1","author":"wkh0000","date":"2026-06-18 13:09:49"},"1.1.0":{"tag":"1.1.0","author":"wkh0000","date":"2026-06-19 15:32:04"},"1.2.0":{"tag":"1.2.0","author":"wkh0000","date":"2026-06-24 12:42:02"},"1.2.1":{"tag":"1.2.1","author":"wkh0000","date":"2026-06-29 14:00:24"}},"upgrade_notice":{"1.2.0":"<p>Adds one-click &quot;Scan whole site&quot; and &quot;Fix whole site&quot; actions, scheduled recurring scans, bulk alt-text from the Media Library, and six new accessibility checks (22 total). Every fix stays reversible and Safe-Mode gated.<\/p>","1.1.0":"<p>Adds inline one-click fixes (alt text, link text, labels, colour contrast, icon-control names, heading levels) and an optional render-time theme-output fix layer that is off by default.<\/p>","1.0.1":"<p>Documentation and listing update: real admin screenshots, clearer copy, and project links. No code changes.<\/p>","1.0.0":"<p>First public release: 16-rule scanner, reversible auto-fix engine with Safe Mode, author-only Inspect-on-page overlay, BYOK AI suite, and compliance documents.<\/p>","0.6.0":"<p>First public release candidate: scanner, auto-fix engine, BYOK AI suite, and compliance documents.<\/p>","0.0.1":"<p>First development release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3577133,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3577133,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3577133,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3577133,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"reala11y\/accessibility-statement":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"reala11y\/accessibility-statement","version":"0.0.1","title":"Accessibility statement","category":"widgets","icon":"universal-access","description":"Embeds your generated accessibility statement (a reviewable template).","keywords":["accessibility","a11y","statement","wcag"],"textdomain":"reala11y","supports":{"html":false,"multiple":false},"editorScript":"file:.\/editor.js"}},"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3577231,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3577231,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3577231,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3577231,"resolution":"4","location":"assets","locale":"","width":1280,"height":720},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3577231,"resolution":"5","location":"assets","locale":"","width":1280,"height":720},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3577231,"resolution":"6","location":"assets","locale":"","width":1280,"height":720},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3577231,"resolution":"7","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"The reala11y dashboard \u2014 a plain-language overview of accessibility problems, items needing review, and passed checks (no single \"compliance score\").","2":"The Scans screen \u2014 run an accessibility scan on any post, page, or same-site URL, and review your scan history.","3":"The Issues list \u2014 each WCAG finding grouped by severity, with its success criterion and a code snippet, plus one-click dismiss.","4":"The Fixes screen \u2014 apply safe, code-level fixes to your content; every change is logged and reversible with one-click undo.","5":"AI authoring tools \u2014 bring your own OpenAI, Anthropic, or Google Gemini key (stored encrypted) to generate alt-text suggestions you review before applying. Free for everyone.","6":"The Tools screen \u2014 a built-in colour-contrast tester checks any foreground\/background pair against WCAG AA and AAA for normal and large text.","7":"The accessibility statement and reports \u2014 generate a customizable statement template, VPAT starter, and compliance report to document your remediation work."}},"plugin_section":[],"plugin_tags":[1953,209467,2682,17214,1956],"plugin_category":[34],"plugin_contributors":[267702],"plugin_business_model":[],"class_list":["post-323251","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-accessibility-checker","plugin_tags-ada","plugin_tags-alt-text","plugin_tags-wcag","plugin_category-accessibility","plugin_contributors-wkh0000","plugin_committers-wkh0000"],"banners":{"banner":"https:\/\/ps.w.org\/reala11y\/assets\/banner-772x250.png?rev=3577133","banner_2x":"https:\/\/ps.w.org\/reala11y\/assets\/banner-1544x500.png?rev=3577133","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/reala11y\/assets\/icon-128x128.png?rev=3577133","icon_2x":"https:\/\/ps.w.org\/reala11y\/assets\/icon-256x256.png?rev=3577133","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-1.png?rev=3577231","caption":"The reala11y dashboard \u2014 a plain-language overview of accessibility problems, items needing review, and passed checks (no single \"compliance score\")."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-2.png?rev=3577231","caption":"The Scans screen \u2014 run an accessibility scan on any post, page, or same-site URL, and review your scan history."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-3.png?rev=3577231","caption":"The Issues list \u2014 each WCAG finding grouped by severity, with its success criterion and a code snippet, plus one-click dismiss."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-4.png?rev=3577231","caption":"The Fixes screen \u2014 apply safe, code-level fixes to your content; every change is logged and reversible with one-click undo."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-5.png?rev=3577231","caption":"AI authoring tools \u2014 bring your own OpenAI, Anthropic, or Google Gemini key (stored encrypted) to generate alt-text suggestions you review before applying. Free for everyone."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-6.png?rev=3577231","caption":"The Tools screen \u2014 a built-in colour-contrast tester checks any foreground\/background pair against WCAG AA and AAA for normal and large text."},{"src":"https:\/\/ps.w.org\/reala11y\/assets\/screenshot-7.png?rev=3577231","caption":"The accessibility statement and reports \u2014 generate a customizable statement template, VPAT starter, and compliance report to document your remediation work."}],"raw_content":"<!--section=description-->\n<p>reala11y is a WordPress accessibility checker and scanner that helps your site move toward WCAG 2.2 AA conformance by scanning for common issues and applying safe, code-level fixes \u2014 skip links, focus outlines, language attributes, form labels, target-size, link purpose, and more. Unlike accessibility overlay widgets, reala11y modifies the underlying HTML so screen readers and keyboard users encounter the corrected page.<\/p>\n\n<h4>What reala11y does<\/h4>\n\n<ul>\n<li>Scans posts and pages against a WCAG 2.2 rule library.<\/li>\n<li>Applies safe, automated fixes at render time (per-rule on\/off, one-click rollback).<\/li>\n<li>Generates a customizable accessibility statement.<\/li>\n<li>Suggests image alt text with your own AI key (OpenAI, Anthropic, or Google Gemini) \u2014 you review every suggestion before it is applied.<\/li>\n<\/ul>\n\n<h4>What reala11y does NOT do<\/h4>\n\n<ul>\n<li>It does not guarantee WCAG, ADA, EAA, or Section 508 compliance. Automated tools detect approximately 30\u201340% of WCAG failures by criteria. Full conformance requires human review.<\/li>\n<li>It is not an overlay widget. The Federal Trade Commission's April 21, 2025 order against accessiBe affirmed that overlay claims of automatic WCAG conformance are not supportable.<\/li>\n<\/ul>\n\n<h4>External services<\/h4>\n\n<p>reala11y is self-contained and contacts third-party services only as described below, and only when the relevant feature is used.<\/p>\n\n<ul>\n<li><p>WordPress.org \u2014 used for plugin update checks, as for any plugin hosted here. No personal data is sent beyond the standard update request.<\/p><\/li>\n<li><p>AI providers \u2014 OpenAI, Anthropic, and Google Gemini (optional, bring-your-own-key). The AI authoring features (for example, alt-text suggestions) stay off until you enter your own API key for a provider and run a feature. When you run a feature, reala11y uses your key to send that provider the input you selected \u2014 for example, the URL of an image or a block of your post's text \u2014 together with a short instruction prompt. The response is shown to you for review and is never applied automatically. reala11y does not proxy or resell AI usage; the provider bills you directly. Remove a provider's key to disable it.<\/p>\n\n<ul>\n<li>OpenAI \u2014 Terms: https:\/\/openai.com\/policies\/terms-of-use\/ \u2014 Privacy: https:\/\/openai.com\/policies\/privacy-policy\/<\/li>\n<li>Anthropic \u2014 Terms: https:\/\/www.anthropic.com\/legal\/commercial-terms \u2014 Privacy: https:\/\/www.anthropic.com\/legal\/privacy<\/li>\n<li>Google Gemini \u2014 Terms: https:\/\/ai.google.dev\/gemini-api\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>This free build does not bundle Freemius or any licensing or analytics service. See our privacy policy at https:\/\/reala11y.com\/legal\/privacy.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>reala11y is open source (GPLv2 or later). The admin interface is written in React and TypeScript and bundled with Vite. The human-readable source for the compiled files in build\/admin\/ ships with the plugin under admin\/src\/. To rebuild it, run \"npm install\" and then \"npm run build\" in the plugin's admin\/ directory.<\/p>\n\n<h4>Why reala11y<\/h4>\n\n<ul>\n<li>Code-level remediation, not an overlay widget.<\/li>\n<li>WCAG 2.2 (including 2.5.8 Target Size and the focus criteria).<\/li>\n<li>Bring-your-own AI key \u2014 no surprise quotas, no resold tokens.<\/li>\n<li>Honest claims. We never tell you you're \"fully compliant.\"<\/li>\n<\/ul>\n\n<h4>Links<\/h4>\n\n<ul>\n<li>Website and documentation: https:\/\/reala11y.com<\/li>\n<li>How reala11y compares to overlay widgets: https:\/\/reala11y.com\/vs\/accessibe and https:\/\/reala11y.com\/vs\/userway<\/li>\n<li>Our own accessibility statement: https:\/\/reala11y.com\/accessibility-statement<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to \/wp-content\/plugins\/reala11y\/ or install via the Plugins screen.<\/li>\n<li>Activate \"reala11y\" from the Plugins screen.<\/li>\n<li>Go to \"reala11y\" in the WordPress admin to configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20make%20my%20site%20wcag%20compliant%3F\"><h3>Does this make my site WCAG compliant?<\/h3><\/dt>\n<dd><p>No tool can. reala11y identifies common WCAG issues and remediates a defined subset at the code level. Full conformance requires manual review and user testing.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%20for%20ai%20features%3F\"><h3>Do I need an API key for AI features?<\/h3><\/dt>\n<dd><p>Yes \u2014 bring your own OpenAI, Anthropic, or Google Gemini key. The AI authoring features then work in this free version at no extra charge from us; your provider bills you directly for what you use. reala11y never resells or proxies AI usage.<\/p><\/dd>\n<dt id=\"how%20does%20this%20compare%20to%20accessibility%20overlay%20widgets%3F\"><h3>How does this compare to accessibility overlay widgets?<\/h3><\/dt>\n<dd><p>Overlay widgets (e.g., accessiBe, UserWay) inject a floating JavaScript layer that does not modify the underlying HTML. Screen readers continue to see the original, unfixed page. The FTC fined accessiBe $1,000,000 on April 21, 2025 for claiming automated WCAG compliance. reala11y instead applies fixes to the actual HTML that browsers, screen readers, and crawlers see.<\/p><\/dd>\n<dt id=\"what%20wcag%20version%20do%20you%20cover%3F\"><h3>What WCAG version do you cover?<\/h3><\/dt>\n<dd><p>WCAG 2.2 AA. WCAG 2.2 became a W3C Recommendation on October 5, 2023.<\/p><\/dd>\n<dt id=\"is%20reala11y%20an%20alternative%20to%20accessibe%20or%20userway%3F\"><h3>Is reala11y an alternative to accessiBe or UserWay?<\/h3><\/dt>\n<dd><p>If you are looking for an accessiBe or UserWay alternative that fixes the underlying HTML instead of layering a JavaScript widget on top, reala11y is built for that. Overlay widgets leave the original page unchanged for screen readers; reala11y edits the actual code. As context, the FTC fined accessiBe $1,000,000 on April 21, 2025 over automated WCAG compliance claims.<\/p><\/dd>\n<dt id=\"can%20it%20generate%20alt%20text%20for%20my%20images%3F\"><h3>Can it generate alt text for my images?<\/h3><\/dt>\n<dd><p>Yes. The scanner flags images missing alt text (WCAG 1.1.1), and the bring-your-own-key AI tools can draft an alt-text suggestion using your own OpenAI, Anthropic, or Google Gemini key. Every suggestion is shown for your review and is never applied automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Add a \"Buy me a coffee\" support link on the Plugins screen and the plugin page (optional donation; no data sent).<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Scan your whole site in one click. A new \"Scan whole site\" button queues a scan for every published post and page, and you can schedule recurring scans (daily or weekly) so new content keeps getting checked automatically.<\/li>\n<li>Fix your whole site in one click. A new \"Fix whole site\" button applies every safe, code-level fix across all your published content at once. Each change is logged and reversible with one-click undo, and Safe Mode pauses every fix instantly.<\/li>\n<li>Bulk alt-text from the Media Library. See every image missing alt text in one place, then review and apply descriptions \u2014 optionally drafted with your own AI key \u2014 without hunting through individual posts.<\/li>\n<li>Six new checks, 22 in total: iframe titles, data-table headers, video captions, empty headings, list structure, and adjacent links to the same destination.<\/li>\n<li>Applied fixes now clear themselves from your list: when a fix resolves an issue, that issue leaves the active list automatically. Plus broader inline-fix coverage and an accessibility pass over the admin screens.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix issues inline, right where you see them. On a flagged issue (in the Issues list or the on-page checker) you can now type and apply the fix in one step: image alt text, descriptive text for vague links, accessible names for icon-only buttons and links, and form-field labels.<\/li>\n<li>Colour-contrast fixer: pick or auto-suggest an accessible text\/background pair and apply it, with a live contrast ratio and WCAG AA pass\/fail.<\/li>\n<li>Heading-level fixer: re-level a heading that skips a step, with an optional bring-your-own-key AI outline suggestion.<\/li>\n<li>New render-time theme-output fixes (off by default): a site-wide skip link, a visible keyboard-focus outline, a minimum target size, a main landmark, and restore-zoom. These inject real code (not an overlay) and are gated by Safe Mode; with the feature off, visitors get a byte-identical page.<\/li>\n<li>Every fix is reversible with one-click undo and is logged.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Listing refresh: real admin screenshots, clearer and more discoverable readme copy, and visible project links. No functional code changes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Scanner: 16 WCAG 2.2 rules across posts, pages, and rendered theme output.<\/li>\n<li>Auto-fix engine: safe, reversible, code-level fixes with per-fix toggles, one-click undo, and a Safe Mode kill-switch.<\/li>\n<li>Inspect on page: an author-only annotated overlay on the live site (logged-in editors only; visitors never see it).<\/li>\n<li>Dismiss issues with a structured reason and reopen them later.<\/li>\n<li>Colour Contrast Tester in the new Tools screen.<\/li>\n<li>BYOK AI authoring suite: bring your own OpenAI, Anthropic, or Google Gemini key \u2014 you pay your provider directly, never us.<\/li>\n<li>Accessibility statement generator, VPAT starter, and compliance report.<\/li>\n<li>Encrypted API-key storage and a clean uninstall.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Scanner: 12 WCAG 2.2 rules across posts, pages, and rendered theme output.<\/li>\n<li>Auto-fix engine: safe, reversible, code-level fixes with per-fix toggles and one-click undo.<\/li>\n<li>\"Scan this post\" button in the block-editor sidebar; scan any post or same-site URL from the Scans screen.<\/li>\n<li>BYOK AI authoring suite: bring your own OpenAI, Anthropic, or Google Gemini key \u2014 you pay your provider directly, never us.<\/li>\n<li>Accessibility statement generator, VPAT starter, and compliance report.<\/li>\n<li>Encrypted API-key storage and a clean uninstall.<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial scaffold.<\/li>\n<\/ul>","raw_excerpt":"Accessibility checker for WordPress: scan for WCAG 2.2 issues, auto-fix them in the code, and add AI alt text. A real fix, not an overlay widget.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323251"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wkh0000"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323251"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323251"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323251"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323251"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323251"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}