Criterios de éxito de las WCAG · Level A
WCAG 2.4.1: Omitir bloques
WCAG 2.4.1 requiere que las páginas web proporcionen un mecanismo para omitir bloques de contenido repetidos, como los menús de navegación, de modo que las personas que usan el teclado y tecnologías de asistencia puedan llegar al contenido principal sin tener que desplazarse con la tecla Tab por cada enlace. Este es un requisito de Nivel A, lo que significa que es la base para una navegación accesible mediante teclado.
Qué Significa Esta Regla
WCAG 2.4.1 Bypass Blocks establece: «Hay disponible un mecanismo para omitir bloques de contenido que se repiten en varias páginas web.» En términos prácticos, esto significa que cualquier conjunto de enlaces, menús de navegación, banners u otros bloques de contenido que aparezcan de forma consistente en varias páginas debe ofrecer a las personas usuarias una forma de saltarlos y pasar directamente al contenido único de la página actual.
La implementación más ampliamente reconocida es un enlace de omitir navegación (skip navigation link): un elemento de anclaje colocado como el primer elemento enfocable de la página, que enlaza con el área de contenido principal mediante un identificador de fragmento como #main-content. Sin embargo, WCAG también acepta otros mecanismos de omisión, incluidos regiones de referencia (landmarks) correctamente estructuradas (como los elementos HTML5 <main>, <nav> y <header> o sus equivalentes ARIA) y estructuras de encabezados que permiten a las personas usuarias de lectores de pantalla saltar entre secciones.
Una página cumple este criterio cuando al menos una de las siguientes condiciones es verdadera: hay un enlace de omitir presente y funcional; la página utiliza elementos de referencia HTML5 significativos que las tecnologías de apoyo exponen para la navegación rápida; o un atajo de teclado equivalente o un mecanismo de navegación dentro de la página permite omitir bloques repetidos. El enlace de omitir puede estar oculto visualmente por defecto, pero debe hacerse visible al recibir el foco del teclado, y debe mover realmente el foco del teclado al destino cuando se activa, no solo desplazar la ventana de visualización.
Una página no cumple este criterio cuando: no hay enlace de omitir, ni estructura de referencia, ni otro mecanismo; existe un enlace de omitir pero está permanentemente oculto mediante display:none o visibility:hidden (lo que lo hace no enfocable); el ancla de destino del enlace de omitir no existe en el DOM; o el enlace está presente pero no mueve el foco, obligando a las personas usuarias de teclado a seguir pasando por cada elemento de navegación. WCAG reconoce una excepción para páginas donde no hay bloque repetido —por ejemplo, un documento de una sola página sin encabezado de navegación—, pero esta excepción es limitada y rara vez se aplica a sitios web del mundo real.
Por Qué Importa
Este criterio afecta directamente a varios grupos de personas usuarias. Las personas que solo usan teclado, incluidas personas con discapacidades motoras como lesiones por esfuerzo repetitivo, parálisis o temblores, navegan exclusivamente pulsando Tab para moverse entre elementos interactivos. Sin un mecanismo de omisión, deben pulsar Tab docenas de veces solo para llegar a la primera pieza de contenido único en cada página que visitan. Una barra de navegación típica con entre 10 y 20 enlaces multiplicada por cientos de visitas a páginas se convierte en una carga física y temporal significativa.
Las personas usuarias de lectores de pantalla que son ciegas o tienen baja visión dependen de las regiones de referencia y de los encabezados para orientarse y saltar entre secciones de una página. Aunque los lectores de pantalla modernos (JAWS, NVDA, VoiceOver) ofrecen sus propias teclas de acceso rápido para navegar por landmarks y encabezados, estos atajos solo funcionan cuando la página está correctamente estructurada. Una página sin landmarks y sin enlace de omitir obliga a una lectura lineal de cada elemento desde la parte superior, incluida la navegación repetida, cada vez que se carga la página.
Considere un escenario real: una ciudadana con discapacidad visual en Turquía que visita un portal de gobierno electrónico para presentar una declaración de impuestos. El portal tiene una barra de navegación superior con 18 enlaces, una ruta de migas de pan con 4 enlaces y una barra lateral secundaria con 12 enlaces, lo que suma 34 pulsaciones de Tab antes de llegar a los campos del formulario. Sin un mecanismo de omisión, esta persona debe navegar por los 34 elementos en cada página del proceso de varios pasos. Un enlace de omitir correctamente implementado reduce esto a una sola pulsación de tecla.
La accesibilidad cognitiva también es un factor: las personas con condiciones relacionadas con la atención se benefician de poder ir directamente al contenido relevante sin procesar elementos de navegación repetidos y distractores. Más allá del acceso para personas con discapacidad, las regiones de referencia bien estructuradas mejoran el SEO, ya que los rastreadores de motores de búsqueda utilizan la estructura del documento para comprender la jerarquía y relevancia del contenido. Una arquitectura de navegación accesible y una estructura clara de landmarks contribuyen a un mejor indexado y potencialmente a posiciones más altas en los resultados de búsqueda.
Reglas Relacionadas de Axe-core
- bypass: Esta regla comprueba si la página proporciona algún mecanismo para omitir bloques de navegación repetidos. Axe inspecciona la página en busca de la presencia de un enlace de omitir que apunte a un ancla existente en la misma página, de la presencia de roles de landmark ARIA (
role='main',role='navigation', etc.) o de elementos de landmark HTML5 (<main>,<nav>,<header>,<footer>,<aside>), y de atributos ARIAaria-labeloaria-labelledbyque hagan distinguibles múltiples landmarks. La regla marca una infracción cuando ninguno de estos mecanismos está presente. Tenga en cuenta que esta regla requiere verificación manual en algunos casos; por ejemplo, axe puede detectar que existe un enlace de omitir, pero no puede confirmar automáticamente que mueve el foco del teclado a la ubicación correcta cuando se activa. - skip-link: Esta regla se centra específicamente en los enlaces de omitir y comprueba si el elemento de destino referenciado por el atributo
hrefde un enlace de omitir (por ejemplo,#main-content) existe realmente en el DOM y es alcanzable mediante el foco del teclado. Si un enlace de omitir apunta a un ID inexistente, o si el elemento de destino no es enfocable (carece de un atributotabindexcuando se trata de un elemento no interactivo), la regla marca una infracción. Esto detecta el error común de añadir un enlace de omitir en el HTML pero olvidar añadir el atributoidcorrespondiente al elemento de contenido principal. - tabindex: Esta regla marca los elementos con valores de
tabindexmayores que 0, que crean un orden de tabulación personalizado que se desvía del orden natural del DOM. Aunquetabindex='0'es legítimo y necesario para hacer enfocable un elemento no interactivo (como el destino de un enlace de omitir en un<div>), el uso detabindex='1',tabindex='2', etc., altera la secuencia esperada de Tab en toda la página, lo que puede hacer que los mecanismos de omisión sean impredecibles o ineficaces. Las herramientas automatizadas pueden detectar la presencia de valores positivos detabindex, pero una persona evaluadora debe verificar si el orden de tabulación resultante tiene sentido lógico y si el enlace de omitir sigue siendo el primer elemento enfocable en la secuencia.
Cómo Probar
- Análisis automatizado: Ejecute axe DevTools (extensión del navegador) o Lighthouse (Chrome DevTools > Lighthouse > Accessibility) en la página. Busque específicamente infracciones bajo las reglas
bypass,skip-linkytabindex. En axe DevTools, filtre los resultados por estos IDs de regla. En Lighthouse, revise la sección «Navigation» de la auditoría de accesibilidad. Tome nota de cualquier elemento marcado como «Needs Review»; axe marca algunas comprobaciones de omisión como requeridas de confirmación manual. - Prueba con teclado (todos los navegadores): Abra la página en un navegador sin ningún lector de pantalla activo. Pulse Tab una vez. Confirme que el primer elemento que recibe el foco es un enlace de omitir (puede aparecer visualmente en este momento si antes estaba fuera de la pantalla). Pulse Enter para activar el enlace de omitir. Confirme que el foco del teclado se ha movido al área de contenido principal: la siguiente pulsación de Tab debería llegar al primer elemento interactivo dentro del contenido principal, no al primer enlace de navegación. Si el foco no se mueve, el enlace de omitir está roto.
- NVDA + Firefox: Inicie NVDA y abra la página en Firefox. Pulse el atajo Insert+F7 para abrir la lista de elementos y comprobar los landmarks. Alternativamente, pulse D para saltar entre regiones de referencia y confirme que hay un landmark
mainpresente y claramente etiquetado. Pulse H para navegar por encabezados y verifique que la estructura de encabezados hace que las secciones de la página sean identificables. Pase con Tab hasta el enlace de omitir y actívelo con Enter; luego confirme que NVDA anuncia contenido desde dentro de la región principal. - VoiceOver + Safari (macOS/iOS): Active VoiceOver (Command+F5 en Mac). Use el Rotor (Control+Option+U) para abrir el menú de Landmarks y verifique que aparezcan regiones de referencia con nombre. Pase con Tab hasta el enlace de omitir y pulse Enter; confirme que VoiceOver lee contenido del área de contenido principal inmediatamente después de la activación. En iOS, use el gesto del Rotor para cambiar a Landmarks y deslizarse entre ellos.
- JAWS + Chrome: Con JAWS activo, pulse Q para saltar directamente al landmark de contenido principal. Verifique que JAWS anuncie la entrada en la región principal. Use Insert+F3 para listar los landmarks y confirmar etiquetas apropiadas. Pase con Tab desde el inicio de la página y verifique que el enlace de omitir se anuncie primero, con un nombre accesible como «Skip to main content».
- Verificación del destino del foco: Inspeccione el valor
hrefdel enlace de omitir (por ejemplo,#main-content). Use las herramientas de desarrollador de su navegador para confirmar que existe en el DOM un elemento conid='main-content'. Si ese elemento es un<div>u otro contenedor no interactivo, confirme que tienetabindex='-1'para hacerlo enfocable de forma programática sin insertarlo en el orden de tabulación.
Cómo Corregir
Falta el enlace de omitir — Incorrecto
<!-- Navigation appears first with no bypass mechanism -->
<div class='nav-wrapper'>
<a href='/home'>Home</a>
<a href='/about'>About</a>
<a href='/services'>Services</a>
<a href='/contact'>Contact</a>
</div>
<div class='content'>
<h1>Welcome</h1>
<p>Page content here.</p>
</div>
Falta el enlace de omitir — Correcto
<!-- Skip link is the first focusable element; visually hidden until focused -->
<a href='#main-content' class='skip-link'>Skip to main content</a>
<nav aria-label='Primary navigation'>
<a href='/home'>Home</a>
<a href='/about'>About</a>
<a href='/services'>Services</a>
<a href='/contact'>Contact</a>
</nav>
<!-- tabindex='-1' allows the div to receive programmatic focus without
entering the natural tab order -->
<main id='main-content' tabindex='-1'>
<h1>Welcome</h1>
<p>Page content here.</p>
</main>
Enlace de omitir con destino inexistente — Incorrecto
<!-- The skip link exists but points to an ID that is not in the DOM -->
<a href='#content' class='skip-link'>Skip to main content</a>
<nav>...navigation links...</nav>
<!-- The id here is 'main', not 'content' — the skip link target is broken -->
<div id='main'>
<h1>Page Title</h1>
</div>
Enlace de omitir con destino inexistente — Correcto
<!-- href value exactly matches the id of the target element -->
<a href='#main-content' class='skip-link'>Skip to main content</a>
<nav>...navigation links...</nav>
<!-- id matches the href fragment; tabindex='-1' ensures focus is received -->
<main id='main-content' tabindex='-1'>
<h1>Page Title</h1>
</main>
Enlace de omitir permanentemente oculto — Incorrecto
<!-- display:none removes the element from the accessibility tree entirely -->
<a href='#main-content' style='display:none'>Skip to main content</a>
<!-- visibility:hidden also hides from screen readers and keyboard -->
<a href='#main-content' style='visibility:hidden'>Skip to main content</a>
Enlace de omitir permanentemente oculto — Correcto
<!-- CSS moves the link off-screen visually but keeps it in the tab order.
On :focus, it becomes visible so sighted keyboard users can see it. -->
<style>
.skip-link {
position: absolute;
left: -9999px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
.skip-link:focus {
position: static;
width: auto;
height: auto;
overflow: visible;
}
</style>
<a href='#main-content' class='skip-link'>Skip to main content</a>
Sin estructura de landmarks — Incorrecto
<!-- Generic divs with no semantic role — screen readers cannot identify regions -->
<div class='header'>...logo and nav...</div>
<div class='sidebar'>...secondary links...</div>
<div class='page-body'>...main content...</div>
<div class='footer'>...footer links...</div>
Sin estructura de landmarks — Correcto
<!-- HTML5 semantic elements expose landmark roles to assistive technologies.
Multiple nav elements are distinguished with aria-label. -->
<header>
<nav aria-label='Primary navigation'>...main nav links...</nav>
</header>
<aside aria-label='Related resources'>...secondary links...</aside>
<main id='main-content' tabindex='-1'>...main content...</main>
<footer>
<nav aria-label='Footer navigation'>...footer links...</nav>
</footer>
Errores Comunes
- Ocultar el enlace de omitir con
display:noneovisibility:hiddenen lugar de una técnica CSS fuera de pantalla, lo que lo elimina tanto de la visualización como del árbol de accesibilidad, haciéndolo completamente no funcional para todas las personas usuarias. - Añadir un enlace de omitir con
href='#main-content'pero omitir el atributo correspondienteid='main-content'en el elemento de destino, lo que provoca que el enlace no haga nada cuando se activa. - Apuntar el enlace de omitir a un contenedor no interactivo (como un
<div>o un<section>) sin añadirtabindex='-1', lo que significa que los navegadores desplazarán la ventana de visualización pero no moverán el foco del teclado al destino. - Colocar el enlace de omitir en cualquier lugar que no sea el primer elemento enfocable en el DOM —por ejemplo, después del logotipo o después del primer enlace de navegación—, lo que frustra su propósito, ya que las personas usuarias aún deben pulsar Tab para pasar por contenido antes de llegar a él.
- Usar valores positivos de
tabindex(por ejemplo,tabindex='1') en cualquier parte de la página, lo que reorganiza el orden de tabulación de formas impredecibles y puede alejar el enlace de omitir de su posición esperada como primer elemento. - Incluir solo un landmark
<nav>sin nombre cuando la página tiene varias regiones de navegación (navegación principal, migas de pan, navegación de pie de página), lo que hace imposible que las personas usuarias de lectores de pantalla las distingan mediante atajos de navegación por landmarks. - Confiar únicamente en la estructura de landmarks sin proporcionar un enlace de omitir, bajo la suposición de que todas las personas usuarias de lectores de pantalla conocen y usan los atajos de landmarks; las personas que usan teclado y que no usan lectores de pantalla no obtienen ningún beneficio de los landmarks por sí solos y dependen de un enlace de omitir visible.
- Envolver todo el cuerpo de la página en un único elemento
<main>que incluya navegación, encabezados y pies de página, en lugar de restringir<main>al contenido único de la página. - Usar
role='navigation'en un<div>que contiene navegación sin proporcionar unaria-labelcuando existen múltiples landmarks de navegación, lo que hace que los lectores de pantalla anuncien solo «navigation» sin forma de diferenciar las regiones. - Implementar correctamente el enlace de omitir en un prototipo HTML estático pero perderlo durante el renderizado con un framework JavaScript (por ejemplo, React, Angular, Vue) porque el componente del enlace de omitir no se incluye en el layout raíz o se elimina condicionalmente durante la hidratación del lado del cliente.
Relación con la Normativa de Accesibilidad de Turquía
La Circular Presidencial 2025/10 de Turquía, publicada en el Boletín Oficial n.º 32933 el 21 de junio de 2025, establece requisitos obligatorios de accesibilidad web y móvil basados en los estándares de conformidad WCAG 2.1 Nivel AA y WCAG 2.2 Nivel A. WCAG 2.4.1 Bypass Blocks es un criterio de Nivel A, lo que lo sitúa entre los requisitos más fundamentales de la Circular; es decir, representa la línea de base por debajo de la cual no pueden situarse los servicios digitales de ninguna entidad cubierta.
La Circular abarca una amplia gama de entidades del sector público y privado. Las instituciones públicas, incluidos ministerios, municipios, organismos estatales y entidades vinculadas al gobierno, deben lograr plena conformidad en el plazo de un año a partir de la fecha de entrada en vigor de la Circular. Las entidades del sector privado sujetas a la regulación disponen de un plazo de dos años para cumplir. Las categorías del sector privado cubiertas incluyen plataformas de comercio electrónico, bancos e instituciones financieras, hospitales y proveedores de servicios sanitarios, operadores de telecomunicaciones con 200,000 o más abonados, agencias de viajes, empresas de transporte privado y escuelas privadas autorizadas por el Ministerio de Educación Nacional (MoNE).
Para estas entidades, no implementar WCAG 2.4.1 significa que sus sitios web no cumplen el nivel más básico del estándar. Un portal gubernamental, una plataforma de banca en línea, un sistema de citas de hospital o un flujo de pago de comercio electrónico que carezca de un mecanismo funcional de omitir navegación está en violación directa de los requisitos de la Circular. Dado que la navegación por teclado es fundamental para las personas con discapacidades motoras y que la usabilidad con lectores de pantalla depende en gran medida de la estructura de landmarks, este criterio tiene un peso significativo en las auditorías de accesibilidad y en las evaluaciones regulatorias.
Las organizaciones que realicen auditorías internas de accesibilidad o encarguen evaluaciones a terceros en preparación para el cumplimiento deben tratar WCAG 2.4.1 como un elemento de primera revisión: uno de los logros más fáciles de implementar y uno de los más impactantes para las personas que dependen del teclado y de tecnologías de apoyo. No abordarlo puede ser citado específicamente en las revisiones regulatorias como una no conformidad de base, lo que potencialmente afecta al estado general de cumplimiento de la organización bajo la Circular.
