
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
- Guía oficial WCAG 2.1 para el fallo común F58: Fallo del Criterio de Conformidad 2.2.1 debido al uso de técnicas del lado del servidor para redirigir páginas automáticamente después de un tiempo de espera
- Comprender el criterio de éxito 2.2.1: Sincronización ajustable
- RFC 9110: Semántica HTTP 15.4. Redirección 3xx
- F40: Error debido al uso de una redirección meta con un límite de tiempo
- F41: Fallo de los criterios de éxito 2.2.1, 2.2.4 y 3.2.5 debido al uso de la actualización meta para recargar la página
Pruebas y validación
Procedimiento
- Verificar que la página no tenga redirección automática.
- 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! 🏆