Fallo común WCAG 2.2
F58Páginas que el servidor recarga o redirige solas tras unos segundos
Nombre oficial en el W3C: Fallo del criterio de conformidad 2.2.1 debido a usar técnicas del lado del servidor para redirigir páginas automáticamente tras un tiempo de espera
En pocas palabras
Algunos servidores envían la cabecera Refresh para que la página se recargue o salte a otra dirección tras unos segundos. Si la persona no puede desactivar, ampliar o ajustar ese tiempo, es un fallo. Para cambiar de dirección es mejor una redirección inmediata.
Por qué es importante
Un lector de pantalla (programa que lee en voz alta lo que hay en la pantalla) lee la página poco a poco. Si la página se recarga antes de acabar, vuelve a empezar desde arriba. Si cambia de dirección, la persona no sabe qué ha pasado.
Le ocurre también a quien lee despacio o usa un ampliador de pantalla. Por ejemplo, un aviso de «Esta sección se ha trasladado» que salta a los 5 segundos no da tiempo a leerlo.
Cómo evitarlo
- Para llevar a otra dirección, use una redirección HTTP inmediata, con código
301(permanente) o302(temporal). - No envíe la cabecera
Refreshcon tiempo de espera, ni para redirigir ni para recargar la página cada cierto tiempo. Tampoco use<meta http-equiv="refresh">con espera. - Si necesita una página intermedia, ponga un enlace para que la persona continúe cuando quiera.
- Si hay que actualizar datos, como un marcador deportivo, actualice solo esa parte y ofrezca un control para pausarla.
- El fallo no se aplica si el tiempo es esencial o forma parte de un evento en tiempo real, como una subasta.
Cómo comprobarlo
- Abra la página y espere sin tocar nada durante uno o dos minutos.
- Si se recarga o cambia de dirección sola, busque un control para desactivar o ampliar el tiempo.
- Abra las herramientas del navegador (F12), pestaña «Red». Seleccione la página y busque una cabecera
Refreshen la respuesta. - Si hay espera, no hay control y no es una excepción de tiempo real o esencial, hay fallo.
Ver el texto completo del W3C (traducción al español)
Esta es una traducción no oficial al español de la técnica F58 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.
Aplicabilidad
- Cualquier lenguaje de scripts del lado del servidor
- El contenido no cumple las excepciones del criterio de conformidad relativas a los límites de tiempo permitidos.
Descripción
Los lenguajes de scripts del lado del servidor permiten a quienes desarrollan establecer la cabecera HTTP no estándar «Refresh» con un tiempo de espera (en segundos) y un URI al que se redirige el navegador una vez transcurrido ese tiempo. Si el intervalo de tiempo es demasiado corto, las personas ciegas no tendrán tiempo suficiente para que su lector de pantalla lea la página antes de que esta se actualice de forma inesperada y haga que el lector de pantalla empiece a leer de nuevo desde el principio. Los usuarios videntes también pueden desorientarse con la actualización inesperada.
La cabecera HTTP que se establece es Refresh: {tiempo en segundos}; url={URI de la nueva ubicación}. También es posible omitir el URI y obtener una página que se actualiza periódicamente, lo que provoca el mismo problema. En ese caso, la cabecera HTTP que se establece es Refresh: {tiempo en segundos}.
Ejemplos
El siguiente ejemplo es un fallo porque se implementa una redirección temporizada del lado del servidor con Java Servlets o JavaServer Pages (JSP).
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
response.setHeader("Refresh", "10; URL=TargetPage.html");
out.println("<!DOCTYPE html>");
out.println("<html><head><title>Redirect</title></head><body>");
out.println("<p>This page will redirect you in 10 seconds.</p>");
out.println("</body></html>");
}
Pruebas
Procedimiento
- Comprobar si la página web redirige automáticamente a otra página al cabo de cierto tiempo sin que el usuario realice ninguna acción.
- Comprobar si la página se acoge a las excepciones de tiempo real o de contenido esencial del criterio de conformidad 2.2.1 Tiempo ajustable.
- Comprobar si se ofrece al usuario la posibilidad de desactivar, ampliar o ajustar el tiempo de actualización de la página.
Resultados esperados
- Si la comprobación n.º 1 es verdadera y las comprobaciones n.º 2 y n.º 3 son falsas, se da esta condición de fallo y el contenido falla el criterio de conformidad.
Recursos
- RFC 9110: HTTP Semantics 15.4. Redirection 3xx (redirecciones 3xx en la especificación de HTTP)
Cómo lo comprobamos en ADDAW
Este error es uno de los que buscamos en cada auditoría de ADDAW. Se lo entregamos con capturas y la forma de corregirlo.
Basado en la técnica F58 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.