Als optionale Komfortfunktion geben Tooltips eine kontextspezifische Hilfestellung zu Inhalten und Funktionen. Sie werden eingesetzt, wenn zusätzliche Hilfetexte für das Verständnis von bestimmten Feldern zwingend notwendig sind und es keine andere Möglichkeit gibt, diese Hilfen dauerhaft sichtbar zu platzieren.
Gerade bei erklärungsbedürftigen Sachverhalten ist ein erklärender, dauerhaft sichtbarer Text definitiv die bessere Content-Strategie. Nur so kann sichergestellt werden, dass wesentliche Informationen durch Nutzende wahrgenommen und verstanden werden, was auch in Usability-Tests mit echten Nutzenden der Anwendungen bestätigt wurde. Daher schließt das Design System die pauschale Zuordnung dieser Hilfen zu bestimmten Inhaltselementen aus.
Sollten sie wirklich nach sorgfältiger Abwägung eingesetzt werden müssen, dann erklären diese Texte in kurzer Form die Bedeutung von Seitenelementen oder stellen Prozess-spezifische Informationen bereit.
Mögliche Inhalte von Tooltips
Tooltips enthalten lediglich einfache Text-Strings. Sie dürfen aus Sicherheitsgründen keinerlei Markup enthalten, d. h. Formatierungen wie Textabsätze und Listen, aber insbesondere auch Hyperlinks sind in Tooltips nicht erlaubt.
Tooltips sollten idealerweise weniger als 300 Zeichen beinhalten. Diese Textlänge sollte aber nur in absoluten Ausnahmefällen ausgereizt werden, da nicht garantiert werden kann, dass der Text auf Mobilgeräten vollständig lesbar neben den zu erklärenden Elementen dargestellt wird.
Wenn längere oder formatierte Inhalte optional einblendbar angezeigt werden sollen, dann ist eventuell ein Akkordeon das geeignetere Muster.
In früheren Versionen des Design Systems wurde an dieser Stelle die veraltete Feldhilfe-Komponente beschrieben. Diese kann weiterhin in bereits bestehenden Verfahren benutzt werden. Neue oder wesentlich überarbeitete Verfahren werden angehalten, die universeller einsetzbare Tooltip-Komponente zu verwenden.
Beschränkungen
Angaben dazu, welche Eingaben oder Auswahlen in Formularelementen erwartet werden, inklusive Hinweisen zur möglichen oder eingeschränkten Notation wie z. B. Datumsangaben, dürfen nicht in Tooltips hinterlegt werden, sondern müssen als stets sichtbarer Hilfetext am jeweiligen Feld angezeigt werden.
Tooltips sind kombinierbar mit:
input text
input mit zusätzlichem Logo oder Icon (z. B. Elster oder NPa zur Kennzeichnung der Datenquelle)
input mit Buttons (Suche, Passwort, Datum)
select (auch mit Icon neben select)
textarea
checkbox: an jedem Label oder an der Überschrift bzw. Legend für eine Gruppe von Checkboxen
radiobuttons: an der Überschrift bzw. Legend für eine Gruppe von Radiobutton, jedoch nicht an den einzelnen Labels
fieldset ohne grafische Darstellung
fieldset mit grafischer Darstellung, z. B. gestaltete Eingabefelder für KFZ-Kennzeichen rechts neben Kennzeichen
Formularelemente in Tabellen:
Im Tabellenkopf TH: nein
In Tabellenzellen TD: ja
Bestimmte erklärungsbedürftige Kacheln für Startseite, Registrierung & Anmeldung
Tooltips sind nicht kombinierbar mit:
Passwort-Feldern – die Regeln zur Passwortvergabe z. B. im Registrierungsprozeß werden immer sichtbar angezeigt
Elementen mit title-Attribut
Feldern zur Eingabe von E-Mail-Adressen
Fußnoten – diese enthalten bereits erklärender Text, der vollständig dargestellt werden muss
Links – diese müssen für sich oder aus ihrem Kontext heraus selbsterklärend sein
Überschriften und Fließtexte inklusive Listen, denn diese sollen selbsterklärend sein. Falls eine zusätzliche Erläuterung als nötig angesehen wird, so weist dies auf Mängel im Text hin. Dieser muss dann auf der Maske selbst benutzerfreundlich und allgemeinverständlich angepasst werden.
Interaction Design
Maus- und Touch-Bedienung: Klick oder Tap (bzw. Doppel-Tap bei aktiviertem Screenreader) auf das auslösende Element öffnet das Tooltip, ein Klick oder Tap außerhalb des Tooltips schließt dieses wieder.
Tastatur-Bedienung: Erreichbar per Tab-Taste bzw. Swipe auf Touch-UIs, Auslösen des Tooltips per Enter-Taste oder Leerschritt-Taste (wenn fokussiert), Schließen über Esc-Taste oder erneutes Betätigen des auslösenden Elements oder eine Interaktion auf einem anderen Element.
title-Tooltips
Tooltips in Form der title-Attribute von Elementen werden nur als optionale zusätzliche Unterstützung angeboten. Mögliche Anwendungsfälle sind visuelle Elemente wie Icon-Buttons, denen eine weitere Erklärung zugeordnet werden soll.
Fehlerhafte weil unnötig redundante Verwendung von title
title-Attribute dienen nicht einer ausschließlichen Hilfsfunktion, da sie verschiedene Mängel im Bereich der Barrierefreiheit aufweisen, insbesondere bei der fehlenden Tastatur-Bedienbarkeit. Wenn längere Hilfetexte angeboten werden sollen, dann müssen hierfür dauerhaft sichtbare Texte eingesetzt werden, auch in Form von Links zu Hilfeseiten im Portal oder Fußnoten.
Sie können optional (aber nicht zwingend) eingesetzt werden, um darauf hinzuweisen, dass Links in neuen Tabs oder Fenstern geöffnet werden. Allerdings ist diese Technik kritisch zu betrachten, da sie aus der über 20 Jahre alten WCAG 1 stammt, also aus Zeiten als Nutzende noch keine volle Kontrolle über das Verhalten von Links hatten und Browser-Tabs noch nicht erfunden waren. Die bessere Lösung ist hier, Links nicht in neuen Fenstern zu öffnen, sofern dies nicht der Anwendungslogik zuwiderläuft, wie zum Beispiel bei Links auf Hilfeseiten.
Tooltips dürfen nicht zur Maskierung redaktioneller Mängel und unverständlicher Formulierungen in den angezeigten Texten benutzt werden.
Positionierung & responsives Verhalten
Tooltips orientieren sich nicht am Grid, sondern erscheinen zentriert über ihrem Trigger-Button oder -Link
Tooltips halten mindestens 12px Abstand zu den Rändern des Viewports.
Breakpoint XSBreakpoint XL
Do’s and Dont’s
So:
Kurze Erläuterung von erklärungsbedürftigen Sachverhalten, erwarteten Eingaben oder Auswahlen.
Nur sparsam und zielgerichtet einsetzen.
Tooltips erhalten nie den Fokus, dieser bleibt auf dem Eltern-Element.
Tooltips können mit der Escape-Taste ausgeblendet werden.
Tooltips enthalten keine interaktiven Elemente.
So nicht:
Wiederholung von Label-Texten oder Legenden.
Verweise auf Gesetzestexte – hierfür sollen Fußnoten oder Fließtexte benutzt werden.
Als allgemein bekannt vorauszusetzende Funktionen erklären.
Relevante Informationen mit rechtlicher oder finanzieller Tragweite ausschließlich als Tooltip.
Tooltips beim Bewegen der Maus schließen.
Design
Buttons zum Öffnen des Hilfetextes in Art einer Sprechblase sind immer vom Typ Icon-Button mit einem optionalen erläuternden Text. Wenn diese Hilfen für eine gesamte Komponente mit mehreren interaktiven Formularelementen gelten, dann wird der auslösende Button immer in der rechten oberen Ecke der Komponente oder, je nach Layout der Anwendung, in der Marginalspalte rechts neben der Komponente platziert.
Als eines der wenigen Elemente erhält das eigentliche Tooltip einen Schlagschatten, um es optisch leicht aus dem eigentlichen User Interface herausgehoben und schwebend darzustellen.
Typografie
Spalte 1 enthält die Ziffern aus der Abbildung zu den nach Elementen gruppierten Regeln in Spalten 2 bis 4.
Abhängig von der Position des Buttons auf der linken oder rechten Bildschirmhälfte öffnet sich das Tooltip nach rechts oder links. Wenn sich der Button am oberen Rand des Viewports befindet, dannn öffnet sich das Tooltip nach unten; analog dazu öffnen sich die Tooltips von Buttons am unteren Bildschirmrand nach oben.
Auf mobilen Bildschirmgrößen wird die Hilfe immer über die volle Breite abzüglich eines definierten Außenabstandes dargestellt.
Tooltips setzen sich aus einem Button mit „info“-Icon („i“ in einem Kreis) oder „help-circle“-Icon (Fragezeichen in einem Kreis), einem optionalen Beschreibungstext und dem eigentlichen Tooltip-Text zusammen. Das erforderliche Markup für den Tooltip-Container besteht aus einem data-Attribut auf dem HTML-Element, das Sie als Tooltip definieren möchten. Sie sollten Tooltips nur zu HTML-Elementen wie Buttons hinzufügen, die mit der Tastatur fokussierbar und interaktiv sind. Über JavaScript wird das HTML des eigentlichen Tooltips generiert. Im Regelfall reicht es hier, einen String für den Tooltip-Text zu übergeben.
WAI-ARIA
Die für diese Komponente eigentlich vorgesehene role="tooltip" wird aktuell von keiner bekannten Screenreader-/Browser-Kombination mit Ausnahme von VoiceOver auf MacOS vollständig unterstützt (s. Accessibility Support tooltip role); die Verwendung kann somit nicht verlangt werden, wird aber trotzdem empfohlen.
JavaScript
Die JavaScript-Logik wird durch die tooltip.js- oder die gesamte main.js-Datei eingebunden. Mit den folgenden data-Attributen wird ein Button zu einem Tooltip:
data-bs-toggle="tooltip"
data-bs-title="…"(hier wird der Inhalt des Tooltips befüllt)
data-bs-trigger="manual"
data-bs-placement="auto"
data-desy-tooltip-help(hierüber wird die tooltip Instanz initialisiert und der Button mit der Öffnen- und Schließen-Funktionalität versehen)
<span class="anchor__text visually-hidden">Tooltip-Trigger</span>(hier muss zwingend ein knapper beschreibender Text für die auszulösende Aktion hinterlegt werden)
Der Hauptbestandteil des Tooltips ist der Tooltip-Text. Dabei gilt es folgendes zu beachten:
Tooltips mit leeren data-bs-title werden nie angezeigt.
Das Auslösen von Tooltips auf ausgeblendeten Elementen ist nicht möglich.
Tooltips für Elemente mit .disabled-Klasse oder disabled-Attribut werden auf einem Wrapper-Element ausgelöst.
Tooltips müssen ausgeblendet werden, bevor die entsprechenden Elemente aus dem DOM entfernt werden.
Tooltips können durch ein Element innerhalb eines Shadow-DOMs ausgelöst werden.
Tooltip mit kurzem Text
<buttonclass="anchor btn-link"type="button"data-desy-tooltip-helpdata-bs-toggle="tooltip"data-bs-title="Hallo. Ich bin ein kleiner Tooltiptext…"data-bs-trigger="manual"data-bs-placement="top"> <spanclass="ds-icon-info-circle"aria-hidden="true"></span> <spanclass="anchor__text">Tooltip-Trigger</span> </button>
Tooltip mit langem Text
<buttonclass="anchor btn-link"type="button"data-desy-tooltip-helpdata-bs-toggle="tooltip"data-bs-title="Hallo. Ich bin ein langer Tooltiptext mit 230 Zeichen ohne Leerzeichen, 272 Zeichen einschließlich der Leerzeichen. Und zwar schon solange ich denken kann. Es war nicht leicht zu verstehen, was es bedeutet, ein Tooltiptext zu sein. Man wird oftmals gar nicht erst gelesen."data-bs-trigger="manual"data-bs-placement="top"> <spanclass="ds-icon-info-circle"aria-hidden="true"></span> <spanclass="anchor__text">Beispieltext für den Tooltip-Trigger</span> </button>
Tooltip ohne Text im Trigger
<buttonclass="anchor btn-link btn--icon-only"type="button"data-desy-tooltip-helpdata-bs-toggle="tooltip"data-bs-title="Hallo. Ich bin ein kleiner Tooltiptext…"data-bs-trigger="manual"data-bs-placement="top"title="Tooltip-Trigger"> <spanclass="ds-icon-info-circle"aria-hidden="true"></span> <spanclass="anchor__text visually-hidden">Tooltip-Trigger</span> </button>
Barrierefreiheit
Tooltips liefern zusätzliche Informationen zu einem Element ohne direkte Interaktion mit dem Tooltip selbst. Da der Tooltip selbst nie den Fokus erhält (dieser bleibt auf dem Eltern-Element) und sich nicht in der Tabulatorreihenfolge befindet, kann ein Tooltip keine interaktiven Elemente wie Links, Eingaben oder Schaltflächen enthalten.
Tooltips & WAI-ARIA
Im ARIA Authoring Practices Guide des W3C ist das Tooltip Pattern als “work in progress“ beschrieben, es wird in der Praxis von keinem Screenreader unterstützt und wird daher im Design System noch nicht verwendet.
Weitere ARIA-Attribute wie aria-label oder aria-labelledby dürfen im Tooltip selbst und im auslösenden Element nicht vergeben werden, das diese möglicherweise im Screenreader anstelle des eigentlichen Inhalts des Tooltips ausgegeben werden.
Ausgabe eines Beispiel-Tooltips in VoiceOver / MacOS mit dem zusätzlichen Fokus-Rahmen des Screenreaders.
Einschränkungen bei title-Attributen
Beachten Sie bitte, dass eine Tastatur-Bedienung von title-Attributen prinzipiell nicht möglich ist. Hieraus ergibt sich die Einschränkung, dass title nicht als einziges Mittel verwendet werden darf, um wesentliche Informationen zu vermitteln. Unter dem bei Menschen mit Sehbehinderung verbreiteten Szenario der betriebssystemseitig vergrößerten Cursor-Darstellung werden title-Tooltips in der Regel vom vergrößerten Cursor verdeckt und sind damit nicht mehr lesbar.
Relevante oder kritische Informationen dürfen daher nicht ausschließlich per title-Attribut vermittelt werden. title-Attribute dürfen auch nicht als Ersatz für Alternativtexte oder Formular-Labels verwendet werden. Grund: Im Accessibility Tree bildet der Value von title lediglich eine sog. “Accessible Description”, aber nicht den für die BITV-Konformität bei Prüfschritt 4.1.2 Name, Rolle, Wert zwingend erforderlichen „Accessible Name“.
Daher wird von der Verwendung von title-Attributen auf den meisten HTML-Elementen abgeraten und stattdessen die hier beschriebenen Tooltips oder die redaktionelle Auflösung erklärungsbedürftiger Sachverhalte empfohlen.
Wesentliche Informationen, die zum Verständnis von Inhalten oder Funktionen benötigt werden, befinden sich nicht ausschließlich in einem title-Attribut.
Name:
Der Inhalt des Tooltips bildet die sog. “Accessible Description” des zu beschreibenden Elements.
Tastatur- & Maus-Bedienung:
Erreichbar per Tab-Taste bzw. Swipe auf Touch-UIs, Auslösen des Tooltips per Enter-Taste oder Leerschritt-Taste (wenn fokussiert), Klick oder Tap (bzw. Doppel-Tap bei aktiviertem Screenreader), Schließen über Esc-Taste oder erneutes Betätigen des auslösenden Elements oder Interaktion mit anderen Elementen der Seite.
Darstellung:
Der Schriftgrad kann Browser- oder Systemseitig um bis zu 200 % vergrößert werden, ohne dass Informationen verloren gehen. Bis zu 400 % müssen Inhalte so umbrechen, dass sie ohne horizontales Scrollen verfügbar sind.