Skip to main content

Web Accessibility for WordPress: Compliance Guide

Last updated: March 31, 2026

TLDR

WordPress does not guarantee WCAG compliance. Theme choice, plugin selection, and content editing practices each introduce accessibility failures independently. The most common sources: themes with low-contrast color schemes, page builders that generate div-heavy markup without ARIA, contact form plugins with unlabeled fields, and editors adding images without alt text. Scanning identifies which of these your specific configuration has failed.

Why WordPress Accessibility Requires More Than a Good Theme

WordPress’s flexibility — the ability to combine any theme with any set of plugins and any content — is also why it produces so many accessible websites and so many inaccessible ones. The platform does not enforce accessibility standards at any layer. Every choice adds or subtracts from the compliance picture.

A site running a premium theme with a four-column page builder layout, six form plugins, a custom navigation menu, and a team page built from a custom post type is simultaneously running code from at least a dozen distinct codebases. Each contributes to the rendered output that gets scanned for WCAG compliance.

The Four Sources of WordPress Accessibility Failures

1. Theme Layer

Themes control visual presentation and HTML structure. Accessibility problems at the theme level affect every page on the site: low-contrast color schemes, missing focus indicators, broken heading hierarchy from layout templates, and nav menus without keyboard-accessible dropdown behavior.

Themes marked “Accessibility Ready” in the WordPress theme directory have passed a baseline check, but that check does not cover all 50 WCAG 2.1 AA criteria. Custom or premium themes from third-party marketplaces have no standard accessibility review process.

2. Plugin Layer

Plugins add functionality — and new markup — to every page they affect. Contact form plugins generate forms with varying levels of label accessibility. SEO plugins that add markup sometimes interfere with heading hierarchy. Cache plugins that serve pre-rendered HTML can strip JavaScript-dependent ARIA. Slider plugins are a frequent keyboard trap source.

Evaluate plugins on accessibility before installing. Check whether the plugin developer maintains an accessibility statement or issue tracker. Test interactively with keyboard and screen reader after installation.

3. Page Builder Layer

Page builders (Elementor, Divi, Beaver Builder, Gutenberg with custom blocks) add significant markup complexity. Visual drag-and-drop interfaces make it easy to create layouts that look good but have non-semantic HTML: headings that are actually styled text, links that are actually div click handlers, column layouts that break reading order.

4. Content Editor Layer

Even a perfectly accessible theme and plugin stack can be compromised by content authors. Images uploaded without alt text, headings skipped for visual sizing purposes (using <h4> because the size looks right, not because it follows an <h3>), links with text like “click here” — these are WCAG failures introduced through normal content editing.

Scanning WordPress Sites

A11yProof scans the rendered page your users actually see — not the WordPress source — so it catches failures from all four layers in a single pass. A weekly scan catches regressions from plugin updates, theme changes, and new content additions.

The scan output tells you: which page has the issue, what WCAG criterion is violated, how severe it is, and what the code fix looks like. For WordPress, that means you know whether the failure is in a form plugin configuration, a theme stylesheet, or a piece of content that needs editorial correction.

Starting at $29/month for a single WordPress site.

Need accessibility compliance for WordPress? There's a simpler way.

A11yProof starts at from $29/month — scan unlimited pages, up and running in 5 minutes.

WordPress powers approximately 43% of all websites globally as of 2024

Source: W3Techs Web Technology Surveys

Over 4,000 ADA web accessibility lawsuits were filed in federal court in 2023, targeting sites across all platforms including WordPress

Source: UsableNet 2023 Year-End Report

Top WordPress Industries by Accessibility Compliance Need
Metro AreaEstablishments
Self-hosted WordPress.org sites455,000,000
WordPress.com hosted sites45,000,000
Total — WP500,000,000+
Common WordPress Accessibility Failures by Source
SourceWCAG CriterionRisk LevelTypical Fix
Theme: low contrast color scheme1.4.3, 1.4.11HighOverride theme colors in customizer or child theme CSS to meet ratio requirements
Page builder: div-heavy markup without ARIA1.3.1, 4.1.2HighUse native HTML elements where possible; add ARIA roles to custom blocks
Contact Form 7 / Gravity Forms: unlabeled fields1.3.1, 3.3.2HighConfigure form plugin to output visible labels associated with each input
Editor: images uploaded without alt text1.1.1HighEnforce alt text via Media Library settings; train content editors
Menu: custom dropdown navigation keyboard trap2.1.2HighUse accessible nav plugin or custom keyboard event handlers
WooCommerce: cart updates not announced4.1.3MediumAdd ARIA live region to WooCommerce cart fragment

Compliance Requirements — WordPress

WordPress-powered websites have the same ADA Title III obligations as any other public-facing website. WordPress itself is open source software — compliance depends entirely on theme, plugin, and content choices. The WordPress Accessibility Team maintains a 'Accessibility Ready' theme tag standard, but meeting that standard does not guarantee full WCAG 2.1 AA conformance.

Q&A

Does using an 'Accessibility Ready' WordPress theme guarantee WCAG compliance?

No. The WordPress 'Accessibility Ready' tag signals that a theme passed a review against a specific set of criteria (keyboard navigation, skip links, form labels, sufficient color contrast for the default color scheme). This baseline check does not guarantee full WCAG 2.1 AA conformance — it does not cover all 50 success criteria, and it does not account for what happens when you install plugins, customize colors, or add content. An Accessibility Ready theme is a better starting point than a theme with no accessibility consideration, but it still needs scanning and testing.

Q&A

What accessibility scanning features matter for WordPress sites?

WordPress sites need scanning that accounts for the layered architecture: core, theme, plugins, and content editor output each contribute to the final rendered page. A11yProof scans the live rendered page — what users actually see — rather than the WordPress source. This catches failures from all sources: a theme's contrast issue, a plugin's inaccessible form, and an editor's unformatted image all appear in the scan results regardless of where they originate in the stack.

Industry Regulations — WordPress

Plugin and theme updates are a constant source of accessibility regressions — a plugin update can break keyboard navigation or introduce a contrast failure across the entire site. Continuous scanning catches these regressions after updates.

Ready to make your WordPress site accessible?

Which WordPress contact form plugins produce accessible forms?
Gravity Forms and Ninja Forms both have accessibility-focused configuration options and active development on accessibility. Contact Form 7's default output has historically had label association issues that require configuration. WPForms has improved accessibility in recent versions. The form plugin's accessible output still depends on how you configure it — always test form fields with keyboard navigation and a screen reader after installation.
How do WordPress page builders (Elementor, Divi, Beaver Builder) affect accessibility?
Page builders vary significantly in accessibility output. Elementor has made accessibility improvements and added an accessibility mode. Divi generates markup that has historically had heading hierarchy issues and missing ARIA. Beaver Builder's output tends to be cleaner HTML. All page builders can produce inaccessible output depending on the widgets used and the configuration choices made. Any site built with a page builder needs scanning to identify what the actual rendered output contains.
How do I prevent content editors from introducing accessibility failures?
Three approaches work in practice: (1) configure the media upload workflow to require alt text before an image can be inserted, (2) use an editorial plugin that flags common issues (missing headings, color-only links) in the editor interface, and (3) create content guidelines that explain alt text, heading hierarchy, and link text requirements in non-technical language. Scanning catches what editors miss — a weekly scan alert tells you when new content has introduced violations.
Do WooCommerce stores have specific accessibility requirements beyond standard WordPress?
Yes. WooCommerce adds ecommerce-specific components that have their own accessibility challenges: product variation selectors, cart update notifications, checkout form multi-step flows, and order confirmation announcements. WooCommerce's default themes have improved accessibility over time, but third-party WooCommerce themes and custom template modifications frequently introduce failures. Scan WooCommerce stores with particular attention to the product page, cart, and checkout templates.
How does A11yProof handle WordPress sites with dynamic content?
A11yProof renders pages in a full browser environment before scanning, so it tests the page as users see it — including JavaScript-loaded content, dynamic cart updates, and AJAX-powered search results. WordPress sites relying on JavaScript for key interactions need this rendering approach; static HTML analysis misses the issues that appear after JavaScript execution.

Keep reading