Referencia de API de axe-devtools-behave
Este paquete integra axe DevTools en Behave, un marco de prueba de Python similar a Cucumber.
Uso
Antes de poder usar axe-devtools-behave, debes preparar algunas cosas.
En primer lugar, debes configurar la apertura y el cierre de un navegador, a través de features/environment.py
:
# features/environment.py
import behave_webdriver
def before_all(context):
context.behave_driver = behave_webdriver.Chrome()
def after_all(context):
# cleanup after tests run
context.behave_driver.quit()
A continuación debes importar axe-devtools-behave, lo cual puedes hacer en features/steps/axe.py
:
# features/steps/axe.py
from axe_devtools_behave import *
Ahora puedes utilizar axe-devtools-behave en tus archivos de características.
El paquete axe-devtools-behave hace uso de behave-webdriver
, por lo que todos los pasos de esa biblioteca se incorporan y están disponibles para su uso.
Pasos de Cucumber de accesibilidad
Los ejemplos de comprobaciones de accesibilidad que aparecen a continuación utilizan Then the page should be axe clean
, pero todas las comprobaciones funcionan indistintamente con Then the page should be audited for accessibility
.
La diferencia es que should be axe clean
ejecuta axe y falla la prueba si hay violaciones, mientras que should be audited for accessibility
ejecuta axe y guarda los resultados en un axe-reports
directorio. should be audited for accessibility
nunca falla.
Para construir un paso de Cucumber con accesibilidad de axe, comience con el paso base y agregue las cláusulas necesarias. Todas las cláusulas siguientes pueden combinarse; sin embargo, deben aparecer en el orden especificado:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Paso base
Then the page should be axe clean
El paso base es el componente principal del paso Cucumber. Es un paso completo por sí solo y verifica que la página cargada actualmente sea accesible utilizando la configuración predeterminada de axe.a11yCheck (la verificación del documento completo utiliza las reglas predeterminadas).
Cláusula de inclusión
Then the page should be axe clean within "#selector"
La cláusula de inclusión (within "#selector"
) especifica qué elementos comprobar en la página. La cláusula de inclusión debe incluir un selector CSS válido entre comillas dobles. Utilice selectores compuestos para seleccionar múltiples elementos. P.ej. within "#header, .footer"
Consulte parámetro de contexto para obtener información adicional.
Cláusula de exclusión
Then the page should be axe clean excluding "#selector"
La cláusula de exclusión (excluding "#selector"
) especifica qué elementos del documento se deben ignorar. Proporcione un selector CSS válido entre comillas dobles. Utilice selectores compuestos para seleccionar múltiples elementos. P.ej. excluding "#widget, .ad"
Consulte parámetro de contexto para obtener información adicional.
Utilice el punto y coma (;
) o la palabra [missing word] para separar la cláusula de exclusión de la cláusula de inclusión si está presente. but
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"
Accessibility Standard (Tag) cláusula
Then the page should be axe clean according to: tag-name
La cláusula de etiqueta especifica qué estándar (o estándares) de accesibilidad utilizar en la verificación de la página. Especifique los estándares de accesibilidad por nombre (etiqueta). Se pueden especificar múltiples estándares cuando se separan por comas. P.ej. according to: wcag2a, section508
Los nombres de etiquetas aceptables están documentados además de una lista completa de descripciones de reglas que corresponden a cada etiqueta.
Se puede utilizar un punto y coma (;
) para separar la cláusula de etiqueta de la cláusula anterior.
Then the page should be axe clean within "#header"; according to: best-practice
Cláusula de reglas de comprobación
Then the page should be axe clean checking: ruleId
La cláusula checking-rules especifica cualquier regla adicional a ejecutar (además de las etiquetas especificadas o el conjunto de reglas predeterminado). Las reglas se especifican mediante identificadores de reglas separados por comas.
Consulte Descripciones de reglas para obtener una lista de identificaciones de reglas válidas.
Utilice un punto y coma (;
) o la palabra and
[insertar palabra] para separar la cláusula de reglas de verificación de la cláusula anterior.
Then the page should be axe clean according to: wcag2a; checking: color-contrast
Then the page should be axe clean according to: wcag2a and checking: color-contrast
Cláusula de reglas exclusivas
Then the page should be axe clean checking only: ruleId
Esta cláusula no está separada. Al agregar la palabra only
[insertar palabra] a la cláusula de reglas de verificación, puede cambiar el significado del paso. Como se describió anteriormente, la cláusula checking-rules especifica reglas adicionales que se ejecutarán de forma predeterminada. Sólo se comprueban las reglas especificadas si se utiliza la palabra only
[palabra].
Cláusula de reglas de omisión
Then the page should be axe clean skipping: ruleId
La cláusula skipping-rules especifica qué reglas para omitir. Especifique el estándar de accesibilidad a utilizar (a través de la cláusula de etiqueta) mientras ignora una regla particular. Especifique las reglas mediante identificadores de reglas separados por comas.
Consulte Descripciones de reglas para obtener una lista de identificaciones de reglas válidas
Utilice un punto y coma (;
) o la palabra but
para separar la cláusula de reglas de omisión de la cláusula anterior.
Then the page should be axe clean according to: wcag2a; skipping: accesskeys
Then the page should be axe clean according to: wcag2a but skipping: accesskeys
Conjuntos de reglas etiquetados
Acceda a conjuntos de reglas etiquetados a través de una cláusula Cucumber. Esta funcionalidad permite a los desarrolladores especificar un conjunto de reglas (por ejemplo: 508, wcag2, wcag2.1) para auditar la accesibilidad de la página.
El siguiente código demuestra la sintaxis de Cucumber Gherkin necesaria para evaluar un conjunto de reglas específico durante el análisis:
Scenario: Test Page with options
When I visit "http://abcdcomputech.dequecloud.com/"
Then the page should be audited for accessibility within "title" according to ruleset: wcag2.1