Principio 2/2.4 Navegable/2.4.11-A

De WCAG Wiki

2.4.11-A. Foco no oculto (mínimo)

Discapacidades afectadas

Este criterio puede afectar a distintas personas con discapacidad. A continuación se indican las más relevantes.

Enunciado del criterio (Observatorio de Accesibilidad Web)

  • Cuando un componente de la interfaz de usuario recibe el foco mediante teclado, dicho componente no puede estar completamente oculto por contenido generado por el autor.

Comprensión del criterio

Descripción resumida

Los elementos que reciben foco deben permanecer visibles. Ningún elemento fijo, ventana emergente, banner o overlay puede ocultar totalmente el control enfocado.

Objetivo

Garantizar que las personas que utilizan el teclado pueden localizar en todo momento cuál elemento tiene el foco, manteniendo orientación y control de la interacción.

Importancia de cumplir el criterio

Si el foco queda oculto, el usuario puede perder la posición en la página, bloquearse y no poder continuar usando la interfaz.

Referencias WCAG

Recursos de apoyo

Consejos
  • Buenas prácticas para banners, modales y overlays
  • Pseudoclase :focus-visible para indicar foco
  • Patrones WAI-ARIA para navegación con foco en interfaces dinámicas

Evaluación del criterio

Tipo de evaluación

Evaluación Manual

Procedimiento de evaluación

  1. Paso 1. Navegar por la página utilizando únicamente el teclado para desplazar el foco a los distintos componentes de la interfaz.
  2. Paso 2. Observar visualmente cada vez que un componente recibe el foco.
  3. Paso 3. Verificar que el componente enfocado no queda total ni parcialmente oculto por contenido generado por el autor (por ejemplo: ventanas emergentes, banners, menús superpuestos, tooltips persistentes, barras flotantes, etc.).
  4. Paso 4. Si algún componente queda oculto al recibir el foco, confirmar que se ofrece un mecanismo para desplazar, minimizar o cerrar el contenido superpuesto sin perder el foco del teclado.

Resultado esperado

El elemento enfocado nunca queda completamente oculto. El usuario puede ver siempre dónde está el foco.

Ejemplo ilustrativo

Banner que no tapa el foco

<div role="region" aria-label="Aviso de cookies" class="cookies-bar">
  <button>Aceptar cookies</button>
</div>
.cookies-bar {
  position: sticky;
  bottom: 0;
  background: #eee;
  padding: 1rem;
}


Otras herramientas de evaluación

  • Prueba con teclado: navegar con Tab y Shift+Tab y verificar que el elemento que recibe el foco nunca queda total o parcialmente oculto tras overlays, banners, pop-ups, barras fijas o contenido dinámico.
  • Zoom 200% y 400%: ampliar el contenido para comprobar que, al aumentar el tamaño, el foco sigue siendo visible y no queda fuera de la ventana o tapado por elementos superpuestos.
  • Modo responsive: usar herramientas de inspección responsiva para garantizar que en pantallas pequeñas o con orientación cambiada, el foco no quede detrás de menús móviles o contenedores superpuestos.
  • AXE / WAVE / Accessibility Insights: usar herramientas automáticas para detectar problemas comunes de foco, overlays y navegación.
  • Lectores de pantalla: (NVDA, JAWS, VoiceOver) confirmar que la narración coincide con el foco visible y que el usuario no “pierde” la ubicación de interacción.










Ejemplos accesibles y no accesibles creados por alumnos

<!DOCTYPE html> Formulario de Reserva - NO Accesible 3.3.2-C

⚠️ PROBLEMA 3.3.2-C: Este formulario NO tiene etiquetas ni instrucciones claras

Reserva de Hotel

⚠️ Problemas de este formulario:
  • No hay etiquetas <label> para ningún campo
  • Algunos placeholders son ambiguos ("Código" - ¿qué código?)
  • No se indica qué campos son obligatorios
  • No hay instrucciones sobre el formato esperado
  • El select dice "Selecciona" pero ¿seleccionar qué?
  • Un campo no tiene ni placeholder ni etiqueta (campo de email)
  • No hay indicación de formato de fecha específico
  • No se explica para qué sirve cada campo

<!DOCTYPE html> Formulario de Reserva - ACCESIBLE 3.3.2-C

✅ ACCESIBLE 3.3.2-C: Este formulario tiene etiquetas e instrucciones claras

Reserva de Hotel

Complete el siguiente formulario para reservar su estadía

Nota: Los campos marcados con * son obligatorios

Ingrese su nombre tal como aparece en su documento de identidad

Enviaremos la confirmación de reserva a este correo

Incluya el código de país (Ej: +34 para España)

¿Cuántas personas se alojarán?

Formato: DD/MM/AAAA (Ej: 15/02/2025)

Formato: DD/MM/AAAA (Ej: 20/02/2025)

Seleccione el tipo de habitación que prefiere

Si tiene un código promocional, ingréselo aquí

Indique cualquier necesidad especial o preferencia (cama extra, piso bajo, accesibilidad, etc.)

✅ Implementación correcta:
  • Cada campo tiene una etiqueta <label> clara asociada
  • Los campos obligatorios están claramente marcados con *
  • Hay instrucciones específicas sobre formato y contenido esperado
  • Los selectores tienen opciones descriptivas, no ambiguas
  • Se explica el propósito de cada campo cuando no es obvio
  • Se proporcionan ejemplos en los placeholders
  • Hay una nota inicial explicando la convención de campos obligatorios
  • Se usan atributos ARIA apropiados (aria-required, aria-describedby)

Comentarios

A continuación se muestran comentarios sobre el criterio 2.4.11-A. Foco no oculto (mínimo)

Loading comments...