Toki, jos voisin opas saavutettavuuteen

ARIA ominaisuudet

ARIA ominaisuudet määrittävät komponentin ominaisuuksia, joita ei ole tuettu HTML:ssä. Useimmat ARIA ominaisuudet ovat pysyviä, eivätkä ne muutu, kun ne on asetettu. Esimerkki ARIA ominaisuudesta on <button aria-haspopup="true">. Tämä ominaisuus laajentaa nappieleemntin toimintaa ja saa ruudunlukijan ilmoittamaan, että mikäli nappi aktivoidaan, avataan pop-up. Tällä sivulla listaan joitakin yleisimpiä ominaisuuksia, ja miten niitä käytetään.

Aria-describedby

Attibuutilla aria-describedby annetaan saavutettava kuvaus elementille. Tämä on samankaltainen attribuutin aria-labelledby kanssa siinä mieleessä, että myös tälle annetaan kuvauksen sisältävän elementin ID.

Esimerkki aria-describedbyn käytöstä

<label for="my-field">Kentän nimitieto</label>
<input type="text" id="my-field" aria-describedby="help-text" />
<div id="help-text">Tämä on kentän ohjeteksti</div>

Aria-required

Attribuutin aria-required avulla voidaan kertoa avustaville teknologioille, että lomakkeen kenttä on pakollinen. Tällä attribuutilla ei ole muita toimintoja. Tätä attribuuttia voidaan käyttää tilanteessa, jossa ei haluta käyttää HTML:n tarjoamaa lomakevalidaatiota jostakin syystä, vaan halutaan käyttää esimerkiksi jotakin JavaScript-pohjaista validointia. Mikäli käytetään HTML:n validaatiota, ei tätä aria-attribuuttia tarvita, vaan käytetään normaalisti HTML:n required-attribuuttia.

Käytä ARIAa antamaan saavutettava nimi elementille

Pyri aina välttämään elementtejä ilman visuaalista merkintää. Mutta jos elementti kuitenkin tarvitaan, muista käyttää ARIAa, jotta sille voidaan antaa helppokäyttöinen nimi.

Aria-label

Attribuutti aria-label on hyödyllinen tilanteissa, joissa visuaalisesti näkyvää nimitietoa ei ole tarjolla. Tämä attribuutti määrittää kyseisen elementin nimen. Aria-label ylikirjoittaa minkä tahansa natiivin nimitiedon, esimerkiksi HTML-elementin <label>. Hyvä käyttöesimerkki aria-labelille on napissa, jossa visuaalisena sisältönä on pelkkä kuva. Tällaisessa tilanteessa on myös hyvä pysähtyä miettimään onko tämä kuvaelementti riittävän selkeä yksinään näkevälle käyttäjälle. Mikäli ei, voi käyttää esimerkiksi HTML:n attribuuttia title.

Aria-labelia ei tule käyttää kaikkialla. Esimerkiksi avustavaa teknologiaa käyttävä henkilö ei tarvitse tietoa, että elementti on alatunniste, eli niin sanottu footer. Footer tulisi määrittää käyttämällä HTML-elementtiä <footer>.

Esimerkki aria-labelin käytöstä

Tapaus 1: Nappi, jonka visuaalisena sisältönä no kuva. Jotta avustavaa teknologiaa käyttävä voi ymmärtää mitä elementissä on, tarjoa tieto aria-labelilla.

<button aria-label="Sulje ikkuna"><img src="/kuvan/polku/" /></button>

Tapaus 2: Lomakekenttä ilman näkyvää nimitietoa. Tarjoa avustavaa teknologiaa käyttäville nimitieto. Paras käytäntö on tarjota aina lomakkeiden kentille näkyvä nimitieto. Näin voidaan varmistaa, että kaikki käyttäjät ymmärtävät kentän toiminnallisuuden. Älä missään tapauksessa käytä placeholder-attribuuttia toimimaan nimitietona, sillä placeholder ei ole hyväksyttävä nimitieto.

<input aria-label="Hae sisältöä" />

Aria-labelledby

Attribuutilla aria-labelledby annetaan HTML elementti, jolla on tämän elementin nimitieto. Nimitietona käytettävä elementti voi olla visuaalisesti piilotettu, mutta yleensä tällaiset elementit kannattaa pitää näkyvissä myös näkeviä käyttäjiä ajatellen. Tälle attribuutille annetaan nimitiedon sisältävän elementin ID.

Elementtien välisten suhteiden määrittäminen

Jos elementti on vanhemman elementin sisällä DOM:ssa, älä käytä tämäntyyppistä ARIAa. Mutta jos et voi päätellä suhdetta DOM:sta, käytä ARIAa. ARIAn käyttö auttaa avustavia teknologioita ymmärtämään elementtien väliset suhteet.

Kun yksi elementti ohjaa toisen elementin käyttäytymistä, valitse aria-controls. Kun elementti omistaa toisen elementin, käytä aria-owns.

Aria-controls

Aria-controls -attribuutti kertoo, että elementti ohjaa toista elementtiä. Tyypillinen käyttötapa on, kun yksi elementti ohjaa toisen elementin käyttäytymistä tai tilaa. Esimerkki käyttötapauksesta ovat harmonikat tai välilehdet.

Esimerkki aria-controls -ominaisuuden käytöstä

<button aria-controls=”tabContent”>Välilehti</button><div id=”tabContent” role=”tabpanel”>Välilehden sisältö</div>

Aria-owns

Aria-owns kertoo, että elementtiä tulisi käsitellä nykyisen elementin lapsena. Elementillä voi olla yksi omistaja.

Esimerkki käyttötapauksesta voisi olla pudotusvalikko, kuten pop-up alivalikko. Usein toisessa elementissä on dynaamisesti tuotettua sisältöä, kuten dialogi tai valikko.

Esimerkki aria-owns -ominaisuuden käytöstä

<button id=”dropdownButton” aria-haspopup=”true” aria-owns=”dropdownMenu”>Valikko</button> <div id=”dropdownMenu” role=”menu”>Valikon sisältö</div>