aria-modal
Das aria-modal
Attribut gibt an, ob ein Element modal ist, wenn es angezeigt wird.
Beschreibung
Ein Abschnitt von Inhalten ist "modal", wenn die Navigation auf den Bereich selbst beschränkt ist und der Hintergrund (die Vorfahren und Geschwister des Modals) verborgen ist. Durch das Setzen von aria-modal="true"
auf dialog
und alertdialog
Rolle Containern wird Benutzern von unterstützender Technologie das Vorhandensein eines "modalen" Elements angezeigt, aber es bewirkt nicht tatsächlich, dass das Element modal wird. Die Funktionen, die das Element tatsächlich modal machen, müssen vom Entwickler implementiert werden.
Hinweis: ARIA modifiziert nur den Zugänglichkeitsbaum und ändert die Art und Weise, wie unterstützende Technologie den Inhalt Ihren Nutzern präsentiert. ARIA verändert nichts an der Funktion oder dem Verhalten eines Elements. Um einen modalen Effekt zu erzeugen, müssen Sie JavaScript verwenden, um Verhalten, Fokus und ARIA-Zustände zu verwalten.
Relevant nur auf dialog
und alertdialog
Containern, signalisiert das Setzen von aria-modal="true"
unterstützenden Technologien, dass dem Benutzer mitgeteilt wird, dass die Möglichkeit, mit anderen Inhalten auf der Seite zu interagieren oder darauf zuzugreifen, erfordert, dass der modale Dialog geschlossen oder anderweitig der Fokus verloren wird.
Modale Dialoge sind, wenn Inhalte angezeigt werden und die Interaktion des Benutzers auf nur diesen Bereich beschränkt ist, bis er geschlossen wird.
Beim Erstellen modaler Dialoge teilt aria-modal="true"
unterstützenden Technologien mit, dass die Fenster unter dem aktuellen Dialog nicht Teil des modalen Inhalts sind.
Wenn ein modales Element angezeigt wird, sollte der Fokus auf das Modal gerichtet werden. Der Fokus muss im Modal "eingeschlossen" bleiben, wenn es sichtbar ist, bis es geschlossen wird. Unterstützende Technologie (AT) kann dann den Inhalt des Modals navigieren und den Umfang des Modalinhalts verstehen. Das aria-modal
Attribut hilft AT, die Grenzen des Modals zu kommunizieren und es von den übrigen Inhalten der Seite zu unterscheiden. Wenn es geschlossen wird, sollte der Fokus auf das Element zurückkehren, das das Modal ausgelöst hat.
Stellen Sie sicher, dass das Modal nur mit seinen abgeleiteten Elementen steuerbar ist. Wenn ein modaler Dialog eine Schaltfläche zum Schließen hat, sollte die Schaltfläche ein Nachkomme sein, der im Modalkontainer im DOM enthalten ist.
Wenn ein modales Element angezeigt wird, sollten Autoren alle anderen Inhalte als inaktiv markieren (wie "inaktive Teilbäume" in HTML). Deaktivierter Inhalt ist kein inaktiver Inhalt. Inaktiver Inhalt kann sowohl mit normalen als auch spezialisierten Browsing-Modi wie Caret-Browsing nicht interagiert werden, die es einem Benutzer von unterstützender Technologie ermöglichen, eine Seite im Detail zu erkunden. Dies schließt deaktivierte Inhalte ein, deren Inhalte möglicherweise Bedeutung vermitteln.
Das inert
Attribut ist ein boolesches Attribut, das durch seine Anwesenheit anzeigt, dass das Element und alle seine Schatten-Nachkommen inaktiv gemacht werden sollen. Bis HTMLElement.inert
vollständig unterstützt wird, kann der Inhalt mit JavaScript inaktiv gemacht werden.
Das Einschließen von aria-modal="true"
in einem dialog
oder alertdialog
entfernt die Anforderung, aria-hidden
auf Hintergrundinhalte zu setzen, da aria-modal
unterstützenden Technologien mitteilt, dass Inhalte außerhalb eines Dialogs inaktiv sind. Beachten Sie, dass, obwohl die Unterstützung für das <dialog>
Element gut ist, gründliches Testen Ihrer Implementierung von entscheidender Bedeutung ist.
Wenn ein Dialog nicht modal ist—es gibt keinen inaktiven Hintergrund und der Fokus ist nicht auf den Dialog beschränkt—sollten Sie entweder aria-modal="false"
einschließen oder das Attribut ganz weglassen.
Beispiel
<div id="backdrop" class="no-scroll">
<div
role="alertdialog"
aria-modal="true"
aria-labelledby="dialog_label"
aria-describedby="dialog_desc">
<h2 id="dialog_label">Confirmation</h2>
<div id="dialog_desc">
<p>Are you sure you want to delete this file?</p>
</div>
<button type="button" onclick="closeDialog(this)">
No. Close this popup.
</button>
<button type="button" onclick="deleteFile(this)">
Yes. Delete the file.
</button>
</div>
</div>
Dieses teilweise Beispiel enthält ein alertdialog
, das in einen Vollbild-, nicht scrollbaren Hintergrund eingebettet ist.
Die role="alertdialog"
identifiziert das Element, das als der Container für das Alert-Dialog dient. Das aria-labelledby
gibt dem Alert-Dialog einen zugänglichen Namen, indem es auf das Element verweist, das den Titel des Alert-Dialogs liefert. Das aria-describedby
Attribut gibt dem Alert-Dialog eine zugängliche Beschreibung, indem es auf den Inhalt des Alert-Dialogs verweist, der die Hauptbotschaft oder den Zweck des Alert-Dialogs beschreibt.
Das aria-modal="true"
informiert den Benutzer unterstützender Technologie darüber, dass der Inhalt unter dem Dialog nicht interaktiv ist, solange das Element mit der Deklaration role="alertdialog"
den Fokus hat.
Das aria-modal
Attribut macht unterstützenden Technologien das Vorhandensein des Modals zugänglich, sodass die Deaktivierung des Inhalts hinter dem Modal AT-Nutzern mitgeteilt werden kann. Wie alle ARIA-Attribute hat aria-modal
selbst keinen Einfluss auf die Funktionalität der Seite; das Fokus-Management und die Deaktivierung, Interaktivität auf Hintergrundelementen und die Fähigkeit, den Fokus vom Alertdialog zu entfernen, müssen alle mit JavaScript verwaltet werden.
Werte
false
(Standard)-
Element ist nicht modal.
true
-
Element ist modal.
Zugehörige Schnittstellen
Element.ariaModal
-
Die
ariaModal
Eigenschaft, Teil derElement
Schnittstelle, spiegelt den Wert desaria-modal
Attributs wider. ElementInternals.ariaModal
-
Die
ariaModal
Eigenschaft, Teil derElementInternals
Schnittstelle, spiegelt den Wert desaria-modal
Attributs wider.
Zugehörige Rollen
Spezifikationen
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # aria-modal |
Siehe auch
- HTML
<dialog>
Element alertdialog
Rolledialog
Rolle- HTML
inert
globales Attribut - HTMLElement API
inert
Eigenschaft