Nesses dias apareceu um post muito interessante do Ronny Hendriks no linkedin. Nele o autor fala sobre o uso indiscriminado de atributos de ARIA no código HTML. Pesquisas apontam que o número de páginas usando ARIA quadruplicou desde 2019.
Mas isso não é bom? Qual o problema do uso de ARIA?
Há anos venho falando que não há uma bala de prata para a acessibilidade e que boa parte dos problemas são solucionados com o bom e velho HTML. A Web evoluiu e novos recursos surgiram para tornar as aplicações acessíveis. Dentre esses recursos, os atributos de ARIA são ferramentas poderosas para componentes complexos. Mas eles não são o Super Trunfo.
Para quem não sabe, Super Trunfo é um jogo de cartas. Na minha época era só de carros, mas hoje as variações vão desde países até dinossauros. O objetivo é escolher a carta com o atributo comum maior que a dos demais jogadores. A carta “Super Trunfo” é a mais forte do jogo e é quase imbatível.
Já os atributos de ARIA surgiram para tornar acessíveis componentes complexos que não podem ser expostos a árvore de acessibilidade. Seu uso permite que usuários de tecnologia assistiva possam perceber e acessar o conteúdo exposto por esses atributos.
O problema com o uso de ARIA é seu uso indiscriminado, principalmente em elementos e componentes que não necessitam desses atributos. Colocar atributos de ARIA em locais inapropriados (e com valores errados) pode causar mais problemas do que benefícios para pessoas com deficiência. Aplicar atributos de ARIA em todos os elementos pode não ser a solução para a acessibilidade da aplicação.
O autor do post traz a mesma questão que comentei no começo do post. A falta de conhecimento básico em HTML, CSS e JavaScript faz com que os profissionais não sejam apresentados a tudo o que a linguagem de marcação oferece. Lá estão diversos conceitos de desenvolvimento que já contemplam a acessibilidade quando desenvolvemos conforme a marcação. E o que fazer quando não há essa esse conhecimento? Puxar a carta do Super Trunfo e sair colocando ARIA em tudo!
O problema é que nem sempre o Super Trunfo do ARIA resolve. Se a pessoa que desenvolve não entende para que serve aquele atributo ela pode não conseguir editar um template ou uma biblioteca que adicionou esse atributo lá de qualquer jeito (recomendo a leitura do documento “ARIA no HTML” publicado pelo W3C). É como desafiar um adversário com a carta de Porsche com a sua de um Chevette. Nenhum atributo da carta do Chevette bate o Porsche.
A consequência disso são erros indetectáveis por verificadores de acessibilidade. Segundo o autor do post, páginas que usam atributos de ARIA tem uma taxa de erro de acessibilidade 35% maior em comparação com as que não usam. Esse número pode ser mais alto, já que nem todas as ferramentas de verificação conseguem detectar todos os erros de ARIA (para verificação de atributos de ARIA há esse bookmarklet desenvolvido pelo The Paciello Group). Nesse caso, a descoberta do erro fica a cargo dos testes manuais ou para a pessoa com deficiência que navega na aplicação em produção.
Claro que o HTML é limitado e não comporta uma série de recursos modernos que necessitamos hoje. Também não quero demonizar os atributos de ARIA nem os frameworks, CMSs e outras tecnologias que nos ajudam a construir aplicações poderosas e acessíveis. O que quero reforçar aqui é que conhecer o que os elementos e atributos do HTML oferecem nos permitem usar menos recursos de ARIA para conseguir o mesmo resultado. Isso se aplica principalmente para elementos interativos. Tornar acessível um botão que faz uso de elementos genéricos é muito mais difícil do que usar o bom e velho recurso do HTML.
Os recursos de ARIA são essenciais, fáceis de usar e robustos. Não podemos trocar todos eles por elementos semânticos do HTML, mas sempre que for possível, faça esse exercício. Você vai perceber que nem a carta do Super Trunfo é imbatível (segundo as regras do jogo, cartas marcadas com “A” vencem o Super Trunfo).