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.
O que está incluído na área de foco de acessibilidade?
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 detable
,grid
,rowgroup
outreegrid
. - O papel
rowgroup
precisa estar dentro detable
,grid
,tree
outreegrid
. - O papel
listitem
precisa estar dentro delist
.
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.