Siirry sisältöön

14.5.0

Multiselect

Komponentti yhden tai useamman valinnan tekemiseen pudotusvalikossa esitetyistä vaihtoehdoista.

Julkaistu versiossa 7.1.0

Esikatselu

Käyttötarkoitus

Multiselect-valintalistan avulla asiakas voi valita yhden tai useamman vaihtoehdon samaan ryhmään kuuluvien vaihtoehtojen joukosta.

Valintalistaa voi käyttää tilanteessa, jossa valittavia vaihtoehtoja on niin paljon, että niiden näyttäminen esimerkiksi valintanappeina veisi liikaa tilaa tai toisi käyttöliittymälle liian paljon kognitiivista kuormaa. Valintalistaa käytettäessä huomio kiinnittyy enemmän tehtyihin valintoihin kuin eri vaihtoehtoihin. Huomioi, että asiakas joutuu aina avaamaan listan ennen vaihtoehtojen vertailua.

Tee näin
  • Luettele vaihtoehdot loogisessa järjestyksessä, esimerkiksi valinnan yleisyyden mukaan tai aakkosjärjestyksessä.
  • Nimeä vaihtoehdot selkeästi ja ymmärrettävästi, mutta mahdollisimman napakasti.
  • Jos haluat käyttää oletusvalintaa, valitse asiakkaan kannalta todennäköisin tai sopivin vaihtoehto. Huolehdi, että oletusvalinnan käyttö on myös asiakkaan kannalta turvallista.
  • Jos oletusvalintaa ei ole, näytä Valitse-teksti.
  • Ohjeista tarvittaessa asiakasta komponentin käyttöön.
Älä tee näin
  • Älä käytä Multiselect-valintalistaa, jos valittavia vaihtoehtoja ei ole kovin montaa. Tällöin asiakkaan on nopeampaa valita oikea vaihtoehto suoraan esimerkiksi valintaruuduilla (Checkbox).

Saavutettavuus

Komponentin toteuttama käyttöliittymäelementti toimii myös näppäimistöllä ja ruudunlukijalla. Saavutettavuudesta kaivataan palautetta.

NäppäinToiminto
EnterAvaa valikon jos kohdistus on valintakomponentissa.
Jos valikko on auki, valitsee tai poistaa korostetun valinnan.
VälilyöntiAvaa valikon jos kohdistus on valintakomponentissa.
Jos valikko on auki, valitsee tai poistaa korostetun valinnan.
EscSulkee avoinna olevan valikon.
TabJos valikko on auki, eikä hakukenttä ole käytössä, sulkee valikon ja siirtää kohdistuksen pois komponentista. Jos hakukenttä on käytössä, siirtää kohdistusta hakukentän ja valintalistan välillä.
Jos valikko on auki ja valintalista on aktiivinen, korostaa seuraavan valinnan. Jos valikko on piilossa, avaa valikon ja korostaa ensimmäisen vaihtoehdon.
Jos valikko on auki, korostaa edellisen valinnan. Jos valikko on piilossa, avaa valikon ja korostaa viimeisen vaihtoehdon.
BackspacePoistaa viimeisimmän valinnan valikkoelementin ollessa kohdistettuna ja valikon ollessa suljettu.
HomeJos valikko on auki, siirtää kohdistuksen ensimmäiseen valintaan.
EndJos valikko on auki, siirtää kohdistuksen viimeiseen valintaan.

Ruudunlukijalle tarkoitettuja ilmoituksia voi muokata antamalla komponentille a11yTextAllItemsRemoved, a11yTextNoSelectedItems ja a11yTextAvailableOptions -propit.

Esimerkit

Pakollinen kenttä ja virhetilanne

Kentässä voidaan tarvittaessa näyttää virhetilanne pakollisen arvon puuttuessa.

Oletusvalinta

Käytä oletusvalintaa, jos sille on turvallinen ja selvästi todennäköisin vaihtoehto. Oletusvalinnan on hyvä olla listassa ensimmäisenä, mikäli se on mahdollista. Komponentti sallii myös useamman oletusvalinnan asettamisen. Mikäli oletusvalintaa ei ole annettu, näytetään painikkeessa placeholder-teksti “(Valitse)”.

Sallittujen valintojen lukumäärän rajoittaminen

Sallittujen valintojen lukumäärää voidaan tarvittaessa rajoittaa hyödyntämällä maxSelectedItems-proppia.

Filter-variantti

Komponentin filter-variantti tuottaa valintapainikkeen, jonka tekstinä näytetään komponentin nimilappu (labelText). Lisäksi painikkeessa näytetään tehtyjen valintojen määrä.

Hakutoiminto

Komponentissa voidaan tarvittaessa näyttää hakukenttä valintavaihtoehtojen suodattamiseksi. Hakukentän saa näkyville boolean-muotoisen showSearch-propin avulla ja se näytetään avoimen valintalistan yllä.

Estetty kenttä

Yksittäisten valintojen estäminen

Yksittäisiä valintoja voi estää asettamalla valinnalle disabled-tilan.

Ruudunlukijalla ei toistaiseksi pääse kohdistamaan estettyihin valintoihin. Vaihtoehtoisesti ne valinnat voi poistaa kokonaan, joita ei pysty valitsemaan.

Kaksipalstainen asettelu

Kaksipalstaisessa asettelussa tulostetaan leftCol-propilla kentän nimilappu ja aputeksti Column-komponentin sisään. Oikeanpuoleinen palsta täyttää aina vaakasuunnassa nimilapulta jäävän tyhjän tilan.

Pelkän valintaelementin leveyttä voi tarvittaessa lisäksi muuttaa antamalla inputWidth-propin avulla Column-komponentin halutulla leveydellä.

Valintojen poistaminen komponentin ulkopuolelta

Hyödyntämällä selectedItems-proppia saadaan komponentille välitettyä päivitetyt valinnat, jos niitä on tarpeellista voida poistaa valintalistan ulkopuolelta. Komponentti ei ota kantaa siihen, miten valinnat komponentin ulkopuolella näytetään, joten jää kehittäjän vastuulle tarvittaessa varmistaa esitettyjen valintojen ja niiden toiminnan saavutettavuus.

Valitse kaikki -toiminto

Valitse kaikki -toiminnon saa käyttöön antamalla komponentille selectAllLabel-propin. Ruudunlukijan lukemaa tekstiä voi muokata selectAllAriaLabel-propin kautta.

Valitse kaikki -toiminnon voi yhdistää hakutoimintoon, jolloin valitaan ja poistetaan vain näkyvät vaihtoehdot.

Estettyjen valintojen tilaa ei muuteta, kun valitaan valitse kaikki.