{"id":318591,"date":"2026-05-25T12:21:18","date_gmt":"2026-05-25T12:21:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ninja-ai-accessibility\/"},"modified":"2026-05-25T12:21:05","modified_gmt":"2026-05-25T12:21:05","slug":"ninja-ai-accessibility","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ninja-ai-accessibility\/","author":20627914,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"NINJA AI Accessibility","header_author":"ninja.si","header_description":"Audit your content for WCAG 2.1 \/ European Accessibility Act issues \u2014 missing alt text, broken heading order, vague link text, untitled iframes, header-less tables \u2014 scored per page with a prioritized fix list. Honest checks, no overlay. The Pro add-on adds AI-assisted fixes and ongoing monitoring.","assets_banners_color":"fbf8f1","last_updated":"2026-05-25 12:21:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ninja.si\/pro","header_author_uri":"https:\/\/ninja.si","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"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":"sstucl","date":"2026-05-25 12:21:05"}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3547579,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3547579,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3547579,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3547579,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3547579,"resolution":"1","location":"assets","locale":"","width":2380,"height":1500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3547579,"resolution":"2","location":"assets","locale":"","width":2380,"height":1500},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3547579,"resolution":"3","location":"assets","locale":"","width":2380,"height":1500}},"screenshots":{"1":"Overview \u2014 your accessibility score, EAA readiness (accessibility statement + document language) and a plain \"why this matters\" with an honest disclaimer.","2":"Overview \u2014 per-check WCAG coverage (alt text, link purpose, heading structure, frame titles, table headers) and your worst-scoring pages.","3":"Audit \u2014 every published post and page scored 0\u2013100, with WCAG-tagged issues and a link straight to the editor."}},"plugin_section":[],"plugin_tags":[1953,2682,17214,241427,1956],"plugin_category":[34],"plugin_contributors":[264287],"plugin_business_model":[],"class_list":["post-318591","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-ada","plugin_tags-alt-text","plugin_tags-eaa","plugin_tags-wcag","plugin_category-accessibility","plugin_contributors-sstucl","plugin_committers-sstucl"],"banners":{"banner":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/banner-772x250.png?rev=3547579","banner_2x":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/banner-1544x500.png?rev=3547579","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/icon-128x128.png?rev=3547579","icon_2x":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/icon-256x256.png?rev=3547579","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/screenshot-1.png?rev=3547579","caption":"Overview \u2014 your accessibility score, EAA readiness (accessibility statement + document language) and a plain \"why this matters\" with an honest disclaimer."},{"src":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/screenshot-2.png?rev=3547579","caption":"Overview \u2014 per-check WCAG coverage (alt text, link purpose, heading structure, frame titles, table headers) and your worst-scoring pages."},{"src":"https:\/\/ps.w.org\/ninja-ai-accessibility\/assets\/screenshot-3.png?rev=3547579","caption":"Audit \u2014 every published post and page scored 0\u2013100, with WCAG-tagged issues and a link straight to the editor."}],"raw_content":"<!--section=description-->\n<p>The European Accessibility Act (in force since June 2025) and WCAG 2.1 AA make\naccessibility a legal requirement, not a nice-to-have. NINJA AI Accessibility\nscans every published post and page for the barriers you can actually fix and\nscores each one 0\u2013100, worst-first.<\/p>\n\n<p><strong>This is not an accessibility \"overlay.\"<\/strong> Overlay widgets don't create\ncompliance \u2014 courts have repeatedly ruled against them, and in 2025 a large\nshare of accessibility lawsuits targeted sites that had one installed. We don't\nhide problems behind a toolbar; we find the real ones in your content and tell\nyou how to fix them.<\/p>\n\n<p><strong>What it checks (per post\/page, scored 0\u2013100):<\/strong><\/p>\n\n<ul>\n<li><strong>Image alt text<\/strong> (WCAG 1.1.1) \u2014 flags images with no <code>alt<\/code> attribute. Valid\ndecorative images (<code>alt=\"\"<\/code>) are correctly left alone, so you don't get\nfalse positives.<\/li>\n<li><strong>Link purpose<\/strong> (WCAG 2.4.4) \u2014 empty links and vague text like \"click here\"\nor \"read more\" that tell a screen-reader user nothing out of context.<\/li>\n<li><strong>Heading structure<\/strong> (WCAG 1.3.1) \u2014 skipped heading levels and multiple H1s\nthat break the document outline.<\/li>\n<li><strong>Frame titles<\/strong> (WCAG 4.1.2) \u2014 embedded iframes (video, maps) with no title.<\/li>\n<li><strong>Table headers<\/strong> (WCAG 1.3.1) \u2014 data tables missing <code>&lt;th&gt;<\/code> header cells.<\/li>\n<\/ul>\n\n<p><strong>EAA readiness panel:<\/strong> checks for a published accessibility statement and a\ndeclared document language.<\/p>\n\n<p><strong>Honest about its limits.<\/strong> Some criteria \u2014 colour contrast, keyboard focus\norder, theme landmarks \u2014 depend on rendered styles and can't be judged from\ncontent alone, so we never claim to. Use this to fix what's findable and pair\nit with a manual review for full WCAG 2.1 AA \/ EAA conformance. The free plugin\nruns entirely on your site and makes <strong>no external requests<\/strong>.<\/p>\n\n<h3>NINJA AI Accessibility Pro (optional add-on)<\/h3>\n\n<p>NINJA AI Accessibility Pro (from https:\/\/ninja.si \u2014 not the WordPress.org\ndirectory) adds one-click, AI-assisted remediation (e.g. generating descriptive\nalt text from each image) and <strong>Accessibility Watch<\/strong> \u2014 it re-scans on a\nschedule and emails you when a new publish introduces a barrier or your score\ndrops. Pro is the only part that contacts ninja.si, and only after you register.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin go to <strong>Plugins \u2192 Add New<\/strong>, search for \"NINJA AI Accessibility\" and click <strong>Install Now<\/strong> \u2014 or upload the ZIP under <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Click <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Accessibility<\/strong> in the admin menu. The Overview tab shows your site score and EAA readiness; the Audit tab scores every post and page with a prioritized issue list and links straight to the editor.<\/li>\n<\/ol>\n\n<p>No account, API key or external service is required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20an%20accessibility%20overlay%3F\"><h3>Is this an accessibility overlay?<\/h3><\/dt>\n<dd><p>No \u2014 and that's the point. Overlays don't make a site compliant and have lost in\ncourt. This plugin audits your real content so you can fix the underlying issues.<\/p><\/dd>\n<dt id=\"does%20it%20make%20my%20site%20wcag%2Feaa%20compliant%20on%20its%20own%3F\"><h3>Does it make my site WCAG\/EAA compliant on its own?<\/h3><\/dt>\n<dd><p>No plugin can. It finds and helps you fix the content-level barriers it can\nreliably detect; full conformance also needs a manual review (contrast, keyboard\nuse, focus order). We're explicit about what we can and can't check.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20send%20data%20anywhere%3F\"><h3>Does the free plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. All scanning happens locally in your WordPress install.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: WCAG 2.1 content audit (alt text, link purpose, heading\nstructure, frame titles, table headers), 0\u2013100 scoring, EAA readiness panel,\nand a prioritized per-page audit.<\/li>\n<\/ul>","raw_excerpt":"Audit your content for WCAG \/ EU Accessibility Act issues \u2014 alt text, headings, links, frames, tables \u2014 scored with a fix list. No overlay, no fluff.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318591"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sstucl"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318591"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318591"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318591"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318591"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318591"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}