Referencia de API de axe-devtools-behave
Referencia de la API para el paquete axe-devtools-behave para pruebas en Python basadas en Behave
Este paquete integra Axe DevTools en Behave, un framework de pruebas en Python similar a Cucumber.
Uso
Antes de poder usar axe-devtools-behave, debes configurar algunas cosas.
Primero que nada, debes configurar la apertura y 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()Luego debes importar axe-devtools-behave, lo cual se puede hacer en features/steps/axe.py:
# features/steps/axe.py
from axe_devtools_behave import *Ahora puedes usar 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 están disponibles para su uso.
Pasos de accesibilidad en Cucumber
Los ejemplos de verificaciones de accesibilidad a continuación usan Then the page should be axe clean, pero todas las verificaciones 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 directorio axe-reports. should be audited for accessibility nunca falla.
Para construir un paso de Cucumber de accesibilidad de axe, comienza con el paso base e incluye cualquier cláusula necesaria. Todas las cláusulas siguientes pueden mezclarse y 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 cleanEl paso base es el componente principal del paso de 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 de todo el documento usa 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 verificar en la página. La cláusula de inclusión debe incluir un selector CSS válido rodeado de comillas dobles. Usa selectores compuestos para seleccionar múltiples elementos. Por ejemplo, within "#header, .footer"
Consulta 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 ignorar. Proporciona un selector CSS válido rodeado de comillas dobles. Usa selectores compuestos para seleccionar múltiples elementos. Por ejemplo, excluding "#widget, .ad"
Consulta parámetro de contexto para obtener información adicional.
Usa el punto y coma (;) o la palabra but para separar la cláusula de exclusión de la cláusula de inclusión si está presente.
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"Cláusula de Estándar de Accesibilidad (Etiqueta)
Then the page should be axe clean according to: tag-nameLa cláusula de etiqueta especifica qué estándar de accesibilidad (o estándares) usar en la verificación de la página. Especifica los estándares de accesibilidad por nombre (etiqueta). Se pueden especificar múltiples estándares separados por comas. Por ejemplo, according to: wcag2a, section508
nombres de etiquetas están documentados aceptable además de un lista completa de descripciones de reglas que corresponda a cada etiqueta.
Se puede usar 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-practiceCláusula de Reglas de Verificación
Then the page should be axe clean checking: ruleIdLa cláusula de reglas de verificación especifica cualquier regla adicional para ejecutar (además de las etiquetas especificadas o el conjunto de reglas predeterminado). Las reglas se especifican por IDs de regla separados por comas.
Consulta Descripciones de Reglas para obtener una lista de IDs de reglas válidos.
Usa un punto y coma (;) o la palabra and 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-contrastCláusula de Reglas Exclusivas
Then the page should be axe clean checking only: ruleIdEsta cláusula no es independiente. Al añadir la palabra only a la cláusula de reglas de verificación, puedes cambiar el significado del paso. Como se describió anteriormente, la cláusula de reglas de verificación especifica reglas adicionales para ejecutar por defecto. Si se usa la palabra only, solo se verifican las reglas especificadas.
Cláusula de Reglas de Omisión
Then the page should be axe clean skipping: ruleIdLa cláusula de reglas de omisión especifica qué reglas omitir. Especifica el estándar de accesibilidad a utilizar (mediante la cláusula de etiqueta) mientras se ignora una regla particular. Especifica reglas por IDs de regla separados por comas.
Consulta Descripciones de Reglas para obtener una lista de IDs de reglas válidos
Usa 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: accesskeysConjuntos de reglas etiquetadas
Accede a conjuntos de reglas etiquetadas mediante una cláusula de Cucumber. Esta funcionalidad permite a los desarrolladores especificar un conjunto de reglas (Ej: 508, wcag2, wcag2.1) para auditar la accesibilidad de la página.
El siguiente código demuestra la sintaxis de Cucumber Gherkin requerida 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