axe-devtools-behave API-Referenz
API-Referenz für das axe-devtools-behave-Paket für Behave-basierte Python-Tests
Dieses Paket integriert Axe DevTools in Behave, ein Cucumber-ähnliches Python-Testframework.
Verwendung
Bevor Sie axe-devtools-behave nutzen können, müssen Sie einige Dinge einrichten.
Zuerst müssen Sie das Öffnen und Schließen eines Browsers konfigurieren, über 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()Als nächstes müssen Sie axe-devtools-behave importieren, was in features/steps/axe.py geschehen kann:
# features/steps/axe.py
from axe_devtools_behave import *Nun können Sie axe-devtools-behave in Ihren Feature-Dateien verwenden.
Das axe-devtools-behave-Paket nutzt behave-webdriver, sodass alle Schritte aus dieser Bibliothek übernommen und zur Nutzung verfügbar sind.
Accessibility Cucumber-Schritte
Die untenstehenden Beispiele für Barrierefreiheitsprüfungen verwenden Then the page should be axe clean, aber alle Prüfungen funktionieren gleichermaßen mit Then the page should be audited for accessibility.
Der Unterschied besteht darin, dass should be axe clean axe ausführt und den Test bei Verstößen fehlschlagen lässt, während should be audited for accessibility axe ausführt und die Ergebnisse in einem axe-reports-Verzeichnis speichert. should be audited for accessibility schlägt nie fehl.
Um einen Cucumber-Schritt zur Überprüfung der Barrierefreiheit mit Axe zu erstellen, beginnen Sie mit dem Basis-Schritt und fügen Sie alle notwendigen Klauseln hinzu. Alle folgenden Klauseln können miteinander kombiniert werden; sie müssen jedoch in der angegebenen Reihenfolge erscheinen:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Basis-Schritt
Then the page should be axe cleanDer Basis-Schritt ist die Kernkomponente des Cucumber-Schritts. Er ist für sich genommen ein vollständiger Schritt und überprüft, dass die aktuell geladene Seite mit der Standardkonfiguration von axe.a11yCheck barrierefrei ist (die Überprüfung des gesamten Dokuments verwendet die Standardregeln).
Einschlussklausel
Then the page should be axe clean within "#selector"Die Einschlussklausel (within "#selector") gibt an, welche Elemente auf der Seite überprüft werden sollen. Die Einschlussklausel muss einen gültigen CSS-Selektor in Anführungszeichen enthalten. Verwenden Sie zusammengesetzte Selektoren, um mehrere Elemente auszuwählen. Zum Beispiel: within "#header, .footer"
Siehe Kontextparameter für weitere Informationen.
Ausschlussklausel
Then the page should be axe clean excluding "#selector"Die Ausschlussklausel (excluding "#selector") gibt an, welche Dokumentelemente ignoriert werden sollen. Geben Sie einen gültigen CSS-Selektor in Anführungszeichen an. Verwenden Sie zusammengesetzte Selektoren, um mehrere Elemente auszuwählen. Zum Beispiel: excluding "#widget, .ad"
Siehe Kontextparameter für weitere Informationen.
Verwenden Sie das Semikolon (;) oder das Wort but, um die Ausschlussklausel von der Einschlussklausel zu trennen, falls vorhanden.
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"Klausel für Barrierefreiheitsstandard (Tag)
Then the page should be axe clean according to: tag-nameDie Tag-Klausel gibt an, welchen Barrierefreiheitsstandard (oder welche Standards) bei der Seitenüberprüfung verwendet werden. Geben Sie die Barrierefreiheitsstandards nach Name (Tag) an. Mehrere Standards können durch Kommas getrennt angegeben werden. Zum Beispiel: according to: wcag2a, section508
Akzeptable Tag-Namen sind dokumentiert zusätzlich zu einem vollständige Liste der Regeldeskriptionen, die jeweils zu einem Tag gehören.
Ein Semikolon (;) kann verwendet werden, um die Tag-Klausel von der vorhergehenden Klausel zu trennen.
Then the page should be axe clean within "#header"; according to: best-practicePrüfregelklausel
Then the page should be axe clean checking: ruleIdDie Prüfregelklausel gibt an, welche zusätzliche Regeln ausgeführt werden sollen (zusätzlich zu den angegebenen Tags oder den Standardregeln). Regeln werden durch kommagetrennte Regel-IDs angegeben.
Siehe Regelbeschreibungen für eine Liste gültiger Regel-IDs.
Verwenden Sie das Semikolon (;) oder das Wort and, um die Prüfregelklausel von der vorhergehenden Klausel zu trennen.
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-contrastAusschließliche Regelklausel
Then the page should be axe clean checking only: ruleIdDiese Klausel ist nicht separat. Indem Sie das Wort only zur Prüfregelklausel hinzufügen, können Sie die Bedeutung des Schritts ändern. Wie zuvor beschrieben, gibt die Prüfregelklausel zusätzliche Regeln an, die standardmäßig ausgeführt werden sollen. Nur die angegebenen Regeln werden überprüft, wenn das Wort only verwendet wird.
Klausel zum Überspringen von Regeln
Then the page should be axe clean skipping: ruleIdDie Klausel zum Überspringen von Regeln gibt an, welche Regeln ignoriert werden sollen. Geben Sie den zu verwendenden Barrierefreiheitsstandard an (über die Tag-Klausel), während eine bestimmte Regel ignoriert wird. Regeln werden durch kommagetrennte Regel-IDs angegeben.
Siehe Regelbeschreibungen für eine Liste gültiger Regel-IDs
Verwenden Sie das Semikolon (;) oder das Wort but, um die Klausel zum Überspringen von Regeln von der vorhergehenden Klausel zu trennen.
Then the page should be axe clean according to: wcag2a; skipping: accesskeys
Then the page should be axe clean according to: wcag2a but skipping: accesskeysGetaggte Regelsets
Greifen Sie über eine Cucumber-Klausel auf getaggte Regelsets zu. Diese Funktionalität ermöglicht es Entwicklern, ein Regelset (z.B.: 508, wcag2, wcag2.1) anzugeben, um die Barrierefreiheit der Seite zu überprüfen.
Der folgende Code demonstriert die erforderliche Cucumber Gherkin-Syntax, um ein spezifisches Regelset während der Analyse zu bewerten:
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