Fallo Común F44 de WCAG 2.1: Uso de tabindex para crear un orden de tabulación que no conserva el significado ni la operatividad

Orden de navegación desordenado con flechas que conectan nodos en direcciones ilógicas, simbolizando el uso incorrecto de tabindex en la navegación web.

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 tabindex pueden volverse inconsistentes con el tiempo.

Escenarios comunes donde ocurre este fallo:

  • Uso de tabindex con valores desordenados en listas o formularios.
  • Olvido de actualizar los valores de tabindex tras modificar el contenido.
  • Asignación de valores innecesarios de tabindex en 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 tabindex manualmente.

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 tabindex cada vez que se modifique el formulario.

Errores comunes y cómo evitarlos

Errores frecuentes

  • Usar tabindex para alterar manualmente el orden de tabulación.
  • No actualizar tabindex tras modificar el contenido.
  • Asignar valores elevados de tabindex a 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

Pruebas y validación

Procedimiento

  1. Identificar los elementos interactivos (a, input, button, etc.) que tienen tabindex asignado.
  2. Verificar si el orden de tabulación sigue la secuencia lógica del contenido.
  3. Probar la navegación con la tecla Tab para detectar saltos inesperados.
  4. 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!

¿Tienes dudas? Solicita una consultoría inicial gratuita

Evaluamos tu sitio web para identificar barreras que dificultan el acceso a personas con discapacidad. Te entregamos un informe con errores detectados y soluciones para que tu web sea usable por todos.