Standardy · ARIA

Rola Struktura dokumentu

definition

Oznacza element jako definicję terminu. Stosuj w parze z role="term" (lub natywnym <dfn>), aby powiązać termin z jego definicją. W pierwszej kolejności używaj natywnych <dl>/<dt>/<dd> lub <dfn> — przenoszą semantykę bez ARIA.

Kiedy używać

W przypadku słowników i par termin/definicja używaj natywnej listy opisów HTML: <dl> z <dt> (termin) i <dd> (definicja). Dla terminu definiowanego wewnątrz tekstu bieżącego użyj <dfn>. Oba sposoby są widoczne dla czytników ekranu bez ARIA.

role="definition" jest właściwe wyłącznie wtedy, gdy otaczający element nie może być <dd> ani <dfn> — na przykład w CMS renderującym wpisy słownikowe jako <div>. Stosuj w parze z role="term" na odpowiadającym elemencie terminu.

Rola informuje czytniki ekranu, że element zawiera definicję (wyjaśnienie), odrębną od definiowanego terminu. Większość technologii wspomagających oferuje niewiele dodatkowej nawigacji dla definicji poza ogłoszeniem roli, więc wartość praktyczna jest skromna — natywne elementy są niemal zawsze wystarczające.

Typowe błędy

  • role="definition" bez powiązanego role="term". Definicja nie ma terminu, do którego się odnosi.
  • Oznaczanie terminu jako role="definition" (i odwrotnie). Odbicie lustrzane poprawnego mapowania.
  • Użycie role="definition" na zwykłym <p> tekstu głównego, który coś definiuje. Lepiej użyć <dfn> na samym terminie wewnątrz tekstu.
  • Słownik zbudowany z role="list" elementów role="listitem", gdzie każdy element łączy termin i definicję. Użyj <dl>, aby zachować parowanie termin/definicja.
  • <dfn> bez atrybutu id umożliwiającego linkowanie. Definicje są najbardziej użyteczne, gdy inne strony mogą linkować bezpośrednio do nich.

Przykład

<!-- Preferowane -->
<dl>
  <dt>ARIA</dt>
  <dd>Accessible Rich Internet Applications, a set of attributes that add accessibility semantics to HTML.</dd>
  <dt>APG</dt>
  <dd>ARIA Authoring Practices Guide, the W3C reference of common widget patterns.</dd>
</dl>

<!-- Gdy natywne elementy są niemożliwe -->
<div role="term" id="aria-term">ARIA</div>
<div role="definition" aria-labelledby="aria-term">
  A set of attributes that add accessibility semantics to HTML.
</div>