Falta un atributo ARIA obligatorio
Silktide comprueba los elementos que declaran un rol ARIA y verifica que también proporcionen los atributos que ese rol exige. Algunos roles son inutilizables sin sus atributos, como un control deslizante que nunca indica el valor establecido.
<!-- Problema: un control deslizante debe exponer su valor actual -->
<div role="slider" tabindex="0"></div>
<!-- Solución: proporcione el estado obligatorio -->
<div role="slider" tabindex="0"
aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></div>
Por qué es importante
Asignar a un elemento un rol es una promesa: "esto es un control deslizante", "esto es una casilla de verificación". Roles como estos requieren atributos de estado porque, sin ellos, la promesa queda vacía: un usuario de llega a una casilla y no puede saber si está marcada, o a un control deslizante y no puede conocer su valor o su rango. El control se anuncia, es enfocable y resulta imposible de usar.
Cómo solucionarlo
- Añada los atributos que el rol exige y manténgalos actualizados mediante
script a medida que cambie el estado del control; un
aria-checked="false"estático en una casilla de verificación funcional es tan engañoso como no poner nada. - Prefiera los elementos nativos cuando existan:
<input type="checkbox">y<input type="range">exponen su estado automáticamente, sin ARIA que mantener.
Cómo lo comprueba Silktide
- Encontrar todos los elementos de la página que declaran un atributo
role. - Consultar los atributos que ARIA 1.2 exige para ese rol; por ejemplo,
role="checkbox"requierearia-checked, yrole="slider"requierearia-valuenow. - Omitir los casos en los que el elemento expone el estado de forma nativa:
una casilla de verificación o un botón de opción reales ya incluyen su
estado marcado, una
<option>nativa su estado seleccionado, y un control deslizante conaria-valuetextpuede omitiraria-valuenow. - Informar de cada elemento al que le falte un atributo obligatorio.
Solución de problemas
Un script establece el atributo después de que se cargue la página
Silktide prueba la página tal y como se carga. Si su widget solo añade sus atributos de estado tras la primera interacción, los usuarios oirán un control sin estado hasta entonces; en su lugar, renderice el estado inicial en la propia página.
Esta comprobación no informa de nada aunque esperaba incidencias
Las pruebas de ARIA pueden desactivarse por sitio web. Compruebe la configuración avanzada del sitio web.