Técnica Scripts de cliente WCAG 2.2
SCR38Ofrecer la versión HTML básica de la página como alternativa accesible
Nombre oficial en el W3C: Crear una versión alternativa conforme para una página web diseñada con mejora progresiva
En pocas palabras
Muchas páginas se construyen por capas: primero un HTML que funciona solo y, encima, estilos y scripts que la mejoran. Esta técnica guarda esa versión básica antes de las mejoras y añade un enlace para volver a ella. Esa versión básica, que debe cumplir WCAG por completo, sirve como versión alternativa conforme.
Por qué es importante
WCAG permite ofrecer varias versiones de una misma página. Al menos una debe cumplir por completo, y desde las demás debe poder llegarse a ella.
En una página que se adapta a cada dispositivo puede haber muchas versiones mejoradas. La versión básica en HTML es la que funciona en más navegadores y productos de apoyo. Por eso es una buena candidata a versión conforme.
Es una técnica avanzada y poco habitual. No sustituye el trabajo de hacer accesibles también las versiones mejoradas.
Cómo se hace
- Construya la página con un HTML completo y bien estructurado que funcione sin CSS ni JavaScript.
- Al cargar la página, y antes de aplicar ninguna mejora, guarde con JavaScript una copia de ese contenido inicial.
- Inserte al principio de cada versión mejorada un enlace visible, por ejemplo «Versión accesible básica».
- Al activar ese enlace, restaure el contenido guardado. Puede usar una dirección propia, como
#accesible, para llegar también desde la barra de direcciones. - En la versión básica, ponga otro enlace para volver a la versión mejorada.
- Revise que la versión básica cumple WCAG en el nivel declarado. Siga mejorando, además, la accesibilidad de las otras versiones.
Cómo comprobarlo
- Abra la página mejorada y busque el enlace a la versión básica. Debe estar al principio y poder usarse con el teclado.
- Active el enlace y compruebe que aparece la versión básica, con el mismo contenido y las mismas funciones esenciales.
- Revise esa versión básica con los criterios WCAG del nivel declarado.
- Compruebe que desde la versión básica se puede volver a la versión mejorada.
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 SCR38 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
HTML con scripts.
Descripción
El objetivo de esta técnica es ofrecer una versión alternativa conforme para una página web diseñada con mejora progresiva. La técnica muestra cómo lograrlo mediante una técnica de scripts que consiste en:
- Almacenar la versión inicial, sin mejoras, de la página web, de modo que pueda actuar como «versión alternativa conforme» de cualquier versión mejorada posterior del contenido; y
- Insertar en todas las versiones mejoradas de la página web un mecanismo que permita al usuario volver a la versión alternativa sin mejoras que se ha almacenado.
Las páginas web diseñadas con mejora progresiva detectan las características del dispositivo de acceso a la web (tamaño, capacidades y software) para permitir que las tecnologías web compatibles se apliquen por capas sobre una base de HTML. El contenido y la funcionalidad básicos de este tipo de página web están disponibles a través de la base HTML para cualquier persona que use un dispositivo de acceso a la web más sencillo, mientras que se crean versiones mejoradas de la página adaptadas a las distintas características de los dispositivos de acceso más avanzados.
La guía actual para las páginas web que se entregan en versiones alternativas dice: «Nota 4: Pueden proporcionarse versiones alternativas para adaptarse a distintos entornos tecnológicos o grupos de usuarios. Cada versión debería ser lo más conforme posible. Una de las versiones tendría que ser plenamente conforme para cumplir el requisito de conformidad 1». En el caso de las páginas web diseñadas con mejora progresiva, esto plantea el problema de qué versión elegir como la versión plenamente conforme, procurando al mismo tiempo que ningún grupo de usuarios se vea perjudicado por esa elección.
Una solución a este reto consiste en elegir como «versión plenamente conforme» la versión sin mejoras de la página web (por ejemplo, el estado del DOM creado únicamente a partir del HTML del código fuente, sin soporte de scripts, estilos ni complementos no HTML), por su amplio alcance, en cuanto a compatibilidad, en todos los dispositivos de acceso a la web que puedan consultar el contenido.
Esta técnica elimina todos los scripts, estilos y complementos, pero es importante señalar que esto no es necesario para la conformidad con las WCAG 2.x. Quien desarrolla podría usar una técnica similar y conservar un conjunto reducido de estilos y scripts en la versión «sin mejoras».
Aunque esta técnica ofrece una forma de basar las declaraciones de conformidad en una única versión, los autores deben seguir trabajando para garantizar que cada versión mejorada de la página web sea lo más conforme posible.
Ejemplos
Usar JavaScript
El ejemplo usa JavaScript, en el fichero acctoggle.js, para almacenar la versión inicial sin mejoras de la página web, creada únicamente a partir del HTML del código fuente, de modo que pueda actuar como «versión alternativa conforme» de cualquier versión mejorada posterior de la página web; e inserta en todas las versiones mejoradas de la página web un enlace de conmutación que permite al usuario volver a la «versión alternativa conforme» sin mejoras almacenada. Nota: el fichero sayhello.js está ahí simplemente como ejemplo de fichero externo de carga útil, y debe sustituirse por cualquier otro script externo que se desee.
El script del fichero acctoggle.js almacena la versión sin mejoras y le asigna el sufijo de URL #accessible. Al pulsar el enlace «WCAG 2 conforming alternate version» (versión alternativa conforme con las WCAG 2), insertado como primer hijo del elemento body en cualquier versión mejorada, la URL cambia para incluir el sufijo #accessible, lo que restablece el HTML situado en los elementos body y head al código sin mejoras. Al estado sin mejoras se puede llegar desde el enlace o directamente desde una URL escrita en el navegador. Además, en la «versión alternativa conforme» sin mejoras se inserta un enlace que permite al usuario volver a aplicar las mejoras a la página web (algo que también puede hacerse con el botón «Atrás» del navegador).
JavaScript de acctoggle.js
window.onload = function(event) {
// store pre-enhanced element content
var initialHead = document.head.innerHTML;
var initialBody = document.body.innerHTML;
var initialURL = location.href;
var runOnce = function() {
// payload you want to run per page call - e.g. analytics code
}
var setup = function() {
// create conforming alternate version link
var toggleEnhanced = document.querySelector("#toggle_enhanced");
if (toggleEnhanced) {
toggleEnhanced.outerHTML = "";
}
var nel = document.createElement("a");
nel.id = "acctoggle";
nel.setAttribute("href", "#accessible");
nel.innerHTML = "WCAG 2 conforming alternate version";
document.body.insertBefore(nel, document.body.firstChild);
// payload
var s = document.createElement("SCRIPT");
s.setAttribute("src", "sayhello.js");
document.querySelector("HEAD").appendChild(s);
}
setup();
runOnce();
window.onpopstate = function(event) {
if (location.href.indexOf("#accessible") != -1) {
// revert element contents to pre-enhanced version
document.head.innerHTML = initialHead;
document.body.innerHTML = initialBody;
// create enhanced version link
var el = document.createElement("a");
el.id = "toggle_enhanced";
el.setAttribute("href", "");
el.innerHTML = "Enhanced version";
var back = function(e) {
e.preventDefault();
window.history.back();
}
el.addEventListener("click", back, false);
document.body.insertBefore(el, document.body.firstChild);
}
if (location.href == initialURL) {
setup();
}
};
}
Código fuente HTML de la página web
<!DOCTYPE html>
<html lang="en">
<head>
<title>Evaluera Ltd</title>
<meta charset="UTF-8">
<script src="accSwitch.js"></script>
</head>
<body>
<h1>Test Page</h1>
<p>Say: <span id="change">Goodbye</span></p>
</body>
</html>
Código fuente de sayhello.js
var change = document.querySelector("#change");
change.innerText = "Hello";
Pruebas
Procedimiento
- Comprobar que las versiones mejoradas de la página web contienen un enlace a la «versión alternativa conforme».
- Comprobar que la versión alternativa es una versión alternativa conforme de la página original y que cumple las WCAG 2 en el nivel de conformidad declarado.
Resultados esperados
- Las comprobaciones n.º 1 y n.º 2 son verdaderas.
Recursos
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.
Basado en la técnica SCR38 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.