AxeWatcherOptions Klasse
Configureer Axe Watcher voor toegankelijkheidstesten in Selenium- en Playwright-Javatests met aanpasbare opties
De AxeWatcherOptions-klasse biedt configuratieopties voor de Axe Watcher Selenium- en Playwright-Java-integraties. Deze klasse stelt je in staat om aan te passen hoe Axe Watcher toegankelijkheidstests uitvoert tijdens geautomatiseerde browsertests, inclusief serververbindingdetails, testuitvoeringsgedrag en toegankelijkheidsnormen.
Constructor
AxeWatcherOptions()
Creëert een nieuw exemplaar van AxeWatcherOptions met standaardinstellingen. De standaardwaarden zijn:
serverUrl:https://axe.deque.comautoAnalyze:truegit:true
AxeWatcherOptions options = new AxeWatcherOptions();Methoden
setApiKey(String apiKey)
Stelt de API-sleutel in om te verifiëren met Axe Developer Hub. Dit is vereist om Axe Watcher te gebruiken.
Parameters:
apiKey- Jouw Axe Developer Hub API-sleutel
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("your-api-key-here");setProjectId(String projectId)
Parameters:
projectId- Het project-ID van het project om toegankelijkheidsresultaten te ontvangen
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("your-project-ID-here"); // a uuid identifying the projectsetServerUrl(String serverUrl)
Stelt de server-URL in om toegankelijkheidsresultaten naar te sturen. Standaard is https://axe.deque.com.
Parameters:
serverUrl- URL van de server om toegankelijkheidsresultaten naar te sturen
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setServerUrl("https://custom.axe-instance.com");setBuildId(String buildId)
Stelt het build-ID in voor parallelle testuitvoerders. Wanneer niet null, maakt dit het mogelijk voor parallelle testuitvoerders om resultaten te genereren die verschijnen als een enkele testuitvoering in Axe Developer Hub.
Parameters:
buildId- Build-ID om resultaten onder te aggregeren, meestal een CI/CD build-ID
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
// Using a CI build ID from an environment variable
options.setBuildId(System.getenv("GITHUB_RUN_ID"));setAutoAnalyze(boolean autoAnalyze)
Stelt in of de te testen pagina automatisch moet worden geanalyseerd. Standaard is true.
Parameters:
autoAnalyze- Of de te testen pagina automatisch moet worden geanalyseerd
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable automatic analysis for manual control
options.setAutoAnalyze(false);setRunContext(AxeRunContext runContext)
Stelt de context van de te testen pagina in om de reikwijdte van wat wordt geanalyseerd te beperken of bepaalde elementen uit te sluiten van analyse.
Parameters:
runContext- Uitvoeringscontext voor axe-core analyse
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
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)
Stelt extra opties in voor axe-core analyse, zoals welke regels moeten worden uitgevoerd of uitgeschakeld.
Parameters:
runOptions- Uitvoeringsopties voor axe-core analyse
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
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)
Stelt URL-patronen in om van analyse uit te sluiten. Maakt gebruik van de Minimatch-bibliotheek om URL's te matchen.
Parameters:
excludeUrlPatterns- URL-patronen om van analyse uit te sluiten
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
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)
Stelt de origins in waarvan de cross-origin <iframe> inhoud wordt geanalyseerd. Vereist Watcher 4.6.0 of later.
Standaard worden alleen frames van dezelfde oorsprong geanalyseerd en worden toegankelijkheidsproblemen binnen een cross-origin frame volledig uit je resultaten weggelaten. Roep deze methode aan om je op te geven voor de origins die je noemt. Sluit niet de oorsprong van je eigen applicatie in, deze is altijd toegestaan.
Elk item moet een origin zijn en niets anders: een schema (http of https), een host en een optionele poort. Een schuine streep aan het einde en een standaardpoort (:80 voor http, :443 voor https) worden verwijderd, de host wordt in kleine letters weergegeven en duplicaten worden verwijderd. Jokertekens worden niet ondersteund, dus elke origin moet expliciet worden genoemd. Een domein met tekens buiten het Engelse alfabet moet in punycode worden gegeven (de equivalente spelling beginnend met xn-- die browsers intern gebruiken).
Zie Analyseer Cross-Origin iframes voor de implicaties voor vertrouwen, het effect op hoe lang de analyse duurt en de interactie met automatische analyse.
Parameters:
allowedOrigins- Origins waarvan cross-origin iframes geanalyseerd moeten worden
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Gooit:
IllegalArgumentException- Als een item geen kalehttpofhttpsorigin is, een jokerteken bevat, een pad, query, fragment of inloggegevens bevat, of een domein gebruikt met tekens buiten het Engelse alfabet. Items worden afgewezen in plaats van genegeerd, omdat een bijna fout ervoor zou zorgen dat het frame niet wordt geanalyseerd terwijl de testrun toch succes rapporteert.
Voorbeeld:
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)
Stelt in of Watcher Git-informatie verzamelt voor de huidige testuitvoering. Standaard ingesteld op true. Stel in op false wanneer u werkt in omgevingen zonder Git, of wanneer Git-gegevensverzameling niet nodig is.
Parameters:
git- Of Git-informatie verzameld moet worden
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable Git info collection
options.setGit(false);setGitInfo(AxeWatcherGitInfo gitInfo)
Stelt expliciete Git-metadata in voor de huidige testuitvoering, waarmee automatische Git-detectie wordt omzeild. Gebruik dit wanneer uw tests in een repository draaien die gescheiden is van de te testen repository, of in CI-omgevingen waar Git-autodetectie onbetrouwbaar is (bijvoorbeeld ondiepe klonen of detached HEAD state).
Wanneer een niet-nul AxeWatcherGitInfo is ingesteld, heeft dit voorrang boven setGit(boolean) — de verstrekte metadata wordt verzonden zelfs als setGit(false) eerder is aangeroepen. Het doorgeven van null wist eerder ingestelde metadata en herstelt het gedrag dat wordt gecontroleerd door setGit(boolean).
Zie Git Metadata verstrekken en AxeWatcherGitInfo voor meer informatie.
Parameters:
gitInfo- Expliciete Git-metadata om te gebruiken. Geefnulldoor om eerder ingestelde metadata te wissen en terug te keren naar autodetectiegedrag.
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
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)
Stelt configuratie-overschrijvingen in op basis van de globale configuratie-instellingen van het Axe Account van uw organisatie.
Parameters:
configurationOverrides- Configuratie-overschrijvingen
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
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)
Stelt in of er een screenshot van de pagina wordt gemaakt wanneer er overtredingen worden gevonden.
Parameters:
takeScreenshots- Of screenshots moeten worden gemaakt wanneer er overtredingen worden gevonden (standaard:false)
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);setScreenshotDir(String screenshotDir)
Stelt de directory in waar screenshots lokaal worden opgeslagen, naast het uploaden naar Axe Developer Hub. Heeft geen effect tenzij setTakeScreenshots(true) ook is aangeroepen.
Wanneer ingesteld, worden screenshots geschreven naar {screenshotDir}/YYYYMMDDTHHmmssSSS-{screenshot_id}.png. Relatieve paden worden opgelost ten opzichte van de JVM-werkmap. Als het maken van de directory of het schrijven van bestanden mislukt, wordt er een waarschuwing gelogd en gaat de testsuite verder.
Parameters:
screenshotDir- Directory om screenshots naar op te slaan. Geefnullof een lege string door om lokaal opslaan uit te schakelen.
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions()
.setTakeScreenshots(true)
.setScreenshotDir("./axe-screenshots");setElementInternals(boolean elementInternals)
Schakelt ElementInternals-ondersteuning in voor aanpassingselementen. Wanneer ingeschakeld, verzamelt Axe Watcher ARIA-rollen en -eigenschappen die zijn ingesteld via de ElementInternals API, waardoor het aantal foutieve positieven op pagina's die aanpassingselementen gebruiken met attachInternals() wordt verminderd. Vereist axe-core versie 4.12.0 of later.
Parameters:
elementInternals- Of ElementInternals-ondersteuning moet worden ingeschakeld (standaard:false)
Retourneert:
AxeWatcherOptions- De huidige instantie voor method chaining
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions()
.setElementInternals(true);getApiKey()
Haalt de huidige API-sleutel op.
Retourneert:
String- De huidige API-sleutel
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("my-api-key");
String apiKey = options.getApiKey(); // Returns "my-api-key"getProjectId()
Haalt de huidige project-ID op. De project-ID identificeert het project dat de toegankelijkheidsresultaten van Axe Watcher ontvangt.
Retourneert:
String- De huidige project-ID
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("my-project-ID"); // should be a uuid identifying the project
String projectId = options.getProjectId(); // Returns the project IDgetServerUrl()
Haalt de huidige server-URL op.
Retourneert:
String- De huidige server-URL
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
String serverUrl = options.getServerUrl(); // Returns default "https://axe.deque.com"getBuildId()
Haalt de huidige build-ID op.
Retourneert:
String- De huidige build-ID
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setBuildId("build-123");
String buildId = options.getBuildId(); // Returns "build-123"getAutoAnalyze()
Haalt op of automatische analyse is ingeschakeld.
Retourneert:
boolean- Of automatische analyse is ingeschakeld
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean autoAnalyze = options.getAutoAnalyze(); // Returns true (default)getRunContext()
Haalt de huidige uitvoeringscontext op.
Retourneert:
AxeRunContext- De huidige uitvoeringscontext
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunContext context = new AxeRunContext();
options.setRunContext(context);
AxeRunContext currentContext = options.getRunContext();getRunOptions()
Haalt de huidige uitvoeringsopties op.
Retourneert:
AxeRunOptions- De huidige uitvoeringsopties
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunOptions runOptions = new AxeRunOptions();
options.setRunOptions(runOptions);
AxeRunOptions currentOptions = options.getRunOptions();getExcludeUrlPatterns()
Haalt de huidige URL-uitsluitingspatronen op.
Retourneert:
String[]- De huidige URL-uitsluitingspatronen
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {"https://example.com/login*"});
String[] patterns = options.getExcludeUrlPatterns();getAllowedOrigins()
Haalt de origins op waarvan de cross-origin iframes worden geanalyseerd. Geeft de genormaliseerde waarden terug, die kunnen verschillen van wat je aan setAllowedOrigins() hebt doorgegeven: een schuine streep aan het einde en een standaardpoort worden verwijderd, de host wordt in kleine letters weergegeven en duplicaten worden verwijderd.
Retourneert:
String[]- De huidige toegestane origins, ofnullals er geen zijn ingesteld
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setAllowedOrigins(new String[] {"https://Pay.example.com:443/"});
String[] origins = options.getAllowedOrigins(); // {"https://pay.example.com"}getGit()
Haalt op of de verzameling van Git-informatie is ingeschakeld.
Retourneert:
boolean-trueals de verzameling van Git-info is ingeschakeld (standaard), onwaar als uitgeschakeld
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean git = options.getGit(); // Returns true (default)getGitInfo()
Haalt de expliciete Git-metadata op die momenteel is geconfigureerd, of null als er geen expliciete metadata is ingesteld.
Retourneert:
AxeWatcherGitInfo- De huidige expliciete Git-metadata, ofnullals er geen is ingesteld
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions()
.setGitInfo(new AxeWatcherGitInfo().setBranch("main"));
AxeWatcherGitInfo gitInfo = options.getGitInfo(); // Returns the configured AxeWatcherGitInfogetConfigurationOverrides()
Haalt de huidige configuratie-overschrijvingen op.
Retourneert:
ConfigurationOverrides- De huidige configuratie-overschrijvingen
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
ConfigurationOverrides overrides = new ConfigurationOverrides();
options.setConfigurationOverrides(overrides);
ConfigurationOverrides current = options.getConfigurationOverrides();getTakeScreenshots()
Haalt op of het maken van schermafbeeldingen is ingeschakeld.
Retourneert:
boolean-trueals schermafbeeldingen worden gemaakt wanneer er overtredingen worden gevonden,falseanders
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);
boolean takeScreenshots = options.getTakeScreenshots(); // Returns truegetScreenshotDir()
Haalt de huidige schermafbeelding-directory op, of null als er geen lokale opslagdirectory is ingesteld.
Retourneert:
String- De huidige schermafbeelding-directory, ofnull
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions()
.setScreenshotDir("./screenshots");
String dir = options.getScreenshotDir(); // Returns "./screenshots"getElementInternals()
Bepaalt of ElementInternals-ondersteuning is ingeschakeld.
Retourneert:
boolean-trueindien ElementInternals-ondersteuning is ingeschakeld,falseanders
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean enabled = options.getElementInternals(); // Returns false (default)toJson()
Serialiseert de AxeWatcherOptions instantie naar een JSON-string.
Retourneert:
String- Een JSON-stringweergave van de opties
Gooit:
RuntimeException- AlsconfigurationOverridesenrunOptions.runOnlysamen worden gebruikt (deze zijn wederzijds exclusief)
Voorbeeld:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey("my-api-key")
.setProjectId("my-project-id")
.setServerUrl("https://custom.axe-instance.com");
String json = options.toJson();Configuratiebeperkingen
Bij het configureren van AxeWatcherOptions, houd rekening met de volgende beperkingen:
-
De API-sleutel is vereist:
options.setApiKey("your-api-key"); // Required -
De Project ID is vereist:
options.setProjectId("your-project-ID"); // Required -
Wederzijds exclusieve opties:
Je kunt niet zowel
runOptions.runOnlyalsconfigurationOverrides.accessibilityStandardsamen gebruiken. Als je een specifieke toegankelijkheidsstandaard moet instellen, gebruik danConfigurationOverrideszoals hieronder getoond:// 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"))) ); -
Automatische analyse detecteert geen wijzigingen binnen een iframe:
Met
setAutoAnalyze(true)observeert Watcher alleen de bovenliggende pagina, dus een wijziging binnen een iframe (zowel zelfde oorsprong als cross-origin) laat de pagina er ongewijzigd uitzien en de automatische analyse wordt overgeslagen. Een iframe wordt daarom geanalyseerd vanaf de laatste wijziging aan de bovenliggende pagina. Na interactie binnen een frame, ga je terug naar het bovenliggende frame en roep jeanalyze()expliciet aan, omdat een analyse die je zelf aanvraagt nooit wordt overgeslagen.// 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();Zie Analyseer Cross-Origin iframes voor meer informatie.
