2 min de lectura

Le pasé axe-core a este cuaderno

Cero violaciones automáticas de WCAG A y AA en las páginas públicas. El número mide una parte, y esta nota dice cuál.

  • accesibilidad
  • axe-core
  • qa

Si el cuaderno habla de accesibilidad, el cuaderno tiene que aguantar la misma medición. Corrí axe-core sobre las páginas que están publicadas.

La corrida usa Playwright y @axe-core/playwright, con las reglas de WCAG 2.0 y 2.1 en nivel A y AA: wcag2a, wcag2aa, wcag21a y wcag21aa. Pasé por el inicio, la bitácora, cada nota, el canal, el repo, Acerca, Privacidad y la página que no existe. Además abrí el menú en un viewport de teléfono y apreté «Reproducir episodio». axe solo ve el DOM que está en pantalla en ese momento, así que un estado cerrado no cuenta como revisado.

El resultado fue cero violaciones. No lo leo como «el sitio es accesible». axe-core alcanza, según la estimación que suele citarse, entre un 30 % y un 50 % de los criterios WCAG. El orden del foco con Tab, el zoom al 200 % y si un cambio en vivo se anuncia quedan afuera de ese cero. Un cero automático es un piso, no un diploma.

El contraste no quedó ni en verde ni en rojo. Quedó en incomplete: decenas de nodos en cada página. El motivo es el fondo. La hoja tiene un degradado —la línea del margen y un grano— y axe no calcula el contraste cuando no puede decidir el color de atrás. Medí los tres colores de texto contra el papel liso, sin el grano. La tinta queda cerca de 15:1. El grafito y el cobre superan 7:1. El mínimo AA para texto chico es 4.5:1. Esa cuenta es del color declarado, no de cada pixel del fondo.

El aviso de publicidad estaba en el DOM, vacío. Un anuncio que Google pinte después vive en otro documento y puede traer su propio contraste. Esta corrida no lo incluye.

En el repo, el mismo chequeo recorre las rutas en su estado inicial, sobre el build estático. Si una nota nueva deja un control sin nombre, el rojo aparece antes de publicarla. El menú abierto y el reproductor los miré en esta pasada, aparte, con la misma herramienta.