Referência da API do axe-devtools-behave
Referência de API para o pacote axe-devtools-behave para testes em Python baseados em Behave
Este pacote integra Axe DevTools ao Behave, um framework de teste em Python semelhante ao Cucumber.
Uso
Antes de poder usar o axe-devtools-behave, você deve configurar algumas coisas.
Primeiro de tudo, você precisa configurar a abertura e o fechamento de um navegador, via features/environment.py:
# features/environment.py
import behave_webdriver
def before_all(context):
context.behave_driver = behave_webdriver.Chrome()
def after_all(context):
# cleanup after tests run
context.behave_driver.quit()Em seguida, você deve importar o axe-devtools-behave, o que pode ser feito em features/steps/axe.py:
# features/steps/axe.py
from axe_devtools_behave import *Agora você pode fazer uso do axe-devtools-behave em seus arquivos de feature.
O pacote axe-devtools-behave faz uso de behave-webdriver, então todos os passos dessa biblioteca são incorporados e estão disponíveis para uso.
Passos de Acessibilidade Cucumber
Os exemplos de verificações de acessibilidade abaixo usam Then the page should be axe clean, mas todas as verificações funcionam de forma intercambiável com Then the page should be audited for accessibility.
A diferença é que should be axe clean executa o axe e falha no teste se houver violações, enquanto should be audited for accessibility executa o axe e salva os resultados em um diretório axe-reports. should be audited for accessibility nunca falha.
Para construir um passo de acessibilidade Cucumber com axe, comece com o passo base e adicione quaisquer cláusulas necessárias. Todas as cláusulas a seguir podem ser combinadas; no entanto, elas devem aparecer na ordem especificada:
Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]
Passo Base
Then the page should be axe cleanO passo base é o componente central do passo Cucumber. Ele é um passo completo por si só e verifica se a página carregada atualmente é acessível usando a configuração padrão de axe.a11yCheck (a verificação do documento inteiro usa as regras padrão).
Cláusula de Inclusão
Then the page should be axe clean within "#selector"A cláusula de inclusão (within "#selector") especifica quais elementos verificar na página. A cláusula de inclusão deve incluir um Seletor CSS válido entre aspas duplas. Use seletores compostos para selecionar vários elementos. Por exemplo, within "#header, .footer"
Veja parâmetro de contexto para mais informações.
Cláusula de Exclusão
Then the page should be axe clean excluding "#selector"A cláusula de exclusão (excluding "#selector") especifica quais elementos do documento ignorar. Forneça um Seletor CSS válido entre aspas duplas. Use seletores compostos para selecionar vários elementos. Por exemplo, excluding "#widget, .ad"
Veja parâmetro de contexto para mais informações.
Use o ponto e vírgula (;) ou a palavra but para separar a cláusula de exclusão da cláusula de inclusão, se presente.
Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"Cláusula de Padrão de Acessibilidade (Tag)
Then the page should be axe clean according to: tag-nameA cláusula de tag especifica qual padrão de acessibilidade (ou padrões) usar na verificação da página. Especifique os padrões de acessibilidade por nome (tag). Vários padrões podem ser especificados quando separados por vírgula. Por exemplo, according to: wcag2a, section508
nomes de tags estão documentados aceitável além de um lista completa de descrições de regras que correspondem a cada tag.
Use um ponto e vírgula (;) pode ser usado para separar a cláusula de tag da cláusula anterior.
Then the page should be axe clean within "#header"; according to: best-practiceCláusula de Verificação de Regras
Then the page should be axe clean checking: ruleIdA cláusula de verificação de regras especifica quaisquer regras adicionais a serem executadas (além das tags especificadas ou do conjunto de regras padrão). As regras são especificadas por IDs de regra separadas por vírgulas.
Veja Descrições de Regras para uma lista de IDs de regra válidos.
Use um ponto e vírgula (;) ou a palavra and para separar a cláusula de verificação de regras da cláusula anterior.
Then the page should be axe clean according to: wcag2a; checking: color-contrast
Then the page should be axe clean according to: wcag2a and checking: color-contrastCláusula de Regras Exclusivas
Then the page should be axe clean checking only: ruleIdEsta cláusula não é separada. Ao adicionar a palavra only à cláusula de verificação de regras, você pode alterar o significado do passo. Conforme descrito anteriormente, a cláusula de verificação de regras especifica regras adicionais a serem executadas por padrão. Somente as regras especificadas são verificadas se a palavra only for usada.
Cláusula de Regras a Pular
Then the page should be axe clean skipping: ruleIdA cláusula de regras a pular especifica quais regras ignorar. Especifique o padrão de acessibilidade a ser usado (via cláusula de tag), ignorando uma regra específica. Especifique as regras por IDs de regra separadas por vírgulas.
Veja Descrições de Regras para uma lista de IDs de regra válidos
Use um ponto e vírgula (;) ou a palavra but para separar a cláusula de regras a pular da cláusula anterior.
Then the page should be axe clean according to: wcag2a; skipping: accesskeys
Then the page should be axe clean according to: wcag2a but skipping: accesskeysConjuntos de Regras Marcados
Acesse conjuntos de regras marcados através de uma cláusula Cucumber. Esta funcionalidade permite que desenvolvedores especifiquem um conjunto de regras (Ex: 508, wcag2, wcag2.1) para auditar a acessibilidade da página.
O código a seguir demonstra a sintaxe Cucumber Gherkin necessária para avaliar um conjunto de regras específico durante a análise:
Scenario: Test Page with options
When I visit "http://abcdcomputech.dequecloud.com/"
Then the page should be audited for accessibility within "title" according to ruleset: wcag2.1