sr-only CSS

Unsichtbar für die Augen, hörbar im Namen

Linktext, Icon-Button, Sprunglink: fünf Stellen für verborgenen Zusatztext.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 2.4.4 und 4.1.2Leerer Verweis zum Seitenplan

CSS unter der Lupe

Ein Pixel im Layout, ein ganzer Satz im Namen

sr-only entfernt Text nicht. Die Klasse beschneidet seine Ein-Pixel-Fläche vollständig.

KonzeptdarstellungDerselbe Link in drei Ebenen

Browser → Dokument → zugänglicher Name

01Browseransicht
Mehr

Der sichtbare Link bleibt kurz.

02HTML-Inhalt
<a>Mehrüber unsere Preise</a>
1 × 1 Pixelvisuell beschnitten
03Zugänglicher Name
„Mehr über unsere Preise, Link“

Der Text bleibt im Dokument und kann in die Ausgabe eingehen.

sr-only eignet sich für kurze Ergänzungen. W3C Technique C7 warnt vor flächigem Einsatz: Wiederholter verborgener Text kann die Ausgabe unnötig wortreich machen.

Drei verschiedene Aufträge

„Verbergen“ ist nicht eindeutig

.sr-onlynur visuell beschneiden
Ansicht
verborgen
Accessibility Tree
vorhanden
Einsatz
kurzer Textzusatz
display: nonefür alle entfernen
Ansicht
verborgen
Accessibility Tree
entfernt
Einsatz
inaktiver Inhalt
aria-hidden="true"nur assistiv entfernen
Ansicht
sichtbar
Accessibility Tree
entfernt
Einsatz
dekoratives Symbol

Fokusregel: Setzen Sie aria-hidden="true" nie auf ein fokussierbares Element oder dessen Vorfahren. Sichtbarer Fokus und Accessibility Tree würden dann auseinanderfallen.

Kopierbares Rezept

Die Basis schneidet, die Fokusregel holt zurück

Textfragmentbleibt assistiv verfügbar
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(100%);
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

Die feste Ein-Pixel-Fläche, der Beschnitt und overflow arbeiten zusammen. display: none gehört nicht in diese Klasse.

Fokussierbarer Sprunglinkmuss bei Fokus sichtbar sein
.sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip-path: none;
  clip: auto;
  white-space: normal;
}

Diese Ergänzung ist nur für interaktive Elemente gedacht. Für einen Sprunglink kann eine eigene Klasse wie .skip-link verständlicher sein.

Zwei saubere Einsätze

Zusatztext und Sprunglink brauchen andere Regeln

A
Linkziel ergänzen

Der sichtbare Begriff bleibt am Anfang des zugänglichen Namens.

<a href="/preise">
  Mehr<span class="sr-only">
    über unsere Preise
  </span>
</a>
AusgabeMehr über unsere Preise
B
Navigation überspringen

Der Link ist der erste Tab-Stopp und wird in diesem Moment sichtbar.

<a class="skip-link sr-only"
  href="#inhalt">
  Zum Inhalt springen
</a>
Bei FokusZum Inhalt springen

Aus dem Prüfbericht

Fünf Stellen für dieselbe Klasse

Kritisch Sichtbarer Text und Name gehen auseinander Regel label-content-name-mismatch

Steht sichtbar „Senden“ und im Namen „Formular abschicken“, scheitert die Sprachsteuerung. Der sichtbare Text muss im Namen vorkommen.

Anleitung: Sichtbare und zugängliche Namen abstimmen

Zum Mitnehmen

Der verborgene Text, korrigiert

Eine Klasse, ein Zusatzwort und eine Regel für den Fokus.

Korrektur in 3 Schritten ansehen
  1. Die Klasse einmal richtig definieren

    display: none nimmt den Text auch aus der Ausgabe von Vorleseprogrammen. Die Klasse verkleinert ihn stattdessen auf einen Punkt.

    KorrekturvergleichSchritt 1 · CSS

    Vorher

    .sr-only {
      display: none;
    }

    Nachher

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip-path: inset(50%);
      white-space: nowrap;
    }

    Markierte Zeilen wurden geändert

    So prüfen Sie es Auf dem Bildschirm ändert sich nichts, ein Vorleseprogramm liest den Zusatz mit.

  2. Das Ziel im Linktext ergänzen

    Der sichtbare Text bleibt „Mehr“. Der Zusatz macht daraus den Namen „Mehr über unsere Preise“, ohne das Layout zu verändern.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <a href="/preise">Mehr</a>

    Nachher

    <a href="/preise">Mehr<span class="sr-only"> über unsere Preise</span></a>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Öffnen Sie die Linkliste eines Vorleseprogramms. Der Eintrag nennt jetzt das Ziel.

  3. Den Sprunglink bei Fokus zeigen

    Ein Sprunglink darf nicht dauerhaft verborgen bleiben. Mit Fokus nimmt er wieder Platz ein und wird sichtbar.

    KorrekturvergleichSchritt 3 · CSS

    Vorher

    .skip-link {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }

    Nachher

    .skip-link {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }
    
    .skip-link:focus {
      width: auto;
      height: auto;
      overflow: visible;
    }

    Markierte Zeilen wurden geändert

    So prüfen Sie es Drücken Sie Tab auf einer frisch geladenen Seite. Der Sprunglink erscheint.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.