Vue d'ensemble des API Java Watcher
Informations sur les API offertes par Java Watcher et leur utilisation
L'intégration Java Axe Watcher fournit un SDK complet pour ajouter des tests d'accessibilité automatisés aux suites de tests Java Selenium et Playwright. Cette intégration analyse automatiquement les pages web à la recherche de problèmes d'accessibilité et envoie les résultats au Axe Developer Hub pour suivi et analyse.
Composants Principaux
Classes Principales
AxeWatcher - Le point d'entrée principal pour l'intégration Selenium. Cette classe gère la configuration des options du navigateur et l'encapsulation des instances de WebDriver pour permettre les tests d'accessibilité.
AxeWatcherPlaywright - Le point d'entrée principal pour l'intégration Playwright. Gère la configuration de LaunchPersistentContextOptions et l'encapsulation des instances de Page.
AxeWatcherOptions - Classe de configuration qui définit le mode de fonctionnement d'Axe Watcher, incluant les clés API, les URL des serveurs, les IDs de build pour les tests parallèles et divers comportements de test. Utilisée par les intégrations Selenium et Playwright.
AxeWatcherGitInfo - Contient les métadonnées Git explicites pour les exécutions de test où la détection automatique de Git est indisponible ou peu fiable. Transmettez à AxeWatcherOptions.setGitInfo() pour contourner la détection automatique.
ConfigurationOverrides - Permet de remplacer les paramètres globaux de configuration d'accessibilité, y compris les normes d'accessibilité (WCAG 2.1 AA, WCAG 2.2 AA, etc.), les meilleures pratiques et les règles expérimentales.
Intégration du Pilote
AxeWatcherDriver - Interface qui étend le WebDriver standard de Selenium pour offrir un accès aux fonctionnalités de test d'accessibilité via la méthode axeWatcher().
AxeWatcherController - Fournit un contrôle précis sur le moment et la manière dont l'analyse d'accessibilité a lieu dans Selenium, avec des méthodes pour démarrer, arrêter, analyser et purger les résultats de test.
AxeWatcherPlaywrightController - Fournit les mêmes méthodes de contrôle pour Playwright, accessibles via AxeWatcherPage enveloppé.
Classes de Configuration
Options d'Exécution
AxeRunOptions - Contrôle le comportement avancé du moteur axe-core à l'exécution, y compris les configurations de règles et les informations d'ascendance pour les violations.
AxeRunOnly - Limite les règles d'accessibilité exécutées en spécifiant des IDs de règles ou des tags (par exemple, « wcag21aa », « best-practice »).
AxeRunContext - Définit la portée des tests en incluant ou excluant des éléments spécifiques du DOM en utilisant des sélecteurs CSS.
AxeRuleOptions - Active ou désactive des règles d'accessibilité individuelles par ID de règle.
Utilisation
Configuration Basique
// Configure options
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")); // Required. Store in an environment variable for easy updates.
// Create watcher and configure Chrome
AxeWatcher watcher = new AxeWatcher(options);
ChromeOptions chromeOptions = watcher.configure(new ChromeOptions());
ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);
// Wrap driver for accessibility testing
WebDriver driver = watcher.wrapDriver(chromeDriver);
// Access the controller for manual control
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Configuration Avancée
Configuration pour une Instance Cloud Régionale ou Privée
Si votre organisation utilise une instance Axe Developer Hub régionale, privée ou sur site, définissez l'URL du serveur sur l'URL de base de cette instance. Sinon, vous pouvez omettre setServerUrl() et le https://axe.deque.com par défaut est utilisé.
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
.setProjectId(System.getenv("PROJECT_ID"))
.setServerUrl(System.getenv("SERVER_URL")); // e.g., "https://axe-eu.deque.com"Normes d'Accessibilité Personnalisées
ConfigurationOverrides overrides = new ConfigurationOverrides()
.setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA)
.setEnableBestPractices(true)
.setEnableExperimental(false);
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setConfigurationOverrides(overrides);Exécution Sélective des Règles
// Run only specific accessibility tags
AxeRunOnly runOnly = new AxeRunOnly()
.setType("tag")
.setValues(Arrays.asList("wcag21aa", "best-practice"));
AxeRunOptions runOptions = new AxeRunOptions()
.setRunOnly(runOnly)
.setAncestry(true);
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setRunOptions(runOptions);Tests Ciblés
// Include only specific elements
AxeRunContext context = new AxeRunContext()
.setInclude(Arrays.asList("#main-content", ".form-section"))
.setExclude(Arrays.asList("#header", "#footer"));
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setRunContext(context);Contraintes Importantes
- Options Mutuellement Exclusives: Ne peut utiliser
ConfigurationOverrides.accessibilityStandardetAxeRunOptions.runOnlysimultanément - Limitations du Navigateur: Ne prend pas en charge le mode tête-basse complet ou le mode incognito
- Ordre des Méthodes: Doit appeler
configure()avant de créer ChromeDriver, etwrapDriver()après - Vidange des Résultats: Toujours appeler
controller.flush()lors du démontage des tests pour s'assurer que les résultats sont envoyés à Axe Developer Hub - Limitations des Cadres : Les méthodes du contrôleur ne fonctionnent pas dans les iframes ou sur les pages non-HTTP(S)
Cette intégration offre à la fois des modes de test automatiques et manuels, permettant aux équipes d'intégrer sans effort des tests d'accessibilité complets dans les suites de tests Selenium Java existantes avec un minimum de modifications de code.
