API-Referenz für die JavaScript- und TypeScript-Version von Watcher
Die API-Referenz für das @axe-core/watcher-Paket
Dieser Referenzleitfaden beschreibt die von dem @axe-core/watcher-Paket bereitgestellten APIs (auch bekannt als Axe Watcher oder einfach Watcher) für JavaScript und TypeScript.
AxeConfiguration Schnittstelle
Die axe-Eigenschaft (ein Parameter, der an den Konfigurationsfunktionen übergeben wird) ist das übliche Mittel zur Änderung Ihrer AxeConfiguration für Axe Watcher, um Barrierefreiheitstests zu konfigurieren. Die folgenden Eigenschaften sind in AxeConfiguration enthalten:
| Name | Typ | Erforderlich | Beschreibung | |
|---|---|---|---|---|
apiKey |
string (enthält eine UUID) |
ja | Ihr persönliches API-Schlüsselgeheimnis. | |
autoAnalyze |
boolean |
nein | Ob der Watcher automatisch eine Zugänglichkeitsanalyse auf Ihrer Seite durchführt. Der Standardwert ist true. |
|
buildID |
string |
nein | Der Standardwert ist null, was für Einzelprozesse (nicht parallelisierte) Testläufe empfohlen wird. Für parallele Testläufe sollten alle Worker die gleiche, nicht-null buildID-Zeichenkette haben. |
|
configurationOverrides |
ConfigurationOverrides |
nein | Ermöglicht die Überschreibung von globale Konfigurationseinstellungen. | |
elementInternals |
boolean |
nein | Aktiviert ElementInternals-Unterstützung für benutzerdefinierte Elemente. Wenn true, sammelt der Watcher ARIA-Rollen und -Eigenschaften, die über die ElementInternals API gesetzt wurden, und reduziert falsche positive Ergebnisse auf Seiten, die benutzerdefinierte Elemente mit attachInternals() verwenden. Erfordert axe-core Version 4.12.0 oder höher. Der Standardwert ist false. |
|
excludeUrlPatterns |
string[] |
nein | Schließt URLs von der Überprüfung aus, die den angegebenen Minimatch-Mustern entsprechen. | |
git |
`boolean | GitKonfig` | nein | Steuert die Sammlung von Git-Metadaten. Der Standardwert ist true (Automatische Erkennung). Setzen Sie dies auf false, um es zu deaktivieren, oder geben Sie ein GitConfig-Objekt an, um explizite Metadaten bereitzustellen. |
projectId |
string (enthält eine UUID) |
ja | Die Projekt-ID, um die Ergebnisse der Watcher-Testläufe zu erhalten. | |
runContext |
axe.ElementContext |
nein | An axe-core übergeben. | |
runOptions |
RunOptions |
nein | An axe-core übergeben. | |
serverURL |
string |
nein | Der Axe Developer Hub-Server, an den Ergebnisse gesendet werden sollen. Setzen Sie dies, wenn Ihre Organisation eine regionale Instanz, eine private Cloud oder eine On-Premises-Bereitstellung verwendet. Der Standardwert ist https://axe.deque.com. |
|
sessionId |
string |
nein | Veraltet. Die Sitzungs-ID dieser Instanz. Es ist unwahrscheinlich, dass Sie diesen Wert ändern müssen. Siehe stattdessen buildId. |
|
testingTypes |
string[] |
nein | Zur Verwendung mit Cypress, um Komponenten- oder End-to-End-Tests (oder beides) anzugeben | |
timeout |
Timeouts |
nein | Ein Timeouts-Objekt, das Millisekunden darstellt, bis die angegebenen Controller-Methoden auslaufen und fehlschlagen. |
apiKey
(Erforderlich) Der apiKey-Wert ist eine von zwei Eigenschaften (apiKey und projectId), die in Ihrem AxeConfiguration festgelegt werden müssen. Sie können seinen Wert von der Verwalten von API-Schlüsseln-Seite erhalten.
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY
}autoAnalyze
(Optional) Setzen Sie diesen Wert auf false, um zu verhindern, dass Seiten automatisch analysiert werden. Für weitere Informationen über den manuellen Modus siehe Controlling Ihrer Scans.
axe: {
autoAnalyze: false
}buildID
(Optional) Die buildID-Eigenschaft, wenn sie nicht null ist, ermöglicht parallelen Testläufern, Ergebnisse zu generieren, die als ein einzelner Testlauf im Axe Developer Hub erscheinen. Im Falle paralleler Testläufe sollte jeder Testläufer die gleiche, nicht-null buildID-Zeichenkette teilen, wodurch jeder Testlauf seine Ergebnisse mit bestehenden Ergebnissen für die gleiche buildID und Git-Commit-SHA zusammenfügt. Wenn jedoch buildID null ist, bestehende mehrere Testläufe bestehende Ergebnisse mit der gleichen Git-Commit-SHA.
Siehe Tests parallel ausführen für weitere Informationen zur Verwendung von buildID mit verschiedenen Continuous-Integration-Anbietern.
axe: {
buildID: process.env.CI_BUILD_ID
}configurationOverrides
(Optional) Überschreibt Werte, die im globalen Konfiguration gesetzt sind. Siehe das ConfigurationOverrides-Schnittstelle für weitere Informationen.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA',
bestPractices: true
}
}elementInternals
ElementInternals-Unterstützung ist experimentell in axe-core und Änderungen unterworfen. Siehe das axe-core ElementInternals Dokumentation für aktuelle Einschränkungen und Entwicklungsstand.
(Optional) Wenn true, sammelt Watcher ARIA-Rollen und -Eigenschaften, die über die ElementInternals-API von benutzerdefinierten Elementen gesetzt wurden, die attachInternals() verwenden. Dies reduziert falsche positive Ergebnisse auf Seiten, die benutzerdefinierte Elemente für interaktive Komponenten verwenden. Erfordert axe-core Version 4.12.0 oder höher.
axe: {
elementInternals: true
}excludeUrlPatterns
(Optional) Verhindert, dass jede URL, die mit einem der minimatch-Muster in dem excludeUrlPatterns-Array übereinstimmt, analysiert wird.
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}In URLs von der Analyse ausschließen finden Sie eine Tabelle von URLs und Beispielen von Mustern, um Übereinstimmungen zu überprüfen.
git
(Optional) Steuert, wie Watcher Git-Metadaten für den aktuellen Testlauf sammelt. Akzeptiert einen von drei Werten:
true(Standard): Watcher sammelt automatisch Git-Informationen (Branch, Commit-SHA, Autor und andere Felder) mit dem lokalen Git-Binär.false: Deaktiviert die gesamte Git-Metadatensammlung. Verwenden Sie dies, wenn Sie in Umgebungen ohne Git arbeiten oder wenn die Git-Datensammlung nicht benötigt wird.- Ein
GitConfig-Objekt: Liefert explizite Git-Metadaten und überspringt die automatische Erkennung vollständig. Felder, die Sie auslassen, werden aufnullstandardmäßig gesetzt. Verwenden Sie dies, wenn Ihre Tests in einem Repository ausgeführt werden, das vom Repository unter Test getrennt ist, oder in CI-Umgebungen, in denen die automatische Git-Erkennung unzuverlässig ist.
Siehe Bereitstellen von Git-Metadaten für weitere Informationen.
Das GitConfig-Objekt hat die folgenden Felder:
| Feld | Typ | Gitful | Beschreibung |
|---|---|---|---|
branch |
string |
ja | Aktueller Branch-Name |
commitAuthor |
string |
nein | Autorenanzeigename. Falls weggelassen, erscheint der Autor als nicht verfügbar im Axe Developer Hub. |
commitEmail |
string |
nein | E-Mail-Adresse des Autors. |
commitMessage |
string |
nein | Vollständige Commit-Nachricht. Falls weggelassen, erscheint die Commit-Nachricht als nicht verfügbar im Axe Developer Hub. |
commitSha |
string |
ja | Vollständiger oder abgekürzter Commit-Hash |
defaultBranch |
string |
nein | Standard-Zweigname (z.B. main). Ohne dieses Feld kann Axe Developer Hub nicht feststellen, welcher Zweig der Standard ist, sodass Vergleiche mit dem Feature-Zweig gegenüber dem Standard-Zweig nicht verfügbar sein werden. |
isDirty |
boolean |
nein | true, wenn nicht festgeschriebene Änderungen existieren. Standard ist false, wenn nicht angegeben. |
tag |
string |
nein | Aktuelles Tag (z.B. v1.2.3) |
url |
string |
ja | Remote-URL des Repositories |
branch, commitSha und url sind die gitvollen Felder: Eine Sitzung, die ohne alle drei eingereicht wird, wird als gitless aufgezeichnet und gespeichert, aber Axe Developer Hub wechselt zur gitlosen Sitzungsansicht, in der Zweig- und Commit-Geschichte aus vorherigen Sitzungen nicht sichtbar sein wird. Das Einreichen einer nachfolgenden Sitzung mit allen drei Feldern stellt die gitvolle Ansicht wieder her. Wenn nur eines oder zwei der drei vorhanden sind, verwirft Axe Watcher alle gitvollen Felder, zeichnet die Sitzung als gitlos auf und fügt der Antwort eine Warnung hinzu.
Beispiel zur Verwendung von CI-Umgebungsvariablen zur Angabe expliziter Git-Metadaten:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_PROJECT_ID,
git: {
commitSha: process.env.GIT_COMMIT,
branch: process.env.GIT_BRANCH,
url: process.env.GIT_URL,
commitAuthor: process.env.GIT_AUTHOR_NAME,
commitEmail: process.env.GIT_AUTHOR_EMAIL,
commitMessage: process.env.GIT_COMMIT_MESSAGE,
defaultBranch: 'main'
}
}projectId
(Erforderlich) Gibt die Projekt-ID an, die die Watcher-Zugänglichkeitsergebnisse erhalten wird. Ihre Projekt-ID wird mit den Anweisungen angezeigt, wenn Sie ein neues Projekt erstellen, und Sie können sie auch von der Axe Developer Hub Projekte Seite erhalten.
axe: {
projectId: process.env.AXE_PROJECT_ID
}runContext
(Optional) Ermöglicht Ihnen die Wahl, welche Elemente in die Barrierefreiheitsanalyse Ihrer Seite ein- und ausgeschlossen werden.
Wenn Sie runContext verwenden, um Elemente für Ihre Analyse auszuwählen (über einen einzelnen CSS-Selektor, ein Array von CSS-Selektoren oder mittels der include-Eigenschaft), analysiert der Axe Developer Hub *nur die Elemente, die von den CSS-Selektoren ausgewählt wurden*. Daher, wenn keine Elemente ausgewählt werden (z.B. aufgrund eines Tippfehlers in einem CSS-Klassenselektor), wird nichts analysiert und, was noch wichtiger ist, *es werden keine Seitenzustände erfasst*.
Der Wert von runContext kann sein:
-
Ein einzelner CSS-Selektor für die einzuschließenden Elemente in der Analyse:
axe: { runContext: '.main' } -
Ein Array von CSS-Selektoren für die einzuschließenden Elemente in der Analyse:
axe: { runContext: [ '.main', '.text-block' ] } -
Ein Kontext-Objekt, das
includeundexclude-Eigenschaften enthält (wie im obigen Beispiel gezeigt). Sie könnenincludeoderexcludeoder beide angeben. Jederincludeoderexcludekann ein einzelner CSS-Selektor oder ein Array von CSS-Selektoren sein:axe: { runContext: { include: '.main', exclude: '.ad-section' } }
Mehr Details sind in der axe-core-Kontextdokumentation verfügbar.
runOptions
(Optional) Das runOptions-Objekt erlaubt das folgende Teilset von Eigenschaften aus dem axe-core Options-Typ:
-
ancestry: Der Standard istfalse. Wenntrue, schließen die zurückgegebenen CSS-Selektoren auch die Vorfahrelemente der zurückgegebenen Elemente ein.importantWenn Ihre Seite dynamische IDs oder Klassen verwendet (Element-IDs oder -Klassen, die sich bei jedem Neuladen der Seite ändern), müssen Sie
ancestryalstrueangeben, damit der Axe Developer Hub ordnungsgemäß erkennen und verfolgen kann, ob Zugänglichkeitsprobleme Duplikate sind, da der Axe Developer Hub standardmäßig erwartet, dass Element-IDs und -Klassen zwischen Testläufen gleich bleiben.Wenn
ancestrytrueist, verwendet der Axe Developer Hub stattdessen die Position des Elements innerhalb des DOM-Baums, um dasselbe Element zwischen Testläufen zu lokalisieren.Das folgende zeigt ein Beispiel eines Selektors, wenn
ancestryfalsefür ein iframe-Element mit einer ID von main-iframe ist (<iframe id="main-iframe" ...>):iframe#main-iframeWenn
ancestrytrueist, würde der Selektor den gesamten Pfad vom Wurzelelement enthalten, und es sind keine IDs oder Klassen angegeben:html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe -
runOnly: Dies ermöglicht es Ihnen, zu begrenzen, welche Regeln durch die Angabe von Namen oder Tags ausgeführt werden. SieherunOnlyunten für mehr Informationen. -
rules: Regeln aktivieren oder deaktivieren mithilfe derenabled-Eigenschaft. Sieherulesunten für mehr Informationen.
Das folgende zeigt ein Beispiel von runOptions:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: [ 'wcag2a' ]
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}runOnly
Die Verwendung von runOnly wird als fortgeschrittene Nutzung betrachtet, und wenn Sie runOnly (oder rules) verwenden, werden Sie eine Warnung.
Sie können nicht sowohl runOptions.runOnly als auch configurationOverrides verwenden. Andernfalls erhalten Sie einen Fehler.
Der runOnly-Wert (Teil des runOptions-Objekts) kann einer der folgenden sein:
-
Ein String, der die Regel-ID der Regel darstellt, die Sie für die Barrierefreiheitsanalyse verwenden möchten:
axe: { runOptions: { runOnly: 'ruleId' } } -
Ein Array von Strings, das die Regel-IDs der Regeln darstellt, die Sie verwenden möchten:
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } } -
Ein Objekt mit
type- undvalues-Eigenschaften. Dertype-Wert ist ein String, derrule,rules,tagodertagssein kann. Dievalues-Eigenschaft muss ein Array von Strings sein, das die Regel(n) oder Tag(s) repräsentiert, die Sie für die Barrierefreiheitsanalyse verwenden möchten. Das folgende Beispiel zeigt die Verwendung desrunOnly-Objekts, um die Barrierefreiheitstests auf Regeln zu beschränken, die alswcag2amarkiert sind:axe: { runOptions: { runOnly: { type: 'tag', values: [ 'wcag2a' ] } } }
- Für weitere Beispiele zur Verwendung von
runOnly(mit axe-core) siehe Beispiele für Optionsparameter - Für weitere Informationen über verfügbare Tag-Werte siehe axe-core Tags.
- Für Informationen über die Regeln, Regel-IDs und Tags siehe Regelbeschreibungen
rules
Der rules-Wert (auf dem runOptions-Objekt) ermöglicht es Ihnen, bestimmte Regeln während der Analyse zu aktivieren (enabled: true) oder zu deaktivieren (enabled: false), wie unten gezeigt:
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}serverURL
(Optional) Die URL des Axe Developer Hub-Servers, an den Watcher die Ergebnisse der Barrierefreiheitsanalyse sendet. Standardmäßig https://axe.deque.com.
Sie müssen diesen Wert nicht festlegen, wenn Ihr Projekt auf axe.deque.com erstellt wurde. Wenn Ihre Organisation jedoch eine regionale Instanz, eine private Cloud oder eine lokale Bereitstellung von Axe Developer Hub verwendet, setzen Sie serverURL auf die Basis-URL dieser Instanz:
axe: {
apiKey: process.env.ACCESSIBILITY_API_KEY,
projectId: process.env.PROJECT_ID,
serverURL: process.env.SERVER_URL // e.g., 'https://axe-eu.deque.com'
}sessionId
(Optional) Die sessionId-Eigenschaft wurde veraltet und sollte nicht mehr verwendet werden. Siehe buildID oben.
testingTypes
(Optional) Die testingTypes-Eigenschaft ist ein Array von Strings zur Verwendung mit Cypress, um Komponenten- oder e2e- (End-to-End) Tests (oder beides) anzugeben.
axe: {
testingTypes: ['e2e', 'component']
}timeout
(Optional) Das timeout-Objekt (vom Typ Timeouts) in AxeConfiguration setzt die Zeitüberschreitungswerte in Millisekunden für die jeweiligen Controllermethoden (oder benutzerdefinierte Befehle für Cypress). (Siehe die Controller-Klassen für Informationen über die Controller-Klassen und die Cypress Benutzerdefinierte Kommentare für Informationen über benutzerdefinierte Befehle von Cypress.) Wenn eine Zeitüberschreitung abläuft, schlägt der Test mit einer Nachricht fehl, die anzeigt, dass die Zeitüberschreitung überschritten wurde. Sie können die Zeitüberschreitung erhöhen, um den Fehler zu vermeiden.
Diese Zeitlimitwerte sind unabhängig von dem Testframework, das Sie verwenden, und Sie müssen möglicherweise auch die Zeitlimitwerte für dieses Framework erhöhen.
Dieses Beispiel setzt die analyze-Zeitüberschreitung auf 8 Sekunden, flush auf 15 Sekunden, start auf 10 Sekunden und stop auf 10 Sekunden. (Die Standardwerte sind in der Tabelle unter Timeouts-Schnittstelle angegeben.)
axe: {
timeout: {
analyze: 8000,
flush: 15000,
start: 10000,
stop: 10000,
}
}Konfigurationsfunktionen
Die von Watcher bereitgestellten Konfigurationsfunktionen ermöglichen es Ihnen, Ihre Einrichtung für das angegebene Test-Framework zu ändern sowie anzupassen, wie Sie Watcher ausführen möchten, um Ihren Bedürfnissen gerecht zu werden. Weitere Informationen finden Sie unter AxeConfiguration Interface.
| Test-Framework | Konfigurationsfunktion |
|---|---|
| Cypress | cypressConfig |
| **Playwright** | playwrightConfig |
| **Playwright Test** | playwrightTest |
| Puppeteer | puppeteerConfig |
| **WebdriverIO** | wdioConfig |
| **WebdriverIO Testrunner** | wdioTestRunner |
| WebDriverJS | webdriverConfig |
cypressConfig
Erstellt eine Konfiguration für Cypress.
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptionscypressConfig-Parameter
-
config:Cypress.ConfigOptions & ConfigurationSchnitttyp von
Cypress.ConfigOptionsundConfiguration.
Rückgaben: Cypress.ConfigOptions
cypressConfig-Beispiel
import { defineConfig } from 'cypress'
import { cypressConfig } from '@axe-core/watcher/cypress/config'
export default defineConfig(
cypressConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightConfig
Erstellt eine Konfiguration für Playwright.
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptionsplaywrightConfig-Parameter
-
opts:Configuration & LaunchOptionsSchnitttyp von
LaunchOptionsundConfiguration.
Rückgaben: LaunchOptions
playwrightConfig-Beispiel
import { chromium } from 'playwright'
import { playwrightConfig } from '@axe-core/watcher/playwright'
const browserContext = await chromium.launchPersistentContext(
'',
playwrightConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightTest
Erstellt eine Konfiguration für Playwright Test.
playwrightTest(options: Options): ReturnValueplaywrightTest-Parameter
-
options:OptionsOptionsist ein Schnitttyp vonConfigurationundLaunchOptions.
Rückgaben: ReturnValue
playwrightTest-Beispiel
// fixtures.ts
import { playwrightTest } from '@axe-core/watcher/playwright-test'
export default playwrightTest({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})puppeteerConfig
Erstellt eine Konfiguration für Puppeteer.
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): OptionspuppeteerConfig-Parameter
-
opts:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptionsSchnitttyp von
LaunchOptions,BrowserLaunchArgumentOptions,BrowserConnectOptionsundConfiguration.
Rückgaben: Options
puppeteerConfig-Beispiel
import puppeteer from 'puppeteer'
import { puppeteerConfig } from '@axe-core/watcher/puppeteer'
const browser = await puppeteer.launch(
puppeteerConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)wdioConfig
Erstellt eine WebdriverIO-Konfiguration.
wdioConfig({ axe, ...options}: Options): RemoteOptionswdioConfig-Parameter
-
arg:OptionsOptionsist ein Schnitttyp vonRemoteOptionsundConfiguration.
Rückgaben: RemoteOptions
wdioConfig-Beispiel
import { remote } from 'webdriverio'
import { wdioConfig } from '@axe-core/watcher/wdio'
const browser = await remote(
wdioConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
capabilities: { browserName: 'chrome' }
})
)wdioTestRunner
Erstellt eine WebdriverIO Testrunner-Konfiguration.
wdioTestRunner(...params: unknown[]): Options.TestrunnerwdioTestRunner-Parameter
-
params:unknown[]Der
params-Wert ist einer von:- Ein Array, das einen Wert enthält, der ein Schnitttyp von
Options.TestrunnerundConfigurationist. - Ein Array, in dem der erste Array-Wert ein
AxeConfigurationist und der zweite Wert einOptions.Testrunner.
- Ein Array, das einen Wert enthält, der ein Schnitttyp von
Rückgaben: Options.Testrunner
wdioTestRunner-Beispiel
import { wdioTestRunner } from '@axe-core/watcher/wdio'
export const config = wdioTestRunner({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})webdriverConfig
Erstellt eine Selenium WebDriver-Konfiguration.
webdriverConfig(arg: WebDriverArgs): OptionswebdriverConfig-Parameter
-
arg:WebDriverArgsEin
Configuration, erweitert, um ein Selenium WebDriver-Options-Element einzuschließen.
Rückgaben: Options
webdriverConfig Beispiel
import { Builder } from 'selenium-webdriver'
import { Options } from 'selenium-webdriver/chrome'
import { webdriverConfig } from '@axe-core/watcher/webdriver'
const options = new Options()
const browser = await new Builder()
.forBrowser('chrome')
.setChromeOptions(
webdriverConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
options
})
)
.build()Configuration Schnittstelle
Die Configuration-Schnittstelle wird mit der Konfigurationsfunktionen verwendet und enthält eine Eigenschaft:
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
axe |
AxeConfiguration |
ja | Die AxeConfiguration, die an die Konfigurationsfunktion Ihres Testframeworks übergeben werden soll. |
Alle Konfigurationsfunktionen verwenden diese axe-Eigenschaft, um den Watcher einzurichten und Ihre Barrierefreiheitsprüfung zu konfigurieren. Siehe den obigen Abschnitt AxeConfiguration Interface für weitere Informationen.
ConfigurationOverrides Schnittstelle
Die ConfigurationOverrides-Schnittstelle ermöglicht es Ihnen, die globalen Konfigurationseinstellungen Ihrer Organisation für einzelne Testruns zu überschreiben. Diese Eigenschaft muss entsprechend den Berechtigungen der globalen Konfiguration Ihres Unternehmens verwendet werden.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
accessibilityStandard |
string |
nein | Der zu befolgende Barrierefreiheitsstandard |
axeCoreVersion |
string |
nein | Gibt an, welche axe-core Version verwendet werden soll. |
bestPractices |
boolean |
nein | Gibt an, ob die besten Praxisregeln befolgt werden sollen. |
experimentalRules |
boolean |
nein | Ob experimentellen Regeln gefolgt werden soll |
accessibilityStandard
Legt den Barrierefreiheitsstandard fest, gegen den getestet werden soll. Verfügbare Optionen:
- „Alle“ - Testet gegen alle verfügbaren Standards
- „WCAG 2.2 AAA“
- „WCAG 2.2 AA“
- „WCAG 2.2 A“
- „WCAG 2.1 AAA“
- „WCAG 2.1 AA“
- „WCAG 2.1 A“
- „WCAG 2.0 AAA“
- „WCAG 2.0 AA“
- „WCAG 2.0 A“
- „Trusted Tester v5“
- „EN 301 549“
- „RGAAv4“ - RGAA Version 4 (Französischer Barrierefreiheitsstandard; erfordert axe-core 4.11.0 oder neuer)
Ihre Organisation muss das Überschreiben dieser Einstellung in der globalen Konfiguration erlauben, und der ausgewählte Standard muss zu den erlaubten Optionen gehören.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA'
}
}axeCoreVersion
Gibt an, welche Version von axe-core für das Testen verwendet werden soll. Verfügbare Optionen umfassen:
- „neueste“ - Neueste unterstützte Version, die derzeit mit Axe Watcher gebündelt ist
- Spezifische Versionen ab 4.4.0 und später (z.B. „4.10.2“, „4.9.1“, etc.)
Ihre Organisation muss das Überschreiben dieser Einstellung in der globalen Konfiguration erlauben, und die ausgewählte Version muss zu den erlaubten Optionen gehören.
axe: {
configurationOverrides: {
axeCoreVersion: 'latest'
}
}bestPractices
Aktiviert oder deaktiviert Best-Practice-Regeln für den Testrun. Best Practices verbessern die Barrierefreiheit, sind jedoch nicht Teil formaler Standards. Ihre Organisation muss das Überschreiben dieser Einstellung erlauben, damit sie wirksam wird.
axe: {
configurationOverrides: {
bestPractices: true
}
}experimentalRules
Aktiviert oder deaktiviert experimentelle Regeln für den Testrun. Experimentelle Regeln sind noch in der Entwicklung und können zu Fehlalarmen führen. Ihre Organisation muss das Überschreiben dieser Einstellung in der globalen Konfiguration erlauben, damit sie wirksam wird.
axe: {
configurationOverrides: {
experimentalRules: true
}
}Controller Klassen
Die folgenden Klassen erweitern die Controller-abstrakte Klasse, um Ihnen die manuelle Kontrolle über die Barrierefreiheitsanalyse der Seiten Ihrer Website zu ermöglichen.
| Testframeworks | Name |
|---|---|
| Playwright und Playwright Test | PlaywrightController |
| Puppeteer | PuppeteerController |
| WebdriverIO und WebdriverIO Testrunner | WdioController |
| WebDriverJS | WebdriverController |
Für Cypress werden die Methoden in den *Controller-Klassen als benutzerdefinierte Befehle implementiert. Siehe Controller Custom Commands für Cypress für weitere Informationen.
Controller
abstract class ControllerDie Controller-abstrakte Klasse enthält die Methoden zur Steuerung der Seitenanalyse. Jede der konkreten Klassen erweitert diese Klasse, sodass die folgenden Methoden in allen konkreten Klassen verfügbar sind.
Frame-Kontext: Wenn Ihr Test den Kontext des Browsers mithilfe von switchToFrame() (WebdriverIO oder WebDriverJS) auf einen Child-Frame umschaltet, erfasst der Axe Watcher keine Seitenzustände für Aktionen, die im Child-Frame durchgeführt werden. Der Axe Watcher kann nur den obersten Frame analysieren. Wechseln Sie zurück zum obersten Frame (zum Beispiel mit switchToParentFrame() in WebdriverIO oder driver.switchTo().defaultContent() in WebDriverJS), um die Erfassung der Seitenzustände fortzusetzen. Siehe Keine erfassten Seitenzustände nach Wechsel zu einem untergeordneten Frame für weitere Informationen.
analyze
analyze(): Promise<void>Analysiert die aktuelle Seite auf Barrierefreiheitsfehler. Sie rufen diese Methode auf, nachdem Sie eine Webseite zur Analyse vorbereitet haben (wie z.B. das Eingeben von Werten in ein Formular) und die automatische Analyse mit der stop-Methode oder durch Setzen von autoAnalyze auf false deaktiviert haben.
analyze Gibt zurück
Promise<void>
analyze Beispiel
await controller.analyze()analyze Entsprechender Cypress-Befehl
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>Sendet alle Ergebnisse des Barrierefreiheits-Scans an Axe Developer Hub. Sollte am Ende des Testlaufs aufgerufen werden, um sicherzustellen, dass die Ergebnisse an die Axe Developer Hub-Server von Deque gesendet wurden.
flush Gibt zurück
Promise<void>
flush Beispiel
await controller.flush()flush Entsprechender Cypress-Befehl
cy.axeWatcherFlush()
start
start(): Promise<void>Setzt die Auto-Analyse von Webseiten fort. Diese Methode wird aufgerufen, wenn Sie die Auto-Analyse von Webseiten auf Barrierefreiheitsfehler fortsetzen möchten.
start Gibt zurück
Promise<void>
start Beispiel
await controller.start()start Entsprechender Cypress-Befehl
cy.axeWatcherStart()
stop
stop(): Promise<void>Stoppt die automatische Analyse von Webseiten. Nachdem Sie die stop-Methode aufgerufen haben, können Sie die erforderliche zusätzliche Einrichtung Ihrer Webseite durchführen und dann die analyze-Methode aufrufen, um die Seite auf Barrierefreiheitsfehler zu überprüfen.
stop Gibt zurück
Promise<void>
stop Beispiel
await controller.stop()stop Entsprechender Cypress-Befehl
cy.axeWatcherStop()
PlaywrightController
Die PlaywrightController-Klasse ermöglicht es Ihnen, die Barrierefreiheitsanalyse für Testruns mit Playwright und Playwright Test manuell zu steuern. Sie können die automatische Barrierefreiheitsanalyse starten und stoppen und Seiten analysieren, die eine zusätzliche Einrichtung erfordern.
Für weitere Informationen über Playwright siehe Playwright-Dokumentation.
Konstruktor
new PlaywrightController(driver: Page): PlaywrightControllerParameter
driver:Page
Der driver-Wert ist ein Playwright Page-Objekt.
Gibt PlaywrightController zurück
PlaywrightController Beispiel
import { PlaywrightController, wrapPlaywrightPage } from '@axe-core/watcher/playwright'
let page = await browserContext.newPage()
const controller = new PlaywrightController(page)
page = wrapPlaywrightPage(page, controller)Siehe Controller für die in der abstrakten Basisklasse implementierten Methoden.
PuppeteerController
Die PuppeteerController-Klasse erlaubt Ihnen, Ihre Testruns mit Puppeteer manuell zu steuern. Manuelle Steuerung ermöglicht es Ihnen, die zusätzliche Einrichtung bereitzustellen, die von komplexeren Webseiten erfordert wird.
Für weitere Informationen über Puppeteer siehe Puppeteer.
Konstruktor
new PuppeteerController(driver: Page): PuppeteerControllerParameter
driver:Page
Der driver-Wert ist ein Puppeteer Page-Objekt.
Gibt PuppeteerController zurück
PuppeteerController Beispiel
import { PuppeteerController, wrapPuppeteerPage } from '@axe-core/watcher/puppeteer'
let page = await browser.newPage()
const controller = new PuppeteerController(page)
page = wrapPuppeteerPage(page, controller)Siehe Controller für die in der abstrakten Basisklasse implementierten Methoden.
WdioController
Die WdioController ermöglicht es Ihnen, Testruns mit WebdriverIO und WebdriverIO Testrunner manuell zu steuern. Für Seiten, die eine zusätzliche Einrichtung oder Konfiguration erfordern, können Sie den automatischen Test stoppen und jede Seite manuell analysieren, die eine solche Einrichtung erfordert.
Konstruktor
new WdioController(driver: Browser): WdioControllerParameter
driver:Browser
Gibt WdioController zurück
WdioController Beispiel
import { WdioController, wrapWdio } from '@axe-core/watcher/wdio'
// browser is the WebdriverIO Browser instance from your wdioConfig() setup
const controller = new WdioController(browser)
wrapWdio(browser, controller)Siehe Controller für die in der abstrakten Basisklasse implementierten Methoden.
WebdriverController
Konstruktor
new WebdriverController(driver: WebDriver): WebdriverControllerParameter
driver:WebDriver
Der driver-Wert ist ein Selenium WebDriver-Objekt.
Gibt WebdriverController zurück
WebdriverController Beispiel
import { WebdriverController, wrapWebdriver } from '@axe-core/watcher/webdriver'
// browser is the Selenium WebDriver instance from your webdriverConfig() setup
const controller = new WebdriverController(browser)
browser = wrapWebdriver(browser, controller)Siehe Controller für die Methoden, die in der abstrakten Basisklasse implementiert sind.
Cypress Custom Commands
In der Cypress-Browserautomatisierungsplattform werden die Methoden in den *Controller-Klassen als benutzerdefinierte Befehle implementiert. Weitere Informationen zur Implementierung und Verwendung benutzerdefinierter Befehle finden Sie unter Custom Commands auf der Cypress-Dokumentationsseite.
Die folgenden benutzerdefinierten Befehle werden implementiert. Jeder benutzerdefinierte Befehl gibt Chainable<void> zurück, um ein Verkettungen mit anderen Cypress-Befehlen zu ermöglichen.
| Controller-Methode | Entsprechender Cypress Custom Command |
|---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
Seit Watcher 3.9.0 sind die vier benutzerdefinierten Cypress-Befehle axeAnalyze(), axeFlush(), axeStart() und axeStop() veraltet und sollten nicht mehr verwendet werden.
Wenn Sie das @axe-devtools/cypress-Paket mit Watcher verwenden, müssen Sie mindestens auf Version 3.9.0 von Watcher aktualisieren, da die veralteten benutzerdefinierten Befehle mit den benutzerdefinierten Befehlen in @axe-devtools/cypress in Konflikt stehen.
Cypress-Befehl Beispiel
Das folgende Beispiel zeigt, wie man die Cypress-Befehle des Axe Developer Hub aus dem @axe-core/watcher-Paket importiert und dann den axeWatcherFlush-Befehl am Ende jedes Tests aufruft (indem man ihn innerhalb von afterEach() platziert):
// Import the axe-watcher commands.
require('@axe-core/watcher/cypress/support')
// Flush Axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})Timeouts-Schnittstelle
Der Timeout Objekt (vom Typ Timeouts) in dem AxeConfiguration-Schnittstelle ermöglicht es Benutzern, die Zeitüberschreitungswerte (in Millisekunden) für die jeweiligen Controller-Funktionen oder die benutzerdefinierten Cypress-Befehle zu ändern.
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}| Name | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
| Analysieren | Zahl | nein | 5000 | Legt die Zeitüberschreitung in Millisekunden für die Analysieren-Controller-Funktion oder den axeWatcherAnalyze-benutzerdefinierten Befehl (in Cypress) fest. |
| Leeren | Zahl | nein | 5000 | Legt die Zeitüberschreitung in Millisekunden für die Leeren-Controller-Funktion oder den axeWatcherFlush-benutzerdefinierten Befehl (in Cypress) fest. |
| Starten | Zahl | nein | 2000 | Legt die Zeitüberschreitung in Millisekunden für die Starten-Controller-Funktion oder den axeWatcherStart-benutzerdefinierten Befehl (in Cypress) fest. |
| Stoppen | Zahl | nein | 5000 | Legt die Zeitüberschreitung in Millisekunden für die Stoppen-Controller-Funktion oder den axeWatcherStop-benutzerdefinierten Befehl (in Cypress) fest. |
