Riferimento API di axe-devtools-behave
Riferimento API per il pacchetto axe-devtools-behave per test Python basati su Behave
Questo pacchetto integra Axe DevTools in Behave, un framework di testing Python simile a Cucumber.
Utilizzo
Prima di poter usare axe-devtools-behave, devi configurare alcune cose.
Prima di tutto, devi configurare l'apertura e la chiusura di un browser, attraverso features/environment.py:
# features/environment.py
import behave_webdriver
def before_all(context):
context.behave_driver = behave_webdriver.Chrome()
def after_all(context):
# cleanup after tests run
context.behave_driver.quit()Successivamente devi importare axe-devtools-behave, cosa che può essere fatta in features/steps/axe.py:
# features/steps/axe.py
from axe_devtools_behave import *Ora puoi utilizzare axe-devtools-behave nei tuoi file di funzionalità.
Il pacchetto axe-devtools-behave utilizza behave-webdriver, quindi tutti i passaggi di quella libreria sono inclusi e disponibili per l'uso.
Passi Cucumber per l'accessibilità
Gli esempi di controllo dell'accessibilità qui sotto utilizzano Then the page should be axe clean, ma tutti i controlli funzionano in modo intercambiabile con Then the page should be audited for accessibility.
La differenza è che should be axe clean esegue axe e fallisce il test in caso di violazioni, mentre should be audited for accessibility esegue axe e salva i risultati in una directory axe-reports. should be audited for accessibility non fallisce mai.
Per costruire un passaggio Cucumber per l'accessibilità con axe, inizia con il passaggio base e aggiungi eventuali clausole necessarie. Tutte le seguenti clausole possono essere mescolate e abbinate; tuttavia, devono apparire nell'ordine specificato:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Passaggio Base
Then the page should be axe cleanIl passaggio base è il componente principale del passaggio Cucumber. È un passaggio completo di per sé e verifica che la pagina attualmente caricata sia accessibile utilizzando la configurazione predefinita di axe.a11yCheck (il controllo dell'intero documento utilizza le regole predefinite).
Clausola di inclusione
Then the page should be axe clean within "#selector"La clausola di inclusione (within "#selector") specifica quali elementi controllare nella pagina. La clausola di inclusione deve includere un Selettore CSS valido racchiuso tra virgolette doppie. Usa selettori composti per selezionare più elementi. Es. within "#header, .footer"
Vedi parametro di contesto per ulteriori informazioni.
Clausola di esclusione
Then the page should be axe clean excluding "#selector"La clausola di esclusione (excluding "#selector") specifica quali elementi del documento ignorare. Fornisci un Selettore CSS valido racchiuso tra virgolette doppie. Usa selettori composti per selezionare più elementi. Es. excluding "#widget, .ad"
Vedi parametro di contesto per ulteriori informazioni.
Usa il punto e virgola (;) o la parola but per separare la clausola di esclusione dalla clausola di inclusione, se presente.
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"Clausola Standard di Accessibilità (Tag)
Then the page should be axe clean according to: tag-nameLa clausola del tag specifica quale standard di accessibilità (o quali standard) utilizzare nel controllo della pagina. Specifica gli standard di accessibilità per nome (tag). Possono essere specificati più standard se separati da una virgola. Es. according to: wcag2a, section508
i nomi dei tag sono documentati accettabili oltre a un elenco completo delle descrizioni delle regole che corrisponde a ciascun tag.
Usa un punto e virgola (;) può essere usato per separare la clausola del tag dalla clausola precedente.
Then the page should be axe clean within "#header"; according to: best-practiceClausola delle Regole di Controllo
Then the page should be axe clean checking: ruleIdLa clausola delle regole di controllo specifica quali ulteriori regole eseguire (oltre ai tag specificati o al set di regole predefinito). Le regole sono specificate tramite ID di regola separati da virgole.
Vedi Descrizioni delle Regole per un elenco di ID di regola validi.
Usa un punto e virgola (;) o la parola and per separare la clausola delle regole di controllo dalla clausola precedente.
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-contrastClausola delle Regole Esclusive
Then the page should be axe clean checking only: ruleIdQuesta clausola non è separata. Aggiungendo la parola only alla clausola delle regole di controllo, puoi cambiare il significato del passaggio. Come precedentemente descritto, la clausola delle regole di controllo specifica regole aggiuntive da eseguire per impostazione predefinita. Vengono controllate solo le regole specificate se viene utilizzata la parola only.
Clausola delle Regole da Saltare
Then the page should be axe clean skipping: ruleIdLa clausola delle regole da saltare specifica quali regole saltare. Specifica lo standard di accessibilità da utilizzare (tramite la clausola del tag) ignorando una particolare regola. Specifica le regole tramite ID delle regole separate da virgole.
Vedi Descrizioni delle Regole per un elenco di ID di regola validi
Usa un punto e virgola (;) o la parola but per separare la clausola delle regole da saltare dalla clausola precedente.
Then the page should be axe clean according to: wcag2a; skipping: accesskeys
Then the page should be axe clean according to: wcag2a but skipping: accesskeysSet di regole etichettate
Accedi ai set di regole etichettate tramite una clausola Cucumber. Questa funzionalità consente agli sviluppatori di specificare un set di regole (ad esempio: 508, wcag2, wcag2.1) per verificare l'accessibilità della pagina.
Il seguente codice dimostra la sintassi Cucumber Gherkin richiesta per valutare un set di regole specifico durante l'analisi:
Scenario: Test Page with options
When I visit "http://abcdcomputech.dequecloud.com/"
Then the page should be audited for accessibility within "title" according to ruleset: wcag2.1