Accesibilidad (A11Y) y el estándar ARIA

La accesibilidad (A11Y) es requisito legal y clave para SEO y usabilidad.

Si un usuario no puede navegar con teclado o un lector de pantalla no entiende tu web, el sitio está fallando.

ARIA complementa HTML cuando no hay una etiqueta semántica adecuada.

Usa roles, estados y propiedades ARIA para describir la interfaz a usuarios con discapacidades.

El foco y el orden de navegación son cruciales para la accesibilidad.

  • Resumen con ideas principales para repasar rápido.
  • El Accessibility Tree es la estructura que usan NVDA o VoiceOver para explicar qué hay en pantalla.
  • Si un elemento no tiene rol ni etiqueta, el lector de pantalla no podrá describirlo correctamente.
  • Usa HTML semántico antes de añadir ARIA.
  • Comprueba el orden de foco con Tab.

Claves teóricas

Resumen con ideas principales para repasar rápido.

Árbol de accesibilidad

El Accessibility Tree es la estructura que usan NVDA o VoiceOver para explicar qué hay en pantalla.

Si un elemento no tiene rol ni etiqueta, el lector de pantalla no podrá describirlo correctamente.

  • Usa HTML semántico antes de añadir ARIA.
  • Comprueba el orden de foco con Tab.
  • Asegura contraste suficiente entre texto y fondo.

ARIA en componentes

ARIA se usa cuando no existe una etiqueta semántica equivalente (por ejemplo, menús personalizados).

aria-label describe el propósito; aria-expanded indica si un panel está abierto.

  • role="alert" anuncia errores de forma inmediata.
  • aria-live="polite" para mensajes informativos sin interrumpir.
  • aria-controls vincula un botón con el panel que controla.

Ejemplo: Botón de cerrar accesible

La letra "X" sola no explica su función. Añade un nombre accesible y oculta la X al lector de pantalla.

aria-hidden="true" evita que el lector anuncie el icono visual.

HTML
17

Accesibilidad (A11Y) y el estándar ARIA

La accesibilidad (A11Y) es requisito legal y clave para SEO y usabilidad.

Código del tema: aria-* | role

📘 Teoría

Claves teóricas

Resumen con ideas principales para repasar rápido.

1

Árbol de accesibilidad

Representación que consumen los lectores de pantalla para describir la interfaz.

2

Roles ARIA

Define qué es un componente cuando HTML no alcanza (role="tablist", role="alert").

3

Etiquetas accesibles

Usa aria-label o aria-labelledby para nombrar controles sin texto visible.

4

Estados

aria-expanded, aria-pressed y aria-selected comunican cambios de UI.

5

Teclado y foco

Todo elemento interactivo debe ser alcanzable con Tab y mostrar foco.

6

tabindex

tabindex="0" añade foco; tabindex="-1" permite foco programático.

Árbol de accesibilidad

El Accessibility Tree es la estructura que usan NVDA o VoiceOver para explicar qué hay en pantalla.

Si un elemento no tiene rol ni etiqueta, el lector de pantalla no podrá describirlo correctamente.

  • Usa HTML semántico antes de añadir ARIA.
  • Comprueba el orden de foco con Tab.
  • Asegura contraste suficiente entre texto y fondo.

ARIA en componentes

ARIA se usa cuando no existe una etiqueta semántica equivalente (por ejemplo, menús personalizados).

aria-label describe el propósito; aria-expanded indica si un panel está abierto.

  • role="alert" anuncia errores de forma inmediata.
  • aria-live="polite" para mensajes informativos sin interrumpir.
  • aria-controls vincula un botón con el panel que controla.

Ejemplo: Botón de cerrar accesible

1

La letra "X" sola no explica su función. Añade un nombre accesible y oculta la X al lector de pantalla.

2

aria-hidden="true" evita que el lector anuncie el icono visual.

Botón accesible
<button class="btn-close">X</button>

<button aria-label="Cerrar ventana" class="btn-close">
  <span aria-hidden="true">X</span>
</button>

🧪 Aprende probando

Ejemplo Botón de cerrar accesible Compara un botón sin etiqueta con uno accesible.

🏁 Retos

Reto Reto: botón de búsqueda accesible Añade aria-label y role correcto para alertas.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre HTML.

Test de HTML

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .