AxeWatcherOptions-Klasse
Konfigurieren Sie Axe Watcher für Barrierefreiheitstests in Selenium- und Playwright-Java-Tests mit anpassbaren Optionen
Die AxeWatcherOptions-Klasse bietet Konfigurationsoptionen für die Axe Watcher Selenium- und Playwright-Java-Integrationen. Diese Klasse ermöglicht es Ihnen, anzupassen, wie Axe Watcher während automatisierter Browsertests Barrierefreiheitstests durchführt, einschließlich Serververbindungsdetails, Testausführungsverhalten und Barrierefreiheitsstandards.
Konstruktor
AxeWatcherOptions()
Erstellt eine neue Instanz von AxeWatcherOptions mit Standardeinstellungen. Die Standardwerte sind:
serverUrl:https://axe.deque.comautoAnalyze:truegit:true
AxeWatcherOptions options = new AxeWatcherOptions();Methoden
setApiKey(String apiKey)
Setzt den API-Schlüssel zur Authentifizierung mit dem Axe Developer Hub. Dies ist erforderlich, um Axe Watcher zu verwenden.
Parameter:
apiKey- Ihr API-Schlüssel für Axe Developer Hub
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("your-api-key-here");setProjectId(String projectId)
Parameter:
projectId- Die Projekt-ID des Projekts, das die Barrierefreiheitsresultate erhalten soll
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("your-project-ID-here"); // a uuid identifying the projectsetServerUrl(String serverUrl)
Setzt die Server-URL, um Barrierefreiheitsresultate zu senden. Standardmäßig https://axe.deque.com.
Parameter:
serverUrl- URL des Servers, um die Barrierefreiheitsresultate zu senden
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setServerUrl("https://custom.axe-instance.com");setBuildId(String buildId)
Setzt die Build-ID für parallele Testläufer. Wenn nicht null, ermöglicht dies parallel Testläufern, Ergebnisse zu generieren, die als einzelner Testrun im Axe Developer Hub erscheinen.
Parameter:
buildId- Build-ID, unter der Ergebnisse zusammengefasst werden, typischerweise eine CI/CD-Build-ID
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Using a CI build ID from an environment variable
options.setBuildId(System.getenv("GITHUB_RUN_ID"));setAutoAnalyze(boolean autoAnalyze)
Legt fest, ob die zu testende Seite automatisch analysiert werden soll. Standardmäßig true.
Parameter:
autoAnalyze- Ob die zu testende Seite automatisch analysiert werden soll
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable automatic analysis for manual control
options.setAutoAnalyze(false);setRunContext(AxeRunContext runContext)
Legt den Kontext der zu testenden Seite fest, um entweder den Umfang dessen zu begrenzen, was analysiert wird, oder bestimmte Elemente von der Analyse auszuschließen.
Parameter:
runContext- Ausführungskontext für die axe-core-Analyse
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Only analyze main content and exclude navigation
AxeRunContext context = new AxeRunContext()
.setInclude(Arrays.asList("#main-content"))
.setExclude(Arrays.asList("#navigation"));
options.setRunContext(context);setRunOptions(AxeRunOptions runOptions)
Legt zusätzliche Optionen für die axe-core-Analyse fest, wie zum Beispiel welche Regeln ausgeführt oder deaktiviert werden sollen.
Parameter:
runOptions- Ausführungsoptionen für die axe-core-Analyse
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable the color contrast rule and focus on WCAG 2.1 AA
Map<String, AxeRuleOptions> rules = new HashMap<>();
rules.put("color-contrast", new AxeRuleOptions().setEnabled(false));
AxeRunOnly runOnly = new AxeRunOnly()
.setType("tag")
.setValues(Arrays.asList("wcag21aa"));
AxeRunOptions runOptions = new AxeRunOptions()
.setRules(rules)
.setRunOnly(runOnly);
options.setRunOptions(runOptions);setExcludeUrlPatterns(String[] excludeUrlPatterns)
Setzt URL-Muster, die von der Analyse ausgeschlossen werden sollen. Verwendet die Minimatch-Bibliothek zum Vergleichen von URLs.
Parameter:
excludeUrlPatterns- URL-Muster, die von der Analyse ausgeschlossen werden
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Exclude login pages and admin dashboard
options.setExcludeUrlPatterns(new String[] {
"https://example.com/login*",
"https://example.com/admin/*"
});setAllowedOrigins(String[] allowedOrigins)
Legt die Ursprünge fest, deren Cross-Origin-<iframe>-Inhalte analysiert werden. Erfordert Watcher 4.6.0 oder höher.
Standardmäßig werden nur gleich-originäre Frames analysiert, und Zugänglichkeitsprobleme innerhalb eines Cross-Origin-Frames werden in Ihren Ergebnissen vollständig ausgelassen. Rufen Sie diese Methode auf, um die von Ihnen benannten Ursprünge einzubeziehen. Schließen Sie nicht den Ursprung Ihrer eigenen Anwendung ein, der immer erlaubt ist.
Jeder Eintrag muss ein Ursprung und nichts anderes sein: ein Schema (http oder https), ein Host und ein optionaler Port. Ein abschließender Schrägstrich und ein Standardport (:80 für http, :443 für https) werden entfernt, der Host wird in Kleinbuchstaben umgewandelt und Duplikate werden verworfen. Platzhalter werden nicht unterstützt, daher muss jeder Ursprung ausdrücklich benannt werden. Eine Domain, die Zeichen außerhalb des englischen Alphabets enthält, muss in ihrer Punycode-Form angegeben werden (die äquivalente Schreibweise, die mit xn-- beginnt und die Browser intern verwenden).
Siehe Analysiere Cross-Origin-iframes für die Vertrauensimplikationen, die Auswirkungen auf die Dauer der Analyse und die Interaktion mit der automatischen Analyse.
Parameter:
allowedOrigins- Ursprünge, deren Cross-Origin-iframes analysiert werden sollen
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Löst aus:
IllegalArgumentException- Wenn ein Eintrag nicht ein reinerhttpoderhttpsUrsprung ist, ein Platzhalter enthält, einen Pfad, eine Abfrage, ein Fragment oder Anmeldedaten enthält oder eine Domain mit Zeichen außerhalb des englischen Alphabets verwendet. Einträge werden verworfen statt ignoriert, da ein Beinahe-Treffer ansonsten den Frame unanalyzed lassen würde, während der Testlauf dennoch als erfolgreich gemeldet wird.
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
.setProjectId(System.getenv("PROJECT_ID"))
.setAllowedOrigins(new String[] {"https://pay.example.com"});setGit(boolean git)
Legt fest, ob der Watcher Git-Informationen für den aktuellen Testlauf sammelt. Standardmäßig true. Setzen Sie auf false, wenn Sie in Umgebungen ohne Git laufen oder wenn keine Git-Datenerfassung benötigt wird.
Parameter:
git- Ob Git-Informationen gesammelt werden sollen
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable Git info collection
options.setGit(false);setGitInfo(AxeWatcherGitInfo gitInfo)
Setzt explizite Git-Metadaten für den aktuellen Testlauf und umgeht die automatische Git-Erkennung. Verwenden Sie dies, wenn Ihre Tests in einem Repository laufen, das von dem zu testenden Repository getrennt ist, oder in CI-Umgebungen, in denen die Git-Auto-Erkennung unzuverlässig ist (zum Beispiel bei flachen Klonen oder im detached HEAD-Zustand).
Wenn ein nicht-nullwertiger AxeWatcherGitInfo gesetzt ist, hat er Vorrang vor setGit(boolean) — die bereitgestellten Metadaten werden gesendet, auch wenn setGit(false) zuvor aufgerufen wurde. Das Übergeben von null löscht alle zuvor gesetzten Metadaten und kehrt zu dem durch setGit(boolean) gesteuerten Verhalten zurück.
Siehe Bereitstellung von Git-Metadaten und AxeWatcherGitInfo für weitere Informationen.
Parameter:
gitInfo- Zu verwendende explizite Git-Metadaten. Übergeben Sienull, um zuvor gesetzte Metadaten zu löschen und zum Auto-Erkennungs-Verhalten zurückzukehren.
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGitInfo(new AxeWatcherGitInfo()
.setCommitSha(System.getenv("GIT_COMMIT"))
.setBranch(System.getenv("GIT_BRANCH"))
.setDefaultBranch("main"));setConfigurationOverrides(ConfigurationOverrides configurationOverrides)
Setzt Konfigurationsüberschreibungen basierend auf den globalen Konfigurationseinstellungen des Axe-Kontos Ihrer Organisation.
Parameter:
configurationOverrides- Konfigurationsüberschreibungen
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
// Override to use WCAG 2.2 AA and enable best practices
ConfigurationOverrides overrides = new ConfigurationOverrides()
.setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA)
.setEnableBestPractices(true);
options.setConfigurationOverrides(overrides);setTakeScreenshots(boolean takeScreenshots)
Legt fest, ob ein Screenshot der Seite aufgenommen wird, wenn Verstöße gefunden werden.
Parameter:
takeScreenshots- Ob Screenshots aufgenommen werden, wenn Verstöße gefunden werden (Standard:false)
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);setScreenshotDir(String screenshotDir)
Legt das Verzeichnis fest, in dem Screenshots lokal gespeichert werden, zusätzlich zum Hochladen in das Axe Developer Hub. Hat keine Wirkung, es sei denn, setTakeScreenshots(true) wird ebenfalls aufgerufen.
Wenn gesetzt, werden Screenshots in {screenshotDir}/YYYYMMDDTHHmmssSSS-{screenshot_id}.png geschrieben. Relative Pfade werden relativ zum Arbeitsverzeichnis des JVM aufgelöst. Wenn die Verzeichniserstellung oder das Schreiben der Dateien fehlschlägt, wird eine Warnung protokolliert und die Testsuite fortgesetzt.
Parameter:
screenshotDir- Verzeichnis, in dem Screenshots gespeichert werden sollen. Übergeben Sienulloder einen leeren String, um das lokale Speichern zu deaktivieren.
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setTakeScreenshots(true)
.setScreenshotDir("./axe-screenshots");setElementInternals(boolean elementInternals)
Aktiviert ElementInternals-Unterstützung für benutzerdefinierte Elemente. Wenn aktiviert, sammelt Axe Watcher ARIA-Rollen und Eigenschaften, die über die ElementInternals-API gesetzt werden, um Fehlalarme auf Seiten zu reduzieren, die benutzerdefinierte Elemente mit attachInternals() verwenden. Erfordert axe-core Version 4.12.0 oder später.
Parameter:
elementInternals- Ob ElementInternals-Unterstützung aktiviert werden soll (Standard:false)
Gibt zurück:
AxeWatcherOptions- Die aktuelle Instanz für Methodenkette
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setElementInternals(true);getApiKey()
Gibt den aktuellen API-Schlüssel zurück.
Gibt zurück:
String- Der aktuelle API-Schlüssel
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("my-api-key");
String apiKey = options.getApiKey(); // Returns "my-api-key"getProjectId()
Ruft die aktuelle Projekt-ID ab. Die Projekt-ID identifiziert das Projekt, das die Axe Watcher-Barrierefreiheitsergebnisse erhält.
Gibt zurück:
String- Die aktuelle Projekt-ID
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("my-project-ID"); // should be a uuid identifying the project
String projectId = options.getProjectId(); // Returns the project IDgetServerUrl()
Ruft die aktuelle Server-URL ab.
Gibt zurück:
String- Die aktuelle Server-URL
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
String serverUrl = options.getServerUrl(); // Returns default "https://axe.deque.com"getBuildId()
Ruft die aktuelle Build-ID ab.
Gibt zurück:
String- Die aktuelle Build-ID
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setBuildId("build-123");
String buildId = options.getBuildId(); // Returns "build-123"getAutoAnalyze()
Ruft ab, ob die automatische Analyse aktiviert ist.
Gibt zurück:
boolean- Ob die automatische Analyse aktiviert ist
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean autoAnalyze = options.getAutoAnalyze(); // Returns true (default)getRunContext()
Ruft den aktuellen Ausführungskontext ab.
Gibt zurück:
AxeRunContext- Der aktuelle Ausführungskontext
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunContext context = new AxeRunContext();
options.setRunContext(context);
AxeRunContext currentContext = options.getRunContext();getRunOptions()
Ruft die aktuellen Laufoptionen ab.
Gibt zurück:
AxeRunOptions- Die aktuellen Laufoptionen
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunOptions runOptions = new AxeRunOptions();
options.setRunOptions(runOptions);
AxeRunOptions currentOptions = options.getRunOptions();getExcludeUrlPatterns()
Ruft die aktuellen auszuschließenden URL-Muster ab.
Gibt zurück:
String[]- Die aktuellen auszuschließenden URL-Muster
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {"https://example.com/login*"});
String[] patterns = options.getExcludeUrlPatterns();getAllowedOrigins()
Ermittelt die Ursprünge, deren Cross-Origin-iframes analysiert werden. Gibt die normalisierten Werte zurück, die von dem abweichen können, was Sie an setAllowedOrigins() übermittelt haben: ein abschließender Schrägstrich und ein Standardport werden entfernt, der Host wird in Kleinschreibung umgewandelt, und Duplikate werden verworfen.
Gibt zurück:
String[]- Die derzeit erlaubten Ursprünge odernull, wenn keine festgelegt sind
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setAllowedOrigins(new String[] {"https://Pay.example.com:443/"});
String[] origins = options.getAllowedOrigins(); // {"https://pay.example.com"}getGit()
Ruft ab, ob die Sammlung von Git-Informationen aktiviert ist.
Gibt zurück:
boolean-true, wenn die Git-Info-Sammlung aktiviert ist (Standard), false wenn deaktiviert
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean git = options.getGit(); // Returns true (default)getGitInfo()
Ruft die aktuell konfigurierte explizite Git-Metadaten ab oder null, wenn keine expliziten Metadaten gesetzt wurden.
Gibt zurück:
AxeWatcherGitInfo- Die aktuellen expliziten Git-Metadaten, odernull, wenn keine gesetzt sind
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setGitInfo(new AxeWatcherGitInfo().setBranch("main"));
AxeWatcherGitInfo gitInfo = options.getGitInfo(); // Returns the configured AxeWatcherGitInfogetConfigurationOverrides()
Ruft die aktuellen Konfigurationsüberschreibungen ab.
Gibt zurück:
ConfigurationOverrides- Die aktuellen Konfigurationsüberschreibungen
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
ConfigurationOverrides overrides = new ConfigurationOverrides();
options.setConfigurationOverrides(overrides);
ConfigurationOverrides current = options.getConfigurationOverrides();getTakeScreenshots()
Ruft ab, ob die Aufnahme von Screenshots aktiviert ist.
Gibt zurück:
boolean-true, wenn bei festgestellten Verstößen Screenshots aufgenommen werden,falseandernfalls
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);
boolean takeScreenshots = options.getTakeScreenshots(); // Returns truegetScreenshotDir()
Ruft das aktuelle Screenshot-Verzeichnis ab, oder null, wenn kein lokales Speicherverzeichnis festgelegt wurde.
Gibt zurück:
String- Das aktuelle Screenshot-Verzeichnis, odernull
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setScreenshotDir("./screenshots");
String dir = options.getScreenshotDir(); // Returns "./screenshots"getElementInternals()
Ermittelt, ob die Unterstützung für ElementInternals aktiviert ist.
Gibt zurück:
boolean-true, wenn die Unterstützung für ElementInternals aktiviert ist,falseandernfalls
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean enabled = options.getElementInternals(); // Returns false (default)toJson()
Serialisiert die AxeWatcherOptions Instanz in einen JSON-String.
Gibt zurück:
String- Eine JSON-String-Darstellung der Optionen
Löst aus:
RuntimeException- WennconfigurationOverridesundrunOptions.runOnlyzusammen verwendet werden (diese schließen sich gegenseitig aus)
Beispiel:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey("my-api-key")
.setProjectId("my-project-id")
.setServerUrl("https://custom.axe-instance.com");
String json = options.toJson();Einschränkungen bei der Konfiguration
Bei der Konfiguration von AxeWatcherOptions beachten Sie die folgenden Einschränkungen:
-
Der API-Schlüssel ist erforderlich:
options.setApiKey("your-api-key"); // Required -
Die Projekt-ID ist erforderlich:
options.setProjectId("your-project-ID"); // Required -
Gegenseitig ausschließende Optionen:
Sie können nicht sowohl
runOptions.runOnlyals auchconfigurationOverrides.accessibilityStandardgemeinsam verwenden. Wenn Sie einen bestimmten Barrierefreiheitsstandard festlegen müssen, verwenden SieConfigurationOverrides, wie unten gezeigt:// Correct: Using ConfigurationOverrides options.setConfigurationOverrides( new ConfigurationOverrides() .setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA) ); // Correct: Using RunOptions.runOnly options.setRunOptions( new AxeRunOptions() .setRunOnly(new AxeRunOnly().setType("tag").setValues(Arrays.asList("wcag22aa"))) ); // Incorrect: Using both together will throw an exception options.setConfigurationOverrides( new ConfigurationOverrides() .setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA) ).setRunOptions( new AxeRunOptions() .setRunOnly(new AxeRunOnly().setType("tag").setValues(Arrays.asList("wcag21aa"))) ); -
Die automatische Analyse erkennt keine Änderungen, die innerhalb eines iframes vorgenommen wurden:
Mit
setAutoAnalyze(true)beobachtet Watcher nur die obere Seite, sodass eine innerhalb eines iframes (gleich-originär oder Cross-Origin) vorgenommene Änderung die Seite unverändert aussehen lässt und die automatische Analyse übersprungen wird. Ein iframe wird daher zum Zeitpunkt der letzten Änderung an der oberen Seite analysiert. Nach der Interaktion innerhalb eines Frames kehren Sie zum oberen Frame zurück und rufenanalyze()explizit auf, da eine von Ihnen selbst angeforderte Analyse niemals übersprungen wird:// The automatic analysis after this interaction is skipped: the top-level page is unchanged driver.switchTo().frame("pay"); driver.findElement(By.id("submit")).click(); // Return to the top-level frame, then analyze the resulting state driver.switchTo().defaultContent(); ((AxeWatcherDriver) driver).axeWatcher().analyze();Siehe Analysiere Cross-Origin-iframes für weitere Informationen.
