22 de octubre de 2026
Meta refresh, redirección y accesibilidad: por qué la recarga temporizada puede incumplir las WCAG
La etiqueta meta http-equiv refresh se usa a menudo para recargar una página a intervalos regulares o para redirigir al usuario a otra página. En accesibilidad es una trampa bien documentada: en la técnica de fallo F41, el W3C describe cómo usarla para recargar la página puede incumplir tres criterios de conformidad de las WCAG, 2.2.1 (Tiempo ajustable), 2.2.4 (Interrupciones) y 3.2.5 (Cambio a petición). En resumen: F41 describe una página que se recarga sola con un intervalo demasiado corto, sin forma de desactivar la actualización automática; su procedimiento de prueba comprueba además si el usuario puede desactivar, ampliar o ajustar el tiempo. El W3C recomienda evitar la actualización periódica y dejar que el usuario elija cuándo quiere la información más reciente. Para una redirección, nuestro consejo es hacerla en el servidor: el documento explicativo del criterio 2.2.1 indica que las redirecciones de servidor no temporizadas, como los códigos de respuesta 3xx, no están afectadas, porque funcionan al instante. A continuación verá cómo se produce el problema, el procedimiento de prueba oficial, el caso particular del retardo 0 y las alternativas.
Qué hace meta refresh y por qué es un problema de accesibilidad
El número del atributo content indica el retardo, en segundos, antes de la actualización. Con content="60", la página se recarga cada sesenta segundos sin ninguna acción de quien la consulta. El W3C presenta este código como un ejemplo obsoleto y pide a los desarrolladores que no lo utilicen para simular una tecnología «push».
El problema es el tiempo de lectura. Según la descripción de F41, si el intervalo es demasiado corto y no hay forma de desactivar la actualización automática, las personas ciegas no tienen tiempo de que su lector de pantalla lea la página antes de que se recargue de forma inesperada, lo que hace que el lector vuelva a empezar por arriba. Los usuarios videntes también pueden desorientarse con esa recarga inesperada.
El W3C recuerda que los desarrolladores no pueden prever cuánto tiempo necesitará un usuario para leer una página y que una actualización prematura puede desorientar a los usuarios. Su recomendación es clara: evitar la actualización periódica y permitir que los usuarios elijan cuándo quieren la información más reciente.
<!-- Ejemplo de fallo F41: la página se recarga cada 60 segundos -->
<head>
<title>Panel de control</title>
<meta http-equiv="refresh" content="60" />
</head>Por qué una recarga automática es un límite de tiempo según el criterio 2.2.1
El criterio 2.2.1 Tiempo ajustable, de nivel A, busca que los usuarios dispongan de tiempo suficiente para completar sus tareas. Su documento explicativo señala que cualquier proceso que ocurre sin iniciativa del usuario tras un tiempo fijado, o de forma periódica, es un límite de tiempo. Las actualizaciones parciales o completas del contenido, como la recarga de una página, se incluyen de forma explícita.
Para cada límite de tiempo fijado por el contenido debe cumplirse al menos una de estas condiciones:
- Desactivar: el usuario puede desactivar el límite antes de encontrarse con él.
- Ajustar: el usuario puede ajustar el límite antes de encontrarse con él, en un rango amplio de al menos diez veces la duración por defecto.
- Ampliar: se avisa al usuario antes de que expire el tiempo, dispone de al menos 20 segundos para ampliarlo con una acción sencilla (por ejemplo, pulsar la barra espaciadora) y puede ampliarlo al menos diez veces.
- Excepción de tiempo real: el límite es parte necesaria de un evento en tiempo real, como una subasta, y no hay alternativa posible.
- Excepción esencial: el límite es esencial y ampliarlo invalidaría la actividad.
- Excepción de 20 horas: el límite supera las 20 horas.
Cómo probar una página que usa meta refresh
F41 incluye un procedimiento de prueba para cualquier página HTML que utilice meta http-equiv="refresh". Consta de cinco comprobaciones:
- 1. ¿Está presente en el atributo content el valor numérico de segundos hasta la actualización?
- 2. ¿Es ese valor inferior a 1 o superior a 72 000?
- 3. ¿Se acoge la página a la excepción de tiempo real o a la excepción esencial del criterio 2.2.1?
- 4. ¿Tiene el usuario la posibilidad de desactivar, ampliar o ajustar el tiempo de la actualización?
- 5. ¿La página, en la práctica, no se actualiza tras la duración indicada en el atributo content?
Cómo leer los resultados criterio por criterio
Los resultados esperados no combinan las mismas comprobaciones para los tres criterios. Para el 2.2.1 intervienen las comprobaciones 1 a 5. Para el 2.2.4, las comprobaciones 1, 2, 4 y 5. Para el 3.2.5 solo cuentan las comprobaciones 1 y 4. En la práctica, las excepciones de tiempo real y esencial (comprobación 3) solo se tienen en cuenta para el 2.2.1, y el valor del retardo (comprobación 2) no interviene en el 3.2.5. Por tanto, una página cubierta por una excepción del 2.2.1 no queda, solo por eso, a salvo en los criterios 2.2.4 y 3.2.5.
Tenga también en cuenta una aclaración general del W3C sobre las técnicas de fallo: muestran cómo un contenido puede incumplir un criterio, pero ese contenido puede cumplirlo igualmente si ofrece un contenido o una funcionalidad equivalente o alternativa que sí respete los requisitos normativos.
Por último, para el criterio 2.2.1 el W3C enumera dos reglas de prueba aprobadas que tratan directamente este tema: «Meta element has no refresh delay» y «Meta element has no refresh delay (no exception)». No es obligatorio usarlas para comprobar la conformidad, pero son métodos de prueba definidos y aprobados.
El caso del retardo 0 en meta refresh
La segunda comprobación del procedimiento F41 aísla los valores inferiores a 1, lo que incluye el retardo 0, y los superiores a 72 000 segundos. Esos 72 000 segundos equivalen a 20 horas, la duración de la excepción de 20 horas del criterio 2.2.1. Esta comprobación forma parte de las condiciones examinadas para los criterios 2.2.1 y 2.2.4.
Atención: no forma parte de la condición del criterio 3.2.5, que solo se basa en las comprobaciones 1 y 4. El valor del retardo no basta, por sí solo, para resolver la cuestión del cambio a petición. Si el usuario dispone de un medio para desactivar, ampliar o ajustar la actualización, la respuesta a la comprobación 4 es afirmativa.
Una aclaración importante: F41 trata de la recarga de la página. Para la redirección meta con límite de tiempo, el W3C documenta un fallo distinto, F40, que este artículo no detalla. Si solo necesita enviar al usuario a una nueva dirección, nuestro consejo es usar una redirección de servidor no temporizada, que el documento explicativo del 2.2.1 declara no afectada.
Qué usar en su lugar: redirección de servidor y actualización a petición
Para una redirección, el documento explicativo del 2.2.1 es explícito: las redirecciones de servidor no temporizadas, por ejemplo con códigos de respuesta 3xx, no están afectadas porque funcionan al instante y no imponen ningún límite de tiempo. Un matiz importante: hacerlo en el servidor no es una garantía. El fallo F58 se refiere precisamente a las técnicas de servidor que redirigen automáticamente una página tras un tiempo de espera, y el fallo F40, a la redirección meta con límite de tiempo.
Para un contenido que debe mantenerse al día, el W3C aconseja dejar que el usuario elija cuándo obtener la información más reciente. Nuestro consejo: sustituya la recarga automática por una acción del usuario, como un botón. Si sigue siendo necesario un límite de tiempo, las técnicas suficientes del W3C para el criterio 2.2.1 se agrupan por situación:
- Límite de tiempo controlado por un script (situación B): G198, ofrecer una forma de desactivar el límite; G180, permitir fijarlo en diez veces el valor por defecto; o SCR16 combinada con SCR1, avisar de que el límite va a expirar y permitir ampliar el tiempo por defecto.
- Límites de tiempo de sesión (situación A): G133, una casilla en la primera página de un formulario de varias partes para pedir una sesión más larga o sin límite; o G198.
- Límites de tiempo de lectura (situación C): G4, permitir pausar y reanudar el contenido; G198; SCR33, desplazamiento por script con un mecanismo de pausa; SCR36, ofrecer un mecanismo que permita a los usuarios mostrar el texto en movimiento, con desplazamiento o actualizado automáticamente en una ventana o zona estática.
<!-- En su lugar: sin recarga automática, el usuario decide -->
<head>
<title>Panel de control</title>
</head>
<body>
<!-- Falta conectar el script que carga los nuevos datos -->
<button type="button" id="actualizar">Cargar la información más reciente</button>
</body>A quién perjudica una recarga no controlada
El documento explicativo del 2.2.1 detalla los grupos que pueden necesitar más tiempo. Téngalos en cuenta antes de imponer una actualización temporizada:
- las personas con discapacidad física, que a menudo necesitan más tiempo para reaccionar, escribir y completar actividades;
- las personas con baja visión, que necesitan más tiempo para localizar elementos en pantalla y leer;
- las personas ciegas que usan lector de pantalla, que pueden necesitar más tiempo para entender la disposición, encontrar información y manejar los controles;
- las personas con limitaciones cognitivas o del lenguaje, que necesitan más tiempo para leer y comprender;
- las personas sordas que se comunican en lengua de signos, que pueden necesitar más tiempo para leer texto escrito, que para algunas es una segunda lengua.
Preguntas frecuentes
¿Está prohibido meta refresh en las WCAG?
Las fuentes del W3C citadas aquí no lo prohíben como tal: el fallo F41 describe las condiciones en las que usarlo para recargar la página incumple los criterios 2.2.1, 2.2.4 y 3.2.5, sobre todo cuando el intervalo es demasiado corto y no hay forma de desactivar la actualización automática. El W3C señala además que un contenido puede cumplir un criterio pese a una técnica de fallo si ofrece una alternativa equivalente conforme.
¿Es un problema un meta refresh con retardo 0?
En el procedimiento F41, un retardo inferior a 1 queda aislado por la segunda comprobación, que cuenta para los criterios 2.2.1 y 2.2.4 pero no para el 3.2.5. El valor del retardo no basta, por sí solo, para resolver la cuestión en el 3.2.5. Para una redirección, nuestro consejo: una redirección de servidor no temporizada, que el documento explicativo del 2.2.1 declara no afectada.
¿Cómo sustituir una redirección meta refresh por una redirección de servidor?
Haga que el servidor responda con un código de redirección 3xx hacia la nueva dirección. El W3C indica que estas redirecciones no temporizadas no están afectadas por el criterio 2.2.1, porque funcionan al instante. En cambio, una redirección de servidor activada tras un tiempo de espera es un fallo documentado (F58).
¿Importa el retardo de un meta refresh para la accesibilidad?
El procedimiento F41 comprueba si el valor es inferior a 1 o superior a 72 000 segundos (20 horas), pero esa comprobación solo cuenta para los criterios 2.2.1 y 2.2.4, no para el 3.2.5. El criterio 2.2.1 exige que todo límite de tiempo fijado por el contenido pueda desactivarse, ajustarse o ampliarse, salvo sus excepciones.
¿Qué criterios WCAG afecta meta refresh?
El fallo F41 se refiere a tres criterios de conformidad: 2.2.1 Tiempo ajustable, 2.2.4 Interrupciones y 3.2.5 Cambio a petición. Se aplica a HTML.
Más sobre el tema en Conformly
Fuentes
Este artículo se basa en las fuentes oficiales citadas al final de la página.