Saltar al contenido
SilktideAyuda

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

  1. 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.
  2. Si en realidad todo lo que hay dentro del contenedor debe estar disponible, elimina el aria-hidden=\"true\" del ancestro.
  3. 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

  1. Encuentra cada elemento de la página con aria-hidden=\"false\".
  2. Recorre sus ancestros buscando cualquier elemento con aria-hidden=\"true\".
  3. 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.

Más información

Última actualización

¿Le ha resultado útil esta página?