Principio 2/2.4 Navegable/2.4.3-B
De WCAG Wiki
< Principio 2 | 2.4 Navegable
2.4.3-B. Contenido dinámico y orden del foco
- Nivel: A
- Versión: 2.1
- Principio: 2_Operable
- Pauta: 2.4_Navegacion_clara
- Grupo: Navegación
- Subgrupo: Teclado_y_contenido
Discapacidades afectadas
Este criterio puede afectar a distintas personas con discapacidad. A continuación se indican las más relevantes.
-
Motriz –
Barrera grave
-
Visual total –
Barrera grave
-
Baja visión –
Barrera moderada
-
Cognitiva –
Barrera grave
-
Auditiva –
Barrera leve
Enunciado del criterio (Observatorio de Accesibilidad Web)
- Si el contenido de una página se modifica dinámicamente, se debe garantizar que el orden del foco continúa siendo lógico y que no se tabula por elementos ocultos o no operables.
Comprensión del criterio
Descripción resumida
Cuando el contenido aparece, desaparece o cambia mediante scripts, el orden de tabulación se debe mantener lógico y el foco debe moverse al contenido visible y relevante.
Objetivo
Asegurar que los usuarios que navegan con teclado y tecnologías de apoyo puedan mantener el contexto cuando el contenido cambia dinámicamente.
Importancia de cumplir el criterio
Si el foco se mueve a elementos ocultos o deja zonas accesibles, los usuarios pueden perder orientación, no completar tareas o quedar atrapados fuera del flujo correcto de interacción.
Referencias WCAG
Recursos de apoyo
- W3C ARIA Practices — gestión del foco
- Axe DevTools
- Accessibility Insights
- Guías de foco para React, Vue, Angular
Evaluación del criterio
Tipo de evaluación
Evaluación Manual
Procedimiento de evaluación
- Identificar componentes dinámicos (modales, menús, tabs, sliders, alertas).
- Navegar con teclado y comprobar orden lógico tras la interacción.
- Verificar que el foco no llega a elementos ocultos o fuera de contexto.
- Comprobar uso correcto de
aria-hiddenytabindexpara ocultar elementos no visibles. - En elementos emergentes, asegurar que el foco se confina al componente y regresa al origen al cerrarse.
Resultado esperado
El foco permanece en contenido visible, sigue orden lógico y respeta la interacción dinámica sin exponer elementos ocultos.
Ejemplo
✅ Correcto: menú con foco gestionado
<button id="openMenu">Menú</button>
<nav id="menu" hidden aria-hidden="true">
<a href="#a">Opción A</a>
<a href="#b">Opción B</a>
</nav>
<script>
const btn = document.getElementById('openMenu');
const menu = document.getElementById('menu');
btn.addEventListener('click', () => {
menu.hidden = false;
menu.setAttribute('aria-hidden','false');
menu.querySelector('a').focus();
});
</script>
❌ Incorrecto: elementos ocultos tabulables
<div style="display:none;"> <a href="#oculto">Entrada oculta</a> </div>
Otras herramientas de evaluación
- Pruebas manuales con teclado
- Axe DevTools, Accessibility Insights
- NVDA, JAWS, VoiceOver
- Inspección DOM para elementos ocultos accesibles
Ejemplos accesibles y no accesibles creados por alumnos
Comentarios
A continuación se muestran comentarios sobre el criterio 2.4.3-B. Contenido dinámico y orden del foco
Loading comments...
