{"id":376741,"date":"2026-10-20T10:25:52","date_gmt":"2026-10-20T10:25:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/alevity-accessibility-scanner-by-ensoro\/"},"modified":"2026-10-20T10:25:32","modified_gmt":"2026-10-20T10:25:32","slug":"alevity-ensoro","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/alevity-ensoro\/","author":23509580,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Alevity \u2013 Accessibility Scanner by Ensoro","header_author":"Ensoro","header_description":"Real accessibility fixes for WordPress. WCAG 2.1 AA compliance via real browser scanning powered by Alevity.","assets_banners_color":"e9e4e3","last_updated":"2026-10-20 10:25:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/alevity.ensoro.io\/","header_author_uri":"https:\/\/github.com\/qoordo","rating":5,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":1,"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":"ensoro","date":"2026-10-20 10:25:32","revision":3756435}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3756435,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3756435,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3756435,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3756435,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3756435,"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":3756435,"resolution":"1","location":"assets","locale":"","width":6718,"height":4480},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3756435,"resolution":"2","location":"assets","locale":"","width":6718,"height":4480},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3756435,"resolution":"3","location":"assets","locale":"","width":4096,"height":2731},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3756435,"resolution":"4","location":"assets","locale":"","width":3685,"height":2456},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3756435,"resolution":"5","location":"assets","locale":"","width":3713,"height":2475},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3756435,"resolution":"6","location":"assets","locale":"","width":3713,"height":2477},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3756435,"resolution":"7","location":"assets","locale":"","width":3713,"height":2475}},"screenshots":{"1":"Scan Results \u2014 full breakdown of violations grouped by severity (critical, serious, moderate, minor).","2":"Dashboard \u2014 list of all pages with last scan score and status.","3":"Settings \u2014 configure WCAG rule sets for every scan.","4":"Inspector Widget \u2014 accessibility overlay on a live page with highlighted violations and fix guidance.","5":"Inspector Widget \u2014 expanded violation detail with WCAG criteria and the failing element highlighted on the page.","6":"Violation Detail \u2014 CSS selector, failing HTML, and one-click \"Mark as Fixed\" for each issue.","7":"Clean Scan \u2014 score of 100 with no issues once violations are resolved."}},"plugin_section":[],"plugin_tags":[1953,209467,34257,1956,287679],"plugin_category":[34],"plugin_contributors":[287680],"plugin_business_model":[],"class_list":["post-376741","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-accessibility-checker","plugin_tags-screen-reader","plugin_tags-wcag","plugin_tags-wcag-scanner","plugin_category-accessibility","plugin_contributors-ensoro","plugin_committers-ensoro"],"banners":{"banner":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/banner-772x250.png?rev=3756435","banner_2x":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/banner-1544x500.png?rev=3756435","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/icon.svg?rev=3756435","icon":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/icon.svg?rev=3756435","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-1.png?rev=3756435","caption":"Scan Results \u2014 full breakdown of violations grouped by severity (critical, serious, moderate, minor)."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-2.png?rev=3756435","caption":"Dashboard \u2014 list of all pages with last scan score and status."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-3.png?rev=3756435","caption":"Settings \u2014 configure WCAG rule sets for every scan."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-4.png?rev=3756435","caption":"Inspector Widget \u2014 accessibility overlay on a live page with highlighted violations and fix guidance."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-5.png?rev=3756435","caption":"Inspector Widget \u2014 expanded violation detail with WCAG criteria and the failing element highlighted on the page."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-6.png?rev=3756435","caption":"Violation Detail \u2014 CSS selector, failing HTML, and one-click \"Mark as Fixed\" for each issue."},{"src":"https:\/\/ps.w.org\/alevity-ensoro\/assets\/screenshot-7.png?rev=3756435","caption":"Clean Scan \u2014 score of 100 with no issues once violations are resolved."}],"raw_content":"<!--section=description-->\n<p><strong>Alevity<\/strong> is a real-browser accessibility scanner for WordPress. Unlike static analysis tools, Alevity opens your pages in a real Chromium browser and delivers accurate, reproducible WCAG 2.1\/2.2 AA results you can act on with confidence.<\/p>\n\n<p>Every accessibility violation is stored directly in your WordPress database, displayed in a clean admin dashboard, and highlighted visually on your live pages via the built-in Inspector widget.<\/p>\n\n<h4>Why Alevity?<\/h4>\n\n<p>Most WordPress accessibility plugins scan HTML source code. That misses issues caused by JavaScript rendering, lazy-loaded content, and dynamic components. Alevity uses a real browser session to open your page and scans what users actually see \u2014 giving you results you can trust.<\/p>\n\n<h4>Key Features<\/h4>\n\n<p><strong>Real Browser Scanning<\/strong>\nEach page is opened in a headless Chromium browser before scanning. Dynamic content, JavaScript-rendered elements, and lazy-loaded images are all included in the results.<\/p>\n\n<p><strong>Comprehensive Rule Coverage<\/strong>\nA battle-tested accessibility testing engine checks every page against WCAG 2.0, 2.1, and 2.2 at Levels A and AA.<\/p>\n\n<p><strong>WCAG 2.1 \/ 2.2 AA Coverage<\/strong>\nChoose which rule sets to enable: WCAG 2.0 A\/AA, WCAG 2.1 A\/AA, WCAG 2.2 AA, EN 301 549 (European Accessibility Act), Section 508, W3C ACT Rules, and Best Practices. Over 100 rules total.<\/p>\n\n<p><strong>Inspector Widget<\/strong>\nAfter scanning, a non-intrusive sidebar widget appears on your pages (visible only to administrators). It shows your accessibility score, lists all violations grouped by severity, and lets you highlight each issue directly on the page.<\/p>\n\n<p><strong>Visual Highlighting<\/strong>\nClick any violation in the Inspector to jump directly to the problematic element on the page. Numbered badges are overlaid on each affected element so you can see exactly what needs fixing.<\/p>\n\n<p><strong>Mark as Fixed<\/strong>\nMark individual violations as resolved directly from the Inspector or the admin dashboard. Scores update automatically as you fix issues.<\/p>\n\n<p><strong>Auto-Fix (Optional)<\/strong>\nEnable automatic fixes for common issues: missing alt text on images (filled from filename), empty aria-labels on icon buttons, and missing aria-labels on form inputs that have placeholder text.<\/p>\n\n<p><strong>Local Scan Comparison<\/strong>\nThe Inspector compares current DOM state against stored violations. If an element has changed since the last scan, the violation is automatically marked as likely fixed.<\/p>\n\n<p><strong>Supported Rule Sets<\/strong><\/p>\n\n<ul>\n<li><code>wcag2a<\/code> \u2014 WCAG 2.0 Level A (61 rules)<\/li>\n<li><code>wcag2aa<\/code> \u2014 WCAG 2.0 Level AA (+3 rules)<\/li>\n<li><code>wcag21a<\/code> \u2014 WCAG 2.1 Level A (+1 rule)<\/li>\n<li><code>wcag21aa<\/code> \u2014 WCAG 2.1 Level AA (+3 rules \u2014 EAA baseline)<\/li>\n<li><code>wcag22aa<\/code> \u2014 WCAG 2.2 Level AA (+1 rule, latest 2023 standard)<\/li>\n<li><code>EN-301-549<\/code> \u2014 European Accessibility Act (+4 rules)<\/li>\n<li><code>section508<\/code> \u2014 US Federal Government standard<\/li>\n<li><code>best-practice<\/code> \u2014 30 best-practice rules beyond WCAG<\/li>\n<li><code>ACT<\/code> \u2014 W3C Accessibility Conformance Testing rules<\/li>\n<\/ul>\n\n<h4>Who Is This For?<\/h4>\n\n<ul>\n<li><strong>WordPress site owners<\/strong> who need to comply with WCAG 2.1 AA, the European Accessibility Act (EAA), or Section 508<\/li>\n<li><strong>Developers and agencies<\/strong> who want to find and fix accessibility issues before launch<\/li>\n<li><strong>Content editors<\/strong> who need to understand which pages have the most critical violations<\/li>\n<li><strong>Accessibility auditors<\/strong> who need reliable, reproducible scan results<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate the plugin<\/li>\n<li>Register or log in with your Alevity account at <a href=\"https:\/\/alevity.ensoro.io\/\">alevity.ensoro.io<\/a><\/li>\n<li>Go to the Alevity dashboard in your WordPress admin<\/li>\n<li>Select any page or post and click <strong>Scan<\/strong><\/li>\n<li>Results appear in your dashboard within seconds<\/li>\n<li>Browse violations by severity (critical, serious, moderate, minor)<\/li>\n<li>Use the Inspector widget on any page to highlight and fix issues<\/li>\n<\/ol>\n\n<h4>Privacy &amp; Data<\/h4>\n\n<p>Alevity sends your page URLs to the Alevity scanning service (https:\/\/alevity.ensoro.io\/) for processing. No personal data of your website visitors is collected or transmitted. Scanning only begins after you explicitly log in and initiate a scan. See the External Services section below for full details.<\/p>\n\n<h4>Source Code<\/h4>\n\n<p>JavaScript source files are available in the plugin's GitHub repository: https:\/\/github.com\/3nsoro\/alevity<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the <strong>Alevity Accessibility Scanning Service<\/strong> operated by Ensoro.<\/p>\n\n<p><strong>What data is sent:<\/strong>\nThe URL of each WordPress page you choose to scan is sent to https:\/\/alevity.ensoro.io\/ for processing. The service opens the URL in a headless Chromium browser, evaluates it against WCAG accessibility rules, and returns the list of accessibility violations to your WordPress site via a secure webhook.<\/p>\n\n<p><strong>When data is sent:<\/strong>\nData is only transmitted when you are logged in to an Alevity account AND you explicitly initiate a scan by clicking the Scan button. No data is collected automatically or without your action.<\/p>\n\n<p><strong>No visitor data is collected:<\/strong>\nThe scanning service does not collect, store, or process any personal data of your website's visitors.<\/p>\n\n<p><strong>Third-party service details:<\/strong><\/p>\n\n<ul>\n<li>Service: Alevity Accessibility Scanning API<\/li>\n<li>Provider: Ensoro<\/li>\n<li>Endpoint: https:\/\/alevity.ensoro.io\/<\/li>\n<li><a href=\"https:\/\/alevity.ensoro.io\/terms\">Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/alevity.ensoro.io\/privacy-policy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>alevity-ensoro<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Click <strong>Alevity<\/strong> in the left admin menu<\/li>\n<li>Register a free account or log in at <a href=\"https:\/\/alevity.ensoro.io\/\">alevity.ensoro.io<\/a><\/li>\n<li>Start scanning your pages from the Dashboard tab<\/li>\n<\/ol>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>PHP 8.1 or higher<\/li>\n<li>An active Alevity account (free tier available)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20free%20plan%3F\"><h3>Is there a free plan?<\/h3><\/dt>\n<dd><p>Yes. The Free plan allows up to 10 scans per day for 1 site. No credit card required.<\/p><\/dd>\n<dt id=\"does%20alevity%20work%20with%20page%20builders%3F\"><h3>Does Alevity work with page builders?<\/h3><\/dt>\n<dd><p>Yes. Because Alevity uses a real browser (Chromium), it scans the fully rendered page \u2014 including content built with Elementor, Divi, Beaver Builder, Gutenberg, and other page builders. Static HTML scanners miss issues in dynamically rendered content; Alevity does not.<\/p><\/dd>\n<dt id=\"which%20wcag%20version%20does%20it%20support%3F\"><h3>Which WCAG version does it support?<\/h3><\/dt>\n<dd><p>Alevity supports WCAG 2.0, WCAG 2.1, and WCAG 2.2 at both Level A and Level AA. It also supports EN 301 549 (European Accessibility Act), Section 508 (US federal standard), and W3C ACT Rules. You can enable or disable individual rule sets in the Settings tab.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20website%3F\"><h3>Does it slow down my website?<\/h3><\/dt>\n<dd><p>No. The plugin adds no overhead to your public-facing pages. The Inspector widget is only loaded for logged-in administrators. Scans run on Ensoro's infrastructure and do not consume your server resources.<\/p><\/dd>\n<dt id=\"where%20are%20scan%20results%20stored%3F\"><h3>Where are scan results stored?<\/h3><\/dt>\n<dd><p>All violations and scan results are stored locally in your WordPress database (<code>wp_alevity_scans<\/code> and <code>wp_alevity_violations<\/code> tables). The Alevity SaaS service stores only aggregate data (scan status, score, duration) \u2014 the full violation details always remain in your WP database.<\/p><\/dd>\n<dt id=\"can%20i%20scan%20draft%20or%20private%20pages%3F\"><h3>Can I scan draft or private pages?<\/h3><\/dt>\n<dd><p>Yes. Alevity generates a secure one-time token for each scan request. This token allows the scanning service to access any page \u2014 including drafts, private pages, and password-protected pages \u2014 without requiring admin credentials.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>When you delete the plugin through the WordPress admin, all plugin tables (<code>wp_alevity_scans<\/code>, <code>wp_alevity_violations<\/code>) and all plugin options are permanently removed from your database.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multisite%3F\"><h3>Does it support multisite?<\/h3><\/dt>\n<dd><p>Single-site installation is fully supported. Multisite network activation is not tested in this version.<\/p><\/dd>\n<dt id=\"is%20the%20source%20code%20available%3F\"><h3>Is the source code available?<\/h3><\/dt>\n<dd><p>Yes. The full source code including React components is available at https:\/\/github.com\/3nsoro\/alevity<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Real-browser WCAG 2.1\/2.2 scanning via Alevity<\/li>\n<li>Inspector widget with visual element highlighting<\/li>\n<li>Dashboard with per-page scan history and scores<\/li>\n<li>Auto-fix for alt text, aria-labels, and form labels<\/li>\n<li>Support for WCAG 2.0\/2.1\/2.2, EN 301 549, Section 508, ACT, and Best Practice rule sets<\/li>\n<li>Secure one-time token for scanning private and draft pages<\/li>\n<li>Webhook-based result delivery (no polling)<\/li>\n<\/ul>","raw_excerpt":"Real browser WCAG 2.1\/2.2 accessibility scanning for WordPress \u2014 powered by Alevity.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376741","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=376741"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ensoro"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376741"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376741"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376741"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376741"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376741"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}