DEV Community

DevToolsmith
DevToolsmith

Posted on

The European Accessibility Act Is Now Live — Is Your Website Compliant?

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">
Enter fullscreen mode Exit fullscreen mode

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; }
Enter fullscreen mode Exit fullscreen mode

3. Missing form labels

<!-- Bad -->
<input type="email" placeholder="Your email">

<!-- Good -->
<label for="email">Email address</label>
<input type="email" id="email">
Enter fullscreen mode Exit fullscreen mode

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; }
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

6. Missing language attribute

<!-- Bad -->
<html>

<!-- Good -->
<html lang="en">
Enter fullscreen mode Exit fullscreen mode

7. Empty links and buttons

<!-- Bad -->
<button><svg><!-- icon --></svg></button>

<!-- Good -->
<button aria-label="Close dialog"><svg><!-- icon --></svg></button>
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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

  1. Run a scan — use any tool to get a baseline
  2. Fix the top 10 above first — they account for ~80% of failures
  3. Test with a keyboard — tab through your entire site
  4. Test with a screen reader — VoiceOver (Mac) or NVDA (Windows)
  5. 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)