Deutsch
a11yglass · Barrierefreiheits-Check für Websites

Geprüft am 31.8.2026 · https://www.heise.de/

F
0 / 100
5 kritisch · 2 zu prüfen

5 kritische Barrieren · zusätzlich 2 zu prüfen.

Seit dem letzten Scan behoben: 1 · neu: 1
Wie kommt der Score zustande? (100 Startpunkte)
{n} von {total} Bildern ohne alt-Attribut-18
{n} Formularfeld(er) ohne erkennbare Beschriftung-18
{n} Link(s) ohne erkennbaren Namen im HTML-18
{n} Schaltfläche(n) ohne Namen im HTML-18
{n} CSS-Regel{nPlural} mit möglicherweise zu geringem Textkontrast-18
Keine <h1>-Überschrift im ausgelieferten HTML-7
{n} doppelte id-Attribute-7
Ergebnis0 / 100
✕Kontrast (1)✕Textalternativen (1)✕Beschriftung (3)?Struktur (1)✓Sprache✓Zoom?Robustheit (1)

Wahrnehmbar

KritischWCAG 1.1.1 Nicht-Text-Inhalt

{n} von {total} Bildern ohne alt-Attribut

Bilder, die per JavaScript nachgeladen werden, sind hier nicht erfasst.

  • <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2" width="3072" height="1726">
  • <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2" width="4032" height="2266">
  • <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2" width="1672" height="940">
  • <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2" width="300" height="250">

Das solltest du tun: Jedem <img> ein alt geben: kurze Beschreibung bei sinntragenden Bildern, alt="" bei rein dekorativen.

KritischWCAG 1.3.1 Info und Beziehungen / 4.1.2 Name, Rolle, Wert

{n} Formularfeld(er) ohne erkennbare Beschriftung

Prüfe, ob ein per JavaScript gesetztes aria-label existiert.

  • <input type="text" name="q" placeholder="Suchen">
  • <input type="text" name="q" placeholder="Suchen">
  • <select name="in">
  • <input type="text" name="fs" placeholder="Im Preisvergleich suchen">

Das solltest du tun: Jedes Feld mit einem <label for>-Element verbinden oder aria-label / aria-labelledby setzen. Nur ein placeholder reicht nicht.

KritischWCAG 1.4.3 Kontrast (Minimum)

{n} CSS-Regel{nPlural} mit möglicherweise zu geringem Textkontrast

Nötig: 4.5:1 (normal) bzw. 3:1 (großer Text). Bei „angenommenem Seitenhintergrund“ konnte der tatsächliche Hintergrund nicht sicher bestimmt werden — im Zweifel im Browser prüfen. Gefunden u. a.: {examples}

.dark a-gift-link dialog, .a-android-native-app-prompt__close-banner, a-opt-in[is-active] .opt-in__footnote, .a-android-native-app-prompt__load-app, a-topic .topic-label

Das solltest du tun: Textfarbe abdunkeln oder Hintergrund aufhellen, bis der jeweilige Mindestwert erreicht ist. Farbe nie als einziges Unterscheidungsmerkmal einsetzen.

Bedienbar

KritischWCAG 2.4.4 Linkzweck / 4.1.2 Name, Rolle, Wert

{n} Link(s) ohne erkennbaren Namen im HTML

Leere Links oder nur ein Icon/Bild ohne alt. Ein per JavaScript gesetztes aria-label wird hier nicht erkannt.

  • <a-click-performance>
  • <a name="topnavi.ho.magazine-nav.ct" class="hover:bg-brand dark:hover:
  • <a name="topnavi.ho.magazine-nav.ix" class="hover:bg-brand-alternative
  • <a name="topnavi.ho.magazine-nav.foto" class="hover:bg-brand dark:hove

Das solltest du tun: Sichtbaren Linktext ergänzen, oder bei Icon-Links aria-label bzw. ein Bild mit alt verwenden.

KritischWCAG 4.1.2 Name, Rolle, Wert

{n} Schaltfläche(n) ohne Namen im HTML

Buttons ohne Text und ohne aria-label sind für Screenreader stumm — sofern der Name nicht per JavaScript gesetzt wird.

  • <button class="scroll-left text-ho-text">
  • <button class="scroll-right text-ho-text">
  • <button class="scroll-left text-ho-text">
  • <button class="scroll-right text-ho-text">

Das solltest du tun: Button-Text ergänzen oder aria-label setzen.

Zu prüfenWCAG 1.3.1 Info und Beziehungen / 2.4.6 Überschriften und Beschriftungen

Keine <h1>-Überschrift im ausgelieferten HTML

Jede Seite sollte mit genau einer h1 beginnen. Bei per JavaScript aufgebauten Seiten kann die h1 erst im Browser entstehen — dann im gerenderten DOM prüfen.

body

Das solltest du tun: Eine aussagekräftige <h1> als erste Überschrift einfügen (möglichst schon serverseitig).

Robust

Zu prüfenWCAG 4.1.1 Parsen (veraltet, aber weiterhin relevant für Zuordnungen)

{n} doppelte id-Attribute

z. B. {examples}. Bricht label-for- und aria-Zuordnungen.

[id]

Das solltest du tun: IDs eindeutig vergeben.

Nächste Schritte

  1. {n} von {total} Bildern ohne alt-Attribut. Jedem <img> ein alt geben: kurze Beschreibung bei sinntragenden Bildern, alt="" bei rein dekorativen.
  2. {n} Formularfeld(er) ohne erkennbare Beschriftung. Jedes Feld mit einem <label for>-Element verbinden oder aria-label / aria-labelledby setzen. Nur ein placeholder reicht nicht.
  3. {n} Link(s) ohne erkennbaren Namen im HTML. Sichtbaren Linktext ergänzen, oder bei Icon-Links aria-label bzw. ein Bild mit alt verwenden.
  4. {n} Schaltfläche(n) ohne Namen im HTML. Button-Text ergänzen oder aria-label setzen.
  5. {n} CSS-Regel{nPlural} mit möglicherweise zu geringem Textkontrast. Textfarbe abdunkeln oder Hintergrund aufhellen, bis der jeweilige Mindestwert erreicht ist. Farbe nie als einziges Unterscheidungsmerkmal einsetzen.
Diese Seite automatisch überwachen?

Wöchentlicher Re-Scan, JS-gerendert, E-Mail bei neuen Barrieren — kommt bald.

Barrierefreiheitserklärung erstellen →

Methodik & Grenzen

Geprüft wurde am 31.8.2026 das HTML, das www.heise.de beim ersten Aufruf ohne Login ausliefert, plus bis zu vier verlinkte CSS-Dateien derselben Domain. Geprüft: Farbkontrast (aus CSS), Textalternativen, Formular-Beschriftung, Bedienelement-Namen, Überschriften-Struktur, Seiten­titel und -sprache, Zoom-Sperre, doppelte IDs, positive tabindex-Werte, Landmarks.

Nicht geprüft: alles, was per JavaScript entsteht, Tastatur-Bedienbarkeit, sichtbarer Fokus, Fokus-Reihenfolge, Screenreader-Ansage, Inhalte hinter Login, Unterseiten. Der automatische Test findet grob 20–35 % der WCAG-Verstöße — der Rest braucht eine manuelle Prüfung. Momentaufnahme, kein Rechtsurteil.

Overlay-Widgets (Barrierefreiheits-Buttons, die Kontrast oder Schrift umschalten) stellen keine Konformität her — die gefundenen Barrieren müssen im Quellcode behoben werden. Warum Overlays nicht helfen

Andere Website prüfen