Chrome ha iniziato l'anno superando l'88,2% dei test nell'area di attenzione per l'accessibilità di Interop 2024. A giugno 2024 siamo stati i primi a superare il 100% dei test. Questo post spiega le attività svolte per raggiungere questo obiettivo.
Cosa è incluso nell'area di interesse relativa all'accessibilità?
Come per ogni area di interesse di Interop 2024, l'area di accessibilità è definita da un insieme di test della piattaforma web per funzionalità selezionate. Lo scopo dei test di Interop 2024 è garantire che tutti i browser creino nomi accessibili e ruoli calcolati nello stesso modo.
I nomi accessibili comunicano lo scopo o l'intenzione di un elemento HTML. In questo modo, gli utenti possono capire a cosa serve l'elemento e come interagire con esso. La specifica accname definisce in che modo i browser creano questa stringa di nome accessibile per un elemento. La specifica ARIA include una procedura dettagliata su come viene calcolato questo nome.
Il ruolo calcolato di un elemento è una stringa che rappresenta il ruolo dell'elemento calcolato dal motore del browser. Viene utilizzato principalmente negli strumenti per sviluppatori e, ad esempio, nella funzione WebDriver getComputedRole
, per consentire i test di interoperabilità.
Cosa ha dovuto fare il team di Chrome?
Abbiamo dovuto completare due aree di lavoro più ampie: la mappatura dei ruoli in ruoli generici e la rimozione dei ruoli non più supportati. Poi c'erano altre piccole correzioni e funzionalità da implementare. Oltre al seguente lavoro completato dal team di Chrome, abbiamo collaborato con Microsoft per le correzioni che stavano apportando a Chromium per l'area di attenzione sull'accessibilità.
Modificare la mappatura di determinati ruoli in un ruolo generico
La modifica di una mappatura in un ruolo generico rimuove la semantica di accessibilità da un elemento. Gli elementi generici non forniscono valore a un albero di accessibilità, pertanto non sono inclusi nell'albero. Ciò migliora il rendimento e rende l'albero più piccolo e più facile da analizzare per le tecnologie per la disabilità. I seguenti ruoli vengono modificati in un ruolo generico.
- Un elemento
<header>
con ambito<main>
o un elemento di contenuto di suddivisione (<article>
,<aside>
,<nav>
o<section>
). - Un
<footer>
con ambito<main>
o un elemento di contenuti di suddivisione (<article>
,<aside>
,<nav>
o<section>
). - Un
<aside>
all'interno di un elemento di contenuto di suddivisione (<article>
,<aside>
,<nav>
o<section>
) senza un nome accessibile. - Un
<section>
senza un nome accessibile. - Voci di elenco orfane (
<li>
).
Per i primi quattro punti elenco, in genere questi elementi sono mappati ai ruoli di punto di riferimento. La presenza di troppi punti di riferimento in una pagina può rendere più difficile la navigazione, pertanto questa modifica consente di ridurre i punti di riferimento ridondanti e semplificare la navigazione nella pagina. L'elemento finale indica in genere un errore dello sviluppatore della pagina. Un elemento dell'elenco deve sempre trovarsi all'interno di un elenco, pertanto a un elemento orfano viene assegnato un ruolo generico.
Rimuovere un ruolo deprecato
Abbiamo ritirato il ruolo directory
e lo abbiamo mappato al ruolo dell'elenco. ARIA
1.2 ritira il ruolo directory
. La specifica spiega che è equivalente al ruolo list
e che gli sviluppatori devono utilizzare list
. Per mantenere la semantica dei contenuti precedenti che utilizzano directory
, ora questo carattere è mappato a list
in Chrome.
Altre correzioni
Abbiamo aggiunto il supporto per il ruolo
gridcell
. Questo nuovo ruolo rende più chiara la distinzione tra gridcell
e
cell
. A differenza di cell
, un gridcell
è attivabile, modificabile e selezionabile.
Abbiamo aggiunto il calcolo del ruolo di riserva. In precedenza, non controllavamo la presenza di ruoli di riserva, quindi se il primo ruolo non era valido, utilizzavamo un altro ruolo, diversamente da quanto indicato nella specifica.
Alcuni ruoli sono validi solo se si trovano nel contesto corretto. Abbiamo aggiunto un controllo per l'uso non valido dei ruoli, come segue:
- Il ruolo
row
deve essere all'interno ditable
,grid
,rowgroup
otreegrid
. - Il ruolo
rowgroup
deve essere all'interno ditable
,grid
,tree
otreegrid
. - Il ruolo
listitem
deve essere all'interno dilist
.
Se il ruolo non è valido, Chrome ora utilizza altre informazioni, ad esempio l'elemento HTML, per calcolare un ruolo alternativo.
Abbiamo contrassegnato thead
e tfooter
come inclusi nella struttura ad albero di accessibilità.
In precedenza erano contrassegnati come ignorati, ma erano comunque inclusi nell'albero. Ora
le intestazioni e i piè di pagina delle tabelle possono essere analizzati dalle tecnologie per la disabilità.
Sebbene queste modifiche potrebbero non essere visibili alla maggior parte degli sviluppatori, poiché tutti i browser si impegnano a garantire che funzionino allo stesso modo, ci assicuriamo che i diversi ruoli siano esposti allo stesso modo ovunque.