Fallo Común F78 de WCAG 2.1: Pérdida del indicador de enfoque visual por estilos incorrectos

Navegación web con un enlace enfocado que muestra un contorno amarillo, asegurando la accesibilidad visual para usuarios que navegan con teclado.

La accesibilidad web es esencial para garantizar que todos los usuarios, incluidos aquellos con discapacidades motoras o visuales, puedan interactuar con las interfaces digitales sin obstáculos. Un problema recurrente ocurre cuando los estilos de los elementos eliminan o hacen invisible el indicador de enfoque visual, lo que afecta la navegabilidad para usuarios que dependen del teclado.

Este fallo, identificado como F78 en WCAG 2.1, compromete el cumplimiento de los criterios de conformidad 2.4.7 (Enfoque Visible) y 1.4.11 (Contraste No Textual).

Un estudio de la WebAIM Million revela que más del 50% de los sitios analizados presentan problemas de enfoque accesible, lo que impide que los usuarios de teclado naveguen de manera eficiente.

Acerca de este fallo

El fallo F78 ocurre cuando los estilos de los elementos en la interfaz afectan negativamente el indicador de enfoque visual. Esto puede suceder al deshabilitar el outline por defecto, usar bordes de colores que ocultan el foco o aplicar efectos visuales que hacen imperceptible la selección del elemento activo.

Escenarios comunes del fallo:

  • Uso de outline: none; en los estilos CSS sin proveer una alternativa accesible.
  • Bordes gruesos del mismo color que el indicador de enfoque, ocultándolo.
  • Elementos con bordes o sombras que dificultan la distinción del enfoque.

Ejemplos

Ejemplo incorrecto 1: Eliminación del indicador de enfoque con CSS

Este código elimina el contorno de enfoque predeterminado del navegador, lo que impide que los usuarios de teclado sepan qué elemento está activo.

button:focus {
outline: none;
}

🔴 Problema: Los usuarios que navegan con teclado no tienen una referencia visual clara del elemento enfocado.

Solución correcta: Mantener un indicador de enfoque accesible

En lugar de eliminar el outline, se debe proporcionar un indicador visual claro, como un borde contrastante o un cambio de fondo.

button:focus {
outline: 3px solid #ffcc00;
}

✅ ¿Qué mejora?:

  • Se mantiene un contorno visible con alto contraste.
  • Mejora la experiencia de navegación para usuarios de teclado.

Ejemplo incorrecto 1: Contorno similar al borde del elemento

Cuando el contorno del elemento es del mismo color que su borde, el indicador de enfoque se vuelve imperceptible.

a {
border: 2px solid black;
outline: 2px solid black;
}

🔴 Problema: El foco es técnicamente visible, pero se pierde en el diseño, afectando la usabilidad.

Solución correcta: Asegurar contraste adecuado

Asegurar que el foco tenga un color contrastante respecto al fondo y bordes del elemento.

a:focus {
outline: 3px dashed #ff6600;
}

✅ ¿Qué mejora?:

  • Se diferencia el foco del borde mediante un color contrastante.
  • Permite a los usuarios identificar con claridad el enlace activo.

Ejemplo correcto: Solución ideal

El siguiente código optimiza la visibilidad del foco mediante un contorno altamente contrastante y efectos visuales adicionales, como un cambio de fondo al enfocar.

button:focus,
a:focus {
outline: 3px solid #00ffcc;
background-color: rgba(0, 255, 204, 0.2);
border-radius: 4px;
}

¿Qué mejora?:

  • Mantiene un foco visible con alto contraste.
  • Añade un cambio de color de fondo para mayor claridad.
  • Mejora la experiencia de navegación para todos los usuarios.

Errores comunes y cómo evitarlos

Errores frecuentes:

  • Eliminar el outline sin ofrecer una alternativa visible.
  • Usar colores de bajo contraste que ocultan el indicador de foco.
  • Aplicar bordes gruesos del mismo color que el outline, reduciendo su visibilidad.

Cómo evitar estos errores:

  • Mantener siempre un indicador de foco visible y contrastante.
  • Usar outline, border o box-shadow con colores llamativos y distintivos.
  • Asegurar que el foco sea perceptible en todos los estados (hover, active, focus).

Preguntas frecuentes sobre el fallo F78

¿Por qué es importante el indicador de enfoque?

Es fundamental para usuarios que dependen del teclado, como personas con discapacidades motoras o ceguera. Sin este indicador, no pueden navegar correctamente.

¿Es obligatorio usar outline en los elementos?

No, pero es altamente recomendado. Si se elimina, se debe reemplazar por un indicador de foco visible y accesible.

¿Cómo pruebo si los elementos tienen un foco accesible?

Usa la tecla Tab para moverte por los elementos interactivos. Si no ves un cambio visual claro, hay un problema de accesibilidad.

¿Puedo personalizar el indicador de foco sin afectar la accesibilidad?

Sí. Se pueden usar bordes, cambios de color o sombras (box-shadow) para hacerlo más visible y estéticamente armonioso.

¿Cómo verifico si mi sitio cumple con este criterio?

Usa herramientas como Lighthouse, el Validador de Accesibilidad de WAVE o axe DevTools para evaluar la visibilidad del foco.

Recursos relacionados

Pruebas y validación

Procedimiento

  1. Usa el teclado (Tab) para navegar entre elementos interactivos.
  2. Observa si cada elemento muestra un indicador claro de foco.
  3. Si el foco no es visible o difícil de distinguir, hay un problema de accesibilidad.

Resultados esperados

  • Si todos los elementos tienen un foco visual claro, el sitio cumple con WCAG.
  • Si el foco es invisible o confuso, el contenido falla los criterios 2.4.7 y 1.4.11 y debe corregirse.

Garantizar un enfoque visible y accesible es clave para la inclusión digital. Eliminar o dificultar la percepción del foco afecta a millones de usuarios con discapacidad. Personaliza el indicador de enfoque de manera accesible y asegúrate de cumplir con WCAG 2.1.

🚀 ¿Tu sitio web es accesible? Contáctanos para una auditoría y optimización en accesibilidad web. 💡

¿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.