Cucumber-tests schrijven

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Toegankelijkheidstests schrijven met Cucumber en Axe DevTools voor Web voor Java

Not for use with personal data

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 clean
This step will cause test suite failures if accessibility violations are found
Then the page should be audited for accessibility
This 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-practice

Extra 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-contrast
Then 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-contrast

Alleen 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-contrast

Regels 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-contrast
Then 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-contrast

Regelset 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.1

Gebruik 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.