/ Accessibility Fixes / Fix Accessibility WordPress

How to Fix Accessibility in WordPress: WCAG, Themes & Plugins

WordPress accessibility failures usually live in three places: the theme (missing landmarks, poor contrast, focus traps), plugins that inject inaccessible widgets, and editor habits (missing alt text, link text like "click here"). This guide covers the WordPress-specific accessibility audit-and-fix loop: pick an accessibility-ready theme, install WP Accessibility, audit Gutenberg blocks, fix page builder output, and run an automated scanner against the rendered HTML. Pair with our accessibility guide and alt text fixes.

Step 1: Run an automated baseline scan

Use WAVE (wave.webaim.org) and axe DevTools on 5 representative URLs. Record error count, contrast failures and missing landmarks.

Step 2: Switch to or verify accessibility-ready theme

WordPress.org tags accessibility-ready themes. Check your theme has the tag. If not, audit it manually for landmarks (header, nav, main, footer), skip links, and visible focus states.

Step 3: Install WP Accessibility plugin

Free plugin from WordPress.org. Adds skip links, enforces alt text in the media library, removes target=_blank from links, adds keyboard navigation to menus.

Step 4: Audit Gutenberg blocks

Heading levels in correct order (H1→H2→H3, no skipping). Image blocks have alt text. Button blocks have descriptive labels. Cover blocks have sufficient contrast.

Step 5: Audit page builder output (Elementor, Divi, WPBakery)

Page builders frequently produce inaccessible HTML: divs instead of buttons, missing form labels, focus traps in popups. Audit each widget; replace inaccessible ones with custom HTML blocks.

Step 6: Fix contrast site-wide

Use the WAVE contrast checker. Adjust theme CSS variables for text colours. Most WordPress themes use a light grey for body text that fails WCAG AA at small sizes.

Step 7: Verify and monitor

Re-run WAVE and axe. Set up monthly scans via Pa11y CI or Lighthouse CI in GitHub Actions. Accessibility regresses with every theme/plugin update.

Frequently Asked Questions

Which WordPress themes are most accessible?
GeneratePress, Astra and Kadence all hold the WordPress.org accessibility-ready tag and are well-tested. Twenty Twenty-Four (the default theme) is accessibility-ready out of the box. Avoid older premium themes that haven't been updated for accessibility in years — many ThemeForest themes pre-2022 fail basic WCAG checks.
Does WP Accessibility replace manual auditing?
No. WP Accessibility automates some common fixes (skip links, alt-text enforcement, keyboard menus) but doesn't catch contrast failures, heading hierarchy problems, focus-trap bugs, or inaccessible page builder widgets. It's a foundation, not a complete solution. Run WAVE and axe manually on top.
Are page builders inherently inaccessible?
Not inherently, but they tend toward inaccessibility because they output many nested divs and inline styles. Elementor has improved significantly since 2023 with accessibility flags on widgets. Divi and WPBakery lag behind. The safest path: use a builder for layout, then replace interactive widgets (forms, accordions, tabs) with accessible custom HTML blocks.
How do I add alt text to old media library uploads?
Use the Media Library bulk editor in WordPress 6.5+, or the Bulk Edit Alt Text plugin. For very large libraries, consider an AI-based plugin like Auto Alt Text. Always review AI-generated alt text for accuracy — automated descriptions miss context.
Will an accessible WordPress site rank better in Google?
Indirectly yes. Google doesn't have a direct 'accessibility' ranking signal, but accessibility correlates strongly with semantic HTML, descriptive link text, alt text, and good heading hierarchy — all of which help SEO. Plus Lighthouse accessibility score is visible in Search Console.

🔎 Audit your WordPress accessibility

Find every contrast, landmark and alt-text issue on your site.

Run Accessibility Audit →
Related Guides: Accessibility Guide  ·  All Accessibility Fixes  ·  Fix Alt Text  ·  Fix CLS in WordPress
💬 Got a problem?