Fallo Común F58 de WCAG 2.1: Uso incorrecto de redirección automática del lado del servidor

Profesional revisando conexiones en un servidor web, ilustrando la importancia de evitar redirecciones automáticas para mejorar la accesibilidad.

La accesibilidad digital es crucial para garantizar que todas las personas, incluidas aquellas con discapacidad, puedan navegar y utilizar la web sin obstáculos. La técnica WCAG 2.1 define criterios claros para ayudar a los desarrolladores a evitar errores que impiden una buena experiencia de usuario. Uno de estos errores es el fallo F58, relacionado con redirecciones automáticas del lado del servidor tras un periodo determinado.

Este problema común puede interrumpir la navegación especialmente para personas que utilizan lectores de pantalla. Según WebAIM, aproximadamente el 69% de los usuarios con discapacidad visual abandonan sitios web inaccesibles.

Acerca de este fallo

El fallo F58 ocurre cuando se usa el encabezado HTTP Refresh para redirigir automáticamente a otra página después de cierto tiempo. Esto incumple el Criterio de Éxito 2.2.1: «Tiempo ajustable», ya que no ofrece a los usuarios suficiente tiempo para consumir el contenido.

Esto afecta especialmente a usuarios con discapacidades visuales o cognitivas, pues la redirección automática puede interrumpir inesperadamente el proceso de lectura.

Escenarios comunes del fallo:

  • Páginas promocionales con redirección automática.
  • Formularios que envían al usuario automáticamente a otra página tras completarse.

Ejemplos

Ejemplo incorrecto 1: Uso de redirección Java Servlet

public void doGet(HttpServletRequest solicitud, HttpServletResponse respuesta)
throws IOException, ServletException {
    respuesta.setContentType("text/html");
    PrintWriter fuera = respuesta.getWriter();
    respuesta.setHeader("Refresh", "10; URL=TargetPage.html");
    fuera.println("<!DOCTYPE html>");
    fuera.println("<html><head><title>Redirigir</title></head><body>");
    fuera.println("<p>Esta página te redireccionará en 10 segundos.</p>");
    fuera.println("</body></html>");
}

🔴 Problema: El usuario no tiene control sobre la redirección, causando frustración especialmente en lectores de pantalla.

Solución correcta: Uso de enlace de redirección explícito

Eliminar el encabezado Refresh y permitir al usuario controlar la navegación mediante un enlace explícito:

<!DOCTYPE html>
<html lang="es">
<head>
    <title>Redirección controlada por usuario</title>
</head>
<body>
    <p>Haz clic en el siguiente enlace para continuar a la siguiente página:</p>
    <a href="TargetPage.html">Ir a la siguiente página</a>
</body>
</html>

✅ ¿Qué mejora?: El usuario decide cuándo avanzar.

Ejemplo incorrecto 1: Uso de redirección PHP

<?php
header("Refresh: 5; URL=nueva_pagina.php");
echo "Serás redirigido automáticamente en 5 segundos.";
?>

🔴 Problema: De nuevo, la redirección automática sin opción de ajuste.

Solución correcta: Uso de enlace de redirección explícito

Eliminar el refresh automático y proporcionar control al usuario:

<?php
// Sin redirección automática
echo '<p>Haz clic para continuar a <a href="nueva_pagina.php">nueva página</a>.</p>';
?>

✅ ¿Qué mejora?: El usuario decide cuándo continuar con la redirección.

Solución correcta: Uso de enlace de redirección explícito

La implementación ideal:

<!DOCTYPE html>
<html lang="es">
<head>
    <title>Página sin redirección automática</title>
</head>
<body>
    <p>Cuando estés listo, continúa a la <a href="pagina_objetivo.html">siguiente página</a>.</p>
</body>
</html>

✅ ¿Qué mejora?: Proporciona control total al usuario, cumpliendo con WCAG.

Errores comunes y cómo evitarlos

Errores frecuentes:

  • Usar tiempos de espera muy cortos: Esto causa estrés en la navegación.
  • No permitir control al usuario: Debes ofrecer alternativas claras.

Cómo evitar estos errores:

  • Evita redirecciones automáticas.
  • Utiliza enlaces explícitos.
  • Si es inevitable, proporciona opciones claras para desactivar o ajustar tiempos.

Preguntas frecuentes sobre el fallo común F58

¿Qué es exactamente el encabezado HTTP Refresh?
Es una instrucción para que el navegador actualice o redirija automáticamente tras un tiempo especificado.

¿Por qué afecta negativamente a usuarios con discapacidad visual?
Interrumpe inesperadamente la lectura asistida por lectores de pantalla.

¿Se permiten excepciones?
Solo si son absolutamente esenciales (p.ej., subastas en tiempo real).

¿Cuál es el tiempo recomendado si es indispensable usarlo?
Debe ajustarse mínimo a 20 segundos o permitir que el usuario lo modifique.

¿Qué alternativas existen?
Redirecciones controladas por enlaces o botones explícitos.

¿Cómo identifico este fallo en mi sitio?
Utilizando herramientas automatizadas o inspeccionando manualmente el encabezado HTTP.

Recursos relacionados

Pruebas y validación

Procedimiento

  1. Verificar que la página no tenga redirección automática.
  2. Confirmar que, si existe, el usuario pueda ajustarla o desactivarla.

Resultados esperados

  • ✅ Sin redirección automática forzada u opciones claras y accesibles para controlar la redirección, cumple con WCAG 2.1.
  • ❌ Si alguno de los elementos anteriores no se cumple, el contenido falla el criterio 2.2.1 y debe corregirse.

Eliminar las redirecciones automáticas mejora significativamente la accesibilidad. Si aún tienes dudas o necesitas asesoría especializada en accesibilidad, ¡contáctanos y mejora la experiencia en tu web para todos los usuarios! 🏆

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