Accesibilidad en React: focus management

Técnicas para controlar foco en React al montar, desmontar y actualizar interfaces dinámicas.

React cambia el DOM con frecuencia y eso puede romper la posición de foco sin que lo notes.

En overlays, listas filtradas y navegación entre pantallas, gestionar foco es obligatorio.

useRef y useEffect son claves, pero hay que usarlos con estrategia de ciclo de interacción.

Aquí trabajas patrones para conservar orientación del usuario en UIs dinámicas.

  • Principios de focus management en componentes React.
  • Cómo normalizar focus management en una base React grande.
  • Define utilidades compartidas para modales, drawers y menús contextuales.
  • Integra tests de teclado en componentes de design system.
  • Alinea rutas, títulos y foco para no dejar al usuario en contexto ambiguo.

Claves teóricas

Principios de focus management en componentes React.

Aplicación en proyectos reales

Cómo normalizar focus management en una base React grande.

Define utilidades compartidas para modales, drawers y menús contextuales.

Integra tests de teclado en componentes de design system.

Alinea rutas, títulos y foco para no dejar al usuario en contexto ambiguo.

  • Crea hooks reutilizables para apertura/cierre con retorno de foco.
  • Verifica foco tras errores de validación y submit fallido.
  • Evita anti-patrones como setTimeout para “arreglar” foco.
  • Documenta contratos de accesibilidad por componente.

Patrón de código

Hook mínimo para enfocar control de cierre al abrir un modal.

Accesibilidad Web
21

Accesibilidad en React: focus management

Técnicas para controlar foco en React al montar, desmontar y actualizar interfaces dinámicas.

Código del tema: react focus

📘 Teoría

Claves teóricas

Principios de focus management en componentes React.

1

Foco al montar

Cuando aparece un contexto nuevo, coloca foco en el primer control relevante.

2

Foco al desmontar

Al cerrar, devuelve foco al disparador para mantener continuidad.

3

Cambios de lista

Si filtras o reordenas, evita perder foco en elementos eliminados.

4

Rutas y SPA

Tras navegar de vista, posiciona foco en heading principal o landmark main.

5

Refs estables

Evita recrear referencias innecesarias que rompan control de foco.

6

Error típico

Depender solo de autofocus y no manejar focos post-render.

Aplicación en proyectos reales

Cómo normalizar focus management en una base React grande.

Define utilidades compartidas para modales, drawers y menús contextuales.

Integra tests de teclado en componentes de design system.

Alinea rutas, títulos y foco para no dejar al usuario en contexto ambiguo.

  • Crea hooks reutilizables para apertura/cierre con retorno de foco.
  • Verifica foco tras errores de validación y submit fallido.
  • Evita anti-patrones como setTimeout para “arreglar” foco.
  • Documenta contratos de accesibilidad por componente.

Patrón de código

Hook mínimo para enfocar control de cierre al abrir un modal.

useEffect + ref
const closeRef = useRef(null);

useEffect(() => {
  if (open) closeRef.current?.focus();
}, [open]);

🧪 Aprende probando

Ejemplo Demo guiada Abre y cierra un modal React con foco de entrada y retorno.

🏁 Retos

Reto Reto práctico Añade retorno de foco al botón que abre un panel.

🧰 Recursos

¿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 .