Fallo Común F40 de WCAG 2.1: metaredireccionamiento con límite de tiempo

Fragmento de código HTML con la etiqueta <meta http-equiv=\"refresh\" content=\"X; url=...\">, representando el uso incorrecto de metaredireccionamiento con límite de tiempo.

La accesibilidad web es fundamental para garantizar que todas las personas puedan navegar sin obstáculos en internet. Uno de los errores más problemáticos en términos de accesibilidad es el uso de metaredireccionamientos con un tiempo límite, ya que generan cambios inesperados en el contexto de navegación del usuario.

El fallo F40 ocurre cuando una página web usa la etiqueta <meta http-equiv="refresh" content="X; url=..."></meta> con un valor de tiempo mayor a cero, lo que puede interrumpir la experiencia de usuarios con discapacidades cognitivas, visuales o motoras. Este error incumple los criterios de éxito de las WCAG 2.1:

  • 2.2.1: Ajustable en el tiempo
  • 2.2.4: Interrupciones
  • 3.2.5: Cambio a petición

Acerca de este fallo

El metaredireccionamiento con tiempo puede ser problemático porque:

  • Interrumpe la navegación del usuario sin previo aviso.
  • Puede ser difícil de manejar para personas con discapacidades cognitivas que requieren más tiempo para leer o interactuar con el contenido.
  • Puede ser frustrante para usuarios que dependen de tecnologías de asistencia, ya que pueden perder el enfoque o verse obligados a reiniciar la navegación.

Escenarios comunes donde ocurre este fallo:

  • Un sitio web redirige automáticamente a los usuarios después de 5 segundos.
  • Se utiliza <meta http-equiv="refresh" content="X; url=..."> para cambiar de página en lugar de redirecciones del lado del servidor.
  • No se proporciona una opción para desactivar o ajustar el tiempo de redirección.

Ejemplos

Ejemplo incorrecto 1

Este código redirige automáticamente a los usuarios después de 5 segundos sin previo aviso.

<!doctype html>
<html lang="es">
<head>
  <title>No uses esto</title>
  <meta http-equiv="refresh" content="5; url=https://www.ejemplo.com/nueva">
</head>
<body>
  <p>Serás redirigido a nuestro <a href="https://www.ejemplo.com/nueva">nuevo sitio</a> en 5 segundos. Si tu navegador no soporta la redirección automática, haz clic en el enlace.</p>
</body>
</html>

🔴 Problema:

  • No da control al usuario sobre la redirección.
  • Puede ser confuso para quienes usan lectores de pantalla o necesitan más tiempo para leer.
  • Puede causar pérdida de información si un usuario está completando un formulario o leyendo contenido importante.

Solución correcta

Se recomienda implementar la redirección del lado del servidor para evitar interrupciones.

<?php
  header("Location: https://www.ejemplo.com/nueva", true, 301);
  exit();
?>

✅ ¿Qué mejora?:

  • La redirección es inmediata y transparente para el usuario.
  • No interrumpe la navegación.
  • Cumple con las WCAG al evitar cambios de contexto inesperados.

Ejemplo incorrecto 2

En este caso, la página usa una redirección después de 10 segundos sin proporcionar opciones para ajustarla.

<meta http-equiv="refresh" content="10; url=https://www.ejemplo.com/nueva">

🔴 Problema:

  • No permite a los usuarios controlar el tiempo de redirección.
  • Puede ser frustrante para quienes dependen de tecnologías de asistencia.

Solución correcta

Se debe proporcionar un aviso y permitir al usuario elegir si desea ser redirigido.

<p>Esta página ha sido movida. <a href="https://www.ejemplo.com/nueva">Haz clic aquí para continuar</a>.</p>

✅ ¿Qué mejora?:

  • Se deja la decisión al usuario en lugar de forzarlo a un cambio de contexto.
  • Cumple con las WCAG al evitar interrupciones inesperadas.

Ejemplo correcto

El siguiente código es una implementación accesible de redirección, que permite a los usuarios decidir si desean cambiar de página.

<p>Hemos cambiado de dirección. Si deseas ir al nuevo sitio, <a href="https://www.ejemplo.com/nueva">haz clic aquí</a>.</p>

✅ ¿Qué mejora?:

  • El usuario mantiene el control total sobre la navegación.
  • No se interrumpe la experiencia de personas con discapacidades.
  • Cumple con los criterios de éxito de WCAG.

Errores comunes y cómo evitarlos

Errores frecuentes:

  • Usar <meta http-equiv="refresh" content="X; url=..."> con un valor mayor a 0.
  • No dar opciones al usuario para ajustar o desactivar la redirección.
  • Implementar redirecciones con JavaScript sin advertencias.

Cómo evitar estos errores:

  • Utilizar redirecciones del lado del servidor con HTTP 301 o 302.
  • Informar al usuario sobre la redirección y darle opciones.
  • Evitar tiempos de espera forzados antes de la redirección.

Preguntas frecuentes sobre el fallo común F40

¿Por qué los metaredireccionamientos con tiempo son problemáticos?

Porque interrumpen la navegación y pueden causar confusión o frustración en usuarios con discapacidades.

¿Puedo usar <meta http-equiv="refresh" content="0; url=...">?

Sí, porque la redirección es instantánea y no genera un cambio de contexto inesperado.

¿Cuál es la mejor alternativa a las redirecciones con meta refresh?

Utilizar redirecciones del lado del servidor con HTTP 301 o 302.

¿Cómo afecta este fallo a los usuarios con discapacidad?

Puede hacer que pierdan información, se desorienten o tengan dificultades para completar tareas en la web.

¿Qué hago si mi página necesita redirigir a los usuarios?

Proporciona un aviso claro y permite que el usuario elija hacer clic en un enlace en lugar de una redirección automática.

¿Este fallo afecta la experiencia móvil?

Sí, especialmente en dispositivos con lectores de pantalla o en conexiones inestables donde la redirección puede fallar.

Recursos relacionados

Pruebas y validación

Procedimiento

  1. Buscar en el código el uso de <meta http-equiv="refresh".
  2. Verificar que el tiempo de redirección sea mayor a 0.
  3. Confirmar si hay opciones para ajustar o desactivar la redirección.
  4. Revisar si la página redirige automáticamente después del tiempo especificado.

Resultados esperados

  • ✅  Si la página redirige sin control del usuario, no cumple con WCAG.
  • ❌ Si la redirección es instantánea o manejada por el usuario, cumple con WCAG.

Evita interrupciones inesperadas en la navegación. Usa redirecciones del lado del servidor y permite que los usuarios decidan cuándo cambiar de página.

💡 Si necesitas ayuda para mejorar 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.