{"id":17622,"date":"2026-08-21T19:27:27","date_gmt":"2026-08-21T19:27:27","guid":{"rendered":"https:\/\/make.wordpress.org\/accessibility\/?p=17622"},"modified":"2026-08-21T19:27:27","modified_gmt":"2026-08-21T19:27:27","slug":"help-shape-the-accessibility-lab-plugin","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/accessibility\/2026\/08\/21\/help-shape-the-accessibility-lab-plugin\/","title":{"rendered":"Help shape the Accessibility Lab plugin"},"content":{"rendered":"<p class=\"has-large-font-size wp-block-paragraph\">Introducing the <span tabindex='0' class='glossary-item-container'>Accessibility<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Accessibility<\/span> <span class='glossary-item-description'>Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility)<\/span><\/span><\/span> Lab <span tabindex='0' class='glossary-item-container'>plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Plugin<\/span> <span class='glossary-item-description'>A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span>! The plugin aims to offer a combination of <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> related experiments and practical tools that solve shared problems for all to benefit from. The goal is not to move accessibility fixes out of Core and into a separate plugin.\u00a0<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><a href=\"https:\/\/wordpress.slack.com\/archives\/C02RP4X03\/p1786115039429659\">After various conversations with the accessibility team<\/a> about where a plugin can genuinely help move Core forward (and where it very much can\u2019t), <a href=\"https:\/\/github.com\/annezazu\/accessibility-lab\/\">an initial prototype is available<\/a> now.\u00a0<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Please consider this plugin an early approach to gather around and improve before we add it to the plugin repository as a canonical plugin.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1532\" src=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-scaled.png\" alt=\"View of the Accessibility Lab plugin settings and options available, with the Block Validation Framework options enabled. \" class=\"wp-image-17625\" srcset=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-scaled.png 2560w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-300x180.png 300w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-767x459.png 767w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-1024x613.png 1024w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-1536x919.png 1536w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Accessibility-Lab-plugin-2048x1225.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Why a canonical plugin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Accessibility Lab plugin follows the approach of two existing plugins in the WordPress project: <a href=\"https:\/\/wordpress.org\/plugins\/performance-lab\/\">Performance Lab plugin<\/a> and the <a href=\"https:\/\/wordpress.org\/plugins\/ai\/\">AI plugin<\/a>. Each plugin provides a combination of features and experiments that anyone can help test and use. Each plugin is also maintained by their respective team.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the Performance Lab plugin, the Accessibility Lab plugin takes inspiration from how they ship individual modules as a way to test and get feedback for features slated for Core that can\u2019t exist in Core for different reasons. Unlike Performance Lab, the features won\u2019t be broken into individual plugins. They\u2019ll stay bundled in a single Accessibility plugin for ease of use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the AI plugin, it borrows the idea of bringing solutions together. When someone in the community has already built something that works well and wants to contribute it back to the wider community, it makes more sense to give it an official, centralized home. Accessibility needs come up again and again across WordPress in schools, agencies, and everywhere in between. This plugin is a way to collect that work in one place for all to benefit from.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Together, these two ideas shape what this plugin is for: a new contribution pathway for folks who want to test early items headed to Core, and a reliable community resource for features that solve problems shared across the project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the Accessibility Lab plugin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This plugin aims to have every module fall into one of these two buckets:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Core experiments:<\/strong> this includes features that are architecturally hard to get right (a real <span tabindex='0' class='glossary-item-container'>migration<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Migration<\/span> <span class='glossary-item-description'>Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.<\/span><\/span><\/span>, schema change, or performance tradeoff) and need a working implementation gathering real data before Core can responsibly commit to them. This ensures that the best option ships in Core based on real-world usage.\u00a0<\/li>\n\n\n\n<li><strong>Practical tools<\/strong>: this includes both features developed directly in the plugin or bringing in plugins already doing real, useful accessibility work in the wild with full credit to the people who built them. These items do not necessarily come with an implied promise that they\u2019re trying to land in Core and are instead meant to be shared utilities for the community to benefit from.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This means success looks like a combination of the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Features are proposed and merged into Core from the Accessibility Lab plugin, based on real-world testing and experimentation in the plugin first.\u00a0<\/li>\n\n\n\n<li>Practical tools that solve shared problems are ready for the broader community to benefit from with a community-backed option that can be relied upon.\u00a0<\/li>\n\n\n\n<li>Solid adoption of the plugin to ensure greater testing and confidence in different features.<\/li>\n\n\n\n<li>More folks contribute to Accessibility efforts, with the Accessibility Lab plugin being an additional option to contribute over just Core.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What it\u2019s not<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is not \u201cinstall this plugin to have accessibility needs met\u201d or \u201cto make WordPress accessible\u201d. That approach causes real harm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Accessibility Lab plugin is not a substitute for fixing accessibility in Core. It is a place to test new ideas, gather feedback, and develop features that need real-world testing before they are ready for Core.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a feature or fix does not clearly fit into one of the purposes described above, it does not belong in Accessibility Lab, no matter how useful it might be.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Straightforward accessibility bugs should still be fixed directly in WordPress Core or <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\r<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span>. They do not need to become Accessibility Lab modules first. Examples include adding or correcting ARIA attributes, using the proper <span tabindex='0' class='glossary-item-container'>HTML<span class='glossary-item-hidden-content'><span class='glossary-item-header'>HTML<\/span> <span class='glossary-item-description'>HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites.<\/span><\/span><\/span> elements and semantics, fixing missing accessible names or labels, correcting keyboard interactions, or resolving other clear failures of established accessibility standards.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Accessibility Lab is most useful when a solution needs more discussion, testing, or feedback from real users. It gives the Accessibility Team a way to try solutions without delaying smaller accessibility fixes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is to improve accessibility throughout WordPress, not to move accessibility fixes out of Core and into a separate plugin. When the right solution is clear, the fix should happen where the problem exists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Who develops it<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Accessibility Lab plugin is a project of the WordPress Accessibility team, discussed in the <a href=\"https:\/\/wordpress.slack.com\/archives\/accessibility\">#accessibility<\/a> channel. <a href=\"https:\/\/github.com\/annezazu\/accessibility-lab\">Issues and pull requests are tracked in this GitHub project<\/a> for now, until it\u2019s moved to the official WordPress repository.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s included in this first prototype\u00a0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Media Library view options\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress\u2019s media library now defaults to infinite scroll as of WordPress 7.1, with an opt-out available in user profiles. There\u2019s an active conversation happening in Core right now about the right long-term <span tabindex='0' class='glossary-item-container'>UI<span class='glossary-item-hidden-content'><span class='glossary-item-header'>UI<\/span> <span class='glossary-item-description'>UI is an acronym for User Interface - the layout of the page the user interacts with. Think \u2018how are they doing that\u2019 and less about what they are doing.<\/span><\/span><\/span> for surfacing this choice differently (<a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/pull\/12795\">PR #12795<\/a> and <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/65775\">Trac #65775<\/a>). This option in the Accessibility Lab plugin goes beyond turning infinite scroll on\/off in the Media Library and includes additional view options to control how many items show by default, the density level, and whether to always show file names. Bringing in feedback from folks using this option can help shape the placement and the approach for an iteration on where and what surfaces in Core for the Media Library.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span tabindex='0' class='glossary-item-container'>Block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> Accessibility Checks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To help address the shared problem of inaccessible content going out with things like missing alt text or skipped heading levels, an additional module brings in the great work from <a href=\"https:\/\/profiles.wordpress.org\/areziaal\/\">Troy Chaplin<\/a>. His <a href=\"https:\/\/wordpress.org\/plugins\/block-accessibility-checks\/\">Block Accessibility Checks plugin<\/a> brings a real-time, three-tier <span tabindex='0' class='glossary-item-container'>WCAG<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WCAG<\/span> <span class='glossary-item-description'>WCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) <a href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">https:\/\/www.w3.org\/TR\/WCAG21\/<\/a>.<\/span><\/span><\/span> validation for blocks, <span tabindex='0' class='glossary-item-container'>meta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Meta<\/span> <span class='glossary-item-description'>Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.<\/span><\/span><\/span> fields, and document structure, with a hook system open enough that blocks from other plugins get checked too. Troy was game for this to be added to the Accessibility Lab plugin so a higher ed accessibility office and a hobbyist blogger can point to the same trusted answer to this problem (and ideally help improve it). The block accessibility validation tools are a practical exploration for providing authors with better accessibility tools. It\u2019s not currently slated for inclusion into core, but different pieces can be evaluated in the future.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1532\" src=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-scaled.png\" alt=\"View of the block validation checks options where you can change level of warning, search for items, and more. \" class=\"wp-image-17626\" srcset=\"https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-scaled.png 2560w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-300x180.png 300w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-767x459.png 767w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-1024x613.png 1024w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-1536x919.png 1536w, https:\/\/make.wordpress.org\/accessibility\/files\/2026\/08\/Validation-settings-2048x1225.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\"><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Heading-order validation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Skipping heading levels (ex: an H2 followed by an H4) breaks the document outline that screen readers and other assistive tech use to summarize and navigate a page. WCAG 1.3.1 (Info and Relationships) treats it as a failure, and it\u2019s one of the most common accessibility mistakes editors make without realizing it. There\u2019s a longstanding proposal to fix this in <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/10581\">#10581<\/a> that asks for a hierarchy-checker notice inside the Heading block settings so writers see the problem as they set the level. <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/69891\">#69891<\/a> also covers surfacing the same errors from the Document Outline panel. Both are open, and neither has landed yet. This module ships a version people can rely on now with a real-time editor warning as soon as a heading block introduces a gap, so writers can correct the outline in the moment rather than discovering the issue in a later accessibility audit. It builds on the plugin\u2019s Block Validation Framework, so warnings share the same UI and severity controls as every other check the framework surfaces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ideas for what\u2019s next<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Searchable alt text is the clearest example of where this work could go next. Shout out to Joe Dolson for flagging this. For context, alt text lives in postmeta today, which is why it can\u2019t be searched at scale. <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/39004\">Trac #39004<\/a> has been asking for exactly this for years, tangled up with the broader postmeta search performance problem tracked in <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/39358\">Trac #39358<\/a>. It\u2019s precisely the kind of problem this plugin exists for: worth fixing, and architecturally hard enough that Core can\u2019t move forward without a real implementation to test against first.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you know of other Core accessibility problems stuck in that same spot, please share below. I\u2019d love a running list of ideas and problems to tackle as the plugin takes shape.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How you can help<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Test the plugin as it\u2019s in the prototype stage. File ideas as <span tabindex='0' class='glossary-item-container'>GitHub<span class='glossary-item-hidden-content'><span class='glossary-item-header'>GitHub<\/span> <span class='glossary-item-description'>GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the \u2018pull request\u2019 where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. <a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/span><\/span><\/span> issues. Open PRs. If you want to help shape what comes next, join the <a href=\"https:\/\/wordpress.slack.com\/archives\/accessibility\">#accessibility<\/a> channel and introduce yourself to get started.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Props to <a href=\"https:\/\/profiles.wordpress.org\/joedolson\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>joedolson<\/a> <a href=\"https:\/\/profiles.wordpress.org\/areziaal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>areziaal<\/a> <a href=\"https:\/\/profiles.wordpress.org\/williampatton\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>williampatton<\/a> <a href=\"https:\/\/profiles.wordpress.org\/alh0319\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>alh0319<\/a> for reviewing and contributing to this post. <\/strong><\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/accessibility\/tag\/accessibility\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>accessibility<\/a>, <a href=\"https:\/\/make.wordpress.org\/accessibility\/tag\/accessibility-lab\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>accessibility-lab<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Faccessibility%2F2026%2F08%2F21%2Fhelp-shape-the-accessibility-lab-plugin%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>Introducing the AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility) Lab pluginPlugin A plugin is a [&hellip;]<\/p>\n","protected":false},"author":13782018,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[575,23],"tags":[61,884],"class_list":["post-17622","post","type-post","status-publish","format-standard","hentry","category-accessibility","category-plugins","tag-accessibility","tag-accessibility-lab","mentions-alh0319","mentions-annezazu","mentions-areziaal","mentions-joedolson","mentions-williampatton","author-annezazu"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/posts\/17622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/users\/13782018"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/comments?post=17622"}],"version-history":[{"count":4,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/posts\/17622\/revisions"}],"predecessor-version":[{"id":17628,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/posts\/17622\/revisions\/17628"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/media?parent=17622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/categories?post=17622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/accessibility\/wp-json\/wp\/v2\/tags?post=17622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}