Teclado y foco visible sin trampas

Cómo asegurar recorridos completos por teclado con foco visible, orden lógico y retorno controlado.

Sin foco visible no hay navegación real por teclado; hay adivinación.

El orden de tabulación debe seguir la lógica visual y funcional de la interfaz.

Abrir y cerrar capas (modales, menús, popovers) exige gestionar foco de entrada y retorno.

Un flujo accesible por teclado también mejora eficiencia para personas expertas.

  • Bases para que cualquier flujo crítico sea navegable solo con teclado.
  • Cómo comprobar y corregir navegación por teclado en componentes vivos.
  • Recorre cada pantalla con Tab y Shift+Tab anotando puntos donde el foco desaparece o se salta controles.
  • En overlays, prueba apertura, interacción y cierre sin tocar el ratón.
  • Automatiza checks de foco visible, pero conserva validación manual en flujos complejos.

Claves teóricas

Bases para que cualquier flujo crítico sea navegable solo con teclado.

Aplicación en proyectos reales

Cómo comprobar y corregir navegación por teclado en componentes vivos.

Recorre cada pantalla con Tab y Shift+Tab anotando puntos donde el foco desaparece o se salta controles.

En overlays, prueba apertura, interacción y cierre sin tocar el ratón.

Automatiza checks de foco visible, pero conserva validación manual en flujos complejos.

  • Incluye test de teclado en Definition of Done de frontend.
  • Usa `:focus-visible` con estilo consistente en todo el sistema.
  • Revisa componentes terceros: suelen romper orden o retorno de foco.
  • Define guía de foco para diálogos, menús y navegación lateral.

Patrón de código

Ejemplo pequeño de foco visible y orden lógico de controles.

Accesibilidad Web
07

Teclado y foco visible sin trampas

Cómo asegurar recorridos completos por teclado con foco visible, orden lógico y retorno controlado.

Código del tema: keyboard focus

📘 Teoría

Claves teóricas

Bases para que cualquier flujo crítico sea navegable solo con teclado.

1

Foco siempre visible

No elimines outline sin una alternativa clara y con contraste suficiente.

2

Orden natural

Evita `tabindex` positivos: suelen romper secuencia y mantenimiento.

3

Entrada a contexto

Al abrir un modal, mueve foco al primer control útil del diálogo.

4

Salida segura

Al cerrar, devuelve foco al elemento que abrió el contexto.

5

Atajos coherentes

Respeta Enter y Espacio según tipo de control y evita comportamientos sorpresa.

6

Error típico

Foco atrapado o perdido tras render dinámico, especialmente en SPA.

Aplicación en proyectos reales

Cómo comprobar y corregir navegación por teclado en componentes vivos.

Recorre cada pantalla con Tab y Shift+Tab anotando puntos donde el foco desaparece o se salta controles.

En overlays, prueba apertura, interacción y cierre sin tocar el ratón.

Automatiza checks de foco visible, pero conserva validación manual en flujos complejos.

  • Incluye test de teclado en Definition of Done de frontend.
  • Usa `:focus-visible` con estilo consistente en todo el sistema.
  • Revisa componentes terceros: suelen romper orden o retorno de foco.
  • Define guía de foco para diálogos, menús y navegación lateral.

Patrón de código

Ejemplo pequeño de foco visible y orden lógico de controles.

🧪 Aprende probando

Ejemplo Demo guiada Practica foco visible y retorno al cerrar un panel.

🏁 Retos

Reto Reto práctico Implementa retorno de foco al cerrar un bloque contextual.

🧰 Recursos

¿Qué es esto?

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

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com