European Accessibility Act

EAA compliance for WordPress: WCAG 2.1 AA checklist & fixes

WordPress core has spent a decade improving accessibility — the block editor (Gutenberg), default themes, and admin all aim at WCAG 2.1 AA. The risk surface is in third-party themes and plugins, where accessibility coverage varies wildly. For an EAA-compliant WordPress site, audit the theme first, then every plugin that emits user-facing markup. Powers ~43% of the entire web; the largest single platform under EAA scope.

Category
Content management system
Standard
WCAG 2.1 Level AA via EN 301 549
Deadline
28 June 2025 (EU consumer services)
Risk for B2C
High — public-facing, consumer-billed

What the EAA actually requires from a WordPress site

The European Accessibility Act (Directive 2019/882) applies to consumer-facing online services from 28 June 2025. For a WordPress site selling to EU consumers, that means the storefront, checkout, account area, and any embedded payment flow have to meet WCAG 2.1 Level AA via the harmonised standard EN 301 549. Microenterprises with under 10 employees and below €2 million in turnover are exempt for services, but not for products.

Fines vary by member state. Germany caps individual penalties at €100,000; France can fine up to 4% of group turnover; Spain reaches €600,000 for serious or repeated breaches. None of those numbers are theoretical — market surveillance authorities have already started auditing storefronts in Germany and France in the run-up to enforcement.

In practice, the work breaks down into three buckets: theme-level fixes (focus styles, contrast, semantics), interaction-level fixes (carousels, modals, drawers, gallery widgets), and content-level fixes (alt text, headings, descriptive link text). The list below covers the WordPress-specific failure points we see most often during scans.

Top WCAG failures we see on WordPress sites

Across hundreds of WordPress scans, the same handful of issues show up over and over. None of them require ripping the theme apart — most are fixable in a few hours by someone comfortable in the platform's editor or template files.

  • Third-party themes overriding focus and color tokens

    Premium themes often ship with brand-aggressive colors and custom CSS that removes default focus outlines.

    1.4.3, 2.4.7 — Level AA
  • Page builders generating <div> soup

    Elementor, Divi, and similar builders can produce nested <div>s without semantic roles. Headings and landmarks go missing.

    1.3.1 — Level A
  • Cookie consent banners blocking primary content

    Many EU-required CMP banners trap focus or render above the skip link, breaking keyboard navigation.

    2.1.2, 2.4.1 — Level A

Concrete code fixes for WordPress

Below are copy-paste fixes for the most common WordPress issues. They assume you have access to your theme code or the platform's custom-code injection panel. If you cannot edit code directly, share these snippets with whoever maintains the site — every one of them is a ten-minute change.

wp-admin: switch to an accessibility-ready theme

// Appearance → Themes → search "accessibility-ready"
// Default safe choices: Twenty Twenty-Four, Astra, GeneratePress

WordPress.org tags themes that pass a manual a11y review. Starting from one cuts your audit time by 70%.

PHP: force language attribute and skip link on every theme

PHP
add_filter('language_attributes', function ($attrs) {
    return $attrs . ' lang="' . esc_attr(get_locale()) . '"';
});

Some imported themes drop the lang attribute on <html>. Reinforce it from a must-use plugin so updates do not regress it.

Tools and plugins worth installing first

  • Accessibility Checker plugin — runs on save and flags page-level issues

  • WP Accessibility — adds skip links, removes title attributes, fixes labels

  • Disable any plugin you do not use; each adds JS that can break interaction patterns

How to scan a WordPress site without missing anything

Automated scanners catch about 30–40% of WCAG issues; the rest need manual review. The good news is that the 30–40% includes the most expensive issues to remediate after the fact, so an automated scan is the cheapest way to get unstuck. Run one before you change a line of theme code.

  • Audit before AND after activating cookie consent / chat / popup plugins.

  • Crawl /, /blog, a single post, /contact, and the WooCommerce flow if applicable.

Run a free public scan against any WordPress URL right now — no signup, results in 60 seconds.

Frequently asked questions

Do I need to switch themes for EAA?

Not necessarily. Many premium themes are fixable with CSS and a child theme. But starting from an accessibility-ready theme is the cheaper path.

Is the WordPress block editor (Gutenberg) accessible?

Yes — the editor itself is WCAG 2.1 AA. Output accessibility depends on which blocks you use and your theme's CSS.

Other content management system platforms

Find every accessibility issue on your site in 60 seconds.

Free public scan. No card. AI-generated fixes for every issue we find.