Barrierefreie Komponenten · Interaktive Widgets
Tooltips & Popover-API
Ein kleiner Hinweis beim Überfahren eines Symbols, eine aufklappende Infobox – das klingt simpel, geht aber oft schief: Tooltips, die nur die Maus kennt, oder Popover, die den Fokus verschlucken. Dabei gibt es heute für beides saubere Wege, einer davon ganz neu und nativ.
Tooltips: Hinweis, kein Versteck
Ein Tooltip ist eine kurze, ergänzende Beschreibung. Wichtige Inhalte oder Bedienelemente gehören nicht hinein. Angebunden wird er per aria-describedby:
<button aria-describedby="tip-export">Exportieren</button>
<span role="tooltip" id="tip-export" hidden>Als CSV-Datei herunterladen</span>
Drei Regeln entscheiden über die Barrierefreiheit (WCAG 1.4.13 „Inhalt bei Hover oder Fokus“):
- Per Hover UND Fokus auslösbar – sonst erreicht ihn die Tastatur nie.
- Mit Esc schließbar, ohne den Mauszeiger wegbewegen zu müssen.
- Hoverbar bleiben: Der Tooltip darf nicht verschwinden, wenn man mit der Maus zu ihm fährt.
Randnotiz –
titleist kein guter Tooltip. Das nativetitle-Attribut wird nur bei Maus-Hover gezeigt, ist auf Touch unsichtbar und von Screenreadern uneinheitlich behandelt. Für mehr als einen Notbehelf taugt es nicht – ein echtes Tooltip-Element mitaria-describedbyist verlässlicher.
Die Popover-API
Für aufklappende Boxen – Menüs, Infokarten, kleine Overlays – gibt es seit Kurzem eine native Lösung: das popover-Attribut. Der Browser übernimmt das Anzeigen, die oberste Ebene (Top-Layer), das Schließen per Klick daneben und per Esc – ganz ohne JavaScript.
<button popovertarget="info">Mehr Infos</button>
<div id="info" popover>
<p>Dieser Bereich erklärt das Feature im Detail.</p>
</div>
Mit popover="auto" (Standard) schließt sich das Popover beim Klick nach außen (Light-Dismiss). Das ist ideal für nicht-modale Overlays. In älteren Browsern ohne Unterstützung bleibt das Element schlicht sichtbar oder verborgen – ein Fall für Progressive Enhancement.
Popover oder Dialog?
| Popover | Modaler Dialog | |
|---|---|---|
| Sperrt den Hintergrund? | nein | ja |
| Fokus-Falle | nein | ja (gewollt) |
| Wofür | Menüs, Hinweise, Karten | erzwungene Entscheidung |
Ein Popover ist nicht modal – der Rest der Seite bleibt bedienbar. Wenn du den Hintergrund sperren und den Fokus halten musst, ist das <dialog> das richtige Werkzeug.
Häufige Fehler
- Tooltip nur bei Hover, unerreichbar für Tastatur und Touch.
- Wichtige Inhalte im Tooltip statt im sichtbaren Text.
- Kein Esc zum Schließen.
- Popover für eine erzwungene Entscheidung nutzen, wo ein modaler Dialog gehört.
-
titleals vollwertigen Tooltip missverstehen.
Häufige Fragen
Ist die Popover-API schon einsetzbar?
Ja, sie ist in aktuellen Browsern verfügbar. Plane einen sinnvollen Rückfall für ältere Browser ein, dann ist sie eine schlanke, native Wahl.
Brauche ich für die Popover-API noch ARIA?
Wenig. Der Browser regelt Top-Layer und Schließverhalten. Für die Bedeutung des Inhalts (z. B. ein Menü) ergänzt du passende Rollen wie gewohnt.
Wie sage ich einen Tooltip korrekt an?
Über aria-describedby am Auslöser, das auf das Tooltip-Element zeigt. So wird der Hinweis als ergänzende Beschreibung vorgelesen.
Fazit
Tooltips sind kurze Ergänzungen: per aria-describedby angebunden, über Hover und Fokus erreichbar, mit Esc schließbar – niemals als Versteck für Wichtiges. Für aufklappende, nicht-modale Boxen ist die native Popover-API die schlanke neue Wahl; sobald der Hintergrund gesperrt werden muss, nimmst du den modalen Dialog.