Declaración
Accesibilidad
Qué se comprueba en cada cambio, qué se sabe que todavía no cumple y cómo avisarnos si algo te impide leer.
Alcance de esta declaración
Esta declaración se refiere a universoposteguillo.com, un sitio de fans no oficial sobre la obra de Santiago Posteguillo (ver Sobre este sitio). El objetivo declarado es WCAG 2.2, nivel AA, porque es el nivel con el que se audita el sitio en cada cambio.
Lo que esta página no hace es proclamar conformidad. Las herramientas automáticas deciden una parte de los criterios —el contraste calculado, los nombres accesibles, la estructura del documento—, pero no saben qué anuncia un lector de pantalla ni si una frase se entiende. Así que aquí se afirma algo más pequeño y comprobable: qué se mide, con qué presupuesto y qué se sabe que hoy falla.
Tampoco lleva fecha de última revisión, y es a propósito: una fecha envejece sola mientras el sitio cambia. Las comprobaciones que la sustituyen se ejecutan enteras antes de cada publicación, y ninguna versión llega a producción sin haberlas pasado.
Qué se comprueba, y cómo
El sitio se publica desde una integración continua con cuatro puertas: tokens de diseño, construcción, comprobación de tipos y batería de pruebas. Ninguna puede empeorar respecto a la versión anterior —la de tipos es un trinquete con un techo que sólo puede bajar, no un marcador en cero—, y ninguna versión llega a producción sin haberlas pasado. Cuatro de esas pruebas son de accesibilidad:
- axe-core en un navegador de verdad. Un Chromium sin interfaz abre 23 rutas —una por cada plantilla principal, más la guía de componentes, y no todas las del sitio— y las audita con las reglas de WCAG hasta 2.2 nivel AA. El presupuesto es de 0 incidencias: no puede subir, y si el número real bajase habría que bajarlo con él, porque la prueba falla también en esa dirección.
- La estructura de cada página construida. El menú móvil cerrado sale
del orden de tabulación (
inert), cada página indexable tiene un solomainy un soloh1, el enlace «Saltar al contenido principal» es el primer control enfocable de todas ellas, y cuatro de los índices que se filtran —personajes, noticias, glosario y la guía de lectura— llevan una regiónrole="status"que anuncia cuántos resultados quedan. - El esqueleto de encabezados. Cada página construida se recorre para ver si su índice de encabezados salta un nivel, y el recuento de las que aún lo hacen está medido en cada cambio (la cifra está más abajo, entre las limitaciones).
- El contenido sin JavaScript, con su propia lista de comprobaciones —la que se detalla en «Qué funciona sin JavaScript», tal como está hoy.
Y una comprobación más que no parece de accesibilidad y lo es: la cabecera se mide en el navegador a tres anchos distintos y debe dar siempre la misma altura. Cuando la altura real de una cabecera fija y el desplazamiento de los anclajes no coinciden, un enlace a un apartado te deja mirando el apartado anterior.
Medidas adoptadas
- Teclado. Todo elemento interactivo muestra un contorno de foco
visible, y los diálogos —la búsqueda, las ventanas emergentes— se cierran con la
tecla
Esc, retienen el foco mientras están abiertos y lo devuelven al control que los abrió. - Saltar la cabecera. El primer elemento enfocable de cada página es el enlace que lleva directamente al contenido principal.
- Movimiento. Las apariciones al desplazarse y las transiciones se desactivan por completo si tu sistema pide reducir el movimiento.
- Objetivos táctiles. Los filtros y los botones de icono miden al menos 44 píxeles en las anchuras de móvil.
- Color. La paleta se define en un solo sitio y reserva un tono reforzado para el texto pequeño, que es donde el contraste se pierde primero.
- Idioma. Cada página se declara en español, que es lo que permite a un lector de pantalla leerla con la voz correcta.
- Alternativas de lo interactivo. Los marcadores del mapa y los nodos del grafo de relaciones no son alcanzables con el teclado, así que ni el mapa ni el grafo son la versión principal de nada: el mapa lleva debajo la lista completa de lugares con su descripción, y cada personaje lleva su lista de relaciones —con el nombre completo y el tipo de vínculo— antes del diagrama.
- Formularios. Un error de validación se anuncia en una región
role="alert", se asocia al campo que lo provoca y mueve el foco al primer campo inválido, en lugar de limitarse a pintarlo de rojo.
Qué funciona sin JavaScript
El sitio es estático: las páginas llegan ya escritas desde el servidor y el JavaScript solo añade comodidades encima. Eso importa aquí porque una tecnología de apoyo, una conexión mala o una extensión de seguridad pueden dejarlo fuera. Estas comprobaciones se ejecutan sobre el sitio ya construido y hoy pasan:
- La página de honores llega con todas sus filas escritas, y los honores secretos siguen sin desvelarse.
- Ninguna cifra de esa página aparece como un 0 falso mientras se carga tu progreso: pone «—» hasta saberlo.
- La búsqueda se puede lanzar con un formulario que envía el propio navegador.
- El marco del mapa explica en su lugar qué te estás perdiendo, y enlaza con la lista de lugares.
- Todos los lugares del mapa, con su descripción, están escritos como texto debajo de él.
- Los índices de libros, personajes y glosario traen todas sus fichas antes de aplicar ningún filtro.
- Los datos que ocultamos a quien va a mitad de una saga —la muerte de un personaje, por ejemplo— se escriben siempre en la página: sólo se tapan después, y sólo si has dicho por dónde vas. Sin JavaScript los ves todos.
- Las palabras del glosario enlazadas dentro de un texto son enlaces de verdad, no botones falsos.
Limitaciones conocidas
- El mapa. La capa interactiva no se puede recorrer con el teclado. La lista de lugares que hay debajo es su alternativa completa —los mismos lugares, el mismo filtro— y por eso se considera la representación principal, pero un mapa que solo responde al ratón sigue siendo una carencia.
- Lo que ninguna máquina ve. Una auditoría automática no puede juzgar si un texto alternativo describe bien una imagen, si un titular dice lo que la sección contiene o si el orden de lectura tiene sentido. Esas son las decisiones que quedan del lado humano, y son justo las que un aviso tuyo corrige antes que cualquier herramienta.
Cómo informar de un problema
Si algo de este sitio te impide llegar a un contenido —un texto que no se lee, un foco que se pierde, algo que tu lector de pantalla no anuncia—, cuéntanoslo. Con tres datos casi siempre se puede reproducir: en qué página ocurre, qué intentabas hacer y con qué navegador y qué tecnología de apoyo estabas navegando.