Técnica Scripts de cliente WCAG 2.2
SCR38Crear una versión alternativa conforme para una página web diseñada con mejora progresiva
En resumen
Esta técnica muestra cómo guardar con JavaScript la versión básica de una página (solo HTML, sin scripts, estilos ni complementos) y ofrecer un enlace para volver a ella desde cualquier versión mejorada. Sirve para que una página con mejora progresiva pueda declarar su conformidad con las WCAG apoyándose en esa versión básica, y beneficia a quienes usan dispositivos o tecnologías de asistencia que no soportan las capas avanzadas.
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 las auditorías de accesibilidad de ADDAW revisamos cada criterio de conformidad siguiendo este catálogo de técnicas: comprobamos si la web aplica una técnica suficiente y documentamos cada fallo común con capturas y el código afectado, para que el equipo de desarrollo sepa exactamente qué corregir. Los informes siguen la metodología del Observatorio de Accesibilidad y la norma UNE-EN 301 549.
Fuente y licencia
Traducción al español, no oficial, realizada por ADDAW a partir de la técnica SCR38 del documento «Techniques for WCAG 2.2» del W3C (versión del repositorio público del W3C a 22/10/2026). Copyright © W3C® (MIT, ERCIM, Keio, Beihang). Se publica conforme a la licencia de documentos del W3C. El texto normativo de referencia es el original en inglés; si detecta un error en la traducción, escríbanos.