Referência da API Python do axe-devtools-api
Referência da API para o pacote Python axe-devtools-api para injetar e executar o axe-core
Fornece uma API com a qual é possível injetar e executar o axe-core em uma página web.
axe_devtools_api.Axe
Configura como o axe-core é executado e o executa na página.
report = Axe(page).with_rules("document-title", "label").analyze()Axe(page, report_configuration=None, axe_source=None)
Inicialize uma instância de Axe com um adaptador de navegador e configuração opcional.
page: Um adaptador de navegador, como uma instância de AxeDriver de axe-devtools-selenium.
report_configuration: Opcional. Um objeto de configuração de relatório.
axe_source: Opcional. Uma string do código-fonte do axe-core para usar em vez da versão incorporada.
analyze()
Injete o axe-core na página e execute a análise de acessibilidade.
Retorna um objeto Results. Veja Gerando Relatórios com Python para a API completa de Results e como configurar os metadados dos relatórios.
report = Axe(page).analyze()including(*selector)
Especifique a parte da página para o axe-core analisar. Para analisar várias partes não relacionadas da página, chame including() uma vez para cada uma delas, passando um único seletor cada vez.
selector: Um único seletor CSS para os elementos a incluir. Passar mais de um seletor em uma única chamada é sempre interpretado como um seletor de iframe, em vez de inclusões separadas: cada seletor, exceto o último, corresponde a um nível de aninhamento de iframe, e o último corresponde ao elemento a ser analisado dentro do iframe mais interno.
Retorna este objeto para encadeamento.
# Analyze .sidebar and .some-class, which are both in the top-level document
report = Axe(page).including(".sidebar").including(".some-class").analyze()
# Analyze .some-class inside the iframe matched by .sidebar-frame
report = Axe(page).including(".sidebar-frame", ".some-class").analyze()Para alcançar um elemento dentro de uma shadow root, passe um único dicionário fromShadowDom em vez de um seletor CSS. Todos os seletores na lista, exceto o último, correspondem a um host shadow; o último corresponde ao elemento a ser analisado dentro do shadow root mais interno.
# Analyze #shadow-button inside the shadow root attached to #shadow-host
report = Axe(page).including({"fromShadowDom": ["#shadow-host", "#shadow-button"]}).analyze()Um dicionário fromFrames é o equivalente explícito do seletor de iframe mostrado acima e é a forma recomendada para novos testes.
# Analyze the form inside the #payment-frame iframe
report = Axe(page).including({"fromFrames": ["#payment-frame", "form"]}).analyze()Os dois podem ser combinados para alcançar um iframe que reside dentro de uma shadow root. O dicionário fromShadowDom deve ser aninhado dentro da lista fromFrames; o contrário causa um erro.
# Analyze the form inside the iframe matched by #shadow-frame, which is inside the
# shadow root attached to #shadow-host
report = Axe(page).including({
"fromFrames": [
{"fromShadowDom": ["#shadow-host", "#shadow-frame"]},
"form",
]
}).analyze()excluding(*selector)
Especifique a parte da página para o axe-core ignorar durante a análise. Para ignorar várias partes não relacionadas da página, chame excluding() uma vez para cada uma delas, passando um único seletor cada vez.
selector: Um único seletor CSS para os elementos a excluir. Passar mais de um seletor em uma única chamada é sempre interpretado como um seletor de iframe, em vez de exclusões separadas: cada seletor, exceto o último, corresponde a um nível de aninhamento de iframe, e o último corresponde ao elemento a ser ignorado dentro do iframe mais interno.
Retorna este objeto para encadeamento.
# Skip .third-party-ad and .cookie-banner, which are both in the top-level document
report = Axe(page).excluding(".third-party-ad").excluding(".cookie-banner").analyze()
# Skip .third-party-ad inside the iframe matched by .iframe1
report = Axe(page).excluding(".iframe1", ".third-party-ad").analyze()Assim como including(), um único dicionário fromShadowDom ou fromFrames pode ser passado no lugar de um seletor CSS, e os dois podem ser aninhados. Veja including() para a descrição completa dessas formas.
# Skip #shadow-button inside the shadow root attached to #shadow-host
report = Axe(page).excluding({"fromShadowDom": ["#shadow-host", "#shadow-button"]}).analyze()
# Skip the form inside the #payment-frame iframe
report = Axe(page).excluding({"fromFrames": ["#payment-frame", "form"]}).analyze()with_rules(*rules)
Especifique regras (por ID) para o axe-core executar. Apenas as regras especificadas são usadas. Esta opção é incompatível com with_tags.
rules: Um ou mais IDs de regras. Veja Descrições de Regras para uma lista de IDs válidos.
Retorna este objeto para encadeamento.
Levanta RuntimeError se chamado junto com with_tags na mesma instância.
report = Axe(page).with_rules("document-title", "label").analyze()with_tags(*tags)
Especifique regras (por tag) para o axe-core executar. Apenas as regras especificadas são usadas. Esta opção é incompatível com with_rules.
tags: Um ou mais nomes de tags. Veja etiquetas do axe-core para uma lista de tags válidas.
Retorna este objeto para encadeamento.
Levanta RuntimeError se chamado junto com with_rules na mesma instância.
report = Axe(page).with_tags("best-practice", "wcag2a").analyze()disabling_rules(*rules)
Desative regras específicas da execução do axe-core.
rules: Um ou mais IDs de regras.
Retorna este objeto para encadeamento.
report = Axe(page).disabling_rules("html-has-lang", "label").analyze()run_options(options)
Especifique opções de execução para passar para o axe-core ao chamar axe.run.
options: Objeto de opções para passar ao axe-core.
Retorna este objeto para encadeamento.
options = {"iframes": False}
report = Axe(page).run_options(options).analyze()configure(spec)
Configure o axe-core via axe.configure.
spec: Objeto spec para passar para axe.configure.
Retorna este objeto para encadeamento.
report = Axe(page).configure(spec).analyze()without_iframe_sandboxes()
Remova o atributo sandbox dos iframes para que o axe-core possa ser executado dentro deles.
Retorna este objeto para encadeamento.
report = Axe(page).without_iframe_sandboxes().analyze()with_config_file(config_path)
Defina o caminho para um arquivo de configuração de conjunto de regras. O caminho padrão é config/axe-ruleset.json, ou o valor da variável de ambiente $AXE_RULESET_PATH se definido.
config_path: Caminho para o arquivo de configuração.
Retorna este objeto para encadeamento.
report = Axe(page).with_config_file("path/to/file.json").analyze()with_ruleset(ruleset_id, enable_best_practices=False)
Use um conjunto de regras específico para a execução do axe-core.
ruleset_id: ID do conjunto de regras a ser usado. Conjuntos de regras disponíveis: wcag2, wcag2.1, wcag2.2, wcag2aaa, wcag2.1aaa, wcag2.2aaa, 508, en301549, ttv5, rgaav4.
enable_best_practices: Se as regras marcadas como best-practice devem ser ativadas. O padrão é False.
Retorna este objeto para encadeamento.
report = Axe(page).with_ruleset("508").analyze()set_legacy_mode(state=True)
Use axe.run em vez de axe.runPartial. Traz implicações de origem cruzada.
state: Se o modo legado deve ser ativado. O padrão é True.
Retorna este objeto para encadeamento.
report = Axe(page).set_legacy_mode().analyze()Serviço de Uso
Obtenha informações sobre as tendências de uso do Axe DevTools dentro da sua organização. Por padrão, o serviço de uso está habilitado e faz relatórios para https://usage.deque.com. Defina a variável de ambiente AXE_TRACK_USAGE para false para desativá-lo.
Variáveis de ambiente do serviço de uso
Essas variáveis de ambiente permitem configurar o serviço de uso e alterar as propriedades dos eventos relatados.
| Nome | Tipo | Pode Sobrescrever | Descrição |
|---|---|---|---|
AXE_DISTINCT_ID |
String | — | Um identificador UUID que permanece o mesmo para o usuário logado (a menos que seja regenerado). Em Ruby, essa variável é chamada de DEQUE_DISTINCT_ID. |
AXE_INCLUDE_TEST_RESULTS |
Boolean | — | Defina como true para incluir os resultados completos do axe-core no objeto testResults de cada evento (o padrão é false). Suportado apenas pelo CLI e pelas APIs do Node.js. |
AXE_METRICS_URL |
String | — | A URL do endpoint de uso REST (o padrão é https://usage.deque.com) |
AXE_TRACK_USAGE |
Boolean | — | Defina como false para desativar o relatório do serviço de uso. O relatório está ativado por padrão. |
AXE_APPLICATION |
String | false | O aplicativo que foi utilizado para verificar erros de acessibilidade |
AXE_DEV_INSTANCE |
Boolean | true | Indica se este evento é resultante das ações de um desenvolvedor de software. Útil para marcar e posteriormente remover eventos registrados durante o desenvolvimento ou teste. |
AXE_DEPARTMENT |
String | true | O departamento do usuário dentro da organização |
AXE_KEYCLOAK_ID |
String | false | O ID Keycloak do usuário |
AXE_LOGGED_IN |
Boolean | false | Registra se o usuário está logado na aplicação em teste |
AXE_ORGANIZATION |
String | true | A organização do usuário. Para que seu uso apareça nos Relatórios Axe, defina isso para o ID da sua organização (entre em contato com a Deque para obtê-lo). |
AXE_SESSION_ID |
String | false | Um UUID identificando a sessão do usuário |
AXE_USER_ID |
String | false | A identidade de um usuário específico, como um endereço de e-mail, nome ou ID de login. Os Relatórios Axe contam usuários únicos a partir deste valor. |
AXE_USER_JOB_ROLE |
String | false | O cargo do usuário |
AXE_USER_STATUS |
String | false | Informações de status que você deseja associar ao usuário |
enable_tracking(state)
Escolha optar por enviar ou não dados para o serviço de uso. O envio está habilitado por padrão.
state: Se o rastreamento está ativado.
Retorna este objeto para encadeamento.
report = Axe(page).enable_tracking(True).analyze()set_tracking_url(url)
Definir para onde os dados das métricas de uso são enviados.
url: URL para onde os dados serão enviados.
Retorna este objeto para encadeamento.
report = Axe(page).set_tracking_url("https://usage.deque.com").analyze()set_distinct_id(id)
Definir o ID distinto usado ao enviar métricas de uso.
id: ID distinto a ser enviado.
Retorna este objeto para encadeamento.
report = Axe(page).set_distinct_id("SOMEUUID").analyze()