area-alt-present

<area> doit avoir un nom accessible

automaticWCAG 1.1.1 (A)confiance : highgravité : seriousperceivable

Vérifie que les éléments <area> ont un nom accessible non vide via alt, aria-label/aria-labelledby ou title.

Applicabilité. S’applique aux éléments <area> qui : 1) se trouvent dans un <map> référencé par un <img usemap> (selon la correspondance HTML : « # » suivi de l’id ou du name de la map, en respectant la casse), ET 2) portent un href non vide (selon la spécification HTML, un <area> sans href n’est pas du tout un hyperlien, et cette règle n’a rien à nommer), ET 3) dont l’<img> qui les référence est réellement affiché (hidden/display:none/visibility l’excluent ; aria-hidden non, puisque <area> n’est pas un descendant DOM de <img>), ET 4) dont le <area> lui-même est éligible dans l’arbre d’accessibilité. hidden, display:none et inert sur le <area> ou son <map> ne l’excluent pas : aucun de ces deux éléments ne génère de boîte, donc le hit-testing des cartes d’image d’un vrai navigateur ignore ces trois mécanismes à cet endroit (vérifié dans Chromium et Firefox) ; seuls ces mécanismes appliqués à un véritable ancêtre de l’ensemble <img>+<map> l’excluent.

Attendu. Chaque élément <area> concerné a un nom accessible non vide, fourni par alt, aria-label/aria-labelledby ou title. Un <area> dans une carte utilisée est toujours un lien, donc alt="" n’est pas décoratif ici comme il l’est sur <img> : un alt vide échoue au même titre qu’un alt absent, sauf si un autre mécanisme le nomme.

Exemples

pass
<img src="image.png" alt="" usemap="#nav">
<map name="nav">
<area href="/x" shape="rect" coords="0,0,40,24" alt="Go to green">
</map>

Le <area> est un lien dans une carte utilisée et a un alt non vide.

fail
<img src="image.png" alt="" usemap="#nav">
<map name="nav">
<area href="/x" shape="rect" coords="0,0,40,24">
</map>

Le <area> est un lien (il a un href) dans une carte utilisée, mais n’a pas d’alt.

Règles associées

Voir le code source