Deque, fez algumas pesquisas e concluiu que: 57% dos problemas de acessibilidade podem ser detectados em testes automatizados.
Investir tempo em testes estáticos é muito importante. Nessa etapa, podemos encontrar possíveis problemas que seriam identificados lá na frente.
Recomendo usar o axe-linter, ele pode ser integrado com o VSCode e detecta problemas em tempo real.
Imagine o cenário, você esta escrevendo um componente de imagem e esquece o atributo ALT.
O axe-linter emite um alerta informando onde ocorreu o erro e como corrigi-lo.
Além disso, ele permite customizar as regras. Basta definir nas suas configurações.
Devemos investir em vários cenários de testes unitários pensando em acessibilidade. Isso irá contribuir para uma abordagem mais robusta.
São testes extremamente objetivos e rápidos de executar.
Uma ferramenta que pode ser utilizada é o jest-axe. Ele é um custom matcher para Jest que inclui validações de acessibilidade.
Um exemplo de um componente <img>
sem o atributo ALT inserido.
/**
* @jest-environment jsdom
*/
const { axe, toHaveNoViolations } = require('jest-axe')
expect.extend(toHaveNoViolations)
it('deve demonstrar o uso do matchesr', async () => {
const render = () => '<img src="#"/>'
// pass anything that outputs html to axe
const html = render()
expect(await axe(html)).toHaveNoViolations()
})
O resultado da asserção seria:
O jest-axe não é a única solução existem diversas, como:
Para ilustrar, vamos pensar em um componente de modal. Ele tem diversos comportamentos específicos como:
Deu pra pegar a ideia? Existem diversos cenários, além disso, devemos validar o suporte ao teclado.
Utilizo para esse tipo de teste o Cypress focado nos componentes.
Nesse componente devemos ter o suporte de teclado:
Os testes E2E auxiliam para identificar possíveis problemas na jornada do usuário. Quando pensamos nessa abordagem de shift left, o E2E cumpre somente o papel de validar os passos do usuário.
Para esse teste utilizo o Cypress outro interessante é o Playwright.
É muito importante não sobrecarregar o E2E com outras responsabilidades. É bem comum sobrecarregar ele com testes de componentes.
Devemos usar o teste E2E com sabedoria, geralmente eles são interessantes em:
No início comentei sobre o valor dos testes manuais. Ele é importante pois valida a experiência real de pessoas com necessidades especificas.
Esses testes são realizados por usuários de leitores de tela, avaliamos coisas como:
Não adianta ter uma abordagem bonitinha, mas a experiência final ser uma bela de uma porcaria.
Resumindo:
Gostou dessa edição? Adoraria saber sua opinião.
SDG,
Bruno Pulis.