Saltar al contenido
SilktideAyuda

Falta un rol hijo de ARIA

Silktide comprueba widgets contenedores creados con roles de ARIA, como listas de pestañas, menús y cuadros de lista, y verifica que cada uno contenga el tipo de elementos que debería tener. Una lista de pestañas sin pestañas, o un menú sin elementos de menú, se anuncia como un widget pero no ofrece nada que operar.

<!-- Problema: un tablist debe contener elementos con role="tab" -->
<div role="tablist">
  <button>Resumen</button>
</div>

<!-- Solución: asigne a los elementos hijos su rol obligatorio -->
<div role="tablist">
  <button role="tab">Resumen</button>
</div>

Por qué es importante

Los roles compuestos de describen un widget en su conjunto: tablist promete pestañas, listbox promete opciones, menu promete elementos de menú. Los cambian a una navegación especializada para estos widgets, esperando los elementos hijos prometidos. Cuando a los elementos hijos les faltan sus roles, el widget se anuncia y luego se comporta como un cascarón vacío - las personas usuarias pueden llegar a él pero no encuentran nada dentro, mientras que las personas con visión ven un control completamente funcional.

Cómo solucionarlo

  1. Añade el rol obligatorio a cada elemento dentro del contenedor; por ejemplo, role="tab" en cada control dentro de un role="tablist".
  2. Si los elementos deben vivir en otra parte del código, conéctalos con aria-owns en el contenedor.
  3. Si el contenedor no es realmente ese tipo de widget, elimina o corrige su rol.

Emparejamientos comunes: tablist necesita tab; listbox necesita option; menu y menubar necesitan menuitem (o sus variantes de checkbox y radio); radiogroup necesita radio; tree necesita treeitem; grid y table necesitan row; row necesita celdas o encabezados.

Cómo lo comprueba Silktide

  1. Encuentra cada elemento cuyo rol de ARIA exige roles hijos específicos.
  2. Busca en sus descendientes, incluidos los elementos adoptados con aria-owns, al menos un elemento con un rol hijo requerido.
  3. Informa de los contenedores en los que no se encuentre ninguno.

Solución de problemas

Los elementos se cargan más tarde mediante un script

Silktide prueba la página a medida que se carga. Si un listbox o un menú se rellena solo bajo demanda, se anunciará como vacío hasta entonces; cuando sea posible, representa al menos los elementos iniciales con la página.

Esta comprobación no muestra nada aunque espero resultados

Las pruebas de ARIA se pueden desactivar 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?