Référence API
Référence API pour le package @axe-core/watcher
Ce guide de référence décrit les API fournies par le package (également appelé @axe-core/watcher
axe Watcher *ou simplement * Watcher ).
AxeConfiguration
Interface
La axe
propriété (un paramètre passé aux fonctions de configuration) est le moyen habituel de modifier votre AxeConfiguration
pour configurer les tests d'accessibilité avec axe Watcher. Les propriétés suivantes sont contenues dans AxeConfiguration
:
Nom | Type | Obligatoire | Description |
---|---|---|---|
apiKey |
string |
oui | La clé secrète API de votre projet. |
autoAnalyze |
boolean |
Non | Que ce soit Watcher exécutera automatiquement une analyse d'accessibilité sur votre page. La valeur par défaut est true . |
buildID |
string |
Non | La valeur par défaut est null , ce qui est recommandé pour les exécutions de tests à processus unique (non parallélisées). Pour les tests exécutés en parallèle, tous les travailleurs doivent avoir la même chaîne non nulle. buildID |
configurationOverrides |
ConfigurationOverrides |
Non | Permet de remplacer les paramètres de configuration globaux . |
excludeUrlPatterns |
string[] |
no | Exclut les URL qui correspondent aux modèles de minimatch spécifiés d'être analysées. |
runContext |
axe.ElementContext |
Non | Passé à axe-core. |
runOptions |
RunOptions |
Non | Passé à axe-core. |
serverURL |
string |
Non | Le serveur Developer Hub pour envoyer les résultats à. Il est peu probable que vous ayez besoin de modifier cette valeur. |
sessionId |
string |
Non | Obsolète. ID de session de cette instance Il est peu probable que vous ayez besoin de modifier cette valeur. Voir plutôt buildId . |
timeout |
Timeouts |
Non | Un objet Timeouts qui représente les millisecondes jusqu'à ce que les méthodes spécifiées du contrôleur ** expirent et échouent.** |
apiKey
La apiKey
valeur est la seule propriété qui doit être définie dans votre AxeConfiguration
. Vous pouvez obtenir sa valeur à partir de la page Projets. Voir Gestion des projets pour plus d'informations.
autoAnalyze
Définissez cette valeur sur false
pour empêcher l'analyse automatique des pages. Pour plus d'informations sur le mode manuel, voir Contrôle du moment de l'analyse des pages.
buildID
La propriété facultative buildID
, lorsqu'elle n'est pas définie null
, permet aux outils d'exécution de tests parallèles de générer des résultats qui apparaissent comme une seule exécution de test dans axe Developer Hub. Dans le cas d'exécutions de tests parallèles, chaque outil d'exécution de tests doit partager la même chaîne non nulle, ce qui oblige chaque exécution de tests à concaténer ses résultats avec les résultats existants pour le même SHA de commit Git. buildID
buildID
Cependant, lorsque buildID
est null
, plusieurs exécutions de tests écrasent les résultats existants qui ont le même SHA de commit Git.
Vous pouvez généralement obtenir une valeur utilisable auprès de votre fournisseur d'intégration continue. buildID
Par exemple, vous pouvez utiliser ces valeurs :
-
github.run_id
Disponible dans les workflows GitHub. Consultez github context dans la documentation GitHub pour plus d'informations.
-
CIRCLE_PIPELINE_ID
Avec CircleCI, la valeur ci-dessus est disponible à partir de l'environnement de votre processus. Consultez Variables d'environnement intégrées dans la documentation CircleCI pour plus d'informations.
Autres variables d'environnement d'intégration continue que vous pouvez utiliser pour
buildID
:
configurationOverrides
(Facultatif) Remplace les valeurs définies dans la configuration globale. Consultez l'Interface ConfigurationOverrides pour plus d'informations.
excludeUrlPatterns
(Facultatif) Empêche toute URL correspondant à l'un des modèles minimatch du tableau excludeUrlPatterns
d'être analysée.
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}
Vous devez commencer votre modèle par http://
ou https://
ou une barre oblique suivie d'une étoile (*/
) afin de faire correspondre les URL. Voyez le tableau ci-dessous pour des exemples.
Exemples
URL | Modèle | Correspondances ? |
---|---|---|
https://example.com/index.html |
example.com |
Faux |
https://example.com/index.html |
https://*mple.com/index.html |
Vrai |
https://example.com/index.html |
https://example.com |
Faux |
https://example.com/index.html |
https://*.example.com |
Faux |
https://example.com/index.html |
https://*.example.com/** |
Faux |
https://example.com/index.html |
https://*example.com/** |
Vrai |
https://example.com/index.html |
https://** |
Vrai |
https://example.com/index.html |
https://* |
Faux |
https://example.com/index.html |
** |
Vrai |
https://example.com/index.html |
*example.com/index.html |
Faux |
https://example.com/index.html |
*example.com/** |
Faux |
https://example.com/index.html |
*/example.com/** |
Vrai |
https://example.com/index.html |
htt*/** |
Vrai |
https://example.com/index.html |
h*/example.com/** |
Vrai |
https://test.example.com/index.html |
https://*example.com/** |
Vrai |
https://test.example.com/index.html |
https://*.example.com/** |
Vrai |
runContext
(Facultatif) Vous permet de choisir les éléments à inclure et à exclure de l'analyse d'accessibilité de votre page.
Lorsque vous utilisez runContext
pour sélectionner des éléments à inclure dans votre analyse (via un seul sélecteur CSS, un tableau de sélecteurs CSS ou en utilisant la include
propriété), axe Developer Hub analyse uniquement les éléments sélectionnés par les sélecteurs CSS. Par conséquent, si aucun élément n'est sélectionné (en raison d'une faute d'orthographe dans un sélecteur de classe CSS, par exemple), rien ne sera analysé et, plus important encore, aucun état de page ne sera capturé.
La valeur de runContext
peut être :
-
Un sélecteur CSS unique pour les éléments à inclure dans l'analyse :
axe: { runContext: '.main' }
-
Un tableau de sélecteurs CSS pour les éléments à inclure dans l'analyse :
axe: { runContext: [ '.main', '.text-block' ] }
-
Un objet de contexte contenant
include
etexclude
propriétés (comme indiqué dans l'exemple ci-dessus). Vous pouvez spécifierinclude
ouexclude
ou les deux. Chaqueinclude
ouexclude
peut être un sélecteur CSS unique ou un tableau de sélecteurs CSS :axe: { runContext: { include: '.main', exclude: '.ad-section' } }
Plus de détails sont disponibles dans la documentation de contexte d'axe-core.
runOptions
(Facultatif) L'objet autorise le sous-ensemble suivant de propriétés du type axe-core : runOptions
Options
-
ancestry
: La valeur par défaut estfalse
. Sitrue
, les sélecteurs CSS renvoyés incluent les éléments ancêtres des éléments renvoyés.importantSi votre page utilise des ID ou des classes dynamiques (ID d'élément ou classes qui changent à chaque rechargement de la page), vous devez spécifier
ancestry
commetrue
afin qu'axe Developer Hub puisse détecter et suivre correctement si les problèmes d'accessibilité sont des doublons car, par défaut, axe Developer Hub s'attend à ce que les ID et les classes d'élément restent les mêmes entre les exécutions de test.Lorsque
ancestry
esttrue
, axe Developer Hub utilise à la place la position de l'élément dans l'arborescence DOM pour localiser le même élément entre les exécutions de test.Voici un exemple de sélecteur pour un élément iframe avec un ID de
ancestry
main-iframefalse
( ) :<iframe id="main-iframe" ...>
iframe#main-iframe
Si
ancestry
esttrue
, le sélecteur inclurait le chemin complet à partir de l'élément racine, et aucun ID ni classe n'est spécifié :html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe
-
runOnly
: Cela vous permet de limiter les règles exécutées en spécifiant des noms ou des balises. VoirrunOnly
ci-dessous pour plus d'informations. -
rules
: Activer ou désactiver les règles à l'aide de la propriétéenabled
. Voirrules
ci-dessous pour plus d'informations.
Ce qui suit montre un exemple de runOptions
:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: 'wcag2a'
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}
runOnly
L'utilisation de runOnly
est considérée comme une utilisation avancée, et si vous utilisez runOnly
, vous recevrez un avertissement.
Vous ne pouvez pas utiliser à la fois runOptions.runOnly
et configurationOverrides
. Sinon, vous recevrez une erreur.
La valeur (partie de l'objet [runOptions
] runOnly
) peut être l'une des suivantes :(#runoptions)
-
Une chaîne représentant l'ID de la règle que vous souhaitez utiliser pour l'analyse d'accessibilité :
axe: { runOptions: { runOnly: 'ruleId' } }
-
Un tableau de chaînes représentant les identifiants des règles que vous souhaitez utiliser :
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } }
-
Un objet avec
type
et lesvalues
propriétés. Latype
valeur est une chaîne qui peut être des règles, une règle, une balise ou des balises. La propriété peut être une chaîne ou un tableau de chaînes représentant la règle ou les balises que vous souhaitez utiliser pour l'analyse d'accessibilité.values
L'exemple suivant montre l'utilisation derunOnly
l'objet pour limiter les tests d'accessibilité aux règles * marquées comme wcag2a :*axe: { runOptions: { runOnly: { type: 'tag', values: 'wcag2a' } } }
- Pour plus d'exemples d'utilisation (avec axe-core), voir [Exemples de paramètres d'options]
runOnly
(https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter-examples) - Pour plus d'informations sur les valeurs de balises disponibles, voir axe-core Balises.
- Pour plus d'informations sur les règles, les identifiants de règle et les balises, voir Descriptions des règles
rules
La valeur (sur l'objet) vous permet d' rules
activer ou d' runOptions
désactiver des règles spécifiques pendant l'analyse, comme indiqué ci-dessous :enabled: true``enabled: false
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}
sessionId
La propriété est obsolète et ne doit pas être utilisée. sessionId
Voir buildID
ci-dessus.
timeout
L'objet (de type [Timeouts
] timeout
) dans(#timeouts-interface)définit les valeurs de délai d'attente en millisecondes pour les méthodes de contrôleur respectives (ou les commandes personnalisées pour Cypress). AxeConfiguration
(Voir les Classes de contrôleur pour plus d'informations sur les classes de contrôleur et les Commandes personnalisées Cypress pour plus d'informations sur les commandes personnalisées Cypress.) Lorsqu'un délai d'attente expire, le test échoue avec un message indiquant que le délai d'attente a été dépassé. Vous pouvez augmenter le délai d'attente pour éviter l'erreur.
Ces valeurs de délai d'expiration sont indépendantes du framework de test que vous utilisez, et vous devrez peut-être également augmenter les valeurs de délai d'expiration pour ce framework.
Cet exemple définit le délai d'expiration à 8 secondes, à 15 secondes, à 10 secondes et à 10 secondes. analyze
flush
start
stop
(Les valeurs par défaut sont indiquées dans le tableau sous Interface Timeouts
.)
axe: {
timeout: {
analyze: 8000
flush: 15000,
start: 10000,
stop: 10000,
}
}
Classes de contrôleur
Fonctions de configuration
Les fonctions de configuration fournies par Watcher vous permettent de modifier votre configuration pour le framework de test spécifié ainsi que d'adapter la manière dont vous souhaitez exécuter Watcher en fonction de vos besoins. Voir Interface AxeConfiguration pour plus d'informations.
Test Framework | Fonction de configuration |
---|---|
Cypress | cypressConfig |
Playwright | playwrightConfig |
Test de Playwright | playwrightTest |
Puppeteer | puppeteerConfig |
WebdriverIO | wdioConfig |
WebdriverIO Testrunner | wdioTestRunner |
WebDriverJS | webdriverConfig |
cypressConfig
Crée une configuration pour Cypress.
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptions
cypressConfig
Paramètres
-
config
:Cypress.ConfigOptions & Configuration
Type d'intersection de
Cypress.ConfigOptions
etConfiguration
.
Renvoie: Cypress.ConfigOptions
playwrightConfig
Crée une configuration pour Playwright.
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptions
playwrightConfig
Paramètres
-
opts
:Configuration & LaunchOptions
Type d'intersection de
LaunchOptions
etConfiguration
.
Renvoie: LaunchOptions
playwrightTest
Crée une configuration pour Playwright Test.
playwrightTest(options: Options): ReturnValue
playwrightTest
Paramètres
-
options
:Options
Options
est un type d'intersection deConfiguration
etLaunchOptions
.
Renvoie: ReturnValue
puppeteerConfig
Crée une configuration pour Puppeteer.
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): Options
puppeteerConfig
Paramètres
-
opts
:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions
Type d'intersection de
LaunchOptions
,BrowserLaunchArgumentOptions
,BrowserConnectOptions
etConfiguration
.
Renvoie: Options
wdioConfig
Crée une configuration WebdriverIO.
wdioConfig({ axe, ...options}: Options): RemoteOptions
wdioConfig
Paramètres
-
arg
:Options
Options
est un type d'intersection deRemoteOptions
etConfiguration
.
Retours: RemoteOptions
wdioTestRunner
Crée une configuration WebdriverIO Testrunner.
wdioTestRunner(...params: unknown[]): Options.Testrunner
wdioTestRunner
Paramètres
-
params
:inconnu[]
La valeur « params » est l’une des suivantes :
- Un tableau contenant une valeur, qui est un type d'intersection de
Options.Testrunner
etConfiguration
. - Un tableau où la première valeur du tableau est un
AxeConfiguration
et la deuxième valeur est unOptions.Testrunner
.
- Un tableau contenant une valeur, qui est un type d'intersection de
Retours: Options.Testrunner
webdriverConfig
Crée une configuration Selenium WebDriver.
webdriverConfig(arg: WebDriverArgs): Options
webdriverConfig
Paramètres
-
arg
:WebDriverArgs
Une
Configuration
étendue pour inclure un membre Selenium WebDriverOptions
.
Retours: Options
Configuration
Interface
Configuration
L'interface est utilisée avec les fonctions de configuration et contient une propriété :
Nom | Type | Obligatoire | Description |
---|---|---|---|
axe |
AxeConfiguration |
oui | Le paramètre à transmettre à la fonction de configuration de votre framework de test. AxeConfiguration |
Toutes les fonctions de configuration utilisent cette axe
propriété pour vous permettre de configurer Watcher et de paramétrer vos tests d'accessibilité. Consultez la section suivante, AxeConfiguration Interface, pour plus d'informations.
ConfigurationOverrides
Interface
L'interface vous permet de remplacer les paramètres de configuration globaux de votre organisation pour les exécutions de tests individuelles. ConfigurationOverrides
Cette propriété doit être utilisée conformément aux autorisations définies dans la configuration globale de votre entreprise.
Nom | Type | Obligatoire | Description |
---|---|---|---|
norme d'accessibilité |
string |
Non | La norme d'accessibilité à suivre |
axeCoreVersion |
string |
Non | Indique quelle version d'axe-core doit être utilisée. |
meilleures pratiques |
boolean |
Non | Spécifie s'il faut suivre les règles des meilleures pratiques. |
règles expérimentales |
boolean |
Non | Faut-il suivre les règles expérimentales ? |
accessibilityStandard
Définit la norme d'accessibilité à tester. Options disponibles :
- « Tous » - Tests par rapport à toutes les normes disponibles
- « 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'
Votre organisation doit autoriser le remplacement de ce paramètre dans la configuration globale et la norme sélectionnée doit figurer parmi les options autorisées.
axeCoreVersion
Spécifie quelle version d'axe-core utiliser pour les tests. Les options disponibles incluent :
- 'latest' - Dernière version prise en charge actuellement fournie avec axe Watcher
- Versions spécifiques à partir de 4.4.0 et versions ultérieures (par exemple, « 4.10.2 », « 4.9.1 », etc.)
Votre organisation doit autoriser le remplacement de ce paramètre dans la configuration globale et la version sélectionnée doit figurer parmi les options autorisées.
bestPractices
Active ou désactive les règles de bonnes pratiques pour l'exécution du test. Les meilleures pratiques améliorent l’accessibilité mais ne font pas partie des normes formelles. Votre organisation doit autoriser le remplacement de ce paramètre pour qu'il prenne effet.
experimentalRules
Active ou désactive les règles expérimentales pour l'exécution du test. Les règles expérimentales sont encore en cours de développement et peuvent produire de faux positifs. Votre organisation doit autoriser le remplacement de ce paramètre dans la configuration globale pour qu'il prenne effet.
Controller
Classes
Les classes suivantes étendent la classe abstraite Controller
pour vous permettre de contrôler manuellement l'analyse d'accessibilité des pages de votre site Web.
Frameworks de test | Nom |
---|---|
Playwright et Playwright Test | PlaywrightController |
Puppeteer | PuppeteerController |
WebdriverIO et WebdriverIO Testrunner | WdioController |
WebDriverJS | WebdriverController |
Pour Cypress, les méthodes des classes *Controller
sont implémentées sous forme de commandes personnalisées. Voir Commandes personnalisées du contrôleur pour Cypress pour plus d'informations.
Controller
abstract class Controller
La classe Controller
abstraite contient les méthodes permettant de contrôler l'analyse des pages. Chacune des classes concrètes étend cette classe, donc les méthodes suivantes sont disponibles dans toutes les classes concrètes.
analyze
analyze(): Promise<void>
Analyse la page actuelle pour détecter les erreurs d'accessibilité. Vous appelez cette méthode après avoir configuré une page Web pour l'analyse (comme des valeurs saisies dans un formulaire) et avoir désactivé l'analyse automatique à l'aide de la méthode stop
ou en définissant autoAnalyze
sur false
.
analyze
Retourne
Promise<void>
analyze
Commande Cypress équivalente
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>
Envoie tous les résultats de l'analyse d'accessibilité à axe Developer Hub. Doit être appelé à la fin du test pour garantir que les résultats ont été envoyés aux serveurs axe Developer Hub de Deque.
flush
Retours
Promise<void>
flush
Commande Cypress équivalente
cy.axeWatcherFlush()
start
start(): Promise<void>
Reprend l'auto-analyse des pages Web. Vous appelez cette méthode lorsque vous souhaitez reprendre l’analyse automatique des pages Web pour détecter les erreurs d’accessibilité.
start
Retours
Promise<void>
start
Commande Cypress équivalente
cy.axeWatcherStart()
stop
stop(): Promise<void>
Arrête l'analyse automatique des pages Web. Après avoir appelé la stop
méthode, vous pouvez effectuer toute configuration supplémentaire dont votre page Web peut avoir besoin, puis appeler la analyze
méthode pour vérifier la page à la recherche d'erreurs d'accessibilité.
stop
Résultats
Promise<void>
stop
Commande Cypress équivalente
cy.axeWatcherStop()
PlaywrightController
La classe vous permet de contrôler manuellement l'analyse d'accessibilité pour les tests avec Playwright et Playwright Test. PlaywrightController
Vous pouvez démarrer et arrêter l'analyse automatique de l'accessibilité et analyser les pages qui nécessitent une configuration supplémentaire.
Pour plus d'informations sur Playwright, consultez la Documentation Playwright.
Constructeur
new PlaywrightController(driver: Page): PlaywrightController
Paramètres
driver
:Page
La driver
valeur est un objet Playwright Page
.
Retours PlaywrightController
Voir Controller
pour les méthodes implémentées dans la classe de base abstraite.
PuppeteerController
La classe permet le contrôle manuel de vos exécutions de tests avec Puppeteer. PuppeteerController
Le contrôle manuel vous permet de fournir une configuration supplémentaire requise par des pages Web plus complexes.
Pour plus d'informations sur Puppeteer, voir Puppeteer.
Constructeur
new PuppeteerController(driver: Page): PuppeteerController
Paramètres
driver
:Page
La driver
valeur est un objet Puppeteer Page
.
Renvoie PuppeteerController
Voir Controller
pour les méthodes implémentées dans la classe de base abstraite.
WdioController
Le WdioController
vous permet de contrôler manuellement les exécutions de tests WebdriverIO et WebdriverIO Testrunner. Pour les pages qui nécessitent une configuration supplémentaire, vous pouvez arrêter les tests automatiques et analyser manuellement chaque page qui nécessite une telle configuration.
Constructeur
new WdioController(driver: Browser): WdioController
Paramètres
driver
:Browser
Renvoie WdioController
Voir Controller
pour les méthodes implémentées dans la classe de base abstraite.
WebdriverController
Constructeur
new WebdriverController(driver: WebDriver): WebdriverController
Paramètres
driver
:WebDriver
La driver
valeur est un objet Selenium WebDriver
.
Renvoie WebdriverController
Voir Controller
pour les méthodes implémentées dans la classe de base abstraite.
Commandes Cypress personnalisées
Dans la plate-forme d'automatisation du navigateur Cypress, les méthodes des classes *Controller
sont implémentées sous forme de commandes personnalisées. Consultez Commandes personnalisées sur le site de documentation Cypress pour plus d'informations sur l'implémentation et l'utilisation des commandes personnalisées.
Les commandes personnalisées suivantes sont implémentées. Chaque commande personnalisée renvoie Chainable<void>
pour permettre le chaînage avec d'autres commandes Cypress.
Méthode du contrôleur | Commande personnalisée Cypress équivalente |
---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
À partir de Watcher 3.9.0, les quatre commandes personnalisées Cypress axeAnalyze()
, axeFlush()
, axeStart()
et axeStop()
sont obsolètes et ne doivent pas être utilisées.
Si vous utilisez le @axe-devtools/cypress
package avec Watcher, vous devrez effectuer une mise à niveau vers au moins la version 3.9.0 de Watcher car les commandes personnalisées obsolètes sont en conflit avec les commandes personnalisées dans @axe-devtools/cypress
.
Exemple de commande Cypress
L'exemple suivant montre comment importer les commandes Cypress du package @axe-core/watcher
du Developer Hub axe, puis appeler la commande axeWatcherFlush
à la fin de chaque test (en la plaçant à l'intérieur de afterEach()
) :
// Import the axe-watcher commands.
require('@axe-core/watcher/dist/cypressCommands')
// Flush axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})
Interface de temporisation
L'objet timeout (de type Timeouts) dans l'interface AxeConfiguration permet aux utilisateurs de modifier les valeurs de délai d'attente (en millisecondes) pour les fonctions de contrôleur respectives ou les commandes personnalisées Cypress.
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}
Nom | Type | Obligatoire | Par défaut | Description |
---|---|---|---|---|
analyser | nombre | Non | 5000 | Définit le délai d'expiration en millisecondes pour la fonction de contrôleur analyze ou la commande personnalisée axeWatcherAnalyze (dans Cypress). |
vider | nombre | Non | 5000 | Définit le délai d'expiration en millisecondes pour la fonction de contrôleur flush ou la commande personnalisée axeWatcherFlush (dans Cypress). |
commencer | nombre | Non | 2000 | Définit le délai d'expiration en millisecondes pour la fonction de démarrage du contrôleur ou la commande personnalisée axeWatcherStart (dans Cypress). |
arrêt | nombre | Non | 5000 | Définit le délai d'expiration en millisecondes pour la fonction de contrôleur stop ou la commande personnalisée axeWatcherStop (dans Cypress). |