Operable Teclado accesible Nivel A WCAG 2.0, 2.1, 2.2

2.1.1 Teclado

Meta Con el teclado se puede hacer todo, excepto movimientos a mano alzada.
Qué hacer Asegurar que las acciones del puntero tengan un equivalente en el teclado.
Por qué importa Muchas personas dependen de la interfaz de teclado, incluidas personas ciegas y con problemas de movilidad.

Criterio de éxito oficial

2.1.1 Teclado Nivel A

Toda la funcionalidad del contenido se puede operar a través de una interfaz de teclado sin requerir tiempos específicos para pulsaciones de teclas individuales, excepto cuando la función subyacente requiere una entrada que depende de la trayectoria del movimiento del usuario y no solo de los puntos finales.

Nota 1: La excepción se refiere a la función subyacente, no a la técnica de entrada. Si se usa escritura a mano para introducir texto, la función subyacente (entrada de texto) no depende de la trayectoria — por lo que debe tener alternativa de teclado.

Nota 2: Esto no prohíbe ni desalienta el uso de ratón. El requisito es que exista un equivalente de teclado.

¿Qué es?

La mayoría de las funciones de una página web deben poder usarse solo con el teclado. Si alguien puede realizar una acción con ratón, tacto o gesto, también debería poder hacerla con el teclado. Esto incluye navegar a todo el contenido, activar botones y enlaces, completar formularios, usar controles como sliders o menús desplegables, y reproducir vídeos.

Cuando el contenido es operable desde el teclado, es accesible para personas invidentes, personas con temblores en las manos, y quienes usan dispositivos alternativos como software de entrada de voz, dispositivos de «soplar y aspirar», teclados en pantalla o software de escaneo — todos emulan una interfaz de teclado.

Tab ⇥

Navegar adelante

Mueve el foco al siguiente elemento interactivo. Shift+Tab retrocede.

Enter ↵

Activar

Activa enlaces, botones y envía formularios. Equivale al clic del ratón.

Espacio

Seleccionar

Activa botones, marca casillas y activa/desactiva controles.

← ↑ ↓ →

Navegar dentro

Se mueve entre opciones de menús, pestañas, radios y sliders.

Excepción: entrada por trayectoria

La única excepción es cuando la función subyacente requiere una entrada que depende de la trayectoria del movimiento del usuario (no solo de los puntos de inicio y fin). Esto se refiere a funciones como el dibujo a mano alzada o la pintura, donde la ruta del movimiento es parte esencial de la acción.

¿Requiere teclado o está exceptuada?

✓ Requiere teclado

Solo puntos finales

La función depende del destino, no de la ruta.

  • Hacer clic en botones/enlaces
  • Arrastrar y soltar objetos
  • Redimensionar ventanas
  • Entrada de texto a mano
⚡ Excepción

Depende de la trayectoria

La ruta del movimiento es esencial para la función.

  • Dibujo a mano alzada
  • Pintura con acuarela
  • Simulador de vuelo en tiempo real

Importante

El uso de MouseKeys (control del cursor con teclado numérico) no satisface este criterio — es un emulador de ratón, no un equivalente de teclado para la aplicación.

¿Por qué es importante?

Algunos usuarios no pueden usar un ratón. Pueden utilizar un teclado convencional o diferentes tecnologías de asistencia — software de entrada de voz, dispositivos de sorber y soplar, teclados en pantalla o software de escaneo — que emulan una interfaz de teclado.

Si toda la funcionalidad de una página está disponible por teclado, todos pueden interactuar con el contenido. De lo contrario, algunas personas no podrán completar formularios, reproducir vídeos ni realizar tareas básicas. La accesibilidad del teclado es uno de los pilares fundamentales de la accesibilidad web.

¿Quién se ve afectado?

Personas ciegas: No pueden usar dispositivos que requieren coordinación ojo-mano. Dependen completamente del teclado y lectores de pantalla.

Personas con temblores: Les resulta muy difícil usar un ratón con precisión. Un teclado (o teclado alternativo) es mucho más manejable.

Usuarios de dispositivos alternativos: Software de voz, dispositivos de sorber y soplar, y software de escaneo emulan un teclado. Si el contenido no es accesible por teclado, estos dispositivos no funcionan.

Cómo implementar 2.1.1

Prueba todo con el teclado

Comienza probando cada parte de tu sitio solo con el teclado: Tab para avanzar a través de los elementos interactivos, Shift+Tab para moverse hacia atrás, Enter o Espacio para activar enlaces y botones, y las teclas de flecha para navegar menús, sliders o pestañas. Si no puedes alcanzar u operar algo con el teclado, necesita reparación.

Usa HTML semántico

La forma más sencilla y fiable es usar elementos HTML semánticos nativos. Los elementos como <a href="...">, <button>, <input>, <select> y <textarea> son accesibles por teclado de forma predeterminada.

HTML
<!-- Estos elementos son accesibles por teclado automáticamente -->
<a href="/productos">Ver productos</a>
<button type="submit">Enviar formulario</button>
<input type="text" name="email" />
<select name="pais">
  <option>España</option>
</select>

Componentes personalizados con ARIA

Si creas componentes interactivos personalizados y no puedes usar elementos nativos, añade manualmente la compatibilidad con teclado: usa tabindex="0" para que elementos no enfocables reciban foco, gestiona el foco con JavaScript y soporta eventos de teclado (Enter, Espacio, flechas).

HTML
<!-- Solo cuando no puedes usar <button> nativo -->
<div role="button"
     tabindex="0"
     aria-pressed="false">
  Activar notificaciones
</div>

Práctica recomendada

Siempre prefiere controles HTML nativos. Los componentes personalizados con ARIA son una alternativa, no la primera opción.

Ejemplos prácticos

Ejemplo 1 Programa de dibujo con teclado

Un programa de dibujo permite crear, dimensionar, posicionar y rotar objetos desde el teclado. Aunque soporta ratón, todas las funciones de manipulación de objetos tienen equivalente de teclado.

Ejemplo 2 Arrastrar y soltar con alternativa

Una aplicación que utiliza arrastrar y soltar también admite «cortar» y «pegar» o controles de formulario para mover objetos, permitiendo que los usuarios de teclado realicen la misma función sin ratón.

Excepción Pintura con acuarela

Un programa de pintura con acuarela es una excepción legítima porque las pinceladas varían según la velocidad y duración de los movimientos — la trayectoria es parte esencial de la función subyacente.

Técnicas recomendadas

Técnicas suficientes para CE 2.1.1
CódigoTécnicaTipo
G202Garantizar el control del teclado para todas las funcionesSuficiente
H91Uso de controles y enlaces de formularios HTML nativosSuficiente
G90Proporcionar controladores de eventos activados por tecladoSuficiente
SCR20Uso del teclado y otras funciones específicas del dispositivoSuficiente
SCR35Hacer acciones accesibles por teclado mediante onclick de anclas y botonesSuficiente
SCR2Uso de controladores de eventos de teclado y mouse redundantesSuficiente

Errores comunes

F54: Usar solo controladores de eventos del puntero (onmousedown, onmouseup, onclick) sin proporcionar un equivalente para teclado.
F55: Scripts que eliminan el foco cuando un elemento lo recibe, haciendo imposible la navegación por teclado.
F42: Emular un enlace con un elemento no semántico que no es operable por teclado.

Criterios de éxito relacionados