Skip to main content

Acerca de esta regla de accesibilidad

Un mapa de imagen es un elemento <img> vinculado a un elemento <map> a través del atributo usemap. Dentro del <map>, elementos individuales <area> definen puntos activos clicables que funcionan como enlaces. Cada uno de estos elementos <area> es esencialmente un enlace, y como todos los enlaces, debe tener un nombre accesible que describa su propósito.

Por qué esto es un problema de accesibilidad

Los lectores de pantalla no pueden interpretar contenido gráfico. Cuando un usuario navega a un <area> clicable que carece de texto alternativo, el lector de pantalla no tiene una etiqueta significativa que anunciar. En muchos casos, recurrirá a leer la URL del enlace o el nombre del archivo de imagen — ninguno de los cuales transmite el propósito del enlace. Esto impacta críticamente a:

  • Usuarios ciegos y usuarios sordociegos que dependen completamente de los lectores de pantalla para navegar e interactuar con el contenido.
  • Usuarios con discapacidades motoras que utilizan tecnologías de asistencia como dispositivos de conmutación o control por voz, que dependen de nombres accesibles para identificar elementos interactivos.

Esta regla se relaciona con los siguientes criterios de éxito de WCAG:

  • WCAG 2.4.4 – Propósito del enlace (en contexto) (Nivel A): El propósito de cada enlace debe poder determinarse solo a partir del texto del enlace, o del texto del enlace combinado con su contexto determinado programáticamente. Un <area> sin texto alternativo no tiene un propósito discernible.
  • WCAG 4.1.2 – Nombre, función, valor (Nivel A): Todos los componentes de interfaz de usuario deben tener un nombre determinado programáticamente. Un elemento <area> es un componente interactivo, por lo que requiere un nombre accesible.

Esta regla también se aplica bajo los requisitos de Section 508, EN 301 549 y Trusted Tester.

Cómo solucionarlo

Asegúrate de que cada elemento <area> activo dentro de un <map> tenga un nombre accesible utilizando uno de estos métodos:

  1. Atributo alt (preferido) — Añade texto alt descriptivo directamente al elemento <area>.
  2. Atributo aria-label — Proporciona una etiqueta de texto a través de aria-label.
  3. Atributo aria-labelledby — Referencia otro elemento que contenga el texto de la etiqueta.

El texto alt debe describir claramente el propósito o destino del enlace, no la apariencia visual de la región del punto activo.

Además, asegúrate de que el elemento padre <img> tenga su propio atributo alt describiendo la imagen en su conjunto.

Ejemplos

Incorrecto: elementos <area> sin texto alternativo

En este ejemplo, los elementos <area> no tienen texto alt. Los lectores de pantalla no pueden comunicar qué hace cada región clicable.

<img src="solar_system.jpg" alt="Solar System" width="472" height="800" usemap="#solar-map">
<map name="solar-map">
  <area shape="rect" coords="115,158,276,192" href="https://example.com/mercury">
  <area shape="rect" coords="115,193,276,234" href="https://example.com/venus">
  <area shape="rect" coords="115,235,276,280" href="https://example.com/earth">
</map>

Correcto: elementos <area> con texto alt

Cada <area> ahora tiene un atributo alt descriptivo que comunica el propósito del enlace.

<img src="solar_system.jpg" alt="Solar System" width="472" height="800" usemap="#solar-map">
<map name="solar-map">
  <area shape="rect" coords="115,158,276,192" href="https://example.com/mercury" alt="Mercury">
  <area shape="rect" coords="115,193,276,234" href="https://example.com/venus" alt="Venus">
  <area shape="rect" coords="115,235,276,280" href="https://example.com/earth" alt="Earth">
</map>

Correcto: usando aria-label en lugar de alt

<img src="floor_plan.png" alt="Office floor plan" width="600" height="400" usemap="#office-map">
<map name="office-map">
  <area shape="rect" coords="0,0,200,200" href="/rooms/conference-a" aria-label="Conference Room A">
  <area shape="rect" coords="200,0,400,200" href="/rooms/kitchen" aria-label="Kitchen">
</map>

Incorrecto: mapa de imagen del lado del servidor

Los mapas de imagen del lado del servidor utilizan el atributo ismap y dependen de las coordenadas de clic del ratón enviadas al servidor. Estos no son accesibles por teclado y no proporcionan alternativas de texto para regiones individuales. Evita este patrón por completo.

<a href="/maps/nav.map">
  <img src="navbar.gif" alt="Navigation" ismap>
</a>

En su lugar, reemplaza los mapas de imagen del lado del servidor con mapas de imagen del lado del cliente (usemap y <map>) que incluyan texto alt apropiado en cada <area>, o utiliza un patrón navegacional diferente como una lista estándar de enlaces.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

Detecta problemas de accesibilidad automáticamente

Rocket Validator escanea miles de páginas con Axe Core y el W3C Validator, encontrando problemas de accesibilidad en todo tu sitio web.

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.