Siirry sisältöön

SelectionGroup

Ryhmittele samaan kenttäryhmään kuuluvat valintaruudut ja valintanapit saavutettavaksi ryhmäksi tällä komponentilla.

Julkaistu versiossa 1.1.0

Esikatselu

Käyttötarkoitus

Komponentin avulla voi ryhmitellä valintanapit ja valintaruudut saavutettaviksi ryhmiksi. Valintanapit ja valintaruudut ryhmitellään pääasiassa allekkain.

Saavutettavuus

Komponentti toteuttaa oletuksena semanttisen fieldset-ryhmän, joka otsikoidaan legend-elementillä.

Ryhmän otsikko, täyttöohje ja virheilmoitus luetaan automaattisesti, kun kohdistus siirtyy ryhmässä olevaan valintapainikkeeseen tai valintaruutuun.

Vaihtoehtoisesti ryhmittely voidaan toteuttaa myös ARIA-rooleilla role="group" tai role="radiogroup". Elementtiä voi vaihtaa as-propilla, jonka vaihtaminen lisää automaatisesti oikean roolin ja otsikkoviittauksen aria-labelledby-attribuuttiin.

Huom! VoiceOver- (iOS) ja TalkBack-ruudunlukijat tukevat paremmin natiivia fieldset-ryhmittelyä. ARIA-rooleja käytettäessä ryhmän nimeäminen ja virheilmoitukset saattavat jäädä lukematta.

Katso myös: Valintojen ryhmittely ilman näkyvää nimilappua

Tunnetut ongelmat

Valintaruutuja käytettäessä NVDA ei mene automaattisesti lomaketilaan, toisin kuin muiden komponenttien kanssa. Tästä syystä virheilmoituksen liittäminen fieldset-elementtiin aria-describedby-attribuutilla ei toimi ja virheviesti jää kokonaan lukematta. Valintanappien kanssa aria-describedby-attribuutin käyttö virheviestin automaattiseen lukemiseen toimii.

Lue lisää: Why do radio buttons trigger focus mode, but checkboxes don't?(Avautuu uuteen välilehteen)

Komponentissa on nyt toteutus, jossa täyttöohje ja virheilmoitus on piilotettu ruudunlukijoille osaksi legend-elementtiä. Lukemisjärjestys ei ole aivan optimaalinen, mutta valintanapit ja valintaruudut toimivat samalla logiikalla. Lisäksi osa sisällöstä joudutaan toistamaan piilotettuna ja ruudunlukijalle näkyy näkymättömiä tekstielementtejä.

Esimerkit

Radio

Checkbox

Oletusvalinta

Virheilmoitus

Näytä virheellisessä kenttäryhmässä aina selkeä virheilmoitus. Ryhmälle näytetään aina yksi yhteinen virheilmoitus valintojen alapuolella. Kenttäryhmän voi merkitä virheelliseksi käyttämällä invalid ja errorText -propeja.

Estetty ryhmä

Kaksipalstainen asettelu

Sivuttainen asettelu

Yksipalstainen asettelu.

Kaksipalstainen asettelu.

Pakollisuuden merkitseminen ryhmälle

Yksi valinnoista pakollinen

Esimerkki merkitsee kentät pakollisiksi siihen asti, että yksi niistä on valittu. Valinnan jälkeen yksittäisiä valintaruutuja ei enää ilmoiteta pakollisiksi.

Kaikki valinnat pakollisia

Esimerkki merkitsee kaikki ryhmän valintaruudut pakollisiksi ja jokainen niistä ilmoitetaan ruudunlukijalle pakollisena. Käytetään silloin kun käyttäjän on valittava kaikki valintaruudut.

Kokovaihtoehdot

Pienin koko (xs) on tarkoitettu tiivistä asettelua vaativiin asiantuntijakäyttöliittymiin.

Valintojen ryhmittely ilman näkyvää nimilappua

Piilotettu nimilappu

SelectionGroup-komponentille voidaan antaa piilotettu nimilappu (hiddenLabelText), joka toimii ryhmän nimenä tilanteessa, jossa ryhmällä ei ole näkyvää nimilappua.

Huonona puolena vaihtoehdossa on näkymätön tekstielementti, johon kuitenkin pääsee ruudunlukijalla navigoimaan.

Nimilappuun viittaminen aria-labelledby-attribuutilla

Vaihtoehtoisesti voidaan käyttää aria-labelledby-attribuuttia yhdistämään nimilappu, täyttöohje ja virheilmoitus ryhmään.

Vaihtoehto ei tuota näkymättömiä tekstielementtejä, mutta se ei toimi yhtä hyvin erityisesti VoiceOver- (iOS) ja TalkBack-ruudunlukijoiden kanssa ryhmään liitettyjen tekstien ilmoittamiseen.