Addaw, ir a inicio Donar

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

  1. Para llevar a otra dirección, use una redirección HTTP inmediata, con código 301 (permanente) o 302 (temporal).
  2. No envíe la cabecera Refresh con tiempo de espera, ni para redirigir ni para recargar la página cada cierto tiempo. Tampoco use <meta http-equiv="refresh"> con espera.
  3. Si necesita una página intermedia, ponga un enlace para que la persona continúe cuando quiera.
  4. Si hay que actualizar datos, como un marcador deportivo, actualice solo esa parte y ofrezca un control para pausarla.
  5. 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

  1. Abra la página y espere sin tocar nada durante uno o dos minutos.
  2. Si se recarga o cambia de dirección sola, busque un control para desactivar o ampliar el tiempo.
  3. Abra las herramientas del navegador (F12), pestaña «Red». Seleccione la página y busque una cabecera Refresh en la respuesta.
  4. 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

  1. 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.
  2. 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.
  3. 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

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.

Solicitar una auditoría

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.