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

Jocelyn Tran
Jocelyn Tran

O Chrome começou o ano sendo aprovado em 88,2% dos testes na área de foco da acessibilidade da Interoperabilidade 2024. Em junho de 2024, fomos os primeiros que 100% dos testes sejam aprovados. Esta postagem explica o trabalho que levou para esse objetivo.

O que está incluído na área de foco da acessibilidade?

Assim como todas as áreas de foco do Interop 2024, a área de acessibilidade é definida por uma conjunto de testes de plataforma da Web para recursos selecionados. Os testes da Interop 2024 têm como objetivo para garantir que todos os navegadores criem nomes acessíveis e papéis computados na mesma de um jeito fácil.

Nomes acessíveis transmitem a finalidade ou intenção de um elemento HTML. Isso ajuda os usuários entendam para que serve o elemento e como podem interagir com ele. O A especificação accname define como os navegadores criar esta string de nome acessível para um elemento. A especificação ARIA inclui um tutorial de como esse nome é calculada.

O papel computado de um elemento é uma string que representa o papel do conforme computado pelo mecanismo do navegador. Ela é usada principalmente em aplicativos ferramentas e, por exemplo, na função getComputedRole do WebDriver, ativando testes de interoperabilidade.

O que a equipe do Chrome precisava fazer?

Havia duas áreas maiores de trabalho que precisávamos concluir: a alteração do mapeamento a papéis genéricos e remover os descontinuados. Depois, houve algumas correções e recursos menores adicionais para implementar. Além do seguinte: trabalho da equipe do Chrome, também colaboramos com a Microsoft correções as quais estavam se comprometendo com o Chromium para a área de foco de acessibilidade.

Alterar o mapeamento de determinados papéis para um papel genérico

Alterar um mapeamento para um papel genérico remove a semântica de acessibilidade de um . Elementos genéricos não agregam valor a uma árvore de acessibilidade, então eles não estão incluídas na árvore. Isso ajuda no desempenho e torna a árvore menores e mais fáceis de analisar para tecnologia assistiva. Os papéis a seguir são mudou 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.
  • Uma <section> sem um nome acessível.
  • Itens da lista órfãos (<li>).

Nos primeiros quatro marcadores, esses elementos normalmente são mapeados para papéis de ponto de referência. Ter dois pontos de referência em uma página pode dificultar a navegação, por isso, 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 da lista deve estar sempre dentro de uma lista, portanto, um item órfão recebe um de rede.

Remover um papel descontinuado

Descontinuamos o papel directory e o associamos ao papel de lista. ARIA 1.2 descontinua o directory de rede. A especificação explica que ele é equivalente ao papel list. os desenvolvedores precisam usar list. Para manter a semântica de modelos mais antigos, conteúdo que usa directory, ele está mapeado para list no Chrome.

Outras correções

Adicionamos suporte para o gridcell de rede. Esse novo papel faz a distinção entre gridcell e cell mais claras. Uma gridcell é focalizável, editável e selecionável, ao contrário da cell.

Adicionamos o cálculo do papel substituto. Anteriormente, não verificamos a existência de substitutos Por isso, se o primeiro papel não era válido, usamos outro, que não é o que está detalhado na especificação.

Alguns papéis só são válidos se estiverem no contexto correto, adicionamos uma verificação devido ao uso inválido de papéis, da seguinte forma:

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

Se a função for inválida, o Chrome agora usa outras informações, como o HTML para calcular um papel alternativo.

Marcamos thead e tfooter como incluídos na árvore de acessibilidade. Anteriormente, elas eram marcadas como ignoradas, mas ainda eram incluídas na árvore. Agora o cabeçalho e os rodapés da tabela podem ser analisados por tecnologias assistivas.


Embora essas mudanças não sejam visíveis para a maioria dos desenvolvedores, com todos os navegadores trabalhando para garantir que tudo funcione da mesma maneira, garantimos que diferentes os papéis são expostos da mesma forma em todos os lugares.