Usa el elemento nativo dialog con showModal siempre que puedas, porque te da la capa superior, la captura del foco y el manejo de Escape gratis. Si no, necesitas role dialog con aria-modal, un encabezado que lo etiquete, el foco movido al diálogo al abrirlo y devuelto al disparador al cerrarlo, una trampa de foco, Escape para descartar y el fondo marcado como inert para que ni los lectores de pantalla ni el tabulador se paseen por él.
Por qué lo preguntan los entrevistadores
Los modales son la prueba estándar para ver si tratas la accesibilidad como trabajo real o como una casilla que se marca al final. El entrevistador quiere oír hablar de gestión del foco en concreto, porque es lo que la mayoría de implementaciones hacen mal, además de que sepas que la plataforma ya resuelve buena parte. Mencionar portales, bloqueo de scroll y devolver el foco demuestra que has llevado uno a producción y ha sobrevivido a una auditoría.
Cómo estructurar tu respuesta
- Recurre primero a la plataforma: el elemento dialog y showModal.
- Enumera los requisitos: etiquetado, foco al entrar y al salir, Escape, fondo inert.
- Menciona los portales y los problemas de apilado o de scroll.
- Di cómo lo verificarías, solo con teclado y con un lector de pantalla.
Ejemplo de respuesta
Mi primer movimiento es no construirlo. El elemento nativo dialog con showModal se encarga de la capa superior, así que dejo de pelearme con z-index y con ancestros que tienen overflow hidden, y me da Escape y el fondo inert sin nada de código mío. Encima de eso lo sigo etiquetando, con aria-labelledby apuntando al encabezado, y muevo el foco a un primer elemento sensato al abrir, normalmente el encabezado o el primer campo en lugar del botón de cerrar. Al cerrar devuelvo el foco a lo que lo abrió, porque perder el foco en el body es lo que de verdad deja tirada a la gente que navega con teclado. Si tengo que hacerlo a mano por razones de navegador o de diseño, entonces es role dialog con aria-modal en true, una trampa de foco real con Tab y Shift Tab, Escape y clic en el fondo para descartar, inert en el resto de la página, y bloqueo de scroll que no desplace el layout. Lo pruebo primero solo con teclado y después con un lector de pantalla, porque esa combinación atrapa casi todo lo que a un validador automático se le escapa.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo manejas dos diálogos apilados?
- ¿Qué falla cuando un modal no se renderiza dentro de un portal?
- ¿Cómo anunciarías un error asíncrono que aparece dentro del diálogo?
Más preguntas para Desarrollador React
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas