ARIA: aria-label Attribut
Das aria-label Attribut definiert einen Zeichenfolgewert, der verwendet werden kann, um ein Element zu benennen, solange die Rolle des Elements das Benennen nicht untersagt.
Beschreibung
Manchmal fehlt der standardmäßige barrierefreie Name eines Elements oder der barrierefreie Name beschreibt den Inhalt des Elements nicht genau, und es gibt keinen im DOM sichtbaren Inhalt, der mit dem Objekt in Verbindung gebracht werden kann, um ihm Bedeutung zu verleihen. Ein häufiges Beispiel für ein solches Element ist eine Schaltfläche, die ein SVG-Icon ohne Text enthält.
In Fällen, in denen ein Element, das nicht Teil der verbotenen Liste ist, keinen barrierefreien Namen hat oder der barrierefreie Name nicht zutreffend ist und es keinen im DOM sichtbaren Inhalt gibt, der über das aria-labelledby Attribut referenziert werden kann, kann das aria-label Attribut verwendet werden, um eine Zeichenfolge zu definieren, die das interaktive Element, auf dem es gesetzt ist, beschriftet. Dies gibt dem Element einen barrierefreien Namen.
Der untenstehende Code zeigt ein Beispiel, wie das aria-label Attribut verwendet wird, um einer <button>-Element eine barrierefreie Benennung zu geben. Der Button in diesem Beispiel enthält eine SVG-Grafik und hat keinen Textinhalt, wodurch das aria-label für Benutzer von Screenreadern unerlässlich wird, um seine Funktion zu verstehen, die in diesem Fall "Schließen" ist.
<button aria-label="Close">
<svg
aria-hidden="true"
focusable="false"
width="17"
height="17"
xmlns="http://www.w3.org/2000/svg">
<path
d="m.967 14.217 5.8-5.906-5.765-5.89L3.094.26l5.783 5.888L14.66.26l2.092 2.162-5.766 5.889 5.801 5.906-2.092 2.162-5.818-5.924-5.818 5.924-2.092-2.162Z"
fill="black" />
</svg>
</button>
document.querySelector("button").addEventListener("click", () => {
myDialog.close();
});
Hinweis:
aria-label ist für die Benennung von Elementen vorgesehen, bei denen die implizite oder explizite Rolle das Benennen nicht verbietet. Es wird dringend empfohlen, aria-labelledby gegenüber aria-label zu priorisieren, wenn ein sichtbares Label für das Element existiert, um darauf zu verweisen und seinen Namen davon zu erhalten.
Die meisten Inhalte haben einen barrierefreien Namen, der aus dem unmittelbaren Textinhalt des umgebenden Elements generiert wird. Barrierefreie Namen können auch durch bestimmte Attribute oder assoziierte Elemente erstellt werden.
Standardmäßig ist der barrierefreie Name eines Buttons der Inhalt zwischen den öffnenden und schließenden <button>-Tags, der barrierefreie Name eines Bildes ist der Inhalt seines alt Attributs und der barrierefreie Name einer Formulareingabe ist der Inhalt des zugehörigen <label> Elements.
Wenn keine dieser Optionen verfügbar ist oder der standardmäßige barrierefreie Name nicht geeignet ist, verwenden Sie das aria-label Attribut, um den barrierefreien Namen eines Elements zu definieren.
Hinweis:
Während aria-label auf jedem Element verwendet werden kann, das einen barrierefreien Namen haben kann, wird es in der Praxis jedoch nur auf interaktiven Elementen, Widgets, Landmarks, Bildern und iframes unterstützt.
Wenn Sie aria-label verwenden, sollten Sie auch aria-labelledby in Betracht ziehen:
aria-labelkann in Fällen verwendet werden, in denen Text, der das Element beschriften könnte, nicht sichtbar ist. Wenn es sichtbaren Text gibt, der ein Element beschriftet, verwenden Sie stattdessenaria-labelledby.- Der Zweck von
aria-labelist derselbe wie der vonaria-labelledby. Beide bieten einem Element einen barrierefreien Namen. Wenn es keinen sichtbaren Namen gibt, auf den Sie verweisen können, verwenden Siearia-label, um dem Benutzer einen erkennbaren barrierefreien Namen zu geben. Wenn Label-Text im DOM verfügbar ist und er für ein akzeptables Benutzererlebnis referenziert werden kann, ziehen Sie es vor,aria-labelledbyzu verwenden. Verwenden Sie nicht beide auf demselben Element, daaria-labelledbyVorrang voraria-labelerhält, wenn beide angewendet werden.
Beachten Sie die folgenden zusätzlichen Richtlinien bei der Verwendung von aria-label:
-
Das
aria-labelAttribut kann mit regulären, semantischen HTML-Elementen verwendet werden; es ist nicht auf Elemente beschränkt, die eine ARIArolezugewiesen bekommen haben. -
Überbeanspruchen Sie
aria-labelnicht. Denken Sie daran, dass es in erster Linie für unterstützende Technologien gedacht ist. Um zusätzliche Anweisungen zu geben oder das UI zu erläutern, verwenden Sie sichtbaren Text mitaria-describedbyoderaria-description, nichtaria-label. Anweisungen sollten für alle Benutzer zugänglich sein, nicht nur für diejenigen mit Screenreadern (oder besser noch, machen Sie Ihr UI intuitiver).Hinweis: Da der Inhalt von
aria-labelaußerhalb unterstützender Technologien nicht angezeigt wird, sollten Sie darüber nachdenken, wichtige Informationen für alle Benutzer sichtbar zu machen. -
Nicht alle Elemente können einen barrierefreien Namen erhalten. Weder
aria-labelnocharia-labelledbysollten mit Inline-Strukturrollen wiecode,termundemphasisund Rollen, die nicht in der Accessibility API abgebildet sind, einschließlichnone, verwendet werden. Dasaria-labelAttribut ist für Elemente vorgesehen, einschließlich Links, Videos, Formularsteuerelementen und solchen mit Landmark Rollen oder Widget Rollen;aria-labelbietet einen barrierefreien Namen, wenn kein sichtbares Label im DOM existiert. -
Wenn Sie einem
<iframe>eintitlezuweisen, einem<img>einaltAttribut definieren oder ein<label>für ein<input>hinzufügen, istaria-labelnicht notwendig. Wenn jedoch einaria-labelAttribut vorhanden ist, hat es Vorrang vor demtitledes iframes, demaltdes Bildes oder dem<label>Text der Eingabe als barrierefreier Name für dieses Element.
Werte
<string>-
Eine Textzeichenfolge, die der barrierefreie Name für das Objekt sein wird.
Zugehörige Schnittstellen
Element.ariaLabel-
Die
ariaLabelEigenschaft, Teil derElementSchnittstelle, spiegelt den Wert desaria-labelAttributs wider. ElementInternals.ariaLabel-
Die
ariaLabelEigenschaft, Teil derElementInternalsSchnittstelle, spiegelt den Wert desaria-labelAttributs wider.
Zugehörige Rollen
Wird in fast allen Rollen verwendet, außer in Rollen, denen kein barrierefreier Name vom Autor zugewiesen werden kann.
Das aria-label Attribut wird NICHT unterstützt in:
Spezifikationen
| Specification |
|---|
| Accessible Rich Internet Applications (WAI-ARIA)> # aria-label> |
Siehe auch
<label>Elementaria-descriptionaria-labelledby- Verwendung von HTML Landmark Rollen zur Verbesserung der Barrierefreiheit im MDN-Blog (2023)