aria-hidden imbriqué
Silktide recherche du contenu marqué comme visible pour les à l'intérieur d'un conteneur marqué comme lui étant caché. Le masquage l'emporte : le marquage interne n'a aucun effet et le contenu reste caché.
<!-- Problème : le paragraphe reste caché malgré aria-hidden="false" -->
<div aria-hidden="true">
<p aria-hidden="false">Contenu important</p>
</div>
Pourquoi c'est important
Lorsqu'un élément a aria-hidden="true", tout ce qu'il contient est retiré de l'. La norme ne prévoit aucun moyen pour un descendant de se réafficher : aria-hidden="false" à l'intérieur d'un conteneur masqué ne fait tout simplement rien. Les auteurs qui utilisent ce schéma pensent avoir de nouveau exposé le contenu interne ; il en résulte un contenu que les utilisateurs voyants peuvent voir mais que les utilisateurs de ne peuvent pas atteindre, sans que personne ne soit conscient de l'écart.
Comment corriger
- Remaniez le balisage afin que le contenu devant être exposé ne se trouve pas dans le conteneur masqué — déplacez-le pour qu'il devienne un élément frère plutôt qu'un descendant.
- Si tout ce qui se trouve dans le conteneur doit en réalité être disponible, supprimez
aria-hidden="true"de l'ancêtre. - Ne comptez jamais sur
aria-hidden="false"pour annuler l'état masqué d'un ancêtre ; une fois la correction effectuée, l'attribut interne peut généralement être supprimé également.
Comment Silktide teste ceci
- Trouver chaque élément sur la page avec
aria-hidden="false". - Remonter ses ancêtres à la recherche de tout élément avec
aria-hidden="true". - Signaler chaque élément dont
aria-hidden="false"est piégé à l'intérieur d'un ancêtre masqué.
Dépannage
Un script bascule l'aria-hidden de l'ancêtre
Silktide teste la page au chargement. Si l'état masqué n'existe que momentanément avant qu'un script ne le supprime, le constat reflète cet état initial — mais notez que les utilisateurs de technologies d'assistance sur des connexions lentes expérimentent aussi cet état, et l'aria-hidden="false" imbriqué ne fait toujours rien tant qu'il dure.
Ce contrôle ne signale rien alors que je m'attends à des résultats
Les tests ARIA peuvent être désactivés par site. Vérifiez les paramètres avancés du site web.