Kielletty ARIA-attribuutti
Silktide tarkistaa, että jokainen sivujesi ARIA-attribuutti on sellainen, jota kyseisen elementin rooli todella tukee. Attribuutit, joita rooli ei tue, sekä attribuutit, jotka eivät kuulu lainkaan ARIA-standardiin, jätetään selaimissa huomiotta – tekijän tarkoittama toiminta ei koskaan toteudu.
<!-- Ongelma: aria-checked ei tarkoita painikkeessa mitään -->
<button aria-checked="true">Lihavointi</button>
<!-- Korjaus: käytä roolia, joka tukee tarvitsemaasi tilaa -->
<button role="switch" aria-checked="true">Lihavointi</button>
Miksi tällä on merkitystä
Jokainen -rooli tukee tiettyä joukkoa tiloja
ja ominaisuuksia, ja selaimet hylkäävät kaiken, mikä ei kuulu tähän joukkoon. Sivun
koodi näyttää tällöin oikealta koodikatselmoinnissa, mutta
käyttäjät eivät saa
mitään: valitsin, jonka tilaa ei koskaan ilmoiteta, tai kuvaus, jota ei
koskaan lueta. Tämä luokka havaitsee myös kirjoitusvirheet attribuuteissa,
kuten aria-lable – haitallisimman tapauksen, koska tekijä uskoo tunnisteen
olevan olemassa, mutta käyttäjä ei saa
sitä.
Korjaaminen
- Korjaa väärin kirjoitetut attribuuttien nimet (
aria-lablepitäisi ollaaria-label,aria-labeledbypitäisi ollaaria-labelledby). - Jos attribuutti on oikein mutta sitä ei tueta, vaihda elementin rooliksi sellainen, joka tukee sitä, tai harkitse, tarjoaako natiivi -elementti jo tarvittavan toiminnallisuuden.
- Jos attribuutista ei ole mitään hyötyä, poista se.
Näin Silktide testaa tämän
- Etsi sivulta jokainen elementti, jolla on vähintään yksi
aria-attribuutti. - Määritä kyseiselle elementille kelvollisten ARIA-attribuuttien joukko: kaikkialla
toimivat globaalit attribuutit (kuten
aria-labeljaaria-hidden) sekä elementin roolin tukemat attribuutit. Kunrole-attribuutissa luetellaan useita rooleja, elementin rooli on ensimmäinen ARIA 1.2:n määrittelemä rooli, kuten selaimissa. Lomakekentät, joilla ei ole ARIA-roolia, kuten salasana-, päivämäärä- ja tiedostosyötteet, käyttävät niille sallittuja attribuutteja, jotka ARIA in HTML määrittää.<input>ilmantype-attribuuttia tai tyypillä, jota selaimet eivät tunnista, lasketaan tekstisyötteeksi. Taulukon otsikkosolu (<th>) on sarakeotsikko tai riviotsikko: senscope-attribuutti määrää tämän, tai sen puuttuessa se, sisältääkö sen rivi myös tietosoluja. Tietosolu (<td>) on solu tai ruudukossa ruudukkosolu. - Ilmoita attribuuttien nimet, jotka eivät kuulu ARIA 1.2:een – yleensä kirjoitusvirheet.
- Ilmoita tunnistetut attribuutit, joita käytetään elementillä, jonka rooli ei tue niitä, tai jotka edellyttävät roolia, jota elementillä ei ole.
Vanhentuneet attribuutit ilmoitetaan erikseen kohdassa Deprecated ARIA attribute, ja attribuuttien arvot vahvistetaan kohdassa Invalid ARIA attribute value.
Vianmääritys
Attribuutti toimii testauksessani
Jotkin ruudunlukijan ja selaimen yhdistelmät sietävät epästandardia yhdistelmiä, jotka muut hylkäävät. Standardin noudattaminen tekee toiminnasta ennakoitavaa kaikessa avustavassa teknologiassa, jota et voi testata.