Usando o Conector Axe DevTools Linter
Opções de linha de comando, variáveis de ambiente, informações de configuração e informações de arquivo de configuração para o Conector Axe DevTools Linter
O Conector Axe DevTools Linter (também conhecido como o Conector) é uma ferramenta de linha de comando para Linux, macOS e Windows. Ele fornece uma interface de linha de comando para verificar seus arquivos de forma que você possa automatizar a verificação de acessibilidade. Você pode, por exemplo, usá-lo para script e CI/CD (integração e entrega contínuas). O Conector precisa enviar seus arquivos para uma instância do Axe Linter Server, hospedada pela Deque (SaaS) ou pela sua organização (localmente ou nas suas instalações), ou você pode verificar os arquivos localmente sem enviar o conteúdo dos seus arquivos para um servidor usando a --local opção (veja Verificação Local abaixo).
Casos de Uso para o Conector
O Conector Axe DevTools pode
- Verificar a acessibilidade como parte das compilações do Jenkins. Para mais informações, veja Usando o Axe DevTools Linter com o Jenkins.
- Verificar seus arquivos e alimentar o SonarQube com informações sobre defeitos de acessibilidade. Veja Usando o Axe DevTools Linter com o SonarQube para informações sobre como configurar isso.
- Ser usado em um script de pré-compromisso do GitHub para bloquear commits que contenham erros de acessibilidade. Veja Usando um Gancho de Pré-Commit do Git com o Axe DevTools Linter.
- Proporcionar uma base para verificar seu código quanto a defeitos de acessibilidade para serviços como:
- Bitbucket
- CircleCI
- GitLab
- Azure DevOps Services
Verificação Local
O Conector permite evitar enviar seus arquivos para um servidor usando verificação local com a --local opção de linha de comando.
A verificação local ainda entra em contato com servidores remotos quando se utiliza uma chave de API (a --api-key opção) para estes propósitos:
- Para autenticação
- Para capturar informações de uso
Você pode usar a AXE_SERVICE_URL variável de ambiente para especificar um servidor diferente do padrão para autenticar sua chave de API.
Usar uma chave de licença (a --license-key opção) evita toda atividade de rede.
-
Vantagens da Verificação Local
- Muito mais rápido do que usar o servidor.
- Muito menos provável de encontrar problemas de rede ou de carga no servidor. É especialmente eficiente ao verificar um grande número de arquivos.
-
Desvantagens da Verificação Local
- Requer mais recursos da máquina local.
- Atualizações para o Conector Axe DevTools Linter requerem o download de uma nova versão do Agora e instalação.
- Sem rastreamento de uso (se você usar uma chave de licença em vez de uma chave de API).
Se a máquina que você usa tiver pelo menos 2 GB de memória, a Deque recomenda fortemente usar a --local opção. Isso tornará a verificação significativamente mais rápida, especialmente ao verificar um grande número de arquivos.
Chaves de Licença em Comparação com Chaves de API
A verificação local requer uma chave de API ou uma chave de licença. Você pode gerenciar suas chaves de API como parte da sua conta Axe (o que oferece flexibilidade). No entanto, você deve solicitar uma chave de licença ao Help Desk da Deque. Usar a verificação local com chaves de licença não rastreia o uso dos seus usuários (linhas de código verificadas), mas as chaves de licença também não requerem autenticação remota.
Opções de Instalação
Existem duas opções para instalar o Conector do Axe DevTools Linter:
- Configurar um registro npm Agora e usar a infraestrutura fornecida pela NodeJS e npm para instalar, executar e atualizar o Conector. Veja Instalando o Conector do Axe DevTools Linter como um pacote npm para mais informações.
- A outra opção é baixar manualmente o binário do Conector para a arquitetura do seu computador e prepará-lo para uso definindo seu bit de execução (Linux e macOS) e eliminando quaisquer atributos de quarentena estendidos (macOS). Veja a página de downloads.
Variáveis de Ambiente
O Conector reconhece as seguintes variáveis de ambiente:
AXE_LINTER_SERVER_URL e AXE_LINTER_SERVER_PORT
AXE_LINTER_SERVER_URL define a URL para a sua instância do servidor Axe DevTools Linter. (Você também pode definir a URL do servidor com as -u ou --url opções de linha de comando.) AXE_LINTER_SERVER_PORT especifica a porta que o servidor escuta, geralmente a porta 3000.
Se nenhuma variável de ambiente for definida, o Conector usa por padrão uma URL de servidor de http://localhost na porta 3000 (http://localhost:3000).
É improvável que você precise alterar a porta do seu valor padrão de 3000. Se você estiver usando a versão SaaS do Axe DevTools Linter hospedada pela Deque, você não deve definir a porta.
Veja Configurando o Axe DevTools Linter para mais informações sobre como configurar seu servidor, e veja Referência Rápida de URL para a URL a ser usada com a versão SaaS do Axe DevTools Linter. (Você não precisa especificar uma porta ao usar a versão SaaS do Axe DevTools Linter.)
O exemplo a seguir mostra como definir variáveis de ambiente para o Axe DevTools Linter em execução em uma máquina local no Linux ou macOS (embora nenhuma variável de ambiente seja necessária aqui porque esses são os valores padrão):
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000Alternativamente, no Linux e macOS, você também pode definir as variáveis de ambiente na mesma linha de comando que o axe-linter-connector comando. O exemplo abaixo mostra esse uso. (No entanto, como esses são os valores padrão para o servidor e a porta, não é necessário defini-los.)
AXE_LINTER_SERVER_PORT=3000 AXE_LINTER_SERVER_URL=http://localhost axe-linter-connector -s . -d .AXE_SERVICE_URL
A AXE_SERVICE_URL variável de ambiente permite que você especifique um servidor alternativo para validar sua chave de API. Essa variável de ambiente é útil para organizações que usam uma instância de servidor privada para validação de chave de API. O valor padrão é https://axe.deque.com.
Para mais informações sobre o uso de servidores alternativos para validação de chave de API, contate o Help Desk da Deque.
Essa variável de ambiente é usada apenas quando você utiliza a --local opção (verificação local).
DEBUG
A variável de ambiente DEBUG permite que você registre informações detalhadas de depuração para diagnosticar falhas de linting. Defina a variável de ambiente DEBUG para axe-devtools-linter:* ativar o registro de depuração, conforme mostrado abaixo:
DEBUG=axe-devtools-linter:* axe-linter-connector -s . -d .Opções de Linha de Comando
Opções Obrigatórias de Linha de Comando
O Axe DevTools Linter Connector requer as seguintes duas opções:
-s, --source diretório-ou-arquivo
Indica um arquivo ou um diretório contendo arquivos a serem verificados quanto a erros de acessibilidade. Subdiretórios também são pesquisados. Para excluir arquivos da verificação, consulte a exclude opção no Arquivo de Configuração seção.
-d, --destination diretório
O diretório onde o Conector gravará o relatório de acessibilidade.
-u, --url URL
Especifica o servidor a ser utilizado. O padrão é http://localhost. Para usar o servidor SaaS, especifique --url https://axe-linter.deque.com/
Opções Opcionais de Linha de Comando
Várias opções podem ser necessárias, dependendo do servidor ao qual você está se conectando e quais outros recursos ou formatos de relatório deseja usar.
--additional-properties propriedade
Adiciona propriedades extras a problemas no relatório de acessibilidade para violações encontradas em componentes mapeados personalizados. O único valor atualmente suportado é customName. Quando especificado, cada problema envolvendo um componente mapeado personalizado ganha uma customName propriedade no relatório cujo valor é o nome da tag do componente personalizado que acionou a violação. Problemas de componentes que não fazem parte de um mapeamento personalizado não terão uma customName propriedade.
axe-linter-connector -s . -d . --additional-properties customNamePor exemplo, se <MyButton> for um componente mapeado personalizado e acionar uma button-name violação, o problema no relatório será assim:
{
"engineId": "axe-linter-jsx",
"ruleId": "button-name (https://dequeuniversity.com/rules/axe/4.11/button-name?application=axe-linter)",
"customName": "MyButton",
"severity": "MAJOR",
"type": "BUG",
"primaryLocation": {
"filePath": "/path/to/app.jsx",
"message": "Buttons must have discernible text",
"textRange": {
"startLine": 7,
"endLine": 7,
"startColumn": 12,
"endColumn": 20
}
}
}--api-key chave-api
Especifica a chave da API para autorizar a verificação com a instância SaaS do Axe DevTools Linter ou para usar a verificação local. Consulte Obtendo uma Chave de API SaaS do Axe DevTools Linter para mais informações.
--config nome-do-arquivo
Especifica o nome de um arquivo YAML contendo informações de configuração. Você também pode usar esta opção sem um nome de arquivo, e o Axe DevTools Connector seguirá os passos em Vários Arquivos de Configuração para localizar arquivos de configuração. Para informações sobre o arquivo de configuração, consulte Arquivo de Configuração.
--filename nome-do-arquivo
Especifica o nome do relatório do SonarQube, padrão: axe-linter-report.json
--issue-type tipo
Usado para indicar o tipo de problema para o SonarQube, padrão: BUG, valores permitidos: VULNERABILITY, CODE_SMELLou BUG
--license-key *chave*
Especifica a chave de licença a ser usada para autenticação. Entre em contato com o Help Desk da Deque para mais informações sobre como obter uma chave de licença. Esta opção também requer a opção --local .
--local
Ativa a verificação local, que usa a máquina em que o Axe DevTools Connector está executando para verificar seus arquivos, em vez de enviar arquivos para um servidor. Requer uma chave de API (--api-key) ou uma chave de licença (--license-key). Veja Verificação Local.
Se você usar a opção --api-key (a opção recomendada) com --local, você precisa especificar o servidor, conforme mostrado abaixo:
axe-linter-connector -s . -d . --api-key 1234 --local --url https://axe-linter.deque.com/-R, --reporter *relator*
Especifica o relator a ser usado, padrão: **sonarqube**
--retry-backoff-limit *limite-de-retentiva*
Especifica o **máximo** tempo em milissegundos que o Conector esperará antes de tentar novamente a conexão com o servidor após o erro. O padrão é 30.000 milissegundos (30 segundos).
--retry-count *retries*
Especifica o número de vezes que a conexão com o servidor deve ser tentada novamente após encontrar um erro de conexão. O Conector dobrará o tempo entre as tentativas (começando em 500 milissegundos ou 0,5 segundos) até atingir o *limite-de-retentiva* (especificado com --retry-backoff-limit), onde permanecerá até atingir o número especificado de tentativas (e falhar) ou conectar-se ao servidor sem erro.
--severity *nível*
Define o nível de severidade para o SonarQube, padrão: MAJOR, valores permitidos: BLOCKER, CRITICAL, MAJOR, MINOR, ou INFO.
Arquivo de Configuração
Você pode usar um arquivo de configuração YAML com a opção --config .
O seguinte mostra um exemplo de arquivo de configuração:
rules:
image-alt: false
exclude:
- meta-refresh.html
tags:
- wcag2aNo exemplo acima, a regra image-alt será ignorada, e o arquivo meta-refresh.html não será verificado. As regras na tag wcag2a serão usadas, conforme especificado na seção tags . (Veja Tags para mais informações.)
O valor exclude permite valores glob (*) e globstar (**), então o seguinte é permitido:
exclude:
- tmp/**/*.htmlO exemplo acima exclui quaisquer arquivos HTML no tmp diretório e seus subdiretórios.
Para mais informações sobre as opções de configuração permitidas, veja Configurando o Axe DevTools Linter.
Exemplo de Uso
Para usar o Conector com o servidor SaaS do Axe DevTools Linter, você pode usar a --api-key opção conforme mostrado abaixo:
axe-linter-connector -s . -d . --api-key 83cc5831-a35b-4a2d-9c2b-84fd2eec0a4d --url https://axe-linter.deque.com/Para realizar toda a análise localmente no computador que executa o Axe DevTools Connector, use a --local opção:
axe-linter-connector -s . -d . --api-key b5a34bba-7b0f-4ccb-9eb2-195ac6c56aee --local --url https://axe-linter.deque.com/Você precisa especificar a --url opção com o servidor porque, embora a análise local não envie nenhum conteúdo de arquivo para o servidor, ele ainda precisa rastrear o uso e autenticar via servidor.
