Interoperabilità 2024: Chrome al 100% per l'area di interesse dell'accessibilità

Jocelyn Tran
Jocelyn Tran

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.

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 di table, grid, rowgroup o treegrid.
  • Il ruolo rowgroup deve essere all'interno di table, grid, tree o treegrid.
  • Il ruolo listitem deve essere all'interno di list.

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.