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-hiddenkann 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: absolutehebt ein Element aus dem Dokument heraus, sodass es im Layout keinen Platz beansprucht.overflow: hiddenschneidet 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 
widthundheightzunächst eine 1px große Box. - Die Eigenschaft 
clipbestimmt, 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-wrapverhindert, 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