Visão Geral das APIs do Java Watcher
Informações sobre as APIs oferecidas pelo Java Watcher e como usá-las
A integração do Axe Watcher com Java fornece um SDK abrangente para adicionar testes automatizados de acessibilidade aos conjuntos de testes Selenium Java. Esta integração analisa automaticamente páginas da web em busca de problemas de acessibilidade e envia os resultados para o Axe Developer Hub para rastreamento e análise.
Componentes Principais
Classes Principais
AxeWatcher - O ponto de entrada principal para a integração. Esta classe lida com a configuração das opções do navegador e o encapsulamento de instâncias de WebDriver para permitir testes de acessibilidade.
AxeWatcherOptions - Classe de configuração que define como o axe Watcher opera, incluindo chaves de API, URLs de servidor, IDs de build para testes em paralelo e vários comportamentos de teste.
ConfigurationOverrides - Permite substituir as configurações globais de acessibilidade, incluindo padrões de acessibilidade (WCAG 2.1 AA, WCAG 2.2 AA, etc.), melhores práticas e regras experimentais.
Integração com o Driver
AxeWatcherDriver - Interface que estende o Selenium WebDriver padrão para fornecer acesso à funcionalidade de testes de acessibilidade por meio do axeWatcher() método.
AxeWatcherController - Oferece controle detalhado sobre quando e como a análise de acessibilidade ocorre, com métodos para iniciar, parar, analisar e limpar resultados de testes.
Classes de Configuração
Opções de Runtime
AxeRunOptions - Controla o comportamento avançado de runtime do motor axe-core, incluindo configurações de regras e informações de ancestralidade para violações.
AxeRunOnly - Limita quais regras de acessibilidade são executadas especificando IDs de regra ou tags (por exemplo, "wcag21aa", "melhores práticas").
AxeRunContext - Define o escopo do teste, incluindo ou excluindo elementos DOM específicos usando seletores CSS.
AxeRuleOptions - Permite ativar ou desativar regras individuais de acessibilidade pelo ID da regra.
Uso
Configuração Básica
// Configure options
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")); // Required. Store in an environment variable for easy updates.
// Create watcher and configure Chrome
AxeWatcher watcher = new AxeWatcher(options);
ChromeOptions chromeOptions = watcher.configure(new ChromeOptions());
ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);
// Wrap driver for accessibility testing
WebDriver driver = watcher.wrapDriver(chromeDriver);
// Access the controller for manual control
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Configuração Avançada
Padrões de Acessibilidade Personalizados
ConfigurationOverrides overrides = new ConfigurationOverrides()
.setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA)
.setEnableBestPractices(true)
.setEnableExperimental(false);
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setConfigurationOverrides(overrides);Execução Seletiva de Regras
// Run only specific accessibility tags
AxeRunOnly runOnly = new AxeRunOnly()
.setType("tag")
.setValues(Arrays.asList("wcag21aa", "best-practice"));
AxeRunOptions runOptions = new AxeRunOptions()
.setRunOnly(runOnly)
.setAncestry(true);
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setRunOptions(runOptions);Teste com Escopo
// Include only specific elements
AxeRunContext context = new AxeRunContext()
.setInclude(Arrays.asList("#main-content", ".form-section"))
.setExclude(Arrays.asList("#header", "#footer"));
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY")) // Required. Secret stored in an environment variable.
.setProjectId(System.getenv("PROJECT_ID")) // Required. Store in an environment variable for easy updates.
.setRunContext(context);Restrições Importantes
- Opções Mutuamente Exclusivas: Não é possível usar ambos
ConfigurationOverrides.accessibilityStandardeAxeRunOptions.runOnlysimultaneamente - Limitações do Navegador: Não suporta modo totalmente headless ou modo incognito
- Ordem dos Métodos: É necessário chamar
configure()antes de criar o ChromeDriver, ewrapDriver()depois - Limpeza de Resultados: Sempre chame
controller.flush()na desmontagem do teste para garantir que os resultados sejam enviados para o Axe Developer Hub - Limitações de Frames: Os métodos do controlador não funcionam dentro de iframes ou em páginas não HTTP(S)
Esta integração oferece modos de teste automáticos e manuais, permitindo que as equipes integrem perfeitamente testes abrangentes de acessibilidade em suítes de testes Selenium Java existentes com mínimas alterações de código.
