area-alt-present
<area> doit avoir un nom accessible
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
<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.
<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.