Présentation de l'API Python
Présentation d'Axe DevTools pour Web pour Python, y compris les packages disponibles et les intégrations des frameworks de test
Axe DevTools Python comprend :
- axe-core version 4
- Prise en charge de Python 3 (ne prend pas en charge Python 2)
- configurations de test basées sur unittest, robot framework, behave, ainsi que tout autre framework utilisant des
assert
Les analyses sont exécutées par défaut selon le niveau AA de la WCAG 2.1, avec les règles de bonnes pratiques et expérimentales désactivées. Consultez Personnalisation des règles pour modifier l'ensemble de règles ou activer les bonnes pratiques.
Prérequis
Axe DevTools nécessite une liaison Selenium WebDriver pour un navigateur de votre choix. Pour utiliser Axe DevTools, vous devez d'abord installer et configurer Selenium WebDriver.
Description
Axe DevTools est composé de plusieurs parties. Le package principal est axe-devtools-api, qui fournit la logique pour configurer et exécuter axe. axe-devtools-selenium est utilisé pour permettre à axe-devtools-api de communiquer réellement avec les navigateurs.
Il existe trois intégrations avec des frameworks de test.
axe-devtools-unittest est une bibliothèque d'assertions légère pour unittest qui repose sur axe-devtools-api. Lorsque vous utilisez cette intégration, vous devez déclarer axe-devtools-api comme une dépendance et l'utiliser directement.
axe-devtools-robot intègre Axe DevTools avec le Robot Framework. axe-devtools-api et axe-devtools-selenium sont automatiquement inclus en tant que dépendances. Cependant, vous n'interagirez avec aucun des deux. L'intégration utilisera plutôt votre fichier .robot pour faire fonctionner axe.
axe-devtools-behave intègre Axe DevTools avec behave, un framework de test semblable à cucumber. axe-devtools-api et axe-devtools-selenium sont automatiquement inclus en tant que dépendances. Cependant, vous n'interagirez avec aucun des deux. L'intégration utilisera plutôt votre fichier .feature pour faire fonctionner axe.
Éléments personnalisés et ElementInternals
À partir de Axe DevTools Python 4.13.0, les analyses lisent les sémantiques ARIA que les composants web déclarent en JavaScript via ElementInternals, plutôt que seulement les attributs role et aria-* présents dans le balisage. Aucune configuration n'est requise. Les sémantiques dans le DOM restent prioritaires : un attribut role ou aria-* explicite sur l'élément remplace la valeur de ElementInternals.
Vos composants doivent publier leurs internes pour que cela prenne effet, et un composant qui les stocke dans un champ de classe privée ne peut pas être lu. Voir Tester des éléments personnalisés qui utilisent ElementInternals.
