ARIA: Präsentationsrolle

Die presentation Rolle und ihr Synonym none entfernen die impliziten ARIA-Semantiken eines Elements, sodass sie nicht im Barrierefreiheit-Baum dargestellt werden.

Der Inhalt des Elements bleibt jedoch weiterhin für unterstützende Technologien zugänglich; es sind nur die Semantiken des Containers — und in einigen Fällen die erforderlichen zugehörigen Nachfahren —, die ihre Zuordnungen zur Barrierefreiheit-API nicht mehr offenlegen.

Beschreibung

Während ARIA hauptsächlich verwendet wird, um Semantiken auszudrücken, gibt es Situationen, in denen es hilfreich ist, die Semantiken eines Elements vor unterstützenden Technologien zu verbergen. Dies geschieht mit der presentation Rolle oder ihrer synonymen Rolle none, die erklärt, dass ein Element nur zur Präsentation verwendet wird und daher keine Zugänglichkeit-Semantiken besitzt.

Das Schreiben von <h2 role="presentation">Democracy Dies in Darkness</h2> entfernt die Überschriften-Semantik des h2 Elements und macht es äquivalent zu <div>Democracy Dies in Darkness</div>. Die Überschriftsrollen-Semantik wird entfernt, aber der Inhalt selbst ist weiterhin verfügbar.

Wenn ein Element erforderliche Nachkommen hat, wie die verschiedenen <table>, Elemente und <li>s als Kinder eines <ul> oder <ol>, entfernt die presentation oder none Rolle auf der Tabelle oder Liste die Standardsemantiken des Elements, auf das sie angewendet wurde, und ihrer erforderlichen Nachkommenelemente.

Wenn die presentation oder none Rolle auf ein <table> Element angewendet wird, erben die Nachkommen <caption>, <thead>, <tbody>, <tfoot>, <tr>, <th>, und <td> Elemente die Rolle und werden somit nicht an unterstützende Technologien übergeben. Aber, Elemente innerhalb der <th> und <td> Elemente, einschließlich verschachtelten Tabellen, werden an unterstützende Technologien übergeben.

html
<ul role="presentation">
  <li>
    <a href="#">Link 1</a>
  </li>
  <li>
    <a href="#">Link 2</a>
  </li>
  <li>
    <a href="#">Link 3</a>
  </li>
</ul>

Weil die presentation Rolle auf das <ul> Element angewendet wurde, erbt jedes Kind-<li>-Element die presentation Rolle. Dies liegt daran, dass ARIA verlangt, dass listitem Elemente ein übergeordnetes list Element haben. Während die <li> Elemente in diesem Fall nicht an unterstützende Technologien übergeben werden, sind Nachkommen dieser erforderlichen Elemente sichtbar. Wäre eine Liste innerhalb eines dieser <li>‘s verschachtelt, wären sie für unterstützende Technologien sichtbar. Für Elemente ohne erforderliche Kinder bewahren alle innerhalb des Elements mit role="presentation" oder role="none" verschachtelten Elemente ihre Semantiken. In diesem Fall werden die <a> Elemente innerhalb dieser <li> Elemente offengelegt.

Das <a> ist ein besonderer Fall. Seine Rolle wäre offengelegt worden, selbst wenn es die presentation oder none Rolle direkt angewendet hätte. Browser ignorieren role="presentation" und role="none" bei fokussierbaren Elementen, einschließlich Links und Eingaben, oder bei allem, was ein tabindex Attribut gesetzt hat. Browser ignorieren auch die Einbeziehung der Rolle, wenn eines der Elemente globale ARIA-Zustände und Eigenschaften enthält, wie etwa aria-describedby.

Hinweis: Das Element mit role="presentation" ist nicht Teil des Barrierefreiheit-Baums und sollte keinen zugänglichen Namen haben. Verwenden Sie nicht aria-labelledby oder aria-label.

Zugehörige WAI-ARIA-Rollen, -Zustände und -Eigenschaften

Keine. Wenn ein globaler ARIA-Zustand und eine Eigenschaft gesetzt sind, wird presentation oder none ignoriert, und die implizite Rolle des Elements wird verwendet.

Beispiele

html
<hr role="none" />

Spezifikationen

Specification
Accessible Rich Internet Applications (WAI-ARIA)
# presentation

Siehe auch