Enlaces para lectores de pantalla
Silktide encuentra elementos de enlace que están mal formados de maneras que los rompen para la : enlaces sin texto legible, enlaces sin destino, y etiquetas de enlace vacías sueltas que han quedado en la página.
Para que un enlace funcione con la tecnología de asistencia necesita tanto un destino (un
atributo href) como algo legible en su interior:
<!-- Funciona: destino y texto legible -->
<a href="\/about">Sobre nosotros</a>
<!-- Funciona: un enlace de imagen con texto alternativo -->
<a href="\/apple"><img src="apple.png" alt="Apple"></a>
Por qué es importante
Un anuncia cada enlace por su texto. Un enlace con destino pero sin texto se anuncia simplemente como "enlace": el usuario puede activarlo pero no tiene idea de a dónde lleva. Un enlace con texto pero sin destino parece clicable pero no lleva a ninguna parte. Ambos patrones rompen el contrato básico que permite a las personas que usan tecnología de asistencia navegar una página por sus enlaces.
Cómo solucionarlo
- Para un enlace con destino pero sin texto legible: añade texto dentro del enlace, o si contiene solo una imagen.
- Para un enlace con texto pero sin destino: añade el
hrefque falta o, si el elemento en realidad es un objetivo al que saltan otros enlaces, mueve suida un elemento que no sea un enlace:
<!-- Ancla de destino heredada, desaconsejada en HTML5 -->
<a name="example"></a>
<!-- Preferible: un id en un elemento normal -->
<div id="example">...</div>
- Para etiquetas
<a></a>vacías sin ningún atributo: elimínalas; no cumplen ninguna función. A menudo quedan como restos de editores o scripts. - Si el elemento en realidad es un botón — desencadena una acción en lugar de
navegar — usa un elemento
<button>, o añaderole="button"a la etiqueta existente.
Cómo lo prueba Silktide
- Busca cada elemento
<a>en la página y lee su texto (incluido el texto alternativo de imágenes y el texto añadido por CSS), suhref, y cualquier atributoidoname. - Señala tres patrones problemáticos:
- Un enlace con un
hrefpero sin texto legible. - Un elemento con texto y un
idonamepero sinhref: un objetivo que se hace pasar por enlace, o un enlace al que le falta su destino. - Un ancla completamente vacía, sin texto,
href,idniname.
- Un enlace con un
- Hay dos patrones que deliberadamente no se señalan:
<a>con texto pero sinhref,idniname: HTML5 permite esto como un "enlace provisional", comúnmente completado más tarde mediante .- Anclas vacías con un
idonamepero sinhref: son destinos de salto heredados, no enlaces.