Interop 2024: Chrome em 100% para a área de foco de acessibilidade

Jocelyn Tran
Jocelyn Tran

O Chrome começou o ano atendendo a 88,2% dos testes na área de foco de acessibilidade da Interop 2024. Em junho de 2024, fomos os primeiros a atingir 100% de aprovação nos testes. Esta postagem explica o trabalho que foi feito para alcançar essa meta.

Como em todas as áreas de foco na Interop 2024, a área de acessibilidade é definida por um conjunto de testes da plataforma da Web para recursos selecionados. O objetivo dos testes na Interop 2024 é garantir que todos os navegadores criem nomes acessíveis e funções computadas da mesma forma.

Os nomes acessíveis transmitem a finalidade ou a intenção de um elemento HTML. Isso ajuda os usuários a entenderem para que serve o elemento e como podem interagir com ele. A especificação accname define como os navegadores criam essa string de nome acessível para um elemento. A especificação ARIA inclui um tutorial sobre como esse nome é calculado.

O papel computado de um elemento é uma string que representa o papel do elemento computado pelo mecanismo do navegador. Ele é usado principalmente em ferramentas de desenvolvedores e, por exemplo, na função getComputedRole do WebDriver, permitindo testes de interoperabilidade.

O que a equipe do Chrome precisava fazer?

Tivemos duas áreas maiores de trabalho que precisávamos concluir: mudar o mapeamento de funções para funções genéricas e remover funções descontinuadas. Além disso, foram implementadas outras correções e recursos menores. Além do trabalho abaixo que a equipe do Chrome concluiu, também colaboramos com a Microsoft em correções que ela estava fazendo no Chromium para a área de foco de acessibilidade.

Alterar o mapeamento de determinadas funções para uma função genérica

Mudar um mapeamento para um papel genérico remove a semântica de acessibilidade de um elemento. Os elementos genéricos não fornecem valor para uma árvore de acessibilidade. Por isso, eles não são incluídos na árvore. Isso ajuda no desempenho e torna a árvore menor e mais fácil de analisar para tecnologia adaptativa. Os papéis a seguir são mudados para um papel genérico.

  • Um <header> com escopo para <main> ou um elemento de conteúdo de seção (<article>, <aside>, <nav> ou <section>).
  • Um <footer> com escopo para <main> ou um elemento de conteúdo de seção (<article>, <aside>, <nav> ou <section>).
  • Um <aside> dentro de um elemento de conteúdo de seção (<article>, <aside>, <nav> ou <section>) sem um nome acessível.
  • Um <section> sem um nome acessível.
  • Itens de lista órfãos (<li>).

Para os quatro primeiros pontos, esses elementos geralmente são mapeados para funções de marco. Ter muitos pontos de referência em uma página pode dificultar a navegação. Essa mudança ajuda a reduzir pontos de referência redundantes, facilitando a navegação na página. O item final normalmente indica um erro do desenvolvedor da página. Um item de lista sempre precisa estar dentro de uma lista. Portanto, um item órfão recebe um papel genérico.

Remover uma função descontinuada

Descontinuamos o papel directory e o mapeamos para o papel da lista. A ARIA 1.2 descontinua o papel directory. A especificação explica que ele é equivalente ao papel list, e os desenvolvedores precisam usar list. Para manter a semântica do conteúdo mais antigo que usa directory, ele agora é mapeado para list no Chrome.

Outras correções

Adicionamos suporte ao papel gridcell. Essa nova função torna a distinção entre gridcell e cell mais clara. Uma gridcell pode ser focada, editada e selecionada, ao contrário de cell.

Adicionamos o cálculo de papel substituto. Anteriormente, não verificávamos papéis substitutos. Portanto, se o primeiro papel não fosse válido, usávamos outro, o que não é o que está detalhado na especificação.

Algumas funções só são válidas se estiverem no contexto correto. Adicionamos uma verificação para uso inválido de funções, conforme abaixo:

  • O papel row precisa estar dentro de table, grid, rowgroup ou treegrid.
  • O papel rowgroup precisa estar dentro de table, grid, tree ou treegrid.
  • O papel listitem precisa estar dentro de list.

Se o papel for inválido, o Chrome agora vai usar outras informações, como o elemento HTML, para calcular um papel alternativo.

Marcamos thead e tfooter como incluídos na árvore de acessibilidade. Antes, eles eram marcados como ignorados, mas ainda eram incluídos na árvore. Agora, cabeçalhos e rodapés de tabelas podem ser analisados por tecnologias adaptativas.


Embora essas mudanças não apareçam para a maioria dos desenvolvedores, todos os navegadores trabalham para garantir que essas coisas funcionem da mesma maneira. Assim, garantimos que diferentes funções sejam expostas da mesma forma em todos os lugares.