edubun
Español

Usar una página con el teclado

Desconecta el mouse y pulsa Tab: cada enlace, botón y campo debería iluminarse por turnos, en el orden en que lees la página.

Quién usa el teclado

Mucha gente nunca toca un mouse. Algunas personas no pueden sostenerlo con firmeza; otras usan un pulsador, un puntero bucal o un sistema de reconocimiento de voz que envía pulsaciones de teclas; quienes usan lectores de pantalla también se mueven sobre todo con el teclado. El criterio de conformidad 2.1.1 Teclado de WCAG 2.2, de nivel A, dice que todo en la página debe funcionar con un teclado. El criterio 2.1.2 Sin trampas para el foco del teclado agrega que, si el foco puede entrar en una parte de la página, también debe poder salir de ella con el teclado.

Las teclas habituales. Tab avanza, Shift+Tab retrocede, Enter sigue un enlace o pulsa un botón, Space pulsa un botón o marca una casilla, y las flechas se mueven dentro de grupos de botones de opción y menús.

Usa elementos que ya funcionan

Los enlaces con href, button, input, select y textarea pueden recibir el foco desde el principio y responden a las teclas correctas. Un div con un controlador de clic no: no se llega a él con Tab, Enter no hace nada y un lector de pantalla no lo anuncia como botón. El consejo de MDN es claro. No uses tabindex para que un div se comporte como botón; usa el elemento button, que ya trae incorporados su rol y su comportamiento con el teclado.

Orden del foco y tabindex

El orden de Tab sigue el orden de los elementos en el código HTML. El criterio 2.4.3 Orden del foco pide que ese orden conserve el sentido y el uso de la página, así que la solución más sencilla para un orden extraño es reordenar el HTML. MDN enumera tres tipos de valor de tabindex. El cero pone un elemento en el orden normal. Un valor negativo, normalmente -1, lo saca del orden de Tab, pero permite que un script llame a focus() sobre él, algo útil para un cuadro de diálogo o un mensaje de error. Un valor positivo obliga al elemento a ir antes que todo lo demás, y MDN recomienda usar solo 0 y -1, porque los valores positivos hacen que el orden sea difícil de seguir.

Ver dónde estás

Quienes usan el teclado necesitan ver qué elemento tiene el foco. El criterio 2.4.7 Foco visible, de nivel AA, pide un indicador de foco visible, así que una regla de estilo como outline: none sin nada que la reemplace es un fallo. WCAG 2.2 agregó dos criterios relacionados. 2.4.11 Foco no oculto (mínimo), de nivel AA, dice que el elemento con foco no debe quedar totalmente tapado por algo que agregó el autor, como un pie de página fijo o un aviso de cookies. 2.5.8 Tamaño del objetivo (mínimo), también AA, pide que lo que se pulsa o toca mida al menos 24 por 24 píxeles CSS, o tenga suficiente espacio alrededor.

Hay otro patrón que ayuda muchísimo: el enlace para saltar. Un sitio con un menú largo obliga a quien usa el teclado a pulsar Tab por cada elemento del menú en cada página. Un enlace colocado al principio de la página, que apunte al contenido principal, permite pasarlo de un solo toque de tecla. Puede quedar oculto a la vista hasta que recibe el foco.

La prueba lleva dos minutos. Haz clic en la barra de direcciones y pulsa Tab una y otra vez por toda la página. Comprueba que se puede llegar a todos los controles, que el orden coincide con el orden de lectura, que siempre se ve dónde está el foco y que Enter y Space hacen lo mismo que un clic. Después pulsa Shift+Tab para volver. Cualquier control al que no puedas llegar, o cualquier punto donde el foco desaparezca, es un error.

WCAG 2.1.1Teclado (A): todo funciona con un teclado
WCAG 2.1.2Sin trampas para el foco del teclado (A)
WCAG 2.4.7Foco visible (AA)
WCAG 2.4.11Foco no oculto (mínimo), AA, nuevo en 2.2
WCAG 2.5.8Tamaño del objetivo (mínimo): 24 por 24 px CSS, AA
tabindex="-1"Fuera del orden de Tab, puede recibir el foco por script
Ideas clave
  • Todo debe funcionar con el teclado, sin trampas (2.1.1, 2.1.2).
  • Usa button y a href en lugar de div con clic.
  • El orden de Tab sigue el HTML; usa solo tabindex 0 y -1.
  • Mantén el foco visible y sin tapar; objetivos de al menos 24 por 24 px CSS.
  1. ¿Qué tecla mueve el foco al siguiente elemento?
  2. Un div tiene un controlador onclick. ¿Qué está mal?
    • No se puede llegar a él ni pulsarlo con el teclado
    • Es demasiado lento
    • No se le puede dar estilo
    • Nada
  3. ¿Qué hace tabindex="0"?
    • Agrega el elemento al orden normal de Tab
    • Lo pone primero en el orden de Tab
    • Lo quita del orden de Tab
    • Lo desactiva
  4. ¿Qué valores de tabindex recomienda MDN?
    • Solo 0 y -1
    • Cualquier número positivo
    • Del 1 al 10
    • Ninguno, nunca
  5. Una hoja de estilo pone outline: none en todo elemento con foco. ¿Qué criterio no se cumple?
    • 2.4.7 Foco visible
    • 1.1.1 Contenido no textual
    • 1.4.3 Contraste (mínimo)
    • 3.3.2 Etiquetas o instrucciones
  6. ¿Qué tamaño mínimo de objetivo, en píxeles CSS por lado, pide 2.5.8?
  7. Un aviso de cookies fijo tapa por completo el botón con foco. ¿Qué criterio de WCAG 2.2 es ese?
    • 2.4.11 Foco no oculto (mínimo)
    • 2.4.3 Orden del foco
    • 2.1.2 Sin trampas para el foco del teclado
    • 1.4.11 Contraste no textual
  8. ¿Qué hace un enlace para saltar?
    • Salta los menús repetidos y lleva al contenido principal
    • Salta a la página siguiente
    • Oculta las imágenes
    • Apaga el teclado
  9. ¿Qué tecla marca una casilla de verificación que tiene el foco?
    • Space
    • Tab
    • Escape
    • Shift
  10. El foco entra en un widget y Tab no puede salir. ¿Qué criterio no se cumple?
    • 2.1.2 Sin trampas para el foco del teclado
    • 2.4.6 Encabezados y etiquetas
    • 1.4.1 Uso del color
    • 2.5.8 Tamaño del objetivo
Fuentes de este curso (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Fecha de consulta: 2026-10-17