Faltan ID de descripción de ARIA
Silktide comprueba los elementos que se asocian texto descriptivo adicional a sí mismos remitiéndose a otros elementos por su ID, e informa de las referencias a ID que no existen en la página. Una referencia rota hace que la descripción se pierda silenciosamente.
El atributo aria-describedby vincula un elemento con texto complementario en otra parte de la página (por ejemplo, un texto de ayuda bajo un campo de formulario o una explicación de un control):
<!-- Problema: la referencia dice "email-help" pero el id del párrafo es "email-helpp" -->
<input type="email" aria-describedby="email-help">
<p id="email-helpp">Introduce tu correo electrónico del trabajo</p>
Por qué es importante
Las descripciones contienen la orientación que evita que las personas cometan errores: requisitos de formato, advertencias, explicaciones de las consecuencias. Un lee la descripción tras el nombre del elemento, pero solo si la referencia se resuelve. Cuando no apunta a nada, el visitante recibe el campo sin su orientación y no tiene forma de saber que falta algo. Los visitantes que ven la página siguen viendo el texto de ayuda junto al campo, por lo que el fallo pasa cualquier revisión visual; precisamente por eso la comprobación automatizada es importante aquí.
Cómo solucionarlo
- Localiza el elemento que contiene el texto descriptivo y haz que el valor de
aria-describedbycoincida exactamente con suid(los ID distinguen mayúsculas y minúsculas):
<!-- Solución: la referencia coincide con el id del párrafo -->
<input type="email" aria-describedby="email-help">
<p id="email-help">Introduce tu correo electrónico del trabajo</p>
- Si se eliminó el elemento descriptivo, restáuralo o elimina el atributo
aria-describedbyobsoleto. - Cuando un elemento está descrito por varios, enumera cada ID separado por espacios y comprueba cada uno.
Cómo lo comprueba Silktide
- Busca en cada página todos los elementos con un atributo
aria-describedby. - Divide el valor del atributo en ID individuales.
- Informa de cada ID referenciado que no exista en ninguna parte de la página.