If you build websites for European users (or for companies that sell to European users), June 28, 2025 changed everything.
That is when the European Accessibility Act (EAA) became enforceable. Not a guideline. Not a recommendation. A law — with real fines, real enforcement, and real consequences for non-compliant digital products and services.
And yet, most development teams I talk to either have not heard of it or assume it only applies to government websites. It does not. The EAA covers any digital product or service sold in the EU, including e-commerce, banking apps, e-books, travel booking platforms, and SaaS tools.
What the EAA Actually Requires
The EAA points to EN 301 549, which in turn references WCAG 2.1 Level AA as the technical standard. Your website must be perceivable, operable, understandable, and robust for users with disabilities.
The penalties vary by EU member state: fines up to €1,000,000 in Spain and up to 5% of annual revenue in Italy.
The Top 10 WCAG 2.1 AA Issues Most Websites Fail On
1. Missing alt text on images
<!-- Bad -->
<img src="chart.png">
<!-- Good -->
<img src="chart.png" alt="Revenue growth chart showing 40% increase in Q3 2025">
2. Insufficient color contrast
WCAG requires a 4.5:1 contrast ratio for normal text and 3:1 for large text.
/* Fails: contrast ratio ~2.5:1 */
.subtitle { color: #999999; background: #ffffff; }
/* Passes: contrast ratio ~4.6:1 */
.subtitle { color: #595959; background: #ffffff; }
3. Missing form labels
<!-- Bad -->
<input type="email" placeholder="Your email">
<!-- Good -->
<label for="email">Email address</label>
<input type="email" id="email">
4. No keyboard focus indicators
/* Never do this without a replacement */
*:focus { outline: none; }
/* Do this instead */
*:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
5. Missing skip navigation link
<body>
<a href="#main-content" class="sr-only focus:not-sr-only">Skip to main content</a>
<header><!-- nav --></header>
<main id="main-content"><!-- content --></main>
</body>
6. Missing language attribute
<!-- Bad -->
<html>
<!-- Good -->
<html lang="en">
7. Empty links and buttons
<!-- Bad -->
<button><svg><!-- icon --></svg></button>
<!-- Good -->
<button aria-label="Close dialog"><svg><!-- icon --></svg></button>
8. Missing document structure (headings)
Pages need a logical heading hierarchy. Jumping from <h1> to <h4> confuses assistive technology.
9. Auto-playing media
Videos or audio that play automatically without user control violate WCAG 1.4.2.
10. Missing ARIA landmarks
<!-- Bad -->
<div class="header">...</div>
<div class="content">...</div>
<!-- Good -->
<header>...</header>
<main>...</main>
<footer>...</footer>
Why Automated Scanners Miss Most Issues
If you run your site through WAVE, you will catch about 100 rules. But WCAG 2.1 AA has 201 testable success criteria. That means free tools catch about half the picture.
This is why I built AccessiScan — it tests against all 201 WCAG criteria and gives you prioritized fix recommendations.
Where to Start Right Now
- Run a scan — use any tool to get a baseline
- Fix the top 10 above first — they account for ~80% of failures
- Test with a keyboard — tab through your entire site
- Test with a screen reader — VoiceOver (Mac) or NVDA (Windows)
- Add it to CI — catch regressions on every deploy
The EAA is not going away. The time to fix your site is now.
If you want a tool that covers the full 201 WCAG criteria, check out AccessiScan Pro — lifetime access for $29 (normally $29/month). Only 50 lifetime seats available.
Top comments (0)