Auf Webseiten gibt es manchmal Elemente, die zwar im Quelltext und für Benutzer mit einem Screenreader sinnvoll sind, in einem visuellen Layout aber nicht benötigt werden.
Zu diesem Zweck kann man, wie in diesem Beitrag beschrieben, einen Hilfsklasse erstellen, die man z. B. visually-hidden
nennt.
Mit der Klasse visually-hidden
kann man HTML-Elemente am Bildschirm ausblenden. Eine mögliche Version dieser CSS-Regel könnte z. B. so aussehen:
/* Boxen am Bildschirm ausblenden */
.visually-hidden {
position: absolute;
overflow: hidden;
width: 1px;
height: 1px;
clip: inset(50%);
white-space: nowrap;
}
Los geht es mit der Positionierung der Box und dem Overflow-Verhalten:
position: absolute
hebt ein Element aus dem Dokument heraus, sodass es im Layout keinen Platz beansprucht.overflow: hidden
schneidet eventuell überfließenden Inhalt ab, sodass von der Box am Bildschirm wirklich gar nichts zu sehen ist.
Am Ende der Regel folgen noch drei weitere Deklarationen:
- Eine 0px große Box wird von einigen Screenreadern nicht vorgelesen. Deshalb definiert man mit
width
undheight
zunächst eine 1px große Box. - Die Eigenschaft
clip
bestimmt, welcher Bereich eines absolut positionierten Elements sichtbar ist undinset(50%)
definiert ein Rechteck, das den Inhalt verschwinden lässt (siehe Ahmad Shadeed). - Die Zeile
white-space: no-wrap
verhindert, dass Screenreader Leerstellen versehentlich verschlucken und einen Satz wie »Leerstellen sind wichtig« dann als ein Wort vorlesen (»Leerstellensindwichtig«).
Diese Version entspricht dem Vorschlag von Manuel Matuzovic, den er in seinem Web Accessibility Cookbook auf Seite 224 macht.
Es gibt im Web diverse Variationen für diese CSS-Regel, aber diese neun Deklarationen sind bei fast allen vorhanden. Zum Abschluss noch ein paar Quellen zu dieser Regel:
- The anatomy of visually-hidden von James Edwards (10/2022, toller Überblick!)
- How-to: Hide content von Dave Rupert (The A11Y Project, 02/2013)
- CSS hide-and-seek von Kitty Giraudel (10/2016)
- Bootstrap 5: Quelltext für .visually-hidden und Beschreibung in den Docs
- Tailwind CSS: Screen-reader-only elements
- HTML5 Boilerplate (.visually-hidden)
- In Comparing Various Ways to Hide Things in CSS vergleicht Marco Illic diverse Methoden.
Schreibe einen Kommentar