BFSG 2025: Was das Barrierefreiheitsstärkungsgesetz für Websites bedeutet
Das BFSG verpflichtet Unternehmen zur digitalen Barrierefreiheit. So funktionieren die Anforderungen, Fristen, WCAG-Kriterien und konkrete Umsetzungsschritte.
Rechtliches & Info
Technische BFSG-Umsetzung Schritt für Schritt: semantisches HTML, Tastaturnavigation, Formulare, Farbkontrast, ARIA und automatisiertes Testing.
Das Barrierefreiheitsstärkungsgesetz (BFSG) verpflichtet Unternehmen seit Juni 2025 zur digitalen Barrierefreiheit. Die rechtliche Grundlage ist klar, aber die technische Umsetzung bleibt für viele Teams die größere Hürde. Dieser Leitfaden fasst die zentralen technischen Anforderungen zusammen — von semantischem HTML über Tastaturnavigation und Formulare bis zu ARIA und automatisierten Tests.
Das BFSG ist die deutsche Umsetzung der EU-Richtlinie 2019/882. Es verpflichtet Anbieter bestimmter Produkte und Dienstleistungen — darunter E-Commerce, Banking, Personenbeförderung und elektronische Kommunikation — zur Barrierefreiheit nach europäisch harmonisierten Normen.
Technisch verweist das BFSG auf die EN 301 549 (europäische Norm für digitale Barrierefreiheit), die ihrerseits auf den WCAG 2.1 Level AA aufbaut. In der Praxis bedeutet das: Wer die WCAG-2.1-AA-Kriterien erfüllt, erfüllt die zentralen technischen Anforderungen des BFSG.
Die WCAG-Kriterien folgen vier Grundprinzipien:
Semantisches HTML ist nicht optional. Es gibt assistiven Technologien — Screenreadern, Sprachsteuerungen, Braille-Displays — die strukturellen Hinweise, die sie zur Navigation benötigen.
<!-- Nicht zugänglich: Bedeutungsloses Markup -->
<div class="header">
<div class="nav">
<div class="link">Home</div>
<div class="link">Über uns</div>
</div>
</div>
<div class="main">
<div class="title">Willkommen</div>
<div class="content">Lorem ipsum...</div>
</div>
<!-- Zugänglich: Klare semantische Struktur -->
<header>
<nav aria-label="Hauptnavigation">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/ueber-uns/">Über uns</a></li>
</ul>
</nav>
</header>
<main>
<h1>Willkommen</h1>
<p>Lorem ipsum...</p>
</main>
Eine konsistente Hierarchie ist essenziell. Pro Seite genau ein <h1>, danach <h2>–<h6> ohne Sprünge:
<h1>Hauptthema der Seite</h1>
<h2>Erster Abschnitt</h2>
<h3>Unterüberschrift Ebene 2</h3>
<h2>Weitere Hauptebene</h2>
<h3>Weitere Ebene 2</h3>
Screenreader bieten Nutzern eine Liste aller Überschriften zur schnellen Navigation. Eine kaputte Hierarchie macht diese Liste unbrauchbar.
Jede interaktive Funktion muss vollständig per Tastatur bedienbar sein — ohne Mausabhängigkeit.
tabindex="-1" für Elemente, die programmatisch fokussiert werden, aber nicht per Tab erreichbar sein sollentabindex mit positiven Werten vermeiden (bricht natürliche Reihenfolge)Der Fokusring ist Pflicht. Niemals outline: none ohne sichtbaren Ersatz:
/* Falsch: Fokus unsichtbar machen */
button:focus { outline: none; }
/* Richtig: Sichtbarer Custom-Fokus */
button:focus-visible {
outline: 2px solid var(--color-focus);
outline-offset: 2px;
}
| Element | Erwartete Taste |
|---|---|
| Buttons, Links | Enter (oder Space bei Buttons) |
| Checkboxen, Radio | Space |
| Selects | Arrows, Enter, Escape |
| Dialoge | Tab (Fokus-Falle), Escape (Schließen) |
| Tabs | Arrow Keys (laut WAI-ARIA Authoring Practices) |
| Menüs | Arrow Keys, Escape, Home/End |
Ein “Zum Inhalt springen”-Link am Anfang jeder Seite erlaubt Tastatur- und Screenreader-Nutzern, repetitive Navigationsbereiche zu überspringen:
<a href="#main" class="skip-link">Zum Inhalt springen</a>
<header>...</header>
<main id="main">...</main>
.skip-link {
position: absolute;
left: -9999px;
}
.skip-link:focus {
position: fixed;
top: 0;
left: 0;
padding: 1rem;
background: var(--color-bg);
z-index: 100;
}
Jedes Formularfeld braucht ein verknüpftes Label. Drei zulässige Patterns:
<!-- Pattern 1: Label mit for-Attribut -->
<label for="email">E-Mail-Adresse</label>
<input type="email" id="email" name="email">
<!-- Pattern 2: Label umschließt Input -->
<label>
E-Mail-Adresse
<input type="email" name="email">
</label>
<!-- Pattern 3: aria-label (nur wenn visuelles Label nicht möglich) -->
<input type="search" aria-label="Suche">
placeholder ist kein Label — er verschwindet beim Tippen und hat schlechten Kontrast.
Fehlermeldungen müssen mit dem Feld verknüpft und für Screenreader zugänglich sein:
<label for="email">E-Mail-Adresse</label>
<input
type="email"
id="email"
aria-invalid="true"
aria-describedby="email-error"
>
<p id="email-error" role="alert">
Bitte geben Sie eine gültige E-Mail-Adresse ein.
</p>
WCAG 2.1 AA verlangt definierte Mindestkontraste:
| Element | Mindestkontrast (AA) |
|---|---|
| Normaler Text | 4,5 : 1 |
| Großer Text (≥ 18pt oder ≥ 14pt bold) | 3 : 1 |
| UI-Komponenten und Grafiken | 3 : 1 |
| Fokus-Indikatoren | 3 : 1 zur Umgebung |
Werkzeuge zur Kontrastprüfung: WebAIM Contrast Checker, Chrome DevTools (Lighthouse + Color Picker), axe DevTools.
Information darf nie ausschließlich über Farbe vermittelt werden. Pflichtfelder mit Sternchen UND aria-required, Fehlerzustände mit Icon ODER Text — nicht nur “rot”.
<!-- Informationstragendes Bild -->
<img src="/team.jpg" alt="Drei Personen am Konferenztisch bei einer Strategie-Besprechung">
<!-- Dekoratives Bild -->
<img src="/divider.svg" alt="" role="presentation">
<!-- Funktionales Bild (Link/Button) -->
<a href="/profile/">
<img src="/icon-user.svg" alt="Profilseite öffnen">
</a>
<!-- Dekoratives Icon: aria-hidden -->
<button>
<svg aria-hidden="true">...</svg>
Speichern
</button>
<!-- Icon-only Button: Label per aria-label -->
<button aria-label="Suche öffnen">
<svg aria-hidden="true">...</svg>
</button>
<video controls>
<source src="/video.mp4" type="video/mp4">
<!-- Untertitel als WebVTT -->
<track
kind="captions"
src="/captions-de.vtt"
srclang="de"
label="Deutsch"
default
>
<!-- Audiodeskription (optional, je nach Inhalt) -->
<track
kind="descriptions"
src="/descriptions-de.vtt"
srclang="de"
label="Audiodeskription Deutsch"
>
</video>
Für Pflichtinhalte (Lernen, behördliche Information, gesetzlich relevante Inhalte) ist zusätzlich ein Transkript Best Practice.
ARIA ergänzt HTML dort, wo natürliche Semantik nicht ausreicht — etwa für Custom-Komponenten. Erste Regel von ARIA: Wenn natives HTML verfügbar ist, ARIA nicht verwenden.
| Attribut | Zweck |
|---|---|
aria-label | Label für Element, das keine sichtbare Beschriftung hat |
aria-labelledby | Referenz auf ein anderes Element als Label |
aria-describedby | Zusätzliche Beschreibung (z. B. für Hilfetexte) |
aria-expanded | Status eines aufklappbaren Bereichs |
aria-current="page" | Aktive Seite in der Navigation |
aria-hidden="true" | Element von Screenreadern verbergen (rein visuell) |
aria-live="polite" | Bereich, in dem Aktualisierungen angesagt werden |
Ein zugänglicher Dialog benötigt:
role="dialog" und aria-modal="true"aria-labelledby auf den Dialog-Titelinert (oder aria-hidden="true") für Assistive Tech unsichtbarNutzer müssen die Seite per Browser-Zoom auf mindestens 200 % vergrößern können, ohne dass Funktionalität verloren geht (WCAG 1.4.4).
user-scalable=no im Viewport-Meta-Tagrem/em, nicht ausschließlich pxclamp() skalieren statt feste BreitenAutomatisierte Tools fangen rund 30 – 40 % aller Barrierefreiheitsprobleme. Sie sind notwendig, aber nicht ausreichend.
Empfohlene Werkzeuge:
prefers-reduced-motion: reduce# .husky/pre-commit
npx pa11y http://localhost:3000 --reporter cli --threshold 0
- name: Accessibility audit
run: |
npm run build
npx start-server-and-test 'npm run preview' http://localhost:4321 'npx pa11y http://localhost:4321 --threshold 0'
alt-Attributprefers-reduced-motion berücksichtigtBFSG-Konformität entsteht nicht durch ein einmaliges Audit, sondern durch konsistente Entwicklungspraktiken. Die zentralen Hebel sind semantisches HTML, vollständige Tastaturbedienbarkeit, ausreichender Farbkontrast und durchgehend verknüpfte Formularlabels. Wer diese vier Säulen sauber aufstellt, hat den größten Teil der WCAG-2.1-AA-Kriterien erfüllt — der Rest ist Feinjustierung und Testing.
Wender Media unterstützt Sie bei der praktischen Umsetzung — von der technischen Konzeption bis zum Launch. Schreiben Sie uns, wir antworten innerhalb von 24 Stunden.
Jetzt Beratung anfragenKostenlos & unverbindlich — info@wendermedia.info
Das BFSG verpflichtet Unternehmen zur digitalen Barrierefreiheit. So funktionieren die Anforderungen, Fristen, WCAG-Kriterien und konkrete Umsetzungsschritte.
Wie ARIA Landmarks Screenreader-Nutzern helfen, eine Website zu navigieren. Praktische Anleitung für banner, main, navigation und weitere Rollen.
Schritt-für-Schritt-Anleitung zur technischen BFSG-Umsetzung in Astro-Projekten: Semantische HTML-Struktur, ARIA-Rollen, Fokus-Management und reduced-motion.