Virheellinen ARIA-attribuutin arvo
Silktide tarkistaa jokaisen sivujesi ARIA-attribuutin arvon verraten sitä standardin sille sallimiin arvoihin. Selain jättää virheellisen arvon sisältävän attribuutin huomiotta, kuten valintaruudun tilan "yes" arvon "true" sijaan, joten sen kuvaamaa tilaa ei koskaan ilmoiteta.
<!-- Ongelma: "yes" ei ole kelvollinen arvo, tila jätetään pois -->
<div role="checkbox" aria-checked="yes">Tilaa</div>
<!-- Korjaus: käytä määritettyä tokenia -->
<div role="checkbox" aria-checked="true">Tilaa</div>
Miksi tämä on tärkeää
Jokainen -attribuutti määrittää tarkasti, mitkä arvot
se hyväksyy, ja selaimet hylkäävät kaiken muun arvaamisen sijaan. Virheet
ovat yleensä intuitiivisilta vaikuttavia arvoja, kuten aria-expanded="1",
aria-checked="yes" ja aria-level="0", jotka läpäisevät kaikki visuaaliset
testit, vaikka käyttäjät
saavat käyttöönsä ohjausobjektin, jonka tilaa ei ilmoiteta: valikon, joka ei
koskaan kerro, onko se avoinna, tai valintaruudun, joka ei koskaan kerro,
onko se valittu.
Korjaaminen
- Korvaa vapaamuotoiset arvot attribuutin määrittämillä tokeneilla: käytä
arvoja
truejafalsearvojenyes,no,1tai0sijaan. - Tarkista numeeriset attribuutit: laskentaattribuutit, kuten
aria-leveljaaria-rowindex, alkavat arvosta 1, eivät 0:sta.
Kunkin attribuutin tarkat sallitut arvot on lueteltu MDN:n ARIA-attribuuttiviitteessä.
Miten Silktide testaa tämän
- Etsi sivulta jokainen elementti, jolla on vähintään yksi
aria-- attribuutti. - Tarkista jokaisen attribuutin arvo sen tyypin perusteella, jonka ARIA 1.2
sille määrittää: true/false-attribuutit, kolmitilaiset attribuutit, kuten
aria-checkedjaaria-pressed(true,false,mixedtaiundefined, joka tarkoittaa, ettei tilaa ole asetettu), luvut ja kokonaisluvut sekä kiinteitä sanaluetteloita käyttävät attribuutit, kutenaria-livejaaria-current. - Ilmoita jokainen arvo, joka ei ole vaatimusten mukainen, ja kerro, mitä odotettiin.
Tyhjäksi jätettyä attribuuttia, kuten arvotonta aria-live-attribuuttia, ei
ilmoiteta tässä. Selaimet jättävät tyhjän arvon huomiotta, joten attribuutti
käyttäytyy kuin sitä ei olisi: tyhjä aria-live toimii samoin kuin off.
Jos elementin rooli edellyttää attribuuttia, Puuttuva pakollinen ARIA-attribuutti
ilmoittaa sen puuttuvaksi.
Elementtitunnuksiin viittaavat attribuutit testataan omilla tarkistuksillaan,
kuten Puuttuva aria-controls-tunnus, ja vapaamuotoiset
tekstiattribuutit, kuten aria-label, hyväksyvät minkä tahansa tekstin.
Vianmääritys
Arvo asetetaan kehyksessä
Komponenttikirjastot sarjoittavat toisinaan tilat virheellisesti (esimerkiksi
luovat arvon aria-expanded="null"). Löydös osoittaa elementtiin, mutta
korjaus kuuluu yleensä komponentin määrityksiin tai kirjastopäivitykseen.