Elemente verstecken in HTML: hidden, inert, aria-hidden, disabled
Vom Suchen und Finden: Für jeden Einsatzzweck die richtige Technik benutzen
Was bedeutet verstecken?
„Verstecken“ auf einer Website ist kein einzelnes, eindeutiges Verhalten. Es beschreibt mehrere verschiedene Zustände: ein Element kann optisch ausgeblendet sein, von der Tastatur-/Fokus-Interaktion ausgeschlossen werden, aus dem Accessibility-Tree für Screenreader entfernt oder bei Formularen so deaktiviert sein, dass sein Wert nicht gesendet wird. HTML-Attribute wie hidden, aria-hidden, inert und disabled adressieren jeweils eine dieser Ebenen (visuelle Darstellung, Assistive Technology, Interaktion, Formularverhalten) und sollten gezielt eingesetzt werden - je nachdem, ob du rein optisch ausblenden willst, Interaktion verhindern oder die Zugänglichkeit beeinflussen musst. In diesem Artikel schauen wir uns an, was jedes Attribut konkret bewirkt, wann es die richtige Wahl ist und worauf du achten solltest, damit Nutzer und Suchmaschinen nicht unbeabsichtigt ausgeschlossen werden.
Kurz erklärt: Was ist der Accessibility Tree?
Der Accessibility Tree ist eine interne Repräsentation einer Webseite, die von assistiven Technologien wie Screenreadern verwendet wird. Er spiegelt die Struktur und semantische Bedeutung der HTML-Elemente wider, unabhängig davon, wie sie optisch dargestellt werden. Elemente im Accessibility Tree werden von Screenreadern gelesen und ermöglichen so die Navigation, Interaktion und das Verstehen der Seite für Menschen mit Sehbehinderungen oder anderen Einschränkungen.
Alles, was im Accessibility Tree enthalten ist, ist für assistive Technologien zugänglich; alles, was entfernt wird, z. B. durch aria-hidden="true" oder hidden, wird von diesen Technologien ignoriert, selbst wenn es noch sichtbar auf der Seite ist.
inert: Interaktion deaktivieren
inert macht ein Element und seine Nachkommen nicht interaktiv: Elemente können nicht per Tastatur, Mouse oder andere Eingabemedien erreicht oder aktiviert werden; assistive Technologien ignorieren typischerweise den Inhalt.
Praktisch angewendet wird inert oft für Modals, ausgeblendete Untermenüs oder ganze Offcanvas-Navigationen. Sobald ein solches Element angezeigt und erreichbar ist, setzt man den Seiteninhalt außerhalb dessen auf inert, damit die Nutzer nicht versehentlich in den Hintergrund tabben oder mit Elementen interagieren können.
Syntax:
<nav class="offcanvas-menu" inert>
<ul>
<li><a href="/">Home page</a></li>
<li><a href="/products">Products</a></li>
...
</ul>
</nav>
Wichtig: inert versteckt das Element nicht - das Element bleibt im Layout sichtbar, wird aber inaktiv; das unterscheidet es grundlegend von hidden, das ein Element optisch entfernt und aus dem Layout nimmt.
Unterschied zu hidden in Kürze: hidden verbirgt ein Element visuell, entfernt es aus dem Layout und aus dem Accessibility-Tree, während inert die Interaktion weiter zulässt, ohne die Sichtbarkeit zu beeinflussen.
inert ist das richtige Werkzeug, wenn die Sichtbarkeit bleiben, aber die Interaktion abgeschaltet werden soll; hidden ist hingegen die richtige Wahl, wenn ein Element komplett sowohl aus der Darstellung als auch der Bedienung verschwinden soll.
disabled: Formularfelder deaktivieren
Das HTML-Attribut disabled wird verwendet, um Formularfelder vorübergehend zu deaktivieren. Elemente mit disabled sind weder fokussierbar noch interaktiv und werden beim Absenden des Formulars nicht als Werte übermittelt.
Typische Anwendungsfälle sind Buttons, die erst nach bestimmten Aktionen aktiviert werden sollen, oder Eingabefelder, die nur unter bestimmten Bedingungen bearbeitbar sind.
<input type="text" disabled value="Kann nicht bearbeitet werden">
<button type="submit" disabled>Absenden</button>
User können die Inhalte nicht ändern und assistive Technologien erkennen das Feld als deaktiviert. disabled wirkt ausschließlich auf interaktive Formularelemente wie <input>, <select>, <textarea> oder <button>.
Hinweise & Best-Practices
- Deaktiviere Buttons oder Felder nicht allein visuell über CSS; das Attribut
disabledsorgt für die korrekte semantische Bedeutung und Interaktion. - Verwende alternative Hinweise, wenn ein Feld deaktiviert ist, damit Nutzer und Nutzerinnen verstehen, warum sie es nicht bearbeiten können.
- Denke daran, dass deaktivierte Felder nicht gesendet werden, also müssen serverseitig ggf. Standardwerte berücksichtigt werden.
| Attribut | Typische Elemente | Sichtbarkeit | Fokus / Interaktion | Accessibility (Screenreader) |
|---|---|---|---|---|
| hidden | Alerts, Toasts, Templates | x | x | x |
| aria-hidden="true" | Icons, Deko-Bilder, Doppelte Inhalte | ✓ | ✓ | x |
| inert | Menüs, Modals | ✓ | x | x |
| disabled | Formularfelder, Buttons | ✓ | x | ✓ |