Cucumber-tests schrijven
Toegankelijkheidstests schrijven met Cucumber en Axe DevTools voor Web voor Java
Cucumber gebruiken met Axe DevTools
Vereisten
Om toegankelijkheidstests te schrijven en resultaten te produceren, moet je al een testbestand met Axe DevTools hebben aangemaakt en je keuze van Selenium WebDriver vooraf geïmporteerd en geïnitialiseerd. Als je dit nog niet hebt gedaan, lees deze handleiding voor instructies.
Configuratie
Voeg eerst Axe DevTools toe aan je configuratie
public class AppConfiguration {
@Bean
public static AxeWorld axeWorld() {
return new AxeWorld();
}
}Voeg nu de vereiste stappen toe voor het gebruik van Axe DevTools
public class StepDefinitions {
private AxeWorld axeWorld;
public StepDefinitions(AxeWorld axeWorld) {
this.axeWorld = axeWorld;
}
private WebDriver webDriver;
@Before
public void setup() throws IOException {
webDriver = new ChromeDriver();
axeWorld.setPage(new AxeDriver(webDriver));
}
@After
public void tearDown() throws Exception {
webDriver.quit();
}
@When("^I visit \"([^\"]*)\"$")
public void iVisit(String url) throws Throwable {
webDriver.get(url);
}
}Tests schrijven
Voordat je een pagina kunt testen, moet je er toegang toe hebben. De eerste stap is om Selenium WebDriver te initiëren en een pagina te openen
WebDriver webDriver = new ChromeDriver();
webDriver.get("'https://broken-workshop.dequelabs.com'");Vervolgens kun je een Axe DevTools-scan driver object maken en de WebDriver doorgeven
AxeDriver axeDriver = new AxeDriver(webDriver);Voeg tenslotte de axeDriver toe aan je stapsdefinities
// Inject AxeWorld into your step definitions.
public StepDefinitions(AxeWorld axeWorld) {
this.axeWorld = axeWorld;
}
// Provide the page to the Axe World
axeWorld.setPage(new axeDriver(webDriver));Je kunt dan de pagina testen op toegankelijkheid. Op dit moment ondersteunt Axe DevTools Pico en Spring testing via Cucumber.
Gebruik
Toegankelijkheid Cucumber Stappen
De voorbeeldtoegankelijkheidscontroles hieronder gebruiken Then the page should be axe clean, maar alle controles werken verwisselbaar met Then the page should be audited for accessibility. Het verschil tussen deze twee is of de test faalt bij toegankelijkheidsschendingen met Then the page should be axe clean, tegenover niet falen met Then the page should be audited for accessibility.
Om een axe toegankelijkheid Cucumber stap te construeren, begin met de basisstap en voeg eventuele nodige clausules toe. Alle volgende clausules kunnen gecombineerd en afgestemd worden; ze moeten echter verschijnen in de aangegeven volgorde:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]Basisstap
De basisstap is het kernelement van de Cucumber-stap. Het is een complete stap op zich en verifieert dat de momenteel geladen pagina toegankelijk is. Het voert een audit uit op de toegankelijkheid van je pagina. De audit logt toegankelijkheidsproblemen naar target/axe-report/accessibility-check.log en maakt JSON-uitvoer van de resultaten bij target/axe-report/accessibility-check.json.
Then the page should be axe cleanThis step will cause test suite failures if accessibility violations are foundThen the page should be audited for accessibilityThis step will require handling of violations outside of test suite failures, as this step does not trigger the suite to fail if violations are found.Afbakening
Axe DevTools maakt het mogelijk om toegankelijkheidsscans op een inclusieve en exclusieve manier af te bakenen. Bovendien kunnen deze afbakeningen binnen elkaar werken om complexe enclaves en exclaves van afbakening te creëren. Deze afbakeningen werken op basis van CSS-selectors.
Insluitingsclausule
De insluitingsclausule within "#selector" specificeert welke elementen op de pagina gecontroleerd moeten worden. Alleen elementen binnen het geselecteerde bereik worden gescand. De insluitingsclausule moet een geldige CSS-selector bevatten, omsloten door dubbele aanhalingstekens. Gebruik samengestelde selectors om meerdere elementen te selecteren. Bijv. within "#header, .footer"
Then the page should be axe clean within "#selector"Uitsluitingsclausule
De uitsluitingsclausule excluding "#selector" specificeert welke elementen genegeerd moeten worden. Geen enkel element binnen het geselecteerde bereik zal worden gescand. De uitsluitingsclausule moet een geldige CSS-selector bevatten, omsloten door dubbele aanhalingstekens. Gebruik samengestelde selectors om meerdere elementen te selecteren. Bijv. excluding "#widget, .ad"
Then the page should be axe clean excluding "#selector"Insluiting en uitsluiting combineren
Om insluitings- en uitsluitingsclausules te combineren, gebruik de puntkomma (;) of het woord maar om ze te scheiden.
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"Regelconfiguratie
Er zijn een paar manieren om je standaardregelconfiguratie te veranderen met behulp van de Cucumber API. Je kunt regels selecteren op basis van groepen door gebruik te maken van tags, of regels individueel selecteren op basis van hun regel-ID.
Regel Tag Clausule
De tag-clausule specificeert welke toegankelijkheidsstandaard (of standaarden) gebruikt moeten worden in de paginacontrole. Specificeer de toegankelijkheidsstandaarden bij naam (tag). Meerdere standaarden kunnen worden gespecificeerd wanneer gescheiden door komma's. Bijv. according to: wcag2a, section508
Alle tagnamen zijn gedocumenteerd naast een volledige lijst met regelbeschrijvingen die overeenkomen met elke tag.
Then the page should be axe clean according to: best-practiceExtra Regels Controleren Clausule
Deze clausule stelt je in staat om extra regels toe te voegen aan je bestaande regels. Je kunt een enkele regel specificeren via regel-ID, of een lijst van regels gescheiden door komma's. Zie de regelsdocumentatie voor een lijst van de regels en hun regel-ID's. Gebruik een puntkomma (;) of het woord and om de controleer-regelsclausule van eventuele voorafgaande clausule(s) te scheiden.
Then the page should be axe clean checking: color-contrastThen 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-contrastAlleen Gespecificeerde Regels Controleren Clausule
Door het toevoegen van het woord only aan de controleer-regelsclausule, kun je de betekenis van de stap veranderen. Zoals eerder beschreven, specificeert de controleer-regelsclausule extra regels die moeten worden uitgevoerd. Alleen gespecificeerde regels worden gecontroleerd als het woord only wordt gebruikt. Zie de regelsdocumentatie voor een lijst van de regels en hun regel-ID's. Gebruik een puntkomma (;) of het woord and om de controleer-regelsclausule van eventuele voorafgaande clausule(s) te scheiden.
Then the page should be axe clean checking only: color-contrastRegels Overslaan Clausule
De regels-overslaan-clausule specificeert welke regels moeten worden overgeslagen vanuit de bestaande regelconfiguratie. Over te slaan regels worden gespecificeerd door komma-gescheiden regel-ID's. Zie de regelsdocumentatie voor een lijst van de regels en hun regel-ID's. Gebruik een puntkomma (;) of het woord and om de controleer-regelsclausule van eventuele voorafgaande clausule(s) te scheiden.
Then the page should be axe clean skipping: color-contrastThen the page should be axe clean according to: wcag2a; skipping: color-contrast
Then the page should be axe clean according to: wcag2a but skipping: color-contrastRegelset Selectie Clausule
Toegankelijke getagde regelsets in de axeDriver via een Cucumber-clausule. Deze functionaliteit stelt je in staat om een regelset (bijv. 508, wcag2, wcag2.1) te specificeren om de toegankelijkheid van de pagina te controleren.
Then the page should be axe clean according to ruleset: wcag2.1Gebruik Service
Krijg inzicht in de gebruikstrends van Axe DevTools binnen je organisatie
Standaard is de gebruiksservice uitgeschakeld en is de standaard-url https://usage.deque.com.
Omgevingsvariabelen
Met deze omgevingsvariabelen kunt u de verbruiksdienst configureren en de eigenschappen van gerapporteerde gebeurtenissen wijzigen.
| Naam | Type | Kan Override | Beschrijving |
|---|---|---|---|
AXE_DISTINCT_ID |
String | — | Een UUID-identificator die hetzelfde blijft voor de ingelogde gebruiker (tenzij deze wordt opnieuw gegenereerd) |
AXE_METRICS_URL |
String | — | De URL van het REST-gebruikseindpunt |
AXE_TRACK_USAGE |
Boolean | — | Schakelt het rapporteren van gebruiksservices in (standaard is false) |
AXE_APPLICATION |
String | false | De applicatie die werd gebruikt om toegankelijkheidsfouten te controleren |
AXE_DEV_INSTANCE |
Boolean | true | Geeft aan of dit evenement afkomstig is van acties van een softwareontwikkelaar. Nuttig voor het markeren en later verwijderen van evenementen die tijdens ontwikkeling of testen zijn geregistreerd. |
AXE_DEPARTMENT |
String | true | De afdeling van de gebruiker binnen de organisatie |
AXE_KEYCLOAK_ID |
String | false | De Keycloak-ID van de gebruiker |
AXE_LOGGED_IN |
Boolean | false | Registreert of de gebruiker is ingelogd op de toepassing onder test |
AXE_ORGANIZATION |
String | true | De organisatie van de gebruiker |
AXE_SESSION_ID |
String | false | Een UUID die de sessie van de gebruiker identificeert |
AXE_USER_ID |
String | false | De identiteit van een specifieke gebruiker, zoals naam of inlog-ID |
AXE_USER_JOB_ROLE |
String | false | De functie van de gebruiker |
AXE_USER_STATUS |
String | false | Statusinformatie die u aan de gebruiker wilt koppelen |
Volgende Stappen
Voor verder gebruik van uw Axe DevTools-scanresultaten, zoals rapportage, raadpleeg de Axe DevTools Java Selenium pakket documentatie
Problemen Oplossen
Als u problemen ondervindt bij het opzetten van uw toegankelijkheidstests, neem dan direct contact op met uw Deque-vertegenwoordiger, bereik ons via onze supportdesk, of stuur ons een e-mail. We helpen u graag op weg met uw inspanningen voor toegankelijkheidstesten.
