aria-hidden anidado
Silktide busca contenido marcado como visible para la dentro de un contenedor marcado como oculto para ella. Gana el ocultamiento: el marcado interno no tiene efecto y el contenido permanece oculto.
<!-- Problema: el párrafo permanece oculto a pesar de aria-hidden=\"false\" -->
<div aria-hidden=\"true\">
<p aria-hidden=\"false\">Contenido importante</p>
</div>
Por qué es importante
Cuando un elemento tiene aria-hidden=\"true\", todo lo que contiene se elimina
del . El estándar
no ofrece ninguna forma para que un descendiente
vuelva a incluirse: aria-hidden=\"false\" dentro de un contenedor oculto simplemente no
hace nada. Quienes usan este patrón creen que han vuelto a exponer el
contenido interno, de modo que el resultado es contenido que las personas videntes pueden ver pero
las personas usuarias de no pueden acceder, sin
que nadie sea consciente de la brecha.
Cómo solucionarlo
- Reestructura el marcado para que el contenido que deba estar expuesto no esté dentro del contenedor oculto: muévelo fuera para que sea hermano en lugar de descendiente.
- Si en realidad todo lo que hay dentro del contenedor debe estar disponible, elimina
el
aria-hidden=\"true\"del ancestro. - No confíes nunca en
aria-hidden=\"false\"para deshacer el estado oculto de un ancestro; una vez aplicada la corrección, normalmente también puede eliminarse el atributo interno.
Cómo prueba esto Silktide
- Encuentra cada elemento de la página con
aria-hidden=\"false\". - Recorre sus ancestros buscando cualquier elemento con
aria-hidden=\"true\". - Informa de cada elemento cuyo
aria-hidden=\"false\"quede atrapado dentro de un ancestro oculto.
Solución de problemas
Un script alterna el aria-hidden del ancestro
Silktide prueba la página mientras se carga. Si el estado oculto solo existe
momentáneamente antes de que un script lo elimine, el hallazgo refleja ese estado
inicial; pero ten en cuenta que las personas usuarias de tecnologías de asistencia con conexiones lentas
también experimentan ese estado, y el aria-hidden=\"false\" anidado sigue sin
hacer nada mientras dure.
Esta comprobación no informa de nada aunque esperaba hallazgos
Las pruebas de ARIA pueden desactivarse por sitio web. Revisa la configuración avanzada del sitio web.