Utilizamos la herramienta jenkins CI para las pruebas de accesibilidad automatizadas proporcionadas por pa11y. Como tal, uso el siguiente archivo Jenkins para ejecutar las pruebas.
node('mypod') { container('centos') { def NODEJS_HOME env.NODEJS_HOME = "${tool 'Node-12.0.0'}" env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}" sh "'${env.NODEJS_HOME}'/bin/node --version" sh "npm install -g pa11y --unsafe-perm" sh "pa11y -V" sh '''curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum -y install ./google-chrome-stable_current_*.rpm yum -y install libXScrnSaver yum -y install atk java-atk-wrapper at-spi2-atk gtk3 libXt''' withCredentials([file(credentialsId: '***', variable: 'pa11yconfig')]) { sh "cat $pa11yconfig > config.json" sh "pa11y --config config.json --ignore WCAG2AA.Principle3.Guideline3_2.3_2_2.H32.2 --ignore WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail --ignore WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail --threshold 6 --reporter cli https://$URL > results.json" } } }Instala las cosas necesarias para ejecutar pa11y contra la URL especificada en el nodo basado en Linux. Windows es demasiado complicado, por lo que usamos Linux para esta implementación. Además, para que esto funcione para que se inicie el navegador, usamos el siguiente archivo config.json para que pa11y funcione.
{ "chromeLaunchConfig": { "args": [ "--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage" ] } }Todo esto funciona de maravilla para cualquier URL que proporcionemos. Ahora nos gustaría tener algunas configuraciones avanzadas para, digamos, probar si el inicio de sesión funciona o completar un formulario en una página web de un sitio, por lo que se pueden usar las acciones proporcionadas por pa11y. ¿Cómo debo fusionar el código de acciones en este archivo de configuración json para lograrlo? Las acciones se documentan en: - https://github.com/pa11y/pa11y#actions
¡Cualquier ayuda o sugerencia aquí sería muy apreciada!
Algo como esto:
"chromeLaunchConfig": { "args": [ "--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage" ], }, "reporter": "cli", "threshold": 6, "ignore:" [ 'WCAG2AA.Principle3.Guideline3_2.3_2_2.H32.2', 'WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail', 'WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail' ] "actions": [ "navigate to $URL", "wait for $ThingToHappen" ] }(También incluí opciones que actualmente está pasando directamente a la CLI, en caso de que le interese)