Référence de l'API axe-devtools-behave
Ce package intègre axe DevTools dans Behave, un framework de test Python à la manière de Cucumber.
Usage
Avant de pouvoir utiliser axe-devtools-behave, vous devez configurer quelques éléments.
Tout d'abord, vous devez configurer l'ouverture et la fermeture d'un navigateur, via 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()
Ensuite, vous devez importer axe-devtools-behave, ce qui peut être fait en procédant ainsi features/steps/axe.py
:
# features/steps/axe.py
from axe_devtools_behave import *
Vous pouvez désormais utiliser axe-devtools-behave dans vos fichiers de fonctionnalités.
Le package axe-devtools-behave utilise behave-webdriver
, donc toutes les étapes de cette bibliothèque sont importées et disponibles pour utilisation.
Étapes d'accessibilité Cucumber
Les exemples de vérifications d'accessibilité ci-dessous utilisent Then the page should be axe clean
, mais toutes les vérifications fonctionnent de manière interchangeable avec Then the page should be audited for accessibility
.
La différence est que should be axe clean
exécute axe et fait échouer le test s'il y a des violations, tandis que should be audited for accessibility
exécute axe et enregistre les résultats dans un axe-reports
répertoire. should be audited for accessibility
n'échoue jamais.
Pour construire une étape d'accessibilité de type Axe Cucumber, commencez par l'étape de base et ajoutez toutes les clauses nécessaires. Toutes les clauses suivantes peuvent être mélangées et appariées ; cependant, elles doivent apparaître dans l'ordre spécifié :
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Étape de base
Then the page should be axe clean
L'étape de base est le composant principal de l'étape Cucumber. Il s'agit d'une étape complète en soi qui vérifie que la page actuellement chargée est accessible en utilisant la configuration par défaut de axe.a11yCheck (la vérification du document entier utilise les règles par défaut).
Clause d'inclusion
Then the page should be axe clean within "#selector"
La clause d'inclusion (within "#selector"
) spécifie les éléments à vérifier sur la page. La clause d'inclusion doit inclure un sélecteur CSS valide entouré de guillemets. Utilisez des sélecteurs composés pour sélectionner plusieurs éléments. Par exemple within "#header, .footer"
Voir paramètre de contexte pour plus d'informations.
Clause d'exclusion
Then the page should be axe clean excluding "#selector"
La clause d'exclusion (excluding "#selector"
) spécifie les éléments du document à ignorer. Fournissez un sélecteur CSS valide entouré de guillemets doubles. Utilisez des sélecteurs composés pour sélectionner plusieurs éléments. Par exemple excluding "#widget, .ad"
Voir paramètre de contexte pour plus d'informations.
Utilisez le point-virgule (;
) ou le mot 'et' but
pour séparer la clause d'exclusion de la clause d'inclusion si elle est présente.
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) clause
Then the page should be axe clean according to: tag-name
La clause d'étiquette spécifie la ou les normes d'accessibilité à utiliser dans la vérification de la page. Spécifiez les normes d'accessibilité par nom (Étiquette). Plusieurs normes peuvent être spécifiées en les séparant par des virgules. Par exemple according to: wcag2a, section508
Les noms de balises acceptables sont documentés en plus d'une liste complète des descriptions de règles qui correspondent à chaque balise.
Un point-virgule (;
) peut être utilisé pour séparer la clause de balise de la clause précédente.
Then the page should be axe clean within "#header"; according to: best-practice
Clause de vérification des règles
Then the page should be axe clean checking: ruleId
La clause de vérification des règles spécifie * toutes les règles* supplémentaires à exécuter (en plus des balises spécifiées ou de l'ensemble de règles par défaut). Les règles sont spécifiées par des ID de règle séparés par des virgules.
Consultez Descriptions des règles pour obtenir une liste des identifiants de règles valides.
Utilisez un point-virgule (;
) ou le mot and
[missing word] pour séparer la clause de vérification des règles de la clause précédente.
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
Clause de règles exclusives
Then the page should be axe clean checking only: ruleId
Cette clause n’est pas distincte. En ajoutant le mot only
[missing word]à la clause de vérification des règles, vous pouvez modifier la signification de l'étape. Comme décrit précédemment, la clause checking-rules spécifie des règles supplémentaires à exécuter par défaut. Seules les règles spécifiées sont vérifiées si le mot only
est utilisé.
Clause relative aux règles ignorées
Then the page should be axe clean skipping: ruleId
La clause skipping-rules spécifie les règles à ignorer. Spécifiez la norme d'accessibilité à utiliser (via la clause de balise) tout en ignorant une règle particulière. Spécifiez les ID de règle, séparés par des virgules.
Voir Descriptions des règles pour une liste des identifiants de règles valides
Utilisez un point-virgule (;
) ou le mot but
pour séparer la clause des règles de saut de la clause précédente.
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
Ensembles de règles étiquetés
Accédez aux ensembles de règles balisés via une clause Cucumber. Cette fonctionnalité permet aux développeurs de spécifier un ensemble de règles (par exemple : 508, wcag2, wcag2.1) pour auditer l'accessibilité des pages.
Le code suivant illustre la syntaxe Cucumber Gherkin requise pour évaluer un ensemble de règles spécifique lors de l'analyse :
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