Addaw, ir a inicio Donar

Técnica Scripts de servidor WCAG 2.2

SVR3Usar la cabecera Referer para pasar siempre antes por la versión accesible

Nombre oficial en el W3C: Usar la cabecera HTTP referer para garantizar que solo se pueda acceder al contenido no conforme desde contenido conforme

En pocas palabras

Cuando un contenido no accesible tiene una versión alternativa accesible, el servidor puede comprobar de qué página viene la persona. Para ello un script (PHP, ASP, JSP…) lee la cabecera HTTP Referer. Si no viene de la versión accesible, la lleva a ella, y desde allí puede elegir la otra.

Por qué es importante

Imagine un curso en línea con simulaciones hechas en una herramienta que los lectores de pantalla no pueden leer. Si existe una página accesible que explica lo mismo, conviene pasar por ella primero.

Así nadie se queda atrapado en la versión no accesible por llegar desde un buscador o un enlace directo. Es una forma de cumplir la condición de las WCAG sobre las versiones alternativas conformes (versiones accesibles con la misma información).

Cómo se hace

  1. Para cada página no accesible, anote la dirección de su versión accesible.
  2. Al recibir la petición de la página no accesible, lea la cabecera Referer. Indica la página desde la que viene la persona.
  3. Compare esa dirección con la de la versión accesible. Ignore diferencias sin importancia, como los parámetros tras ? o el fragmento tras #.
  4. Si coinciden, sirva la página solicitada. Si no, redirija a la versión accesible.
  5. Incluya en la versión accesible un enlace claro a la otra versión para quien quiera usarla.

Cómo comprobarlo

  1. Escriba directamente en la barra de direcciones la URL de la página no accesible.
  2. Compruebe que el servidor le lleva a la versión accesible.
  3. Desde la versión accesible, pulse el enlace a la otra versión y compruebe que esta vez sí se abre.
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 SVR3 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

Contenido creado mediante scripts del lado del servidor en el que se proporciona una versión conforme del contenido como alternativa a una versión no conforme en función de la cabecera HTTP Referer.

Descripción

El objetivo de esta técnica es garantizar que los usuarios puedan obtener una versión accesible del contenido cuando se proporcionan tanto versiones no conformes como conformes.

El requisito de conformidad 1 permite incluir páginas no conformes dentro del alcance de la conformidad siempre que tengan una versión alternativa conforme. No siempre es posible que los autores incluyan enlaces compatibles con la accesibilidad hacia el contenido conforme desde dentro del contenido no conforme. Por tanto, los autores pueden tener que recurrir a tecnologías de scripting del lado del servidor (p. ej., PHP, ASP, JSP) para garantizar que a la versión no conforme solo se pueda llegar desde una página conforme.

Esta técnica describe cómo usar la información que proporciona la cabecera HTTP referer para garantizar que al contenido no conforme solo se pueda llegar desde una página conforme. La cabecera HTTP referer la establece el agente de usuario y contiene el URI de la página (si la hay) que remitió al agente de usuario a la página no conforme.

Para implementar esta técnica, el autor identifica, para cada página no conforme, el URI de la versión conforme del contenido. Cuando se recibe una petición de la versión no conforme de una página, el servidor compara el valor de la cabecera HTTP referer con el URI de la versión conforme para determinar si el enlace a la versión no conforme procede de la versión conforme. La versión no conforme solo se sirve si la cabecera HTTP referer coincide con el URI de la versión no conforme. En caso contrario, el usuario es redirigido a la versión conforme del contenido. Tenga en cuenta que, al comparar el URI de la cabecera HTTP referer, deben tenerse en consideración las variaciones no relevantes del URI, como las de la cadena de consulta y el fragmento de destino.

Ejemplos

Demostraciones interactivas de procesos físicos

Un curso de física en línea usa un lenguaje de modelado propietario para ofrecer demostraciones interactivas de procesos físicos. El agente de usuario del lenguaje de modelado no es compatible con las tecnologías de asistencia. El sitio incluye un script que usa la cabecera HTTP referer para garantizar que, salvo que los usuarios intenten acceder a la demostración interactiva desde una página que contiene una descripción conforme del proceso y de los modelos, el servidor redirija la petición a una página conforme que contiene un enlace a la versión no conforme. Los estudiantes pueden optar por acceder a la versión interactiva no conforme, pero quienes no lo hagan pueden, aun así, aprender sobre el proceso.

Usar la cabecera HTTP referer en PHP

El siguiente ejemplo ilustra cómo puede usarse esta técnica en PHP. Incluye dos ficheros, conforming.php y non-conforming.php, que trabajan conjuntamente para garantizar que la única forma de acceder al contenido no conforme sea desde el contenido conforme.

PHP conforme

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Conforming Content</title>
</head>
<body>
  <h1>This is a conforming page</h1>
  <p>From here, you can visit the <a href="non-conforming.php">non-conforming 
    page</a>.</p>
</body>
</html>

PHP no conforme

<?php 
// if the request comes from a file that contains the string "conforming.php" 
// then render the page
  if(stristr($_SERVER['HTTP_REFERER'], "conforming.php")) {
?>	
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Non-Conforming Content</title>
</head>
<body>
  <h1>This is a non-conforming page</h1>
  <p>Because you came from <?php echo $_SERVER['HTTP_REFERER']; ?>, 
   you are able to view the content on this page.</p>
</body>
</html>
<?php
 }
// if the referring page is not conforming.php, then redirect the user to 
// the conforming version
else  {
header("Location: conforming.php");
}
?>

Hay disponible un ejemplo práctico: contenido conforme.

Pruebas

Procedimiento

Cuando se proporcionan alternativas conformes con las WCAG para contenido no conforme:

  1. Identificar las páginas que no cumplen las WCAG en el nivel de conformidad declarado en las que las alternativas accesibles se sirven en función de la cabecera HTTP Referrer.
  2. Visitar el URI del contenido no conforme.
  3. Verificar que la página resultante es una de las siguientes:

    1. una versión alternativa conforme del contenido no conforme
    2. una página que incluye un enlace tanto a la versión alternativa conforme como al contenido no conforme

Resultados esperados

  • La comprobación n.º 3.1 o la n.º 3.2 es verdadera.

Cómo lo comprobamos en ADDAW

En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.

Solicitar una auditoría

Basado en la técnica SVR3 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.