
La accesibilidad web es fundamental para garantizar que todos los usuarios, incluidas las personas con discapacidades, puedan navegar eficazmente en un sitio web. Un error común es la manipulación inadecuada del atributo tabindex, lo que puede afectar el orden de tabulación y desorientar a los usuarios que dependen de la navegación con teclado.
El fallo F44 ocurre cuando se usa tabindex para definir un orden de tabulación que no sigue la estructura lógica del contenido. Esto afecta a los usuarios que navegan con el teclado, ya que el foco puede saltar de manera inesperada, rompiendo la secuencia natural de la información.
Este fallo incumple el siguiente criterio de éxito de las WCAG 2.1 2.4.3: Orden del foco → El orden de navegación debe preservar el significado y la operatividad del contenido.
Acerca de este fallo
Cuando se asignan valores arbitrarios al atributo tabindex, el flujo de navegación puede volverse inconsistente. Esto genera barreras para usuarios con discapacidades motoras o visuales que dependen del teclado para acceder al contenido.
Problemas causados por este fallo:
- El foco del teclado salta de manera inesperada, desorientando a los usuarios.
- La relación lógica entre los elementos se pierde, afectando la comprensión del contenido.
- El mantenimiento del sitio se complica, ya que los valores de
tabindexpueden volverse inconsistentes con el tiempo.
Escenarios comunes donde ocurre este fallo:
- Uso de
tabindexcon valores desordenados en listas o formularios. - Olvido de actualizar los valores de
tabindextras modificar el contenido. - Asignación de valores innecesarios de
tabindexen todos los elementos interactivos.
Ejemplos
Ejemplo incorrecto 1: Orden de tabulación inconsistente
Este código asigna valores de tabindex que no siguen la secuencia lógica del contenido.
<ol>
<li><a href="main.html" tabindex="1">Inicio</a></li>
<li><a href="chapter1.html" tabindex="4">Capítulo 1</a></li>
<li><a href="chapter2.html" tabindex="3">Capítulo 2</a></li>
<li><a href="chapter3.html" tabindex="2">Capítulo 3</a></li>
</ol>
🔴 Problema:
- El orden de tabulación no coincide con el orden del contenido.
- Un usuario que navegue con el teclado experimentará saltos inesperados.
- Dificulta la navegación coherente y predecible.
Solución correcta
Eliminar los valores de tabindex y permitir que el navegador maneje el orden de tabulación de manera natural.
<ol>
<li><a href="main.html">Inicio</a></li>
<li><a href="chapter1.html">Capítulo 1</a></li>
<li><a href="chapter2.html">Capítulo 2</a></li>
<li><a href="chapter3.html">Capítulo 3</a></li>
</ol>
✅ ¿Qué mejora?:
- El orden de tabulación sigue la estructura lógica del contenido.
- Los usuarios pueden navegar de manera intuitiva.
- Cumple con las WCAG sin necesidad de modificar el
tabindexmanualmente.
Ejemplo incorrecto 2: Campo de formulario agregado sin actualizar el tabindex
Este código agrega un nuevo campo en el formulario sin asignarle un valor de tabindex, lo que lo envía al final del orden de tabulación.
<form>
<input type="text" tabindex="1" placeholder="Nombre">
<input type="email" tabindex="2" placeholder="Correo electrónico">
<input type="password" tabindex="3" placeholder="Contraseña">
<input type="text" placeholder="País"> <!-- No tiene tabindex asignado -->
</form>
🔴 Problema:
- El campo «País» queda fuera de la secuencia esperada de tabulación.
- Los usuarios pueden pasarlo por alto si navegan con teclado.
Solución correcta
Eliminar el tabindex innecesario y permitir el orden natural de los elementos en el formulario.
<form>
<input type="text" placeholder="Nombre">
<input type="email" placeholder="Correo electrónico">
<input type="password" placeholder="Contraseña">
<input type="text" placeholder="País">
</form>
✅ ¿Qué mejora?:
- Se mantiene un orden lógico de tabulación.
- No es necesario actualizar manualmente el
tabindexcada vez que se modifique el formulario.
Errores comunes y cómo evitarlos
Errores frecuentes
- Usar
tabindexpara alterar manualmente el orden de tabulación. - No actualizar
tabindextras modificar el contenido. - Asignar valores elevados de
tabindexa todos los elementos interactivos.
Cómo evitar estos errores
- Permitir el orden de tabulación natural del navegador.
- Solo usar
tabindex="0"para incluir elementos personalizados en el flujo de tabulación. - Evitar valores positivos de
tabindex, ya que complican el mantenimiento y la accesibilidad.
Preguntas frecuentes sobre el fallo común F44
¿Es recomendable usar tabindex en todos los elementos interactivos?
No, solo cuando sea necesario para mejorar la accesibilidad.
¿Cuándo se debe usar tabindex="0"?
Cuando se desea que un elemento no interactivo reciba foco, como un <div> con eventos de teclado.
¿Cómo puedo probar el orden de tabulación en mi sitio?
Usa la tecla Tab para recorrer los elementos y verifica si el foco sigue una secuencia lógica.
¿El tabindex positivo es útil?
No, ya que fuerza un orden manual y puede romper la navegación accesible.
¿Cómo evito problemas de orden de tabulación en formularios dinámicos?
No uses tabindex manualmente. Permite que el navegador maneje el orden de forma natural.
Recursos relacionados
- Guía oficial WCAG 2.1 para el fallo común F44: Incumplimiento del Criterio de Conformidad 2.4.3 debido al uso de tabindex para crear un orden de tabulación que no conserva el significado ni la operatividad
- Comprender el criterio de éxito 2.4.3: Orden de enfoque
- HTML – el atributo
tabindex - Uso correcto del atributo tabindex
Pruebas y validación
Procedimiento
- Identificar los elementos interactivos (
a,input,button, etc.) que tienentabindexasignado. - Verificar si el orden de tabulación sigue la secuencia lógica del contenido.
- Probar la navegación con la tecla
Tabpara detectar saltos inesperados. - Asegurar que los elementos agregados posteriormente mantengan la coherencia en la navegación.
Resultados esperados
- Si el orden de tabulación sigue la secuencia del contenido, cumple con WCAG 2.4.3.
- Si el foco salta de manera ilógica o desordenada, falla el criterio 2.4.3.
El orden de tabulación debe seguir una secuencia lógica para garantizar la accesibilidad. Evita usar tabindex innecesario y prueba la navegación con teclado para asegurar que tu sitio sea usable para todos.
💡 Si necesitas ayuda con la accesibilidad de tu web, contáctanos!