ARIA: figure-Rolle

Die ARIA figure-Rolle kann verwendet werden, um eine Abbildung innerhalb des Seiteninhalts zu identifizieren, wo entsprechende Semantiken noch nicht existieren. Eine Abbildung wird im Allgemeinen als ein oder mehrere Bilder, Code-Snippets oder andere Inhalte angesehen, die Informationen auf eine andere Weise darstellen als ein regulärer Textfluss.

Beschreibung

Eine figure ist ein wahrnehmbarer Abschnitt von Inhalten, der typischerweise ein grafisches Dokument, Bilder, Code-Snippets oder Beispieltext enthält. Die Teile einer Abbildung KÖNNEN benutzer-navigierbar sein. Jeder Inhalt, der zusammengefasst und als Abbildung konsumiert werden soll (was Bilder, Videos, Audio, Code-Snippets oder andere Inhalte beinhalten könnte), kann als Abbildung mit role="figure" identifiziert werden.

html
<div role="figure" aria-labelledby="caption">
  <img src="image.png" alt="put image description here" />
  <p id="caption">Figure 1: The caption</p>
</div>

Im obigen Beispiel haben wir eine Abbildung, die aus zwei separaten Inhaltsteilen besteht — einem Bild und einer Bildunterschrift. Diese wird durch ein <div>-Element umschlossen, das den Inhalt als Abbildung mit role="figure" kennzeichnet.

Für HTML verwenden Sie die <figure>- und <figcaption>-Elemente. Die figcaption dient als barrierefreier Name für die Abbildung. Wenn Sie kein HTML verwenden oder alten HTML-Code anpassen, nutzen Sie aria-labelledby auf der Abbildung, um auf die Bildunterschrift zu verweisen. Wenn keine sichtbare Bildunterschrift vorhanden ist, kann aria-label verwendet werden.

html
<div role="figure" aria-labelledby="figure-1">
  …
  <p id="figure-1">Text that describes the figure.</p>
</div>
  • Verwenden Sie aria-labelledby, wenn der Text ein prägnantes Label ist.
  • Verwenden Sie aria-describedby, wenn der Text eine längere Beschreibung ist.
  • Verwenden Sie aria-label, wenn keine sichtbare Bildunterschrift vorhanden ist.

Dies kann semantisch, ohne ARIA, mit HTMLs <figure>-Element zusammen mit <figcaption> erreicht werden.

html
<figure>
  <img src="image.png" alt="put image description here" />
  <figcaption>Figure 1: The caption</figcaption>
</figure>

Hinweis: Wenn es irgendwie möglich ist, sollten Sie die entsprechenden semantischen HTML-Elemente verwenden, um eine Abbildung und ihre Bildunterschrift zu markieren — <figure> und <figcaption>.

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

aria-describedby

Die ID eines Elements, das Referenztext als Bildunterschrift enthält.

aria-labelledby

Die ID eines Elements, das Text als Label enthält.

aria-label

Wenn kein Element vorhanden ist, das Text enthält, der als Label dienen könnte, können Sie das Label direkt als Wert auf aria-label auf dem Element mit der figure-Rolle oder auf dem <figure>-Element hinzufügen.

Tastaturinteraktionen

Keine rollen-spezifischen Tastaturinteraktionen.

Erforderliche JavaScript-Funktionen

Keine rollen-spezifischen JavaScript-Anforderungen. Wenn Sie keine Kontrolle über die HTML-Semantik haben, können Sie die Zugänglichkeit von HTML verbessern, indem Sie diese Rollen und Eigenschaften mit JavaScript hinzufügen.

Beispiele

Wir könnten das anfängliche Beispiel auf der Seite erweitern, um auch einen Absatz zu kennzeichnen, der ein beschreibendes Label für die Abbildung liefert, indem dessen ID in aria-labelledby referenziert wird:

html
<div role="figure" aria-labelledby="figure-1">
  <img
    src="diagram.png"
    alt="diagram showing the four layers of awesome and their relative priority order —
        music, cats, nature, and ice cream" />
  <pre>
`
        let awesome = ['music', 'cats', 'nature', 'ice cream'];
      `</pre
  >
  <p id="figure-1">Figure 1: The four layers of awesome.</p>
</div>

Best Practices

Verwenden Sie role="figure" nur, wenn Sie müssen — zum Beispiel, wenn Sie keine Kontrolle über Ihr HTML haben, aber die Barrierefreiheit nachträglich mit JavaScript dynamisch verbessern können.

Wenn möglich, sollten Sie die entsprechenden semantischen HTML-Elemente verwenden, um eine Abbildung und ihre Bildunterschrift zu markieren — <figure> und <figcaption>. Unser obiges Beispiel sollte beispielsweise wie folgt neu geschrieben werden:

html
<figure>
  <img
    src="diagram.png"
    alt="diagram showing the four layers of awesome and their relative priority order —
         music, cats, nature, and ice cream" />
  <pre>
`
    let awesome = ['music', 'cats', 'nature', 'ice cream'];
  `</pre
  >
  <figcaption>Figure 1: The four layers of awesome.</figcaption>
</figure>

Spezifikationen

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

Siehe auch