Riferimento API axe-devtools-behave
Questo pacchetto integra axe DevTools in Behave, un framework di test Python simile a Cucumber.
Uso
Prima di poter utilizzare axe-devtools-behave, è necessario impostare alcune cose.
Innanzitutto, devi configurare l'apertura e la chiusura del browser tramite 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 puoi fare in questo modo: 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 vengono importati e resi disponibili per l'uso.
Accessibilità Passaggi di Cucumber
Gli esempi di controlli di accessibilità riportati di seguito 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 se ci sono violazioni, mentre should be audited for accessibility
esegue axe e salva i risultati in una axe-reports
directory. should be audited for accessibility
non fallisce mai.
Per costruire uno step Cucumber per l'accessibilità di axe, iniziare con lo step base e aggiungere tutte le 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]
Passo base
Then the page should be axe clean
Il passaggio base è il componente centrale del passaggio Cucumber. Si tratta di un passaggio completo di per sé e verifica che la pagina attualmente caricata sia accessibile utilizzando la configurazione predefinita di axe.a11yCheck (l'intero controllo del 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.(https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors) Utilizzare i selettori composti per selezionare più elementi. Ad es. within "#header, .footer"
Per ulteriori informazioni, vedere parametro di contesto .
Clausola di esclusione
Then the page should be axe clean excluding "#selector"
La clausola di esclusione (excluding "#selector"
) specifica quali elementi del documento ignorare. Fornire un selettore CSS valido racchiuso tra virgolette doppie. Utilizzare i selettori composti per selezionare più elementi. Ad esempio: excluding "#widget, .ad"
Per ulteriori informazioni, vedere parametro di contesto .
Utilizzare il punto e virgola (;
) o la parola but
per separare la clausola di esclusione da quella 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"
Accessibility Standard (Tag) clausola
Then the page should be axe clean according to: tag-name
La condizione tag specifica quale standard (o standard) di accessibilità utilizzare nel controllo della pagina. Specificare gli standard di accessibilità per nome (tag). È possibile specificare più standard separati da virgole. p.e. according to: wcag2a, section508
I nomi dei tag accettabili sono documentati(https://github.com/dequelabs/axe-core/blob/master/doc/API.md#options-parameter) insieme a un elenco completo delle descrizioni delle regole(https://github.com/dequelabs/axe-core/blob/master/doc/rule-descriptions.md) che corrispondono a ciascun tag.
Per separare la clausola tag dalla clausola precedente è possibile utilizzare un punto e virgola (;
).
Then the page should be axe clean within "#header"; according to: best-practice
Clausola di controllo delle regole
Then the page should be axe clean checking: ruleId
La clausola checking-rules specifica ** eventuali regole aggiuntive da eseguire (oltre ai tag specificati o al set di regole predefinito). Le regole sono specificate da ID regola separati da virgole.
Per un elenco degli ID regola validi, consultare Descrizioni delle regole
Utilizzare 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-contrast
Clausola di regole esclusive
Then the page should be axe clean checking only: ruleId
Questa clausola non è separabile. Aggiungendo la parola only
alla clausola delle regole di controllo, è possibile modificare il significato del passaggio. Come descritto in precedenza, la clausola checking-rules specifica regole aggiuntive da eseguire per impostazione predefinita. Se viene utilizzata una certa parola only
, vengono controllate solo le regole specificate.
Clausola di esclusione delle regole
Then the page should be axe clean skipping: ruleId
La clausola skipping-rules specifica quali regole ignorare. Specificare lo standard di accessibilità da utilizzare (tramite la clausola tag) ignorando una regola particolare. Specificare le regole tramite ID della regola separati da virgole.
Consultare Descrizioni delle regole per un elenco di ID regola validi
Utilizzare un punto e virgola (;
) o la parola but
per separare la clausola di salto delle regole 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: accesskeys
Set di regole etichettati
Accedi ai set di regole taggati 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 codice seguente illustra 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