axe-devtools-behave API-Referenz
Dieses Paket integriert axe DevTools in Behave, ein Cucumber-ähnliches Python-Testframework.
Verwendung
Bevor Sie axe-devtools-behave verwenden können, müssen Sie einige Dinge einrichten.
Zunächst 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. Dies können Sie folgendermaßen in features/steps/axe.py
tun:
# features/steps/axe.py
from axe_devtools_behave import *
Jetzt können Sie axe-devtools-behave in Ihren Feature-Dateien verwenden.
Das Paket axe-devtools-behave verwendet behave-webdriver
, sodass alle Schritte aus dieser Bibliothek übernommen und zur Verwendung verfügbar sind.
Cucumber-Schritte für Barrierefreiheit
Die Beispiele für die Barrierefreiheitsprüfungen unten verwenden Then the page should be axe clean
[fehlendes Objekt], aber alle Prüfungen funktionieren austauschbar mit Then the page should be audited for accessibility
[fehlendes Objekt].
Der Unterschied besteht darin, dass should be axe clean
[fehlendes Objekt] axe ausgeführt wird und der Test bei Verstößen fehlschlägt, während should be audited for accessibility
[fehlendes Objekt] axe ausgeführt wird und die Ergebnisse in einem axe-reports
[fehlendes Objekt] Verzeichnis speichert. should be audited for accessibility
scheitert nie.
Um einen Cucumber-Schritt mit axe accessibility zu konstruieren, beginnen Sie mit dem Basisschritt und fügen Sie alle erforderlichen Klauseln an. Die folgenden Klauseln können alle kombiniert werden. Sie müssen jedoch in der angegebenen Reihenfolge vorkommen:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Basisschritt
Then the page should be axe clean
Der Basisschritt ist die Kernkomponente des Cucumber-Schritts. Dies ist ein eigenständiger Schritt und überprüft, ob die aktuell geladene Seite mit der Standardkonfiguration von axe.a11yCheck zugänglich ist (die gesamte Dokumentprüfung 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 enthalten, der in doppelte Anführungszeichen eingeschlossen ist. Verwenden Sie zusammengesetzte Selektoren, um mehrere Elemente auszuwählen. Z.B. within "#header, .footer"
Weitere Informationen finden Sie unter Kontextparameter .
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 doppelten Anführungszeichen ein. Verwenden Sie zusammengesetzte Selektoren, um mehrere Elemente auszuwählen. Z.B. excluding "#widget, .ad"
Weitere Informationen finden Sie unter Kontextparameter .
Verwenden Sie das Semikolon (;
) oder das Wort " but
", um die Ausschlussklausel von der Einschlussklausel (falls vorhanden) zu trennen.
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) Klausel
Then the page should be axe clean according to: tag-name
Die Tag-Klausel gibt an, welcher Barrierefreiheitsstandard (oder welche Barrierefreiheitsstandards) bei der Seitenprüfung verwendet werden soll. Geben Sie die Barrierefreiheitsstandards mit Namen (Kennzeichnung) an. Die Angabe mehrerer Standards ist durch Kommas getrennt möglich. Z.B. according to: wcag2a, section508
Akzeptable Tag-Namen werden dokumentiert , zusätzlich gibt es eine vollständige Liste der Regelbeschreibungen , die jedem Tag entsprechen.
Um den Tag-Satz vom vorhergehenden Satz zu trennen, kann ein Semikolon (;
) verwendet werden.
Then the page should be axe clean within "#header"; according to: best-practice
„Regeln prüfen“-Klausel
Then the page should be axe clean checking: ruleId
Die Klausel „Checking-Rules“ gibt alle zusätzlichen Regeln an, die (zusätzlich zu den angegebenen Tags oder dem Standardregelsatz) ausgeführt werden sollen. Regeln werden durch Kommas getrennte Regel-IDs angegeben.
Eine Liste gültiger Regel-IDs finden Sie unter Regelbeschreibungen .
Verwenden Sie ein Semikolon (;
) oder das Wort and
, um die Prüfregeln-Klausel 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-contrast
Ausschließlichkeitsregel-Klausel
Then the page should be axe clean checking only: ruleId
Diese Klausel ist nicht getrennt. Durch Hinzufügen des Wortes only
zur Prüfregelnklausel können Sie die Bedeutung des Schritts ändern. Wie bereits beschrieben, gibt die Klausel für Prüfregeln zusätzliche Regeln an, die standardmäßig ausgeführt werden sollen. Bei Verwendung des Worts only
werden nur die angegebenen Regeln überprüft.
Klausel zum Überspringen von Regeln
Then the page should be axe clean skipping: ruleId
Die Klausel zum Überspringen von Regeln gibt an, welche Regeln übersprungen werden sollen. Geben Sie den zu verwendenden Zugänglichkeitsstandard (über die Tag-Klausel) an, während eine bestimmte Regel ignoriert wird. Geben Sie durch Regel-IDs, die durch Kommas getrennt sind, Regeln an.
Eine Liste gültiger Regel-IDs finden Sie unter Regelbeschreibungen
Verwenden Sie ein 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: accesskeys
Markierte Regelsätze
Greifen Sie über eine Cucumber-Klausel auf markierte Regelsätze zu. Mithilfe dieser Funktion können Entwickler einen Regelsatz (z. B. 508, wcag2, wcag2.1) angeben, um die Barrierefreiheit von Seiten zu prüfen.
Der folgende Code demonstriert die Cucumber-Gherkin-Syntax, die zum Auswerten eines bestimmten Regelsatzes während der Analyse erforderlich ist:
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