PAUL GUERRERO software engineer
← proyectos

a11y-crawler

  • typescript
  • playwright
  • axe-core
  • postgres

Auditar la accesibilidad de un sitio grande tiene una trampa: la mayoría de sus páginas son la misma plantilla repetida. Revisarlas una por una es pagar cien veces por el mismo trabajo.

a11y-crawler las agrupa antes de mirarlas. Calcula una huella estructural de cada página, junta las que se parecen y audita solo a un representante de cada grupo; el resultado se propaga al resto. Cien páginas se vuelven cinco o diez plantillas. Fue, con diferencia, la decisión que más tiempo ahorró.

El análisis duro es determinista: reglas de axe, pruebas de teclado y foco, diferencias de píxeles para simular daltonismo. El modelo de lenguaje entra al final y solo para lo que las reglas no zanjan: descartar falsos positivos, juzgar si un texto alternativo describe de verdad la imagen. Último tier, no motor.

Hay una parte que me hizo gracia. Para no repetir trabajo entre auditorías monté un sistema de hashes en árbol: solo se vuelve a revisar lo que ha cambiado, igual que hace git. Cuando lo tuve montado descubrí que era casi calcado a una técnica de un paper de Princeton. Leer papers no da solo argumentos: da diseño.


Cómo está hecho — TypeScript · Bun · Playwright · axe-core · PostgreSQL · clustering por SimHash