Referência de API para a versão JavaScript e TypeScript do Watcher
A Referência de API para o pacote @axe-core/watcher
Este guia de referência descreve as APIs fornecidas pelo pacote @axe-core/watcher (também referido como Axe Watcher ou apenas Watcher) para JavaScript e TypeScript.
Interface AxeConfiguration
A propriedade axe (um parâmetro passado para o funções de configuração) é o meio usual de alterar seu AxeConfiguration para que o Axe Watcher configure o teste de acessibilidade. As seguintes propriedades estão contidas em AxeConfiguration:
| Nome | Tipo | Obrigatório | Descrição | |
|---|---|---|---|---|
apiKey |
string (contendo um UUID) |
sim | Sua chave secreta de API pessoal. | |
autoAnalyze |
boolean |
não | Indica se o Watcher irá realizar automaticamente uma análise de acessibilidade na sua página. O valor padrão é true. |
|
buildID |
string |
não | O valor padrão é null, que é recomendado para execuções de teste em um único processo (não paralelizadas). Para execuções de teste em paralelo, todos os trabalhadores devem ter a mesma string buildID, não nula. |
|
configurationOverrides |
ConfigurationOverrides |
não | Permite que configurações globais seja substituído. | |
elementInternals |
boolean |
não | Ativa o suporte a ElementInternals para elementos personalizados. Quando true, o Watcher coleta funções ARIA e propriedades definidas via a API ElementInternals, reduzindo falsos positivos em páginas que utilizam elementos personalizados com attachInternals(). Requer a versão 4.12.0 ou superior do axe-core. O valor padrão é false. |
|
excludeUrlPatterns |
string[] |
não | Exclui URLs que correspondem aos padrões minimatch especificados de serem escaneados. | |
git |
`boolean | GitConfig` | não | Controla a coleta de metadados do Git. O valor padrão é true (detecção automática). Defina como false para desativar ou forneça um objeto GitConfig para fornecer metadados explícitos. |
projectId |
string (contendo um UUID) |
sim | O ID do projeto para receber os resultados das execuções de teste do Watcher. | |
runContext |
axe.ElementContext |
não | Passado para axe-core. | |
runOptions |
RunOptions |
não | Passado para axe-core. | |
serverURL |
string |
não | O servidor do Axe Developer Hub para enviar resultados. Defina isso se sua organização usar uma instância regional, nuvem privada ou implantação local. O padrão é https://axe.deque.com. |
|
sessionId |
string |
não | **Obsoleto**. ID da sessão desta instância. É improvável que você precise mudar este valor. Consulte buildId em vez disso. |
|
testingTypes |
string[] |
não | Para uso com Cypress para especificar testes de componentes ou e2e (ou ambos) | |
timeout |
Timeouts |
não | Um objeto Timeouts que representa milissegundos até que os métodos especificados **Controlador** expirem e falhem. |
apiKey
(Obrigatório) O valor apiKey é uma das duas propriedades (apiKey e projectId) que devem ser definidas no seu AxeConfiguration. Você pode obter seu valor na página Gerenciar Chaves de API .
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY
}autoAnalyze
(Opcional) Defina este valor como false para impedir que as páginas sejam analisadas automaticamente. Para mais informações sobre o modo manual, consulte Controle Seus Escaneamentos.
axe: {
autoAnalyze: false
}buildID
(Opcional) A propriedade buildID, quando não é null, permite que executores de teste paralelos gerem resultados que aparecem como uma única execução de teste no Axe Developer Hub. No caso de execuções de teste paralelas, cada executor de teste deve compartilhar a mesma string buildID, não nula, o que faz com que cada execução de teste concatene seus resultados com os resultados existentes para o mesmo buildID e SHA do commit do Git. No entanto, quando buildID é null, múltiplas execuções de teste **sobrescrevem** os resultados existentes que têm o mesmo SHA do commit do Git.
Veja Executando Testes em Paralelo para mais informações sobre como usar buildID com vários provedores de integração contínua.
axe: {
buildID: process.env.CI_BUILD_ID
}configurationOverrides
(Opcional) Substitui valores definidos no configuração global. Veja o Interface de Sobrescrita de Configuração para mais informações.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA',
bestPractices: true
}
}elementInternals
O suporte a ElementInternals é experimental no axe-core e está sujeito a alterações. Veja o documentação axe-core ElementInternals para as limitações atuais e o status do desenvolvimento.
(Opcional) Quando true, o Watcher coleta funções ARIA e propriedades definidas via a API ElementInternals de elementos personalizados que usam attachInternals(). Isso reduz falsos positivos em páginas que usam elementos personalizados para componentes interativos. Requer a versão 4.12.0 ou superior do axe-core.
axe: {
elementInternals: true
}excludeUrlPatterns
(Opcional) Impede que qualquer URL que corresponda a qualquer um dos padrões minimatch no array excludeUrlPatterns seja analisado.
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}Em Excluir URLs da Análise você pode encontrar uma tabela de URLs e exemplos de padrões para verificar correspondências.
git
(Opcional) Controla como o Watcher coleta metadados do Git para a execução atual do teste. Aceita um dos três valores:
true(padrão): Watcher coleta automaticamente as informações do Git (ramo, SHA do commit, autor e outros campos) usando o binário local do Git.false: Desativa toda a coleta de metadados do Git. Use isso ao executar em ambientes sem Git ou quando a coleta de dados do Git não for necessária.- Um objeto
GitConfig: Fornece metadados explícitos do Git e pula completamente a detecção automática. Qualquer campo que você omita será padrão paranull. Use isso quando seus testes forem executados em um repositório separado do repositório em teste, ou em ambientes de CI onde a detecção automática do Git seja pouco confiável.
Veja Fornecendo Metadados do Git para mais informações.
O objeto GitConfig possui os seguintes campos:
| Campo | Tipo | Gitful | Descrição |
|---|---|---|---|
branch |
string |
sim | Nome do ramo atual |
commitAuthor |
string |
não | Nome de exibição do autor. Se omitido, o autor aparece como indisponível no Axe Developer Hub. |
commitEmail |
string |
não | Endereço de e-mail do autor. |
commitMessage |
string |
não | Mensagem completa de commit. Se omitida, a mensagem de commit aparece como indisponível no Axe Developer Hub. |
commitSha |
string |
sim | Hash de commit completo ou abreviado |
defaultBranch |
string |
não | Nome do branch padrão (por exemplo, main). Sem este campo, o Axe Developer Hub não pode identificar qual branch é o padrão, portanto, comparações de features branch contra o branch padrão não estarão disponíveis. |
isDirty |
boolean |
não | true se existirem alterações não comprometidas. O padrão é false quando omitido. |
tag |
string |
não | Tag atual (por exemplo, v1.2.3) |
url |
string |
sim | URL remoto do repositório |
branch, commitSha e url são os campos gitful: uma sessão submetida sem todos os três é registrada como sem git e salva, mas o Axe Developer Hub muda para a visualização de sessão sem git, onde o histórico de branch e de commit de sessões anteriores não estará visível. Enviar uma sessão subsequente com todos os três campos restaura a visualização gitful. Se apenas um ou dois dos três estiverem presentes, o Axe Watcher descarta todos os campos gitful, registra a sessão como sem git e inclui um aviso na resposta.
Exemplo usando variáveis de ambiente de CI para fornecer metadados explícitos do Git:
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
(Obrigatório) Especifica o ID do projeto que receberá os resultados de acessibilidade do Watcher. Seu ID de projeto é mostrado com as instruções ao criar um novo projeto, e você também pode obtê-lo na página de Projetos doAxe Developer Hub .
axe: {
projectId: process.env.AXE_PROJECT_ID
}runContext
(Opcional) Permite escolher quais elementos serão incluídos e excluídos da análise de acessibilidade da sua página.
Quando você usa runContext para selecionar elementos a serem incluídos na sua análise (via um único seletor CSS, um array de seletores CSS, ou usando a propriedade include), o Axe Developer Hub analisa apenas os elementos selecionados pelos seletores CSS. Portanto, se nenhum elemento for selecionado (devido a um erro de digitação em um seletor de classe CSS, por exemplo), nada será analisado e, mais importante, nenhum estado da página será capturado.
O valor de runContext pode ser:
-
Um único seletor CSS para elementos a serem incluídos na análise:
axe: { runContext: '.main' } -
Um array de seletores CSS para elementos a serem incluídos na análise:
axe: { runContext: [ '.main', '.text-block' ] } -
Um objeto de contexto contendo propriedades
includeeexclude(como mostrado no exemplo acima). Você pode especificarincludeouexcludeou ambos. Cadaincludeouexcludepode ser um único seletor CSS ou um array de seletores CSS:axe: { runContext: { include: '.main', exclude: '.ad-section' } }
Mais detalhes estão disponíveis em Documentação do Contexto do axe-core.
runOptions
(Opcional) O objeto runOptions permite o seguinte subconjunto de propriedades do tipo Options do axe-core:
-
ancestry: O padrão éfalse. Setrue, os seletores CSS retornados incluem os elementos ancestrais dos elementos retornados.importantSe sua página usa IDs ou classes dinâmicas (IDs de elementos ou classes que mudam sempre que a página é recarregada), você deve especificar
ancestrycomotruepara que o Axe Developer Hub possa detectar e rastrear adequadamente se problemas de acessibilidade são duplicados porque, por padrão, o Axe Developer Hub espera que os IDs e classes dos elementos permaneçam os mesmos entre execuções de teste.Quando
ancestryétrue, o Axe Developer Hub em vez disso usa a posição do elemento dentro da árvore DOM para localizar o mesmo elemento entre execuções de testes.O seguinte mostra um exemplo de um seletor quando
ancestryéfalsepara um elemento iframe com um ID de *main-iframe* (<iframe id="main-iframe" ...>):iframe#main-iframeSe
ancestryfortrue, o seletor incluiria todo o caminho desde o elemento raiz, e não há IDs ou classes especificadas:html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe -
runOnly: Isso permite limitar quais regras são executadas, especificando nomes ou tags. VejarunOnlyabaixo para mais informações. -
rules: Ativar ou desativar regras usando a propriedadeenabled. Vejarulesabaixo para mais informações.
O seguinte mostra um exemplo de runOptions:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: [ 'wcag2a' ]
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}runOnly
Usar runOnly é considerado uso avançado e, se você usar runOnly (ou rules), você receberá um aviso.
Você não pode usar ambos, runOptions.runOnly e configurationOverrides. Caso contrário, você receberá um erro.
O valor runOnly (parte do objeto runOptions) pode ser um dos seguintes:
-
Uma string representando o ID da regra que você gostaria de usar para análise de acessibilidade:
axe: { runOptions: { runOnly: 'ruleId' } } -
Um array de strings representando os IDs das regras que você gostaria de usar:
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } } -
Um objeto com as propriedades
typeevalues. O valortypeé uma string que pode serrule,rules,tagoutags. A propriedadevaluesdeve ser um array de strings representando a(s) regra(s) ou etiqueta(s) que você gostaria de usar para análise de acessibilidade. O exemplo a seguir mostra o uso do objetorunOnlypara limitar os testes de acessibilidade a regras marcadas comowcag2a:axe: { runOptions: { runOnly: { type: 'tag', values: [ 'wcag2a' ] } } }
- Para mais exemplos de uso de
runOnly(com axe-core), veja Exemplos do Parâmetro de Opções - Para mais informações sobre valores de etiquetas disponíveis, veja Etiquetas do axe-core.
- Para informações sobre as regras, IDs das regras e etiquetas, veja Descrições das Regras
rules
O valor rules (no objeto runOptions) permite que você ative (enabled: true) ou desative (enabled: false) regras específicas durante a análise, conforme mostrado abaixo:
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}serverURL
(Opcional) A URL do servidor do Axe Developer Hub para o qual o Watcher envia os resultados de acessibilidade. O padrão é https://axe.deque.com.
Você não precisa definir este valor se o seu projeto foi criado em axe.deque.com. No entanto, se a sua organização usar uma instância regional, nuvem privada ou implementação local do Axe Developer Hub, defina serverURL para a URL base dessa instância:
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
(Opcional) A propriedade sessionId foi descontinuada e não deve ser usada. Veja buildID acima.
testingTypes
(Opcional) A propriedade testingTypes é um array de strings para uso com Cypress para especificar teste de componentes ou fim a fim (e2e) (ou ambos).
axe: {
testingTypes: ['e2e', 'component']
}timeout
(Opcional) O objeto timeout (do tipo Timeouts) em AxeConfiguration define os valores de timeout em milissegundos para os respectivos métodos do controlador (ou comandos personalizados para Cypress). (Veja o Classes de Controladores para informações sobre as classes do controlador e o Comentários Customizados do Cypress para informações sobre comandos personalizados do Cypress.) Quando um timeout expira, o teste falha com uma mensagem indicando que o timeout foi excedido. Você pode aumentar o timeout para evitar o erro.
Esses valores de timeout são independentes do framework de teste que você está usando, e você também pode precisar aumentar os valores de timeout para esse framework.
Este exemplo define o timeout de analyze para 8 segundos, flush para 15 segundos, start para 10 segundos, e stop para 10 segundos. (Os valores padrão são mostrados na tabela em Interface Timeouts.)
axe: {
timeout: {
analyze: 8000,
flush: 15000,
start: 10000,
stop: 10000,
}
}Funções de Configuração
As funções de configuração fornecidas pelo Watcher permitem que você modifique sua configuração para o framework de teste especificado, assim como adapte como você deseja executar o Watcher para atender suas necessidades. Veja Interface AxeConfiguration para mais informações.
| Framework de Teste | Função de Configuração |
|---|---|
| Cypress | cypressConfig |
| **Playwright** | playwrightConfig |
| **Playwright Test** | playwrightTest |
| Puppeteer | puppeteerConfig |
| **WebdriverIO** | wdioConfig |
| **WebdriverIO Testrunner** | wdioTestRunner |
| WebDriverJS | webdriverConfig |
cypressConfig
Cria uma configuração para o Cypress.
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptionsParâmetros cypressConfig
-
config:Cypress.ConfigOptions & ConfigurationTipo de interseção de
Cypress.ConfigOptionseConfiguration.
Retornos: Cypress.ConfigOptions
Exemplo cypressConfig
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
Cria uma configuração para o Playwright.
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptionsParâmetros playwrightConfig
-
opts:Configuration & LaunchOptionsTipo de interseção de
LaunchOptionseConfiguration.
Retornos: LaunchOptions
Exemplo playwrightConfig
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
Cria uma configuração para o Playwright Test.
playwrightTest(options: Options): ReturnValueParâmetros playwrightTest
-
options:OptionsOptionsé um tipo de interseção deConfigurationeLaunchOptions.
Retornos: ReturnValue
Exemplo playwrightTest
// 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
Cria uma configuração para o Puppeteer.
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): OptionsParâmetros puppeteerConfig
-
opts:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptionsTipo de interseção de
LaunchOptions,BrowserLaunchArgumentOptions,BrowserConnectOptionseConfiguration.
Retornos: Options
Exemplo puppeteerConfig
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
Cria uma configuração do WebdriverIO.
wdioConfig({ axe, ...options}: Options): RemoteOptionsParâmetros wdioConfig
-
arg:OptionsOptionsé um tipo de interseção deRemoteOptionseConfiguration.
Retornos: RemoteOptions
Exemplo wdioConfig
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
Cria uma configuração do WebdriverIO Testrunner.
wdioTestRunner(...params: unknown[]): Options.TestrunnerParâmetros wdioTestRunner
-
params:unknown[]O valor
paramsé um dos seguintes:- Um array contendo um valor, que é um tipo de interseção de
Options.TestrunnereConfiguration. - Um array onde o primeiro valor do array é um
AxeConfiguratione o segundo valor é umOptions.Testrunner.
- Um array contendo um valor, que é um tipo de interseção de
Retornos: Options.Testrunner
Exemplo wdioTestRunner
import { wdioTestRunner } from '@axe-core/watcher/wdio'
export const config = wdioTestRunner({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})webdriverConfig
Cria uma configuração Selenium WebDriver.
webdriverConfig(arg: WebDriverArgs): OptionsParâmetros webdriverConfig
-
arg:WebDriverArgsUm
Configurationestendido para incluir um membroOptionsdo Selenium WebDriver.
Retornos: Options
webdriverConfig Exemplo
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 Interface
A interface Configuration é usada com o funções de configuração e contém uma propriedade:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
axe |
AxeConfiguration |
sim | O AxeConfiguration a ser passado para a função de configuração do seu framework de teste. |
Todos os funções de configuração usam esta propriedade axe para permitir configurar o Watcher e configurar seus testes de acessibilidade. Veja a seção Interface AxeConfiguration acima para mais informações.
ConfigurationOverrides Interface
A interface ConfigurationOverrides permite que você substitua as configurações globais da sua organização para execuções de teste individuais. Esta propriedade deve ser usada de acordo com as permissões definidas na configuração global da sua empresa.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
accessibilityStandard |
string |
não | O padrão de acessibilidade a ser seguido |
axeCoreVersion |
string |
não | Indica qual versão do axe-core deve ser usada. |
bestPractices |
boolean |
não | Especifica se deve seguir as regras de melhores práticas. |
experimentalRules |
boolean |
não | Se deve seguir as regras experimentais |
accessibilityStandard
Define o padrão de acessibilidade a ser testado. Opções disponíveis:
- „All“ - Testa contra todos os padrões disponíveis
- „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 versão 4 (padrão de acessibilidade francês; requer axe-core 4.11.0 ou posterior)
Sua organização deve permitir a substituição desta configuração na configuração global, e o padrão selecionado deve estar entre as opções permitidas.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA'
}
}axeCoreVersion
Especifica qual versão do axe-core usar para teste. As opções disponíveis incluem:
- „latest“ - Última versão suportada atualmente incluída com o Axe Watcher
- Versões específicas a partir da 4.4.0 e posteriores (por exemplo, „4.10.2“, „4.9.1“, etc.)
Sua organização deve permitir a substituição desta configuração na configuração global, e a versão selecionada deve estar entre as opções permitidas.
axe: {
configurationOverrides: {
axeCoreVersion: 'latest'
}
}bestPractices
Ativa ou desativa regras de melhores práticas para a execução do teste. As melhores práticas melhoram a acessibilidade, mas não fazem parte dos padrões formais. Sua organização deve permitir a substituição desta configuração para que ela tenha efeito.
axe: {
configurationOverrides: {
bestPractices: true
}
}experimentalRules
Ativa ou desativa regras experimentais para a execução do teste. As regras experimentais ainda estão em desenvolvimento e podem produzir falsos positivos. Sua organização deve permitir a substituição desta configuração na configuração global para que ela tenha efeito.
axe: {
configurationOverrides: {
experimentalRules: true
}
}Controller Classes
As seguintes classes estendem a classe abstrata Controller para permitir que você controle manualmente a análise de acessibilidade das páginas do seu site.
| Frameworks de Teste | Nome |
|---|---|
| Playwright e Playwright Test | PlaywrightController |
| Puppeteer | PuppeteerController |
| WebdriverIO e WebdriverIO Testrunner | WdioController |
| WebDriverJS | WebdriverController |
Para Cypress, os métodos nas classes *Controller são implementados como comandos personalizados. Veja Comandos Personalizados de Controlador para Cypress para mais informações.
Controller
abstract class ControllerA classe abstrata Controller contém os métodos para controlar a análise de páginas. Cada uma das classes concretas estende essa classe, então os seguintes métodos estão disponíveis em todas as classes concretas.
Contexto de frame: Se seu teste muda o contexto do navegador para um frame filho usando switchToFrame() (WebdriverIO ou WebDriverJS), o Axe Watcher não capturará estados de página para ações realizadas enquanto estiver no frame filho. O Axe Watcher só pode analisar o frame de nível superior. Volte para o frame de nível superior (por exemplo, usando switchToParentFrame() no WebdriverIO ou driver.switchTo().defaultContent() no WebDriverJS) para retomar a captura de estados de página. Veja Nenhum Estado de Página Capturado Após Mudar para um Frame Filho para mais informações.
analyze
analyze(): Promise<void>Analisa a página atual em busca de erros de acessibilidade. Você chama esse método após configurar uma página da web para análise (como inserir valores em um formulário) e desativar a análise automática usando o método stop ou configurando autoAnalyze para false.
analyze Retorna
Promise<void>
analyze Exemplo
await controller.analyze()analyze Comando equivalente do Cypress
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>Envia todos os resultados da varredura de acessibilidade para o Axe Developer Hub. Deve ser chamado ao final da execução do teste para garantir que os resultados tenham sido enviados aos servidores do Axe Developer Hub da Deque.
flush Retorna
Promise<void>
flush Exemplo
await controller.flush()flush Comando equivalente do Cypress
cy.axeWatcherFlush()
start
start(): Promise<void>Retoma a análise automática de páginas da web. Você chama este método quando deseja retomar a análise automática de páginas da web em busca de erros de acessibilidade.
start Retorna
Promise<void>
start Exemplo
await controller.start()start Comando equivalente do Cypress
cy.axeWatcherStart()
stop
stop(): Promise<void>Interrompe a análise automática de páginas da web. Depois de chamar o método stop, você pode fazer qualquer configuração adicional que sua página da web possa exigir e então chamar o método analyze para verificar a página em busca de erros de acessibilidade.
stop Retorna
Promise<void>
stop Exemplo
await controller.stop()stop Comando equivalente do Cypress
cy.axeWatcherStop()
PlaywrightController
A classe PlaywrightController permite que você controle manualmente a análise de acessibilidade para execuções de teste com Playwright e Playwright Test. Você pode iniciar e interromper a análise automática de acessibilidade e analisar páginas que requerem configuração adicional.
Para mais informações sobre o Playwright, veja o Documentação do Playwright.
Construtor
new PlaywrightController(driver: Page): PlaywrightControllerParâmetros
driver:Page
O valor driver é um objeto de Page do Playwright.
Retorna PlaywrightController
PlaywrightController Exemplo
import { PlaywrightController, wrapPlaywrightPage } from '@axe-core/watcher/playwright'
let page = await browserContext.newPage()
const controller = new PlaywrightController(page)
page = wrapPlaywrightPage(page, controller)Veja Controller para os métodos implementados na classe base abstrata.
PuppeteerController
A classe PuppeteerController permite o controle manual de suas execuções de teste com Puppeteer. O controle manual permite que você forneça a configuração adicional exigida por páginas da web mais complexas.
Para mais informações sobre o Puppeteer, veja Puppeteer.
Construtor
new PuppeteerController(driver: Page): PuppeteerControllerParâmetros
driver:Page
O valor driver é um objeto de Page do Puppeteer.
Retorna PuppeteerController
PuppeteerController Exemplo
import { PuppeteerController, wrapPuppeteerPage } from '@axe-core/watcher/puppeteer'
let page = await browser.newPage()
const controller = new PuppeteerController(page)
page = wrapPuppeteerPage(page, controller)Veja Controller para os métodos implementados na classe base abstrata.
WdioController
O WdioController permite que você controle manualmente as execuções de teste do WebdriverIO e do WebdriverIO Testrunner. Para páginas que requerem configuração ou ajustes adicionais, você pode interromper o teste automático e analisar manualmente cada página que exija tal configuração.
Construtor
new WdioController(driver: Browser): WdioControllerParâmetros
driver:Browser
Retorna WdioController
WdioController Exemplo
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)Veja Controller para os métodos implementados na classe base abstrata.
WebdriverController
Construtor
new WebdriverController(driver: WebDriver): WebdriverControllerParâmetros
driver:WebDriver
O valor driver é um objeto de WebDriver do Selenium.
Retorna WebdriverController
WebdriverController Exemplo
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)Veja Controller para os métodos implementados na classe base abstrata.
Comandos Personalizados do Cypress
Na plataforma de automação de navegador Cypress, os métodos nas classes *Controller são implementados como comandos personalizados. Veja Comandos Personalizados no site de documentação do Cypress para mais informações sobre a implementação e o uso de comandos personalizados.
Os seguintes comandos personalizados são implementados. Cada comando personalizado retorna Chainable<void> para permitir o encadeamento com outros comandos do Cypress.
| Método do Controlador | Comando Personalizado Equivalente do Cypress |
|---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
A partir do Watcher 3.9.0, os quatro comandos personalizados do Cypress axeAnalyze(), axeFlush(), axeStart() e axeStop() foram descontinuados e não devem ser usados.
Se você estiver usando o pacote @axe-devtools/cypress com o Watcher, será necessário atualizar para pelo menos a versão 3.9.0 do Watcher, porque os comandos personalizados descontinuados conflitam com os comandos personalizados em @axe-devtools/cypress.
Exemplo de Comando Cypress
O exemplo a seguir mostra como importar os comandos Cypress do Axe Developer Hub a partir do pacote @axe-core/watcher e então chamar o comando axeWatcherFlush no final de cada teste (colocando-o dentro de afterEach()):
// Import the axe-watcher commands.
require('@axe-core/watcher/cypress/support')
// Flush Axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})Interface de Timeouts
O objeto objeto timeout (do tipo Timeouts) no AxeConfiguration permite que os usuários alterem os valores de timeout (em milissegundos) para as funções do controlador respectivas ou para os comandos personalizados do Cypress.
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}| Nome | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| **analisar** | número | não | 5000 | Define o timeout em milissegundos para a função do controlador **analisar** ou o comando personalizado **axeWatcherAnalyze** (no Cypress). |
| **descarregar** | número | não | 5000 | Define o timeout em milissegundos para a função do controlador **descarregar** ou o comando personalizado **axeWatcherFlush** (no Cypress). |
| **iniciar** | número | não | 2000 | Define o timeout em milissegundos para a função do controlador **iniciar** ou o comando personalizado **axeWatcherStart** (no Cypress). |
| **parar** | número | não | 5000 | Define o timeout em milissegundos para a função do controlador **parar** ou o comando personalizado **axeWatcherStop** (no Cypress). |
