Chrome ha iniziato l'anno superando l'88,2% dei test nell'area di interesse dell'accessibilità di Interop 2024. A giugno 2024 siamo stati i primi hanno superato il 100% dei test. Questo post spiega il lavoro svolto per arrivare questo obiettivo.
Cosa è incluso nell'area di interesse per l'accessibilità?
Come per ogni area di interesse di Interop 2024, l'area di accessibilità è definita da un insieme di test della piattaforma web per determinate funzionalità. I test nell'obiettivo di Interoperabilità 2024 per garantire che tutti i browser creino nomi accessibili e ruoli calcolati nello stesso in molti modi diversi.
I nomi accessibili comunicano lo scopo o l'intento di un elemento HTML. Ciò consente di gli utenti capiscono a cosa serve l'elemento e come possono interagire con esso. La La specifica accname definisce il modo in cui i browser crea questa stringa di nome accessibile per un elemento. La specifica ARIA include una procedura dettagliata di come viene calcolate.
Il ruolo calcolato di un elemento è una stringa che rappresenta il ruolo dell'elemento
calcolato dal motore del browser. Viene utilizzato principalmente negli sviluppatori
e, ad esempio, nella funzione WebDriver getComputedRole
, abilitando
test di interoperabilità.
Cosa doveva fare il team di Chrome?
C'erano due aree di lavoro più ampie che dovevamo completare: cambiare la mappatura di ruoli generici e rimuovendo i ruoli deprecati. Poi c'erano alcuni ulteriori correzioni e funzionalità di minore entità da implementare. Oltre a quanto segue completato dal team di Chrome, abbiamo anche collaborato con Microsoft correzioni che si impegnavano a utilizzare Chromium per l'area di interesse dell'accessibilità.
Cambia la mappatura di determinati ruoli a un ruolo generico
La modifica di un mapping in un ruolo generico rimuove la semantica dell'accessibilità da un . Gli elementi generici non conferiscono valore a un albero dell'accessibilità, pertanto non sono inclusi nell'albero. Ciò favorisce il rendimento e rende più piccoli e più facili da analizzare per le tecnologie per la disabilità. I seguenti ruoli sono è cambiato in un ruolo generico.
- Un elemento
<header>
con ambito<main>
o un elemento dei contenuti di sezione (<article>
,<aside>
,<nav>
o<section>
). - Un elemento
<footer>
con ambito<main>
o dell'elemento di contenuto di sezione (<article>
,<aside>
,<nav>
o<section>
). - Un elemento
<aside>
all'interno di un elemento di contenuti di sezione (<article>
,<aside>
,<nav>
, o<section>
) senza un nome accessibile. - Un elemento
<section>
senza un nome accessibile. - Voci di elenco orfane (
<li>
).
Per i primi quattro elenchi puntati, in genere questi elementi sono mappati ruoli del punto di riferimento. Avere due punti di riferimento in una pagina può rendere più difficile la navigazione, quindi questa modifica contribuisce a ridurre i punti di riferimento ridondanti semplificando la navigazione nella pagina. La l'elemento finale in genere indica un errore dello sviluppatore della pagina, un elemento dell'elenco dovrebbe sempre essere all'interno di un elenco, pertanto a un elemento orfano viene assegnata una ruolo.
Rimuovere un ruolo obsoleto
Abbiamo deprecato il ruolo directory
e lo abbiamo mappato al ruolo elenco. ARIA
1.2 ritira directory
ruolo. La specifica spiega che è equivalente al ruolo list
e
gli sviluppatori dovrebbero usare list
. Per mantenere la semantica dei
contenuti che utilizzano directory
, ora è mappato a list
in Chrome.
Altre correzioni
Abbiamo aggiunto il supporto
gridcell
ruolo. Questo nuovo ruolo fa la distinzione tra gridcell
e
cell
in modo più chiaro. Un gridcell
è attivabile, modificabile e selezionabile, a differenza di cell
.
Abbiamo aggiunto il calcolo del ruolo di riserva. In precedenza, non abbiamo controllato i video di riserva quindi se il primo ruolo non era valido, ne abbiamo utilizzato un altro, quali informazioni sono dettagliate nella specifica.
Alcuni ruoli sono validi solo se sono nel contesto corretto, abbiamo aggiunto un controllo per l'uso non valido dei ruoli, come segue:
- Il ruolo
row
deve trovarsi all'interno ditable
,grid
,rowgroup
otreegrid
. - Il ruolo
rowgroup
deve trovarsi all'interno ditable
,grid
,tree
otreegrid
. - Il ruolo
listitem
deve trovarsi all'interno dilist
.
Se il ruolo non è valido, Chrome utilizza altre informazioni, ad esempio il codice HTML per calcolare un ruolo alternativo.
Abbiamo contrassegnato thead
e tfooter
come inclusi nell'albero dell'accessibilità.
In precedenza, venivano contrassegnati come ignorati, ma venivano comunque inclusi nell'albero. Adesso
l'intestazione e i piè di pagina delle tabelle possono essere analizzati dalle tecnologie per la disabilità.
Queste modifiche potrebbero non essere visibili alla maggior parte degli sviluppatori, con tutti i browser assicurandoci che tutto funzioni allo stesso modo, ci assicuriamo che i ruoli sono esposti allo stesso modo ovunque.