Automatizando testes de acessibilidade em Angular

Nicole Oliveira
TOTVS Developers
Published in
3 min readJan 6, 2020

Sabemos que os testes manuais, feitos por pessoas com deficiência são os testes mais eficientes. No entanto, podemos prevenir que erros básicos de acessibilidade aconteçam utilizando ferramentas que automatizam este processo.

Essas coberturas feitas para prevenir erros básicos, nos ajudam para que possamos focar em problemas de acessibilidade mais complexos.

Para isso, quero apresentar a vocês o axe-core que é uma biblioteca que já contém alguns testes automatizados para facilitar o nosso desenvolvimento de aplicações acessíveis.

Axe core

O axe-core executa uma série de regras de acessibilidade que a sua aplicação deve cumprir, de acordo com as diretrizes internacionais. Por exemplo:

  • Botões devem conter um texto ou aria-label.
  • Aria-hidden = “true” não deve estar presente no documento <body>.
  • Os elementos do formulário <input> devem ter um rótulo visível.

Ele determina automaticamente quais regras executar com base no contexto.

A versão open source dele possui várias funcionalidades e customizações que já podem nos ajudar bastante!

Ele suporta os mais utilizados e modernos navegadores do mercado:

  • Microsoft Edge v40+
  • Google Chrome v42+
  • Mozilla Firefox v38+
  • Apple Safari v7+
  • Internet Explorer v9, 10, 11

Como utilizá-lo no Angular

1 - Instale o pacote axe-core no seu projeto.

linha de comando para instalação do axe-core

2 - Dentro do seu arquivo .spec importe o “axe-core”

importação do axe-core

3 - Agora, basta colocá-lo dentro da especificação do seu teste.

Como no Angular estamos utilizando o jasmine, então vamos colocá-lo dentro do nosso “it”:

executando as regras de acessibilidade utilizando o axe.run

E para que você veja o resultado da especificação deste teste, basta executar os seus testes normalmente:

comando padrão para executar os testes no Angular

Se você obter sucesso com relação às regras, o seu teste não irá quebrar.

Contém as descrições dos testes realizados e que todos os testes passaram
captura da tela de sucesso dos testes

No entanto, caso sua aplicação quebre alguma regra de acessibilidade, você verá algo parecido com a imagem abaixo, onde ele descreve a regra que foi violada, nível de impacto, entre outros tópicos, para te ajudar a resolver o problema.

Contém uma descrição de um erro de acessibilidade, dizendo que o botão deve ter um label.
mensagem de erro que aparecerá no console caso alguma regra seja violada

O axe-core ainda nos possibilita fazer algumas customizações, como:

  • Indicar em qual contexto esses testes sejam executados.
  • Quais regras eu quero executar.
  • E também nos possibilita criar as nossas próprias regras de acessibilidade.

E é apenas isso? Sim!

E agora eu consigo garantir que a minha aplicação é acessível? Não!

Ele te ajudará bastante, no entanto não se torna suficiente para garantir a acessibilidade da sua aplicação.

Testes automatizados + Testes manuais ainda são a melhor opção!

Algumas referências que podem te ajudar:

Extensão para o Chrome

Testes de acessibilidade com Angular (inglês)

Testes de acessibilidade com React

Repositório e documentação axe-core

Acessibilidade no Angular

--

--

Nicole Oliveira
TOTVS Developers

Gosta de tudo relacionado a front-end. É apaixonada por acessibilidade Web e machine learning. Core time em: PO UI e Animalia DS