Fallo común WCAG 2.2
F89Enlaces con solo una imagen y sin nombre accesible
Nombre oficial en el W3C: Fallo de los criterios de conformidad 2.4.4, 2.4.9 y 4.1.2 debido a no proporcionar un nombre accesible a una imagen que es el único contenido de un enlace
En pocas palabras
Este error ocurre cuando un enlace solo contiene una imagen o un icono, y esa imagen tiene el texto alternativo vacío. El enlace se queda sin nombre. El lector de pantalla no sabe a dónde lleva y lee «enlace», el nombre del archivo o la dirección. El texto alternativo debe decir el destino del enlace.
Por qué es importante
Un lector de pantalla (programa que lee en voz alta lo que hay en la pantalla) anuncia cada enlace por su nombre. Si el enlace solo tiene una imagen con alt="", no tiene nombre.
- La persona oye «enlace» o algo como «icono-cesta punto svg». No sabe qué pasará al pulsarlo.
- En la lista de enlaces aparecen varias entradas iguales o sin sentido.
- Quien usa control por voz no tiene un nombre que decir para activarlo.
Cómo evitarlo
- Si la imagen es lo único que hay dentro del enlace, no la trate como decorativa. Su
altdebe decir a dónde lleva el enlace: «Cesta de la compra», «Inicio», «Facebook de la entidad». - Si el icono es un SVG o una fuente de iconos con
aria-hidden="true", ponga unaria-labelen el enlace o un texto oculto visualmente. - Si la imagen y un texto llevan al mismo sitio, júntelos en un único enlace. Entonces la imagen sí puede tener
alt="". - Describa el destino, no el dibujo: mejor «Inicio» que «logotipo».
Ejemplo práctico
Este fallo es muy común en las cabeceras de las tiendas online y en los pies de página. Los iconos de cuenta, favoritos, cesta o redes sociales son enlaces sin texto. Solo llevan una imagen, y esa imagen tiene el alt vacío.
Así no: Iconos enlazados con el alt vacío
Cada imagen es lo único que hay dentro de su enlace y tiene alt="". Por eso los enlaces se quedan sin nombre accesible. NVDA o VoiceOver solo dicen «enlace» o la dirección de destino. En la lista de enlaces aparecen tres entradas que no se distinguen. Para notarlo, recorra la cabecera con Tab y el lector de pantalla encendido.

La demostración contiene, a propósito, el error de accesibilidad que se explica.
Ver el código del ejemplo incorrecto
<style>
.cabecera { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid #ccc; }
.marca { margin-right: auto; font-weight: bold; color: #412c56; }
.cabecera a { display: inline-flex; padding: 6px; }
</style>
<header class="cabecera">
<span class="marca">Huerta de Murcia</span>
<a href="#">
<img src="data:image/svg+xml,…" alt="" width="28" height="28">
</a>
<a href="#">
<img src="data:image/svg+xml,…" alt="" width="28" height="28">
</a>
<a href="#">
<img src="data:image/svg+xml,…" alt="" width="28" height="28">
</a>
</header>Así sí: Iconos enlazados con un alt que dice el destino
Ahora el alt de cada imagen dice para qué sirve el enlace: «Mi cuenta», «Favoritos», «Cesta de la compra». Como la imagen es lo único que hay en el enlace, su texto alternativo se convierte en el nombre del enlace.
Pruébelo aquí:
Ver el código del ejemplo correcto
<style>
.cabecera { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid #ccc; }
.marca { margin-right: auto; font-weight: bold; color: #412c56; }
.cabecera a { display: inline-flex; padding: 6px; }
</style>
<header class="cabecera">
<span class="marca">Huerta de Murcia</span>
<a href="#">
<img src="data:image/svg+xml,…" alt="Mi cuenta" width="28" height="28">
</a>
<a href="#">
<img src="data:image/svg+xml,…" alt="Favoritos" width="28" height="28">
</a>
<a href="#">
<img src="data:image/svg+xml,…" alt="Cesta de la compra" width="28" height="28">
</a>
</header>Cómo comprobarlo
Errores frecuentes en auditorías
- Poner alt="" a la imagen de un enlace por ser «decorativa», cuando es lo único que hay en el enlace.
- Iconos SVG o de fuente con aria-hidden="true" dentro de un enlace sin aria-label ni texto oculto.
- Logotipo enlazado a la portada con un alt que describe la imagen («logo») en vez del destino («Inicio» o el nombre de la entidad).
- Enlaces a redes sociales en el pie solo con icono y sin nombre. El lector de pantalla lee la dirección completa.
Para saber más, en nuestro blog
-
Test de accesibilidad web automáticosMejora la accesibilidad web con los tests de accesibilidad automáticos. Descubre herramientas y mejora la experiencia del usuario en tu sitio
Ver el texto completo del W3C (traducción al español)
Aplicabilidad
Contenido que contiene enlaces.
Descripción
Esta condición de fallo se produce cuando un enlace contiene únicamente contenido no textual, como una imagen, y ese enlace no puede identificarse mediante un nombre accesible. El nombre accesible de un enlace se define según la especificación Accessible Name and Description Computation.
Esto también se aplica cuando en una página se usan por separado texto e imágenes para enlazar al mismo destino. En ese caso, la técnica suficiente H2: Combinar en un solo enlace una imagen y un texto adyacentes que apuntan al mismo recurso es el enfoque recomendado para reducir el número de enlaces separados y la redundancia indeseada.
Ejemplos
Resultados de búsqueda
Un sitio de búsqueda devuelve resultados que incluyen tanto un enlace de texto como un enlace de imagen al sitio encontrado. La imagen tiene un atributo alt vacío, ya que el resultado ya contiene un enlace con una descripción textual. Sin embargo, el lector de pantalla no ignora el enlace de imagen, sino que aplica heurísticas para encontrar algún texto que pueda describir el propósito del enlace. Por ejemplo, el lector de pantalla podría anunciar «football dot gif Football Scorecard» (football punto gif, marcador de fútbol).
<a href="scores.html">
<img src="football.gif" alt="">
</a>
<a href="scores.html">Football Scoreboard</a>
Pruebas
Procedimiento
- Comprobar si el enlace contiene únicamente contenido no textual.
- Comprobar si el contenido no textual se ha implementado de forma que las tecnologías de asistencia puedan ignorarlo, por ejemplo mediante
role="presentation"oalt="". - Comprobar que el enlace no tiene un nombre accesible proporcionado de otra forma, como
aria-labeloaria-labelledby.
Resultados esperados
- Si todas las comprobaciones son verdaderas, se da esta condición de fallo y el contenido falla el criterio de conformidad.
Recursos
- Appropriate Use of Alternative Text, Functional Images (WebAIM: uso adecuado del texto alternativo, imágenes funcionales)
- Text Alternatives for Images (alt-text) (alternativas textuales para imágenes)
Cómo lo comprobamos en ADDAW
Este error es uno de los que buscamos en cada auditoría de ADDAW. Se lo entregamos con capturas y la forma de corregirlo.
Basado en la técnica F89 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.