listitem
Marque un élément comme un item d'une liste. Utilisez <li> dans <ul> ou <ol> — l'élément natif porte le rôle et la position dans l'ensemble. Recourez à role="listitem" uniquement en association avec un role="list" explicite sur un parent non-liste.
Quand l’utiliser
Dans un <ul> ou un <ol>, utilisez simplement <li>. Le navigateur expose automatiquement le rôle, le comptage et la position dans l’ensemble.
Le seul cas pratique pour role="listitem" est lorsque vous avez appliqué role="list" à un élément non-liste (par exemple pour neutraliser l’heuristique list-style: none de Safari) et que les éléments à l’intérieur sont également des éléments non-liste. Chaque item doit alors avoir role="listitem" pour être comptabilisé.
Un listitem DOIT se trouver à l’intérieur d’un role="list". Un role="listitem" isolé sans parent liste est invalide et les lecteurs d’écran l’ignorent.
Erreurs courantes
role="listitem"sur un<div>dont le parent n’est pas unrole="list". Le listitem n’a aucun contexte de groupe.<li>en dehors d’un<ul>/<ol>. HTML invalide.- Définir
aria-posinsetetaria-setsizealors que la hiérarchie DOM reflète déjà la position. Redondant. - Confondre
role="listitem"avecrole="option"(utilisé dansrole="listbox"pour les éléments sélectionnables). - Ajouter
role="listitem"à des éléments<li>déjà à l’intérieur d’un<ul>— rôle dupliqué, sans effet.
Exemple
<!-- Préféré -->
<ul>
<li>JAWS</li>
<li>NVDA</li>
<li>VoiceOver</li>
</ul>
<!-- Conteneur non-liste avec rôles explicites -->
<div role="list" aria-label="Recent updates">
<div role="listitem">New /toolkit/standards/ landing page</div>
<div role="listitem">WCAG 2.2 reference complete</div>
</div>