{"id":375449,"date":"2026-10-02T09:28:49","date_gmt":"2026-10-02T09:28:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/curbcut\/"},"modified":"2026-10-02T09:28:40","modified_gmt":"2026-10-02T09:28:40","slug":"lumtera","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/lumtera\/","author":16710861,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"7.1.2","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"Lumtera \u2013 Accessibility Checker \u2013 WCAG, ADA, EAA and Section 508 Compliance","header_author":"MantraBrain","header_description":"Finds accessibility problems in your content as you write, and explains how to fix each one. Not an overlay.","assets_banners_color":"7894b1","last_updated":"2026-10-02 09:28:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mantrabrain.com\/plugins\/lumtera\/","header_author_uri":"https:\/\/mantrabrain.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.2":{"tag":"1.2.2","author":"mantrabrain","date":"2026-10-02 09:28:40","revision":3724464}},"upgrade_notice":{"1.2.2":"<p>Choose which posts get bulk alt text, far fewer false alarms in the contrast, keyboard and content checks, and focus and security fixes.<\/p>","1.2.1":"<p>Results first after a check, review mode on any page, a Dismissed view, and a choice to keep your data if Lumtera is deleted.<\/p>","1.2.0":"<p>Site-wide summaries use far less memory on large sites. A one-time background update adds a summary to each saved whole-page result; your results and settings don&#039;t change.<\/p>","1.1.1":"<p>Safer output buffering while checking content, and clearer documentation. No changes to your settings.<\/p>","1.1.0":"<p>A free weekly home page check, a clearer weekly email with what you fixed, and two new getting-started steps. The menu is now called Lumtera. Every check and tool stays free.<\/p>","1.0.0.3":"<p>Fixes found by browser testing in Chrome, Firefox and Safari.<\/p>","1.0.0.2":"<p>More accurate checks, fewer false alarms, and a way to continue a stopped site check.<\/p>","1.0.0.1":"<p>Uses WordPress&#039;s enqueue functions for every inline script and style.<\/p>","1.0.0":"<p>First stable release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3724464,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3724464,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3724464,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3724464,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3724464,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3724464,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Lumtera \\u2013 Accessibility Checker \\u2013 WCAG, ADA, EAA and Section 508 Compliance\",\"description\":\"A demo page with common accessibility problems, already checked by Lumtera, open in the block editor.\",\"author\":\"mantrabrain\",\"categories\":[\"Accessibility\"]},\"landingPage\":\"\\\/wp-admin\\\/post.php?post=100&action=edit\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":false},\"steps\":[{\"step\":\"login\",\"username\":\"admin\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"lumtera\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\n\\\/\\\/ Demo content for the Lumtera Live Preview: one page with common,\\n\\\/\\\/ easy-to-see accessibility problems, then a Lumtera check of the site.\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\n\\nwp_set_current_user( 1 );\\n\\n\\\/\\\/ An image for the \\\"no alt text\\\" example, copied from the default theme\\n\\\/\\\/ (or core) so the preview makes no outside requests.\\n$candidates = array(\\n\\tget_theme_file_path( 'assets\\\/images\\\/botany-flowers.webp' ),\\n\\tABSPATH . 'wp-includes\\\/images\\\/w-logo-blue-white-bg.png',\\n);\\n$image_url = '';\\n$image_id  = 0;\\nforeach ( $candidates as $source ) {\\n\\tif ( ! is_readable( $source ) ) {\\n\\t\\tcontinue;\\n\\t}\\n\\t$upload = wp_upload_bits( 'demo-photo.' . pathinfo( $source, PATHINFO_EXTENSION ), null, file_get_contents( $source ) );\\n\\tif ( empty( $upload['error'] ) ) {\\n\\t\\t$image_url = $upload['url'];\\n\\t\\t$image_id  = wp_insert_attachment(\\n\\t\\t\\tarray(\\n\\t\\t\\t\\t'post_mime_type' => wp_check_filetype( $upload['file'] )['type'],\\n\\t\\t\\t\\t'post_title'     => 'Demo photo',\\n\\t\\t\\t\\t'post_status'    => 'inherit',\\n\\t\\t\\t),\\n\\t\\t\\t$upload['file']\\n\\t\\t);\\n\\t}\\n\\tbreak;\\n}\\n\\n$blocks = array(\\n\\t'<!-- wp:paragraph -->\\n<p>This page was made for the Lumtera preview. Each block below has a common accessibility problem. In the editor, the Accessibility panel lists them: select one to jump to its block, fix it and watch the list update. On the site, the Accessibility menu in the toolbar reviews the whole page.<\\\/p>\\n<!-- \\\/wp:paragraph -->',\\n\\t'<!-- wp:heading -->\\n<h2 class=\\\"wp-block-heading\\\">Our garden tours<\\\/h2>\\n<!-- \\\/wp:heading -->',\\n\\t'<!-- wp:image {\\\"id\\\":' . (int) $image_id . ',\\\"sizeSlug\\\":\\\"full\\\",\\\"linkDestination\\\":\\\"none\\\"} -->\\n<figure class=\\\"wp-block-image size-full\\\"><img src=\\\"' . esc_url( $image_url ) . '\\\" alt=\\\"\\\" class=\\\"wp-image-' . (int) $image_id . '\\\"\\\/><\\\/figure>\\n<!-- \\\/wp:image -->',\\n\\t'<!-- wp:heading {\\\"level\\\":4} -->\\n<h4 class=\\\"wp-block-heading\\\">Opening hours<\\\/h4>\\n<!-- \\\/wp:heading -->',\\n\\t'<!-- wp:paragraph {\\\"style\\\":{\\\"color\\\":{\\\"text\\\":\\\"#b4b4b4\\\",\\\"background\\\":\\\"#ffffff\\\"}}} -->\\n<p class=\\\"has-text-color has-background\\\" style=\\\"color:#b4b4b4;background-color:#ffffff\\\">Tours run every day from 9 am to 5 pm, except public holidays.<\\\/p>\\n<!-- \\\/wp:paragraph -->',\\n\\t'<!-- wp:paragraph -->\\n<p>To see the full timetable, <a href=\\\"\\\/timetable\\\/\\\">click here<\\\/a>.<\\\/p>\\n<!-- \\\/wp:paragraph -->',\\n\\t'<!-- wp:paragraph -->\\n<p>Follow us: <a href=\\\"\\\/social\\\/\\\"><\\\/a><\\\/p>\\n<!-- \\\/wp:paragraph -->',\\n\\t'<!-- wp:table -->\\n<figure class=\\\"wp-block-table\\\"><table><tbody><tr><td>Tour<\\\/td><td>Length<\\\/td><td>Price<\\\/td><\\\/tr><tr><td>Rose garden<\\\/td><td>1 hour<\\\/td><td>$10<\\\/td><\\\/tr><tr><td>Greenhouse<\\\/td><td>2 hours<\\\/td><td>$15<\\\/td><\\\/tr><\\\/tbody><\\\/table><\\\/figure>\\n<!-- \\\/wp:table -->',\\n\\t'<!-- wp:html -->\\n<form action=\\\"#\\\" method=\\\"post\\\"><p><input type=\\\"email\\\" name=\\\"email\\\" placeholder=\\\"Your email\\\"> <button type=\\\"submit\\\">Join the newsletter<\\\/button><\\\/p><\\\/form>\\n<!-- \\\/wp:html -->',\\n);\\n\\n$post_id = wp_insert_post(\\n\\tarray(\\n\\t\\t'import_id'    => 100,\\n\\t\\t'post_type'    => 'page',\\n\\t\\t'post_status'  => 'publish',\\n\\t\\t'post_title'   => 'Accessibility demo',\\n\\t\\t'post_content' => implode( \\\"\\\\n\\\\n\\\", $blocks ),\\n\\t),\\n\\ttrue\\n);\\n\\nif ( is_wp_error( $post_id ) ) {\\n\\tthrow new Exception( $post_id->get_error_message() );\\n}\\n\\n\\\/\\\/ Open the editor on the Lumtera panel, without the welcome guide. The\\n\\\/\\\/ panel is picked by a small preview-only script: the editor does not\\n\\\/\\\/ remember an open plugin panel between visits.\\nupdate_user_meta(\\n\\t1,\\n\\t$GLOBALS['wpdb']->get_blog_prefix() . 'persisted_preferences',\\n\\tarray(\\n\\t\\t'core'           => array( 'isComplementaryAreaVisible' => true ),\\n\\t\\t'core\\\/edit-post' => array( 'welcomeGuide' => false ),\\n\\t\\t'_modified'      => gmdate( 'c' ),\\n\\t)\\n);\\nwp_mkdir_p( WPMU_PLUGIN_DIR );\\nfile_put_contents(\\n\\tWPMU_PLUGIN_DIR . '\\\/lumtera-preview.php',\\n\\t<<<'PHP'\\n<?php\\n\\\/\\\/ Live Preview only: show the Lumtera panel when the demo page opens.\\nadd_action(\\n\\t'enqueue_block_editor_assets',\\n\\tstatic function () {\\n\\t\\tif ( 100 !== (int) ( $_GET['post'] ?? 0 ) ) {\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\t\\twp_add_inline_script(\\n\\t\\t\\t'wp-edit-post',\\n\\t\\t\\t'wp.domReady( function () {\\n\\t\\t\\t\\tvar tries = 0;\\n\\t\\t\\t\\tvar timer = setInterval( function () {\\n\\t\\t\\t\\t\\tvar ready = wp.plugins.getPlugin( \\\"lumtera\\\" ) && wp.data.select( \\\"core\\\/editor\\\" ).getCurrentPostId();\\n\\t\\t\\t\\t\\tif ( ready || ++tries > 50 ) {\\n\\t\\t\\t\\t\\t\\tclearInterval( timer );\\n\\t\\t\\t\\t\\t\\tif ( ready ) {\\n\\t\\t\\t\\t\\t\\t\\twp.data.dispatch( \\\"core\\\/interface\\\" ).enableComplementaryArea( \\\"core\\\", \\\"lumtera\\\/lumtera\\\" );\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}, 200 );\\n\\t\\t\\t} );'\\n\\t\\t);\\n\\t}\\n);\\nPHP\\n);\\n\\n\\\/\\\/ Check every page and post, then the header, footer and other site\\n\\\/\\\/ parts, so the Overview and Content report have results to show.\\nif ( class_exists( '\\\\Lumtera\\\\Plugin' ) ) {\\n\\t$plugin = \\\\Lumtera\\\\Plugin::instance();\\n\\tforeach ( get_posts( array( 'post_type' => array( 'post', 'page' ), 'post_status' => array( 'publish', 'draft', 'pending', 'private', 'future' ), 'numberposts' => 50 ) ) as $post ) {\\n\\t\\t$plugin->scan_and_store( $post );\\n\\t}\\n\\tif ( class_exists( '\\\\Lumtera\\\\SiteParts' ) ) {\\n\\t\\t( new \\\\Lumtera\\\\SiteParts( $plugin ) )->scan_all();\\n\\t}\\n}\\n\"}]}"}},"all_blocks":{"lumtera\/statement-link":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"lumtera\/statement-link","title":"Accessibility statement link","category":"widgets","icon":"universal-access-alt","description":"A link to your published accessibility statement, for your footer or contact page. Shows nothing until the statement is published.","keywords":["accessibility","statement","footer","wcag"],"textdomain":"lumtera","attributes":{"text":{"type":"string","default":""},"link":{"type":"string","enum":["statement","feedback"],"default":"statement"}},"variations":[{"name":"statement","title":"Accessibility statement link","description":"A link to your published accessibility statement.","attributes":{"link":"statement"},"isDefault":true,"scope":["inserter","transform"],"isActive":["link"]},{"name":"feedback","title":"Accessibility feedback link","description":"A link to your accessibility feedback form that tells the form which page the visitor was on. Shows nothing until a published page holds the form.","icon":"feedback","attributes":{"link":"feedback"},"scope":["inserter","transform"],"isActive":["link"]}],"supports":{"html":false,"align":["left","center","right"],"color":{"text":true,"background":true,"link":true},"typography":{"fontSize":true},"spacing":{"margin":true,"padding":true}},"editorScript":"lumtera-blocks"},"lumtera\/summary":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"lumtera\/summary","title":"Plain-language summary","category":"text","icon":"text-page","description":"A short, plain-language summary of the page for readers who find the full text hard going (WCAG 3.1.5). Can be shown collapsed.","keywords":["summary","plain language","easy read","accessibility","tl;dr"],"textdomain":"lumtera","attributes":{"heading":{"type":"rich-text","source":"rich-text","selector":".wp-block-lumtera-summary__heading"},"content":{"type":"rich-text","source":"rich-text","selector":".wp-block-lumtera-summary__text"},"level":{"type":"number","default":2},"collapsible":{"type":"boolean","default":false}},"supports":{"html":false,"anchor":true,"color":{"text":true,"background":true,"link":true},"typography":{"fontSize":true},"spacing":{"margin":true,"padding":true}},"editorScript":"lumtera-blocks"},"lumtera\/feedback-form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"lumtera\/feedback-form","title":"Accessibility feedback form","category":"widgets","icon":"feedback","description":"A form visitors use to report an accessibility barrier or ask for content in an accessible format. Messages arrive in Accessibility \u2192 Feedback.","keywords":["accessibility","feedback","contact","barrier","statement"],"textdomain":"lumtera","attributes":{},"supports":{"html":false,"multiple":false,"reusable":true,"color":{"text":true,"background":true,"link":true},"typography":{"fontSize":true},"spacing":{"margin":true,"padding":true}},"editorScript":"lumtera-blocks"}},"tagged_versions":["1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3724464,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3724464,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3724464,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3724464,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3724464,"resolution":"5","location":"assets","locale":"","width":2560,"height":1600},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3724464,"resolution":"6","location":"assets","locale":"","width":2560,"height":1600},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3724464,"resolution":"7","location":"assets","locale":"","width":2560,"height":1600},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3724464,"resolution":"8","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"See your page the way keyboard users do: review mode numbers every Tab stop on the live page and tests menus and pop-ups.","2":"Catch accessibility issues while you write: in the block editor, each issue is explained in plain words, with a button to fix it.","3":"Your site's accessibility at a glance: automated score, errors, items to review, and how much of WCAG 2.2 has evidence.","4":"Find the pages that need you most: every checked post and page, worst first, filtered by issue, severity and type.","5":"Describe an image once, fix every post: add alt text here, and Lumtera offers it to the posts that show the image without any.","6":"Accessibility checks inside Elementor: results stay up to date with your unsaved changes.","7":"You decide how strict each check is: set any WCAG check to Error, Needs review, Tip or Off.","8":"Write an honest accessibility statement: templates for the W3C model, the EAA, UK public sector, ADA Title II and AODA."}},"plugin_section":[262246],"plugin_tags":[1953,209467,2682,241427,1956],"plugin_category":[34],"plugin_contributors":[166300],"plugin_business_model":[],"class_list":["post-375449","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-accessibility","plugin_tags-accessibility-checker","plugin_tags-ada","plugin_tags-eaa","plugin_tags-wcag","plugin_category-accessibility","plugin_contributors-mantrabrain","plugin_committers-mantrabrain","plugin_committers-ughimire1"],"banners":{"banner":"https:\/\/ps.w.org\/lumtera\/assets\/banner-772x250.png?rev=3724464","banner_2x":"https:\/\/ps.w.org\/lumtera\/assets\/banner-1544x500.png?rev=3724464","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/lumtera\/assets\/icon.svg?rev=3724464","icon":"https:\/\/ps.w.org\/lumtera\/assets\/icon.svg?rev=3724464","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-1.png?rev=3724464","caption":"See your page the way keyboard users do: review mode numbers every Tab stop on the live page and tests menus and pop-ups."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-2.png?rev=3724464","caption":"Catch accessibility issues while you write: in the block editor, each issue is explained in plain words, with a button to fix it."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-3.png?rev=3724464","caption":"Your site's accessibility at a glance: automated score, errors, items to review, and how much of WCAG 2.2 has evidence."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-4.png?rev=3724464","caption":"Find the pages that need you most: every checked post and page, worst first, filtered by issue, severity and type."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-5.png?rev=3724464","caption":"Describe an image once, fix every post: add alt text here, and Lumtera offers it to the posts that show the image without any."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-6.png?rev=3724464","caption":"Accessibility checks inside Elementor: results stay up to date with your unsaved changes."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-7.png?rev=3724464","caption":"You decide how strict each check is: set any WCAG check to Error, Needs review, Tip or Off."},{"src":"https:\/\/ps.w.org\/lumtera\/assets\/screenshot-8.png?rev=3724464","caption":"Write an honest accessibility statement: templates for the W3C model, the EAA, UK public sector, ADA Title II and AODA."}],"raw_content":"<!--section=description-->\n<p>Lumtera is an accessibility checker for WordPress. It checks your posts, pages and products against WCAG 2.2 while you write. It also tests the live page the way keyboard and screen reader users meet it. Then it helps you fix each problem in the content itself. You see every change before it is saved, and you can undo it.<\/p>\n\n<p>It is built for the people who publish: site owners, editors, online shops, agencies and public bodies working towards the ADA, the European Accessibility Act (EAA), Section 508 or EN 301 549.<\/p>\n\n<p>No account. No overlay. Every check is free.<\/p>\n\n<p>Watch Lumtera find and fix issues, in just over a minute:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=6mk-6vIrjJw<\/p>\n\n<p><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs\">Documentation<\/a> \u00b7 <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/quick-start?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-quick-start\">Quick start<\/a> \u00b7 <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/free-vs-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=free-vs-pro-top\">Free vs Pro<\/a> \u00b7 <a href=\"https:\/\/wordpress.org\/support\/plugin\/lumtera\/\">Support forum<\/a><\/p>\n\n<h3>The problem<\/h3>\n\n<p>Most accessibility problems start in everyday content: an image with no alt text, a \"click here\" link, a heading picked for its size, pale text on a colored button. A toolbar added on top doesn't change that content; fixing the content and the theme does. Lumtera shows you what to fix first, and says plainly what a person still has to check.<\/p>\n\n<ul>\n<li><strong>The European Accessibility Act (EAA)<\/strong> has applied since 28 June 2025 to many products and services sold in the EU, online shops included.<\/li>\n<li><strong>ADA Title II:<\/strong> US state and local governments must meet WCAG 2.1 AA by 26 April 2027 if they serve 50,000 people or more, and by 26 April 2028 if they are smaller or a special district.<\/li>\n<li><strong>ADA lawsuits keep rising:<\/strong> 3,117 website accessibility lawsuits were filed in US federal courts in 2025, up 27% on 2024 (<a href=\"https:\/\/www.adatitleiii.com\/2026\/03\/federal-court-website-accessibility-lawsuit-filings-bounce-back-in-2025\/\">Seyfarth Shaw<\/a>).<\/li>\n<\/ul>\n\n<h3>What makes Lumtera different<\/h3>\n\n<ul>\n<li><strong>It checks where you work.<\/strong> In the block editor (Gutenberg) as you type, in its own Elementor panel, in the classic editor, and on the live page with your theme.<\/li>\n<li><strong>It tests what a scan of the code can't.<\/strong> Review mode walks the page from the keyboard and opens menus, dialogs, tabs and accordions to test them.<\/li>\n<li><strong>It shows what a screen reader gets.<\/strong> You see the headings, landmarks, links and form fields a screen reader lists, and the page read in order.<\/li>\n<li><strong>You approve every fix.<\/strong> Each change is shown before and after. It is saved as a revision, checked again, and can be undone.<\/li>\n<li><strong>Fix once, at the source.<\/strong> An issue in a header, footer, menu, template part or synced pattern is fixed there, once.<\/li>\n<li><strong>It is honest about what it covers.<\/strong> When a machine can't be sure, the issue says \"Needs review\". A coverage meter shows which WCAG criteria the checks look at.<\/li>\n<\/ul>\n\n<h3>Find issues<\/h3>\n\n<ul>\n<li><strong>69 checks<\/strong> mapped to WCAG 2.2 in the block editor, the classic editor, Elementor and other page builders: images and alt text, links and buttons, headings, forms, tables, media, contrast, ARIA, language and more.<\/li>\n<li><strong>33 whole-page checks<\/strong> in <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/review-mode?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-review-mode\">review mode<\/a>, theme included: contrast (gradients, text over images, focus indicators), landmarks, skip link, heading outline, target size, reflow, zoom, text spacing and reading order.<\/li>\n<li><strong>Keyboard walk:<\/strong> every Tab stop is numbered, with checks for visible focus, focus hidden under sticky headers, focus order and possible keyboard traps.<\/li>\n<li><strong>Color blindness and low vision previews<\/strong> in review mode.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/site-report?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-site-report\">Check all content<\/a> in one click.<\/strong> The Content report lists every post and page worst first, with filters by issue, severity and type, CSV export and a column in your post lists.<\/li>\n<li><strong>Site parts:<\/strong> menus, widget areas, template parts, synced patterns and navigation are checked too, and each issue shows where it comes from.<\/li>\n<li><strong>Clear explanations:<\/strong> \"Why is this flagged?\" explains every finding in plain words.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/manual-checks?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-manual-checks\">Guided checklists<\/a><\/strong> for what only a person can judge, recording who checked what and when.<\/li>\n<\/ul>\n\n<h3>Fix them<\/h3>\n\n<ul>\n<li><strong>One-click fixes<\/strong> in the block editor for common problems, and guided fixes for alt text and contrast, with passing colors from your theme palette.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/fixing-issues?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-fixing-issues\">Fix without opening the post<\/a><\/strong> from the Content report, always with a preview and undo.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/alt-text?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-alt-text\">Alt text manager<\/a>:<\/strong> describe an image once in the Media Library, and Lumtera offers that text to every post that shows the image without it.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/site-fixes?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-site-fixes\">Optional site fixes<\/a><\/strong> for common theme problems: skip link, focus ring, pinch-zoom, link underlines, form labels, and \"opens in a new tab\" and file details on links. Each one is off until you turn it on.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/ai?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-ai\">Optional AI drafts<\/a><\/strong> of alt text, link text, headings and a plain-language summary, through the AI provider you connect to WordPress. A person reviews every draft.<\/li>\n<\/ul>\n\n<h3>Show your work<\/h3>\n\n<ul>\n<li><strong>Coverage meter:<\/strong> with review mode, Lumtera's automated checks cover 37 of 55 WCAG 2.2 A\/AA criteria (fully or in part). It sits next to the score and is never merged into it.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/statement?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-statement\">Accessibility statement generator<\/a><\/strong> with templates for the W3C model, the EAA, UK public sector, ADA Title II and AODA. Known problems are filled in from your results.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/feedback?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-feedback\">Accessibility feedback form<\/a><\/strong> (a block and a shortcode) with an inbox, reference numbers, replies and a retention period you choose.<\/li>\n<li><strong>ADA Title II exception tags:<\/strong> record which exception you believe applies, without hiding the item from any total or report.<\/li>\n<\/ul>\n\n<h3>Stay on top<\/h3>\n\n<ul>\n<li><strong>Checks on every save,<\/strong> and a check before you publish in the block editor.<\/li>\n<li><strong><a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/email-summary?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-email-summary\">Weekly email summary<\/a>:<\/strong> your score, new errors and what you fixed this week, sent by your own site.<\/li>\n<li><strong>Weekly home page check,<\/strong> off by default and one click to turn on, on your own server.<\/li>\n<li><strong>Your rules:<\/strong> set any check to Error, Needs review, Tip or Off, and choose which roles see reports, dismiss issues and use review mode.<\/li>\n<\/ul>\n\n<h3>How accurate it is<\/h3>\n\n<p>In our own test against the W3C's ACT rules test cases, whose right answers are known, Lumtera found 98% of known failures on the 21 ACT rules its checks cover, at any severity (130 of 132: 95 as errors and 35 for review), with 4 false alarms in 222 clean examples. In a second test of our own, on 529 pages that meet WCAG 2.2 AA or nearly so, review mode raised no false errors after our triage; the editor's check of raw content still raised 8. These are our tests, not an independent audit. Read the <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/accuracy\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=accuracy\">method and full results<\/a>, including the rules Lumtera doesn't check.<\/p>\n\n<h3>Works with<\/h3>\n\n<ul>\n<li><strong>Page builders and block libraries:<\/strong> Beaver Builder, Divi, Bricks, WPBakery, Spectra, Kadence Blocks, GenerateBlocks and more (<a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/page-builders?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-page-builders\">full list<\/a>).<\/li>\n<li><strong>WooCommerce:<\/strong> product descriptions are checked, and review mode checks product, cart and checkout pages as rendered.<\/li>\n<li><strong>Advanced Custom Fields, Polylang, WPML and TranslatePress.<\/strong><\/li>\n<li><strong>Developers:<\/strong> <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/developers\/wp-cli?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-developers-wp-cli\">WP-CLI<\/a> with exit codes, baselines, SARIF and JUnit for CI, a REST API, hooks for your own checks, and WordPress Abilities for AI assistants.<\/li>\n<li><strong>Multisite,<\/strong> with each site choosing whether deleting the plugin keeps or removes its data.<\/li>\n<\/ul>\n\n<h3>Our promises<\/h3>\n\n<ul>\n<li>No account.<\/li>\n<li>No overlay: nothing is added for visitors unless you add it.<\/li>\n<li>Nothing leaves your site unless you turn on your own AI provider or the Akismet spam check.<\/li>\n<li>No tracking and no usage data.<\/li>\n<li>Every fix is shown before it is saved, and can be undone.<\/li>\n<li>No nags: no pop-ups or upgrade notices; Pro tips are one line and can be dismissed.<\/li>\n<li>Every check, and fixing issues one at a time, stays free.<\/li>\n<\/ul>\n\n<p>A score of 100 means \"no automated issues found\", never \"compliant\".<\/p>\n\n<h3>Free vs Pro<\/h3>\n\n<p><strong>Free, on as many sites as you like:<\/strong> every check, review mode, the keyboard walk and screen reader preview, fixes one at a time with undo, fix at the source, the Content report with CSV export, the alt text manager, site fixes, AI drafts, guided checklists, the statement generator, the feedback form, the weekly email and WP-CLI. Nothing has moved from free to Pro.<\/p>\n\n<p><strong>Lumtera Pro<\/strong> is an optional add-on, sold on the MantraBrain website, for when you need to check many pages on a schedule, keep a record of the work, and report to others.<\/p>\n\n<p>See what Lumtera Pro adds, in just over a minute:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=dwVF2Bp8DeE<\/p>\n\n<h4>Check at scale<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/page-checks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=page-checks\">Page checks<\/a> of many pages at desktop and phone width, and <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/scheduled-checks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=scheduled-checks\">scheduled page checks<\/a>, daily or weekly.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/signed-in-checks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=signed-in-checks\">Signed-in checks<\/a> as a test user, such as a shop customer at checkout.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/form-tests\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=form-tests\">Form tests<\/a> that submit required fields empty and check the error messages, with safeguards so no email, entry or order is created.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/state-contrast\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=state-contrast\">Hover and focus contrast, and a carousel check<\/a>.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/pdf-checks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=pdf-checks\">PDF checks<\/a> for the Media Library.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/consistency-checks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=consistency-checks\">Consistency across pages<\/a>: navigation and repeated parts in the same order, with the same names.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/test-sessions\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=test-sessions\">Test sessions<\/a> for manual testing with assistive technology, signed off.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/compare-scans\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=compare-scans\">Compare scans<\/a>: what is new, fixed or still there, with the likely cause.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/ignore-rules\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=ignore-rules\">Ignore rules<\/a> that apply everywhere.<\/li>\n<\/ul>\n\n<h4>Fix at scale<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/fixes-queue\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=fixes-queue\">Fixes queue<\/a>: propose the same fix on many pages, approve each change, then apply and undo in the background.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/fix-at-the-source\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=fix-at-the-source\">Fix at the source<\/a> in bulk: queue every issue in a header, footer, pattern or menu.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/fix-tracking\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=fix-tracking\">Fix tracking<\/a> that closes a task when a re-scan confirms the fix, with <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/issue-trackers\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=issue-trackers\">issue trackers<\/a> in GitHub, GitLab, Jira and Linear.<\/li>\n<\/ul>\n\n<h4>Prove the work<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/evidence-log\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=evidence-log\">Tamper-evident evidence log<\/a> of scans, tests and fixes, with an evidence pack to print or export.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/conformance-report\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=conformance-report\">Accessibility Conformance Report (VPAT 2.5)<\/a> on every plan.<\/li>\n<li>An <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/activity-log\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=activity-log\">activity log<\/a> of who fixed, dismissed or changed what, and when.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/feedback-targets\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=feedback-targets\">Response targets and burden records<\/a> for accessibility feedback.<\/li>\n<\/ul>\n\n<h4>Stay informed<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/alerts\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=alerts\">Email and Slack alerts<\/a> when a publish adds errors, a weekly digest and score history.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/webhooks\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=webhooks\">Webhooks<\/a> for Slack, Microsoft Teams or your own tools.<\/li>\n<\/ul>\n\n<h4>Client work<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/client-reports\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=client-reports\">Branded client reports<\/a>, with PDF.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/white-label\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=white-label\">White-label reports<\/a> without the Lumtera credit.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/client-sharing\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=client-sharing\">Client emails and share links<\/a> that expire and can be revoked.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/agency-portfolio\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=agency-portfolio\">Client portfolio<\/a>: the sites you look after in one place, with trends and the sites that got worse first.<\/li>\n<li><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/features\/multisite-overview\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=multisite-overview\">Multisite network overview<\/a>, with one license for the whole network.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/pricing\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=pricing\">See plans and pricing<\/a> \u00b7 <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/free-vs-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=free-vs-pro\">Compare Free and Pro<\/a> \u00b7 <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-pro\">Pro documentation<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>Lumtera does not contact any external service by default and sends no usage data. The services below are used only after a site administrator turns them on.<\/p>\n\n<h4>AI provider you connect (optional)<\/h4>\n\n<p>If an administrator turns on any AI suggestion under Lumtera \u2192 Settings \u2192 AI suggestions, Lumtera uses the WordPress AI Client and the AI provider connected under Settings \u2192 Connectors (for example OpenAI, Anthropic, Google, or a local model server). Lumtera stores no API keys and runs no servers of its own.<\/p>\n\n<p>What is sent, and only when a user clicks a button for that feature (each feature is off until an administrator turns it on):<\/p>\n\n<ul>\n<li>\"Suggest alt text\" (for one image, or each image selected on the Alt text screen), and \"Draft with AI\" for an alt text fix: the image file, its file name and caption, and \u2014 from a post that uses the image and that the user can read \u2014 the post title, the nearest heading, the nearby text and whether the image is a link.<\/li>\n<li>\"Suggest link text\" (block editor), and \"Draft with AI\" for a link text fix: the link text, where the link points as site and page path only (no query string, fragment, email address or phone number), the sentence and paragraph around the link, the post title, and the title of the linked page when it is a public page on the same site.<\/li>\n<li>\"Suggest heading\" and \"Suggest subheadings\" (block editor), and \"Draft with AI\" for a heading fix: the post title and the bold line with the text after it and the heading before it; or, for subheadings, the text of the post's paragraphs, lists and quotes.<\/li>\n<li>\"Draft a plain-language summary\" (block editor, when content reads above the target grade): the post title and the visible text of the post as it is in the editor, up to about 3,000 words.<\/li>\n<\/ul>\n\n<p>These requests can only be made by people who can edit the post. Each click is one request to your provider, which may charge for it. Nothing is sent for visitors or in the background.<\/p>\n\n<p>The provider's own terms and privacy policy apply, for example:<\/p>\n\n<ul>\n<li>OpenAI: <a href=\"https:\/\/openai.com\/policies\/terms-of-use\/\">terms<\/a>, <a href=\"https:\/\/openai.com\/policies\/privacy-policy\/\">privacy policy<\/a><\/li>\n<li>Anthropic: <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">terms<\/a>, <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">privacy policy<\/a><\/li>\n<li>Google Gemini API: <a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">privacy policy<\/a><\/li>\n<\/ul>\n\n<p>AI suggestions are drafts. They are never applied without a person's approval and do not make a site compliant on their own.<\/p>\n\n<h4>Akismet spam check for the feedback form (optional)<\/h4>\n\n<p>If an administrator turns on \"Check messages with Akismet\" in the feedback settings, each message sent through Lumtera's accessibility feedback form is checked for spam by Akismet, through the Akismet plugin. What is sent: the message, the sender's IP address and browser, and the name and email address if the sender gave them. It is off by default and can only be turned on when the Akismet plugin is active and connected. Akismet's <a href=\"https:\/\/akismet.com\/tos\/\">terms<\/a> and <a href=\"https:\/\/automattic.com\/privacy\/\">privacy policy<\/a> apply.<\/p>\n\n<h4>Links you choose to follow<\/h4>\n\n<p>\"Report a false positive\", the <strong>Docs<\/strong> buttons and the links to Lumtera Pro are ordinary links. They open the WordPress.org support forum, the documentation or the MantraBrain website in your browser; links to the website carry tags naming the Lumtera screen they were on. A site developer can point \"Report a false positive\" elsewhere with a filter. Nothing is sent from your site; a false-positive report is only posted if you post it yourself.<\/p>\n\n<h4>Requests to your own site<\/h4>\n\n<p>To check a page, WP-CLI's <code>wp lumtera check --page<\/code>, the weekly home page check and the site fixes' theme check fetch pages from your own site. They refuse other addresses.<\/p>\n\n<h4>Services Lumtera recognises but never contacts<\/h4>\n\n<p>The plugin's code contains the web addresses of some well-known services so its checks can give accurate advice about content already on your site. It compares these addresses with your own content and page HTML; it never loads, calls or sends anything to them:<\/p>\n\n<ul>\n<li>Video and audio hosts (for example YouTube, Vimeo, Wistia, Spotify, SoundCloud and podcast hosts), to check for captions and transcripts.<\/li>\n<li>CAPTCHA services (reCAPTCHA, hCaptcha), maps (Google Maps, OpenStreetMap) and social or booking embeds, to name embedded frames.<\/li>\n<li>Chat widgets (Tawk.to, Intercom, Crisp, Drift, HubSpot, Tidio, LiveChat, Zendesk, Zoho SalesIQ), so a page with one isn't reported as having no way to get help.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New Plugin<\/strong>, search for <strong>Lumtera<\/strong>, then click <strong>Install Now<\/strong> and <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Lumtera \u2192 Overview<\/strong>. A short getting-started checklist walks you through the first steps.<\/li>\n<\/ol>\n\n<p>Your first three things to do:<\/p>\n\n<ol>\n<li><strong>Check your whole site.<\/strong> On the Overview, click <strong>Check all content<\/strong>. Every post and page is checked in small batches, and the Content report lists what to fix first.<\/li>\n<li><strong>Try review mode on your home page.<\/strong> While logged in, view your home page and choose <strong>Accessibility<\/strong> in the admin bar. Open the <strong>Keyboard<\/strong> tab and try <strong>Test menus and pop-ups<\/strong>.<\/li>\n<li><strong>Get the weekly email.<\/strong> Turn it on with one click from the checklist, or under <strong>Lumtera \u2192 Settings \u2192 Email summary<\/strong>.<\/li>\n<\/ol>\n\n<p>After that, open any post and click the <strong>Lumtera Accessibility<\/strong> button in the editor's top bar to see its issues as you write. The <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/quick-start?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-quick-start\">quick start<\/a> has the same steps with pictures.<\/p>\n\n<p>Requirements: WordPress 6.6 or later, PHP 8.1 or later with the DOM extension (on almost every host).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20make%20my%20site%20ada%20or%20wcag%20compliant%3F\"><h3>Will this make my site ADA or WCAG compliant?<\/h3><\/dt>\n<dd><p>No tool can do that on its own, and you should be wary of any that claims to. Lumtera finds the problems automation can reliably detect, explains them and helps you fix them. Meeting WCAG also needs manual testing (Lumtera's guided checklists help), an accessible theme and ongoing care. A score of 100 means \"no automated issues found\", nothing more.<\/p><\/dd>\n<dt id=\"is%20lumtera%20an%20overlay%20or%20an%20accessibility%20widget%3F\"><h3>Is Lumtera an overlay or an accessibility widget?<\/h3><\/dt>\n<dd><p>No. An overlay adds a toolbar or script that changes your pages in each visitor's browser. It doesn't fix the underlying content, and it can get in the way of the assistive technology people already use. Lumtera adds nothing for visitors: it finds problems in your content and theme, explains them, and helps you fix them at the source. The optional site fixes change the HTML your server sends, the same for everyone, and each one is explained.<\/p><\/dd>\n<dt id=\"does%20lumtera%20check%20wcag%202.2%3F\"><h3>Does Lumtera check WCAG 2.2?<\/h3><\/dt>\n<dd><p>Yes. Lumtera checks against WCAG 2.2 at levels A and AA, which builds on WCAG 2.1 and 2.0. Its checks include criteria that are new in WCAG 2.2: focus not obscured (2.4.11), dragging movements (2.5.7), target size (2.5.8), redundant entry (3.3.7) and accessible authentication (3.3.8). Each finding names the success criterion it relates to, and the <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/checks?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-checks\">check reference<\/a> lists them all.<\/p><\/dd>\n<dt id=\"what%20is%20checked%20automatically%2C%20and%20what%20needs%20a%20person%3F\"><h3>What is checked automatically, and what needs a person?<\/h3><\/dt>\n<dd><p>WCAG 2.2 has 55 success criteria at levels A and AA. With review mode's whole-page checks, Lumtera's automated checks cover 37 of 55 of these criteria, fully or in part. The checks of saved content alone cover 25 of 55 criteria. \"Covers\" means a check looks at that criterion; it does not mean your site meets it.<\/p>\n\n<p>The rest need a person: for example, whether alt text is accurate or captions match the audio. Lumtera's guided checklists walk you through these, and record who checked what and when.<\/p><\/dd>\n<dt id=\"does%20it%20help%20with%20the%20european%20accessibility%20act%20%28eaa%29%3F\"><h3>Does it help with the European Accessibility Act (EAA)?<\/h3><\/dt>\n<dd><p>Yes. The EAA has applied since 28 June 2025 to many products and services sold in the EU, online shops included, and it points to EN 301 549, whose web requirements are WCAG 2.1 AA. Lumtera checks against WCAG 2.2 A\/AA, which builds on 2.1, and adds the two things the EAA asks you to publish:<\/p>\n\n<ul>\n<li><strong>Accessibility statement:<\/strong> WCAG 2.1, WCAG 2.2 or EN 301 549 as the standard, with templates for the EAA, UK public sector (PSBAR), ADA Title II and AODA. Known problems are pre-filled from your results. You choose the conformance status; it never says \"fully conformant\" on its own.<\/li>\n<li><strong>Accessibility feedback form:<\/strong> a block and the <code>[lumtera_feedback]<\/code> shortcode. It works without JavaScript, has spam protection, and stores messages on your site in a <strong>Feedback<\/strong> inbox with reference numbers, statuses, replies and a retention period you choose.<\/li>\n<\/ul>\n\n<p>These tools support your conformance work. They are not legal advice.<\/p><\/dd>\n<dt id=\"what%20about%20ada%20title%20ii%20%28state%20and%20local%20government%29%3F\"><h3>What about ADA Title II (state and local government)?<\/h3><\/dt>\n<dd><p>The US Department of Justice's Title II rule asks state and local governments to meet WCAG 2.1 AA on their websites. The dates were moved in 2026: 26 April 2027 for entities serving 50,000 people or more, and 26 April 2028 for smaller ones and special districts. Lumtera checks against WCAG 2.2 A\/AA, which builds on 2.1. It also has an ADA Title II statement template and exception tags: record which exception you believe applies to a post or file, with a note. Tagged items stay in every total and report, marked \"Exception claimed\".<\/p><\/dd>\n<dt id=\"what%20about%20section%20508%20and%20en%20301%20549%3F\"><h3>What about Section 508 and EN 301 549?<\/h3><\/dt>\n<dd><p>The web requirements of both point to WCAG: WCAG 2.0 AA for the US Section 508 standards, and WCAG 2.1 AA for EN 301 549. Lumtera checks against WCAG 2.2 A\/AA, which builds on both versions, and the statement generator can name EN 301 549 as the standard. Lumtera Pro's VPAT 2.5 conformance report is the WCAG edition; it doesn't include separate Section 508 or EN 301 549 tables.<\/p><\/dd>\n<dt id=\"how%20accurate%20is%20it%3F%20will%20it%20give%20false%20alarms%3F\"><h3>How accurate is it? Will it give false alarms?<\/h3><\/dt>\n<dd><p>We tested it ourselves against the W3C's ACT rules test cases, whose right answers are known. On the 21 W3C ACT rules its checks cover, Lumtera found 98% of known failures at any severity (130 of 132: 95 as errors and 35 for review), with 4 false alarms in 222 clean examples. Rules outside Lumtera's checks were tested too and are listed as gaps.<\/p>\n\n<p>False alarms waste your time, so we also ran Lumtera on 529 pages that meet WCAG 2.2 AA or nearly so: WAI-ARIA and GOV.UK examples, WordPress default themes and WooCommerce. After our own triage, review mode raised no false errors there; the editor's check of raw content still raised 8, on markup a script changes after the page loads. Where a check isn't sure, it says \"Needs review\" rather than raising an error. See the <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/accuracy\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=faq-accuracy\">method and full results<\/a>.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. A visitor's page view runs no Lumtera database query and loads no Lumtera script or stylesheet, unless you add one of its blocks or shortcodes, the optional statement link in the footer, or an optional site fix. Review mode's scripts load only for logged-in users who can edit the page, and only when they open it. Checks run in the admin: when a post is saved, and in batches when you click <strong>Check all content<\/strong>. The weekly jobs run through WP-Cron.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%20%28gutenberg%29%2C%20elementor%2C%20divi%20and%20other%20page%20builders%3F\"><h3>Does it work with the block editor (Gutenberg), Elementor, Divi and other page builders?<\/h3><\/dt>\n<dd><p>Yes. In the block editor, Lumtera has a sidebar that checks as you type, jumps to each block and offers one-click fixes. Elementor gets its own panel in the editor, which checks unsaved changes. Tested on real installs: Elementor, Beaver Builder, SiteOrigin Page Builder, Brizy, Visual Composer Website Builder, Live Composer, Zion Builder, and the block libraries Spectra, Kadence Blocks, GenerateBlocks, Stackable, Otter, Essential Blocks, Greenshift and Kubio. Divi 4 (Divi 5 layouts are blocks), Bricks, Oxygen 2\u20134 and WPBakery are supported through their documented APIs. Other builders that output their layout through WordPress's content filter are checked too. Oxygen 6 and Breakdance aren't supported yet; review mode still checks their pages as rendered. Advanced Custom Fields values are checked with the post.<\/p>\n\n<p>Lumtera doesn't change content a page builder manages; it tells you what to fix in the builder.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Product descriptions and short descriptions are checked like posts, and review mode checks product, cart and checkout pages as rendered, with your theme. Lumtera Pro adds scheduled checks of the shop, cart and checkout, classic checkout form tests with safeguards so no order is created, and checks signed in as a customer.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Lumtera works on each site of a network. When it is deleted, each site keeps its data (the default) or removes all of it, as set in <strong>Lumtera \u2192 Settings \u2192 General<\/strong>.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20data%20anywhere%3F%20is%20it%20gdpr-friendly%3F\"><h3>Does it send my data anywhere? Is it GDPR-friendly?<\/h3><\/dt>\n<dd><p>Not by default. Checks, reports, fixes and the feedback inbox run and are stored inside your WordPress. There is no account, no tracking, and no cookie for visitors. The weekly email is sent by your own site with wp_mail(), like a password reset, and the weekly home page check fetches the page from your own server.<\/p>\n\n<p>Data leaves your site only if you turn on AI suggestions (content goes to the AI provider you connected to WordPress, and only when someone clicks a button such as \"Suggest\") or the Akismet spam check for the feedback form. See \"External services\" below.<\/p>\n\n<p>For your privacy policy, Lumtera adds suggested text under <strong>Settings \u2192 Privacy<\/strong>. The feedback form doesn't store the sender's IP address: a scrambled form of it is kept for up to an hour to limit repeat messages. Names, email addresses and messages are deleted after the retention period you choose. Feedback messages and dismissal notes are included in WordPress's personal data export and erase tools.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F%20do%20i%20need%20an%20account%3F\"><h3>Is it really free? Do I need an account?<\/h3><\/dt>\n<dd><p>Yes, and no account. Every check and tool in this plugin is free, with no page or site limits: the editor checks, review mode, fixes, the statement generator, the feedback form, the weekly email and WP-CLI. Nothing has moved from free to Pro, and the free plugin never asks you to sign up.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What's the difference between Free and Pro?<\/h3><\/dt>\n<dd><p>The free plugin checks your content as you write, checks all of it in one click, checks any page live in review mode, and fixes issues one at a time with a preview and undo. Lumtera Pro is a separate add-on that keeps checking when you're not there: scheduled checks of many pages at desktop and phone width, as a visitor or a signed-in test user (one role on every plan, any number on Agency and Unlimited), form tests, hover and focus contrast, carousel, consistency and PDF checks. It adds a tamper-evident evidence log, scan comparison, test sessions and a fixes queue to review, apply and undo fixes in bulk. For reporting it has alerts, issue trackers, branded client reports, a VPAT 2.5 conformance report on every plan, a client portfolio (Growth plan and up) and multisite tools (Agency plan and up).<\/p>\n\n<p>See the <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/free-vs-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=faq-free-vs-pro\">Free vs Pro comparison<\/a> and the <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-pro\">Pro documentation<\/a>.<\/p><\/dd>\n<dt id=\"which%20pro%20plans%20are%20there%3F\"><h3>Which Pro plans are there?<\/h3><\/dt>\n<dd><p>Personal (1 site), Growth (5 sites), Agency (25 sites) and Unlimited (no site limit). Every plan includes every Pro feature, with these exceptions: consistency checks, white-label reports, client emails, share links and the client portfolio start at Growth; signed-in checks as more than one role, an approval rule for fixes and the multisite network overview start at Agency. Higher plans also check more pages in each scheduled run and apply more fixes in each queue run. Personal, Growth and Agency are sold yearly or lifetime; Unlimited is yearly. Every purchase has a 14-day refund. See <a href=\"https:\/\/mantrabrain.com\/plugins\/lumtera\/pricing\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=faq-pricing\">plans and pricing<\/a>.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20lumtera%20pro%20license%20ends%3F\"><h3>What happens if my Lumtera Pro license ends?<\/h3><\/dt>\n<dd><p>Pro keeps working on the sites where it is active, and your settings and results stay. Only updates and support stop until you renew. The free plugin is not affected either way.<\/p><\/dd>\n<dt id=\"is%20there%20a%20video%3F\"><h3>Is there a video?<\/h3><\/dt>\n<dd><p>Yes. <a href=\"https:\/\/www.youtube.com\/watch?v=6mk-6vIrjJw\">Watch Lumtera<\/a> check content in the editor and the live page, and fix issues with a preview and undo. <a href=\"https:\/\/www.youtube.com\/watch?v=dwVF2Bp8DeE\">Watch Lumtera Pro<\/a> for scheduled checks, the evidence log and the VPAT report. Each is just over a minute long.<\/p><\/dd>\n<dt id=\"what%20does%20lumtera%20check%3F\"><h3>What does Lumtera check?<\/h3><\/dt>\n<dd><p>In your content: images and alt text, links and buttons, headings, forms, tables, audio and video (captions, transcripts, autoplay), moving content, sensory-only instructions, structure and text, color contrast, ARIA and language.<\/p>\n\n<p>On the live page, in review mode: page title and language, landmarks and skip link, heading outline, contrast (including gradients, text over images and non-text contrast), focus visibility, focus hidden under sticky headers, focus order, possible keyboard traps, menus, dialogs and tabs from the keyboard, target size, reflow, zoom, text spacing and reading order.<\/p>\n\n<p>The <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/checks?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-checks\">check reference<\/a> explains every check.<\/p><\/dd>\n<dt id=\"how%20do%20i%20check%20a%20page%20as%20visitors%20see%20it%3F\"><h3>How do I check a page as visitors see it?<\/h3><\/dt>\n<dd><p>Use review mode. View a post or page you can edit and choose <strong>Accessibility<\/strong> in the admin bar. Review mode outlines each issue on the live page, theme included, and has tabs for:<\/p>\n\n<ul>\n<li><strong>Whole page:<\/strong> checks of the page as rendered.<\/li>\n<li><strong>Keyboard:<\/strong> every Tab stop numbered on the page. <strong>Test menus and pop-ups<\/strong> opens and closes them from the keyboard, then puts the page back as it was.<\/li>\n<li><strong>Screen reader:<\/strong> the headings, landmarks, links and form fields a screen reader lists, and the page read in order. It is a preview; real screen readers remain the reference.<\/li>\n<\/ul>\n\n<p>You can also simulate color blindness or low vision. Whole-page results are saved to your reports only if you tick <strong>Save results to reports<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20fixes%20work%3F%20can%20i%20undo%20them%3F\"><h3>How do fixes work? Can I undo them?<\/h3><\/dt>\n<dd><p>Choose <strong>Fix<\/strong> on an issue in the Content report or the editor. Lumtera shows the change before anything is saved; you can edit it, approve it or cancel. Approved fixes are saved as a new revision, checked again, and can be undone from the same place.<\/p>\n\n<p>When an issue comes from a shared part, such as a template part, synced pattern or menu, you can fix it once there, and Lumtera checks the pages that use it again.<\/p><\/dd>\n<dt id=\"does%20it%20check%20my%20theme%2C%20menus%20and%20footer%3F\"><h3>Does it check my theme, menus and footer?<\/h3><\/dt>\n<dd><p>Yes. Menus, widget areas, template parts, synced patterns and navigation are checked when they are saved, and listed under <strong>Site parts<\/strong> in the Content report. Review mode checks the whole rendered page.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20on%20client%20sites%3F\"><h3>Can I use it on client sites?<\/h3><\/dt>\n<dd><p>Yes. The free plugin works on as many sites as you like, with no account or license. Under <strong>Lumtera \u2192 Settings \u2192 Permissions<\/strong> you choose which roles see reports, dismiss issues and use review mode. For a reporting dashboard, the \"Lumtera Reporter\" role can only read the site's accessibility summary. Lumtera Pro adds branded client reports, white-label and a client portfolio across sites.<\/p><\/dd>\n<dt id=\"can%20i%20get%20a%20weekly%20email%3F\"><h3>Can I get a weekly email?<\/h3><\/dt>\n<dd><p>Yes, free. Turn it on with one click from the getting-started checklist, or under <strong>Lumtera \u2192 Settings \u2192 Email summary<\/strong>. It is sent by your own site and shows your score, new errors, what you fixed this week and the result of the weekly home page check, if that is on. Each email links to the page where you can turn it off.<\/p><\/dd>\n<dt id=\"does%20lumtera%20use%20ai%3F\"><h3>Does Lumtera use AI?<\/h3><\/dt>\n<dd><p>Only if you turn it on. AI suggestions are off by default, and every check works without them. When on, content is sent only when someone clicks a button such as \"Suggest\" or \"Draft with AI\", and only to the AI provider you connected to WordPress. Every AI draft is shown to a person, who edits and approves it before it is saved.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20delete%20lumtera%3F\"><h3>What happens to my data if I delete Lumtera?<\/h3><\/dt>\n<dd><p>It is kept by default, so feedback messages, results and settings come back if you install Lumtera again. To remove everything instead, choose \"Delete everything\" under Lumtera \u2192 Settings \u2192 General \u2192 When Lumtera is deleted. You can download every feedback message as a CSV file from the Feedback inbox first.<\/p><\/dd>\n<dt id=\"can%20i%20use%20lumtera%20in%20ci%3F\"><h3>Can I use Lumtera in CI?<\/h3><\/dt>\n<dd><p>Yes. <code>wp lumtera check --page=\/<\/code> checks a page of your site and exits with an error code when it finds problems. It writes SARIF for GitHub code scanning, or JUnit for other CI tools. Record today's issues with <code>--write-baseline=&lt;file&gt;<\/code>, then run with <code>--baseline=&lt;file&gt;<\/code>, so the build fails only on new issues. See <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/developers\/wp-cli?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs-developers-wp-cli\">WP-CLI<\/a>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20in%20my%20language%3F\"><h3>Does it work in my language?<\/h3><\/dt>\n<dd><p>Lumtera is ready for translation. Reading level is measured in English, Spanish, French, German, Italian and Dutch, and vague links such as \"click here\" are found in English, German, French, Spanish, Italian, Dutch and Portuguese. With Polylang or WPML, each post's reading level uses the language set for it.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20off%20a%20check%2C%20or%20make%20it%20stricter%3F\"><h3>Can I turn off a check, or make it stricter?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Lumtera \u2192 Settings \u2192 Checks<\/strong>, you can set any check to Error, Needs review, Tip or Off.<\/p><\/dd>\n<dt id=\"how%20do%20i%20report%20a%20false%20positive%20or%20get%20help%3F\"><h3>How do I report a false positive or get help?<\/h3><\/dt>\n<dd><p>Open <strong>Why is this flagged?<\/strong> on the issue. Under \"Report a false positive\", Lumtera prepares a short report with the check and the markup, with email addresses, long numbers and query strings taken out. Edit it, then follow the link to the <a href=\"https:\/\/wordpress.org\/support\/plugin\/lumtera\/\">support forum<\/a> and post it yourself; nothing is sent from your site. For anything else, ask in the same forum, or read the <a href=\"https:\/\/lumtera.mantrabrain.com\/docs\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=lumtera-free&amp;utm_content=docs\">documentation<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>New: when you add alt text to the posts that show an image, you choose which posts get it, so decorative copies (such as Cover backgrounds) can be left out.<\/li>\n<li>Fewer false alarms in colour contrast: modern CSS colours (color-mix(), oklch(), lab()) are read correctly, and text beside an icon, in a collapsed panel or under an image or video overlay is no longer flagged.<\/li>\n<li>Fewer false alarms in the keyboard check: focus shown on a checkbox's label, a switch's track, or a button's inner text or icon is recognised.<\/li>\n<li>Content checks no longer report markup that is never shown (<code>&lt;noscript&gt;<\/code>, <code>&lt;template&gt;<\/code>, <code>inert<\/code>). Hidden slides, drawers and menus are Needs review instead of errors.<\/li>\n<li>Links in menus, trees and tabs, menu links to \"#\u2026\", and theme search buttons are no longer reported.<\/li>\n<li>Changed: more than one H1 is a tip. A dialog without a name, symbol icons, an autoplaying video that isn't muted, and an Image block with empty alt text are Needs review instead of errors.<\/li>\n<li>The dialog and pop-up check defaults to Needs review on Settings \u2192 Checks, as its findings are reported.<\/li>\n<li>Security: the feedback form refuses messages sent from another website's page.<\/li>\n<li>Saved code snippets no longer keep security tokens from the page address, so they never reach reports or share links.<\/li>\n<li>Keyboard focus stays in place after \"Show all findings\" in the editor, while the fix dialog applies or undoes a fix, in review mode (Check again, Dismiss, Restore, the Manual tab) and when hiding a tip.<\/li>\n<li>The editor toolbar counts match the sidebar when possible issues are hidden, and the dismiss form's help text meets AA contrast.<\/li>\n<li>The Dismissed view says why Restore is missing, and review mode says when a page has no menus or pop-ups to test.<\/li>\n<li>WP-CLI: <code>wp lumtera issues<\/code> exits with 2 for an unknown --rule or --post_type, and its help explains JUnit failures, --fail-on and exit codes.<\/li>\n<li>The lumtera\/site-summary ability returns the coverage summary its description promises.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>After \"Check all content\", your results appear first, with a summary of what was found and a link to what to fix.<\/li>\n<li>Review mode works on the blog home page, archives, search and the shop page, and the weekly home page check opens it.<\/li>\n<li>New: a \"Dismissed\" view in the Content report shows who dismissed each issue, when and why, with Restore.<\/li>\n<li>New: choose what happens to your data when Lumtera is deleted (keep it by default, or delete everything), with a feedback export.<\/li>\n<li>Feedback replies use your statement's contact email as Reply-To, and include the reference number and the original message.<\/li>\n<li>Contrast is checked for text on a Cover block whose overlay is set to 0%.<\/li>\n<li>Issues anywhere in a synced pattern link back to their block.<\/li>\n<li>\"Fix at the source\" counts only the pages that use that part.<\/li>\n<li>WP-CLI: <code>wp lumtera issues --fail-on<\/code> sets the exit status in every format, with or without <code>--baseline<\/code>.<\/li>\n<li>Editor: the toolbar button names its counts, Escape closes the dismiss form, dismissing can be undone, and the summary block starts in its text.<\/li>\n<li>Clearer wording throughout.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Faster, lighter Overview, coverage, weekly email and abilities on sites with many saved whole-page results: each saved result now keeps a small summary, so site-wide numbers no longer load every finding into memory. Results saved before this version get their summary in the background, a few at a time; the numbers are the same.<\/li>\n<li>The \"Fixed this week\" count no longer counts a fix that was undone.<\/li>\n<li>For add-on developers: new filters <code>lumtera_page_result_summaries<\/code> and <code>lumtera_page_result_load<\/code>, and <code>PageResults::index()<\/code>, <code>summaries()<\/code>, <code>walk()<\/code> and <code>with_issues()<\/code>. <code>lumtera_page_result_sources<\/code> still works.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Output buffers used while checking content always close back to where they started, even when a block, widget or shortcode leaves its own buffer open.<\/li>\n<li>No longer loads WordPress admin files it doesn't use.<\/li>\n<li>The readme lists the chat widgets Lumtera recognises in your page's HTML, and confirms it never contacts them.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: a weekly home page check, off by default and one click to turn on. Your home page is checked every week on your own server; new errors show on the Overview and in the weekly email.<\/li>\n<li>Weekly email: a \"Fixed this week\" count, the home page check result and an accessible HTML layout, plus an optional one-line note about Lumtera Pro that you can switch off.<\/li>\n<li>Getting started checklist: two new steps, trying review mode on your home page and turning on the weekly email with one click.<\/li>\n<li>A clearer Free vs Pro page (the weekly summary is free; support is in the WordPress.org forums), and 4 Pro preview screens in the menu instead of 10.<\/li>\n<li>Short tips about Lumtera Pro at relevant moments, which you can dismiss and which are hidden when Pro is installed. A one-time request for a review once you've made progress, which you can snooze or turn off.<\/li>\n<li>The admin menu is now called \"Lumtera\", and the editor button \"Lumtera Accessibility\".<\/li>\n<li>Works on SQLite, including WordPress Playground.<\/li>\n<li>Nothing moved from free to Pro: every check and tool stays free.<\/li>\n<\/ul>\n\n<h4>1.0.0.3<\/h4>\n\n<ul>\n<li>Tested feature by feature in Chrome, Firefox and Safari's engine, with fixes for what that found:\n\n<ul>\n<li>Review mode's keyboard check can be stopped with Escape and continues after a reload.<\/li>\n<li>Skip link fixes on block themes.<\/li>\n<li>Document-link labels on sites with a port.<\/li>\n<li>Keyboard focus in the checklist and the Elementor panel.<\/li>\n<li>Contrast over SVG images in Firefox, text spacing in Safari, and system focus rings.<\/li>\n<\/ul><\/li>\n<li>Elementor panel asks for an optional reason when dismissing, like the block editor.<\/li>\n<li>Feedback: a confirmation before deleting a message, and a warning for recipient addresses that are not valid.<\/li>\n<li>Content report CSV follows \"Show possible issues\"; widget areas no longer produce list false positives.<\/li>\n<\/ul>\n\n<h4>1.0.0.2<\/h4>\n\n<ul>\n<li>More accurate checks, measured against the W3C ACT test cases: images and SVGs named only by ARIA, form fields built with ARIA roles, invalid language codes, blocked zoom and autocomplete values are now found; disabled controls, text shadows, short or controllable audio and menu toggle links no longer raise false errors.<\/li>\n<li>New check: autocomplete value is not valid (WCAG 1.3.5).<\/li>\n<li>\"Check all content\" can continue where it stopped, and lists any item that could not be checked.<\/li>\n<li>A dismissed issue that comes back says why (\"Showing again\").<\/li>\n<li>The weekly email summary shows when sending failed, and can be tested.<\/li>\n<li>Faster reports on large sites, and tighter permission and privacy checks.<\/li>\n<\/ul>\n\n<h4>1.0.0.1<\/h4>\n\n<ul>\n<li>Every inline script and style is added with wp_enqueue_script(), wp_enqueue_style(), wp_add_inline_script() and wp_add_inline_style(); nothing is printed as a raw <code>&lt;style&gt;<\/code> or <code>&lt;script&gt;<\/code> tag.<\/li>\n<li>Database queries use fixed SQL with placeholders only.<\/li>\n<li>Plugin name shortened to \"Lumtera \u2013 Accessibility Checker\".<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>First public release.<\/p>\n\n<ul>\n<li>69 checks mapped to WCAG 2.2, built to avoid false alarms: checks a machine cannot decide are marked \"Needs review\", and \"Why is this flagged?\" explains each finding.<\/li>\n<li>Block editor sidebar with live checks, one-click quick fixes, jump to block, dismiss with a reason, and a pre-publish check. Also in Elementor and the classic editor.<\/li>\n<li>Review mode on the live page, with 33 whole-page checks of the rendered page: title, language, landmarks, skip link, headings, contrast, target size, zoom, reflow, text spacing and reading order.<\/li>\n<li>Contrast everywhere: gradients, text over images, non-text and focus-indicator contrast, and suggested passing colours from your theme palette.<\/li>\n<li>Keyboard walk: every Tab stop numbered, with checks for visible focus, focus hidden under sticky headers, focus order and possible keyboard traps.<\/li>\n<li>Widget tests: menus, disclosures, dialogs, tabs and accordions operated from the keyboard, with the page restored afterwards.<\/li>\n<li>Screen reader preview of headings, landmarks, links and form fields.<\/li>\n<li>Fixes you approve: a before-and-after review, a revision for every change, a re-check after saving, and undo.<\/li>\n<li>Fix at the source: fix an issue once in a template part, synced pattern, navigation or classic menu, and re-check the pages that use it.<\/li>\n<li>Site parts: menus, widget areas, template parts, synced patterns and navigation are checked, and each issue shows where it comes from.<\/li>\n<li>Honest coverage meter: how many WCAG 2.2 A\/AA criteria the enabled checks cover, shown next to the score, never merged into it.<\/li>\n<li>Guided checklists for the criteria that need a person, with results saved per page and per criterion.<\/li>\n<li>Accessibility feedback form block and shortcode, with an inbox, reference numbers, statuses, replies, retention and optional Akismet.<\/li>\n<li>Accessibility statement with WCAG 2.1, WCAG 2.2 and EN 301 549 options and EAA, PSBAR, ADA Title II and AODA templates.<\/li>\n<li>ADA Title II exception tags that never hide an item from totals or reports.<\/li>\n<li>Content report with My content, Site parts and Compliance views, grouping of the same issue across pages, CSV export and a column in your post lists.<\/li>\n<li>Whole-page results saved to reports when you choose.<\/li>\n<li>Page builders and custom fields: Beaver Builder, SiteOrigin, Brizy, Visual Composer, Live Composer, Zion Builder, Divi, Bricks, Oxygen, WPBakery and Advanced Custom Fields, plus a fallback for builders that use the content filter.<\/li>\n<li>Block libraries: Spectra, Kadence Blocks, GenerateBlocks, Stackable, Otter, Essential Blocks, Greenshift and Kubio; WooCommerce product descriptions.<\/li>\n<li>Alt text manager for the Media Library.<\/li>\n<li>Optional AI drafts through the WordPress AI Client: alt text (also for many images at once), link text, headings and a plain-language summary, always approved by a person.<\/li>\n<li>Optional server-side site fixes for common theme problems (skip link, focus ring, zoom, link underlines, form labels, new-tab and document-link text), off by default.<\/li>\n<li>Blocks: Accessibility statement link, Accessibility feedback form and Plain-language summary; <code>[lumtera_statement_link]<\/code> and <code>[lumtera_feedback]<\/code> shortcodes.<\/li>\n<li>WP-CLI with exit codes, baselines that fail only on new issues, SARIF and JUnit output, and site part scans.<\/li>\n<li>REST API, hooks, and WordPress Abilities for AI assistants: read-only, plus a fix proposal that waits for a person.<\/li>\n<li>Reading level in six languages, and vague-link checks in English, German, French, Spanish, Italian, Dutch and Portuguese.<\/li>\n<li>Permissions, a \"Lumtera Reporter\" role for agency hubs, an optional weekly email summary and a dashboard widget.<\/li>\n<li>Personal data export and erase for dismissals and feedback; fix history is exported and anonymised.<\/li>\n<li>Multisite support, including clean uninstall across a network.<\/li>\n<\/ul>","raw_excerpt":"Accessibility checker for WCAG 2.2, ADA and EAA. Find issues as you write and on the live page, then fix them with a preview and undo. No overlay.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375449","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=375449"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mantrabrain"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375449"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375449"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375449"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375449"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375449"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}