Make any WordPress site EAA-compliant with these 10 concrete checks. Each takes 5 minutes. Free scanner included.
Updated August 2026 · Reading time: 6 minutes
The European Accessibility Act (EAA) was adopted in 2019 with a compliance deadline of June 28, 2025. Enforcement is now active across EU member states. The EAA requires that digital services — including websites, e-commerce stores, and booking systems — meet WCAG 2.1 AA accessibility standards.
WordPress powers over 43% of all websites globally. In the EU alone, hundreds of thousands of WooCommerce stores, membership sites, and service portals fall under EAA scope. If your agency manages any of these, compliance is not optional — and the good news is that most failures are fast and cheap to fix.
This checklist covers the 10 most common WCAG 2.1 AA failures found on WordPress sites. Run through all 10 and your site will meet the baseline requirements that EU regulators and enterprise procurement teams look for.
Pass all 10, and your site is demonstrably EAA-compliant. Each check includes what to look for, how to test it, and where to fix it in WordPress.
Requirement: Text must have a contrast ratio of at least 4.5:1 (normal text) or 3:1 (large text 18pt+).
How to check: Install the WebAIM Contrast Checker extension or the Accessibility Insights browser extension. Click on any text element to see its contrast ratio.
Most common WordPress violations: Light gray footer text on white backgrounds, blue link text on dark backgrounds, button text that blends into button color. Fix these in Appearance → Customize → Colors, or add custom CSS via Appearance → Customize → Additional CSS.
Requirement: Every meaningful image needs descriptive alt text. Decorative images need alt="" (empty).
How to check: Run the WAVE browser extension — it lists every image with missing alt. Or use your scanner's IMG_ALT rule — it catches both missing and empty alt attributes.
Common WordPress violations: Product images in WooCommerce uploaded without alt text, logo in header without alt, social media icons, gallery images, and decorative spacer images. Fix in Media Library → select image → Alternative Text field. For bulk fixes, use Accessibility Checker plugin.
Requirement: Headings must form a logical hierarchy (h1 → h2 → h3 → ...) with no skipped levels and only one h1 per page.
How to check: Install the HeadingsMap browser extension. It shows the full outline. Look for missing h1, skipped levels (h1 → h3), or multiple h1s.
Most common WordPress violations: Page title is h1 (good), but widget headings use h3 while section headings use h2 — producing a flat hierarchy. Some themes output multiple h1s. The Block Editor's heading dropdown lets you pick the correct level.
Requirement: Every link must have visible, meaningful text. No generic "click here" or "read more." Links must also be distinguishable from surrounding text.
How to check: Your scanner checks LINK_TEXT — it flags links with empty text, generic text, or links where the text equals the URL. WAVE also lists link issues.
Common WordPress violations: "Read more" links on archive pages (fix by using Excerpts with meaningful text), "Continue reading" in theme templates, linked image without alt text on the image.
Requirement: Every form input must have a programmatically associated label (the <label> tag with for attribute).
How to check: The scanner's FORM_LABEL rule. Also use WAVE — it highlights unlabeled form controls in purple.
Common WordPress violations: Contact Form 7 and Gravity Forms sometimes miss labels when using placeholder-only fields. Search forms in themes often lack labels (they use a magnifying glass icon instead). WooCommerce checkout fields are usually labeled correctly — check custom forms.
Requirement: All interactive elements must be reachable and operable via keyboard alone. No keyboard traps.
How to check: Tab through the entire page using the Tab key. Every link, button, and form field should receive focus in a logical order. You should be able to submit forms and close modals with Enter/Escape.
Common WordPress violations: Custom menu dropdowns that open on hover but not on focus, modal popups (OptinMonster, Popup Maker) that trap keyboard focus, slider navigation arrows not focusable.
Requirement: The page must declare a language in the <html> tag (lang="en" or equivalent).
How to check: The scanner's LANGUAGE rule. Look at <html lang="..."> in the page source. If absent or wrong, screen readers use the wrong pronunciation engine.
Most common WordPress violations: Missing lang attribute (rare in WordPress — it's set by default). More common: pages that mix languages (English content on a Danish-site template) without declaring language changes with lang attributes on specific elements.
Requirement: Users must be able to zoom to 200% without loss of content or functionality. The viewport meta tag must not disable zooming.
How to check: The scanner's VIEWPORT rule catches user-scalable=no or maximum-scale=1.0. Then test: zoom the page to 200% in your browser and verify no text overflows, no buttons disappear, and all content still readable.
Common WordPress violations: Some themes copy-paste a <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> — the maximum-scale=1.0 disables zoom. Remove it in the theme's header.php or via a child theme filter.
Requirement: ARIA attributes must be used correctly. No focusable elements with aria-hidden="true". No incorrect ARIA roles that override native semantics.
How to check: The scanner's ARIA_HIDDEN_FOCUSABLE rule catches focusable elements hidden from screen readers. Use Accessibility Insights to audit the full ARIA structure.
Most common WordPress violations: Themes adding aria-hidden="true" to icon fonts or SVG icons while leaving them focusable (keyboard users can tab to invisible elements). Modals and menus with incorrect roles.
Requirement: Under the EAA, every public-facing site must have a published accessibility statement. This is a page on your site describing your accessibility level, any known issues, and how users can report problems.
How to check: Visit /accessibility or /accessibility-statement on the site. Your scanner does not check this (it's a content check, not a code check) — you need to verify manually.
What to include: Conformance level (WCAG 2.1 AA), any exempt content, testing methods used, known issues, feedback mechanism, and enforcement contact. Use our free Accessibility Statement Generator to create one in 2 minutes.
The 10 checks above are the foundation. If your site passes all 10, you have the baseline EAA compliance that regulators look for. But there are deeper items — screen reader testing, PDF accessibility, video captions, and complex widgets — that may apply depending on your site.
For a complete step-by-step plan, the EAA Compliance Checklist for WordPress Sites e-book includes a 14-day fix plan, testing tool comparison, printable quick-reference card, and a sample accessibility statement template ready to fill in.
Every CMS has different accessibility pitfalls. These guides address the most common issues for each platform:
Gutenberg blocks, theme issues, plugin conflicts
Liquid templates, Dawn theme, checkout flow
Interactions, animations, custom code
Wizard tools, Velo code, App Market risks
Fluid Engine, Classic editor, CSS overrides
Olivero/Claro themes, Editoria11y, Views
JA Accessibility, TinyMCE, template system