Schritt für Schritt zu barrierefreien Tooltips

veröffentlicht in 2015

zuletzt bearbeitet in

Ein Tooltip ist ein kurzer Text, der normalerweise als Popup erscheint, wenn Nutzende mit dem Mauszeiger über ein Element fahren. Tooltips können mit dem title-Attribut an jedes HTML-Element angehängt werden. Es gibt nur wenige Ausnahmen, bei denen ein mit dem title-Attribut erstellter Tooltip nicht angezeigt wird (zum Beispiel bei einem iframe-Element).

In diesem Beitrag blicken wir zunächst auf das title-Attribut in HTML und weisen auf einige Probleme der Barrierefreiheit hin. Anschließend geben wir einige Tipps zum Einsatz von Tooltips. Anschließend erstellen wir zwei barrierefreie, autorendefinierte Tooltips mit HTML und ARIA, betrachten dann verschiedene CSS-Lösungen und fügen schließlich einen Event-Handler gemäß den Web Content Accessibility Guidelines (WCAG) 2.2 hinzu.

Das Problem von Title-Attributen

Das Title-Attribut ist nicht sonderlich barrierefrei. Das betrifft verschiedene Gruppen von Nutzenden: Wenn Sie Inhalte vor Nutzenden von Mobiltelefonen und Tablets sowie vor Nutzenden von Assistenztechnologien und Nutzenden, die ausschließlich mit der Tastatur arbeiten, verbergen möchten, verwenden Sie das title-Attribut. So schrieb es Steve Faulkner bereits 2013.

Im Hinblick auf die Barrierefreiheit bieten TitleAttribute folgenden Gruppen von Nutzenden unzureichende Unterstützung:

Tastaturnutzende
Da Tastaturnutzende nur aktive Elemente wie Links oder Formulare fokussieren können, können Browser Tooltips nur für solche fokussierbaren Elemente anzeigen. Der Inhalt von TitleAttributen wird aber dennoch bei der Fokussierung per Tastatur nicht angezeigt (vor einiger Zeit gab es im Internet Explorer einige Ausnahmen für Formularelemente).
Nutzende von Screenreadern
Browser legen den Inhalt eines title-Attributs aktiver Elemente als "accessible description" im Accessibility-Tree ab. In einem Screenreader wird die "accessible description" üblicherweise an den Linknamen angehängt, wenn der Link per Tab-Taste fokussiert wird. Dies kann in bestimmten Situationen hilfreich sein, jedoch navigieren Nutzende von Screenreadern nicht unbedingt mit der Tab-Taste, weil dadurch nicht fokussierbare Inhalte übersprungen werden. Ein title-Attribut kann dennoch bei Links, Formularen und anderen aktiven Elementen in einem Screenreader ermittelt werden.
Nutzende von Vergrößerungssystemen

Die Verwendung eines Vergrößerungssystems kann dazu führen, dass Tooltips nicht mehr gelesen werden können. Tooltips mit einem title-Attribut werden nur angezeigt, wenn sich der Mauszeiger über dem auslösenden Element befindet. Durch die Verwendung eines Vergrößerungssystems kann der tatsächlich sichtbare Teil des Ansichtsbereichs erheblich reduziert werden. In diesem Fall müssen Nutzende den Mauszeiger bewegen, um den Bildschirmausschnitt zu verschieben und den vollständigen Text zu lesen. Sobald sich der Mauszeiger jedoch über dem Tooltip befindet, wird der Tooltip vom Browser ausgeblendet.

Tooltip in einem Vergrößerungssystem bei 5-facher Vergrößerung

Hinweis: Die Vergrößerungsstufen variieren stark; 20-fache, 30-fache oder sogar höhere Vergrößerungen sind durchaus möglich. Je höher die Vergrößerung, desto kleiner der angezeigte Bildschirmausschnitt.

Wenn Sie noch nicht überzeugt sind, dass Tooltips problematisch sein können, vielleicht überzeugt Sie der HTML-Standard. HTML rät von der Verwendung des title-Attributs ab:

Relying on the title attribute is currently discouraged as many user agents do not expose the attribute in an accessible manner as required by this specification (e.g., requiring a pointing device such as a mouse to cause a tooltip to appear, which excludes keyboard-only users and touch-only users, such as anyone with a modern phone or tablet).

https://html.spec.whatwg.org/multipage/dom.html#the-title-attribute

Überdenken Sie den Einsatz von Tooltips

Wenn Sie Tooltips auf Ihren Webseiten einsetzen möchten, sollten Sie sie zurückhaltend einsetzen. Im Web finden Sie zahlreiche Empfehlungen, wann Tooltips sinnvoll sind und wann nicht, zum Beispiel:

Am wichtigsten ist es aber, dass Tooltips nur beschreibenden und nicht notwendigen Text enthalten und aktive Elemente wie Links und Formularfelder etwas detaillierter beschreiben. für HTML-Konformität dürfen Tooltips mit dem title-Attribut letztendlich nur solche Informationen enthalten, die bereits auf der Webseite vorhanden sind.

CSS zur Hilfe?

Mit CSS können Sie Werte in HTML-Attributen auslesen und als Pseudo-Element auf einer Webseite darstellen. Das können Sie mit einem title-Attribut auch machen, nur werden Sie dadurch manchmal in der Situation kommen, dass zwei Tooltips angezeigt werden. Besser ist es, wenn Sie ein Attribut einsetzen, das nicht (auch) vom Browser angezeigt wird. Im folgenden Beispiel wird ein Tooltip bei Hover und Fokus angezeigt:

ARIA und die Accessibility-API

Im CSS wird der Inhalt des autorendefinierten data-tooltip-Attributs als Pseudo-Element sichtbar gemacht. Damit wird der Tooltip bei Maus- und Tastaturbedienung gleichermaßen angezeigt. Sie können mit Schritt 3 dieses Beitrags fortsetzen. Das Ergebnis dieses Beispiels unterscheidet gar nicht so sehr von den noch vorzustellenden Lösungen. Allerdings, so einfach die Lösung mit CSS ist, sie widerspricht den wichtigen Grundsatz, Inhalte nur mit HTML umzusetzen.

Anforderungen an die Barrierefreiheit

Ein barrierefreier Tooltip muss folgende Anforderungen erfüllen. Denken Sie insbesondere an Tastaturnutzende und Nutzende von Assistenztechnologien wie Screenreader und Vergrößerungssysteme:

Die letzten drei Anforderungen stammen aus
Fatal error: Uncaught Error: Call to undefined function mysql_query() in /home/lfqdu6ah4gh6/migrated_webspace/www/bfw/lib/php/content_func.php:124 Stack trace: #0 /home/lfqdu6ah4gh6/migrated_webspace/www/bfw/lib/php/content_func.php(112): setScLinkToDb() #1 /home/lfqdu6ah4gh6/migrated_webspace/www/bfw/knowhow/tooltip/index.php(97): sclink() #2 {main} thrown in /home/lfqdu6ah4gh6/migrated_webspace/www/bfw/lib/php/content_func.php on line 124