Siirry pääsisältöön

Taulukko suodattimilla

Taulukkokomponentin ympärille rakennetuissa suodattimissa tulee ottaa huomioon useita käytettävyys- ja saavutettavuusasioita.

Referenssitoteutus

Alta löydät käytettävyydeltään ja saavutettavuudeltaan hiotun interaktiivisen referenssitoteutuksen taulukon suodattamisesta. Esimerkissä on simuloitu käyttötapausta, jossa taulukon data suodatetaan ja järjestellään selaimen sijaan serverillä.

Lähdekoodi GitHubissaAvautuu uudessa välilehdessä

Projektin henkilöstö

Taulukon suodattimet
80 henkilöä, 0 valittu
Kotimaa
JohnDoe125UK
JaneDoe150Norja
BruceWillis10Yhdysvallat
HarrietAckermannSaksa
AlexanderStubb2543Suomi
EmilyClark200Kanada
MichaelSmith300Australia
SarahJohnson400Uusi-Seelanti
DavidBrown500Irlanti
LauraWilson600Ruotsi

Saavutettavuus ja käytettävyys

  • Taulukon otsikko on erillinen otsikkokomponentti, joka tulee kytkeä taulukkoon aria-labelledby -attribuutilla.
  • Taulukon yläpuolella oleva tekstielementti (joka ilmaisee datan määrän, valittujen rivien määrän ja lataustilan) tulee kääriä aria-live regioniin, jotta ruudunlukijakäyttäjät saavat tiedon taulukon datan muutoksista. Alueelle tulee lisäksi asettaa aria-atomic= "true" -attribuutti, jotta ruudunlukija lukee koko sisällön muutoksien jälkeen.
  • Sijoita taulukkoa suodattavat kentät fieldset-elementin sisään ja anna fieldsetille kuvaava nimilappu (legend, referenssitoteutuksessa "taulukon suodattimet"). On hyväksyttävää, että nimilappu on visuaalisesti piilotettu.
  • Suodattimina toimiville kentille tulee antaa yksinkertaiset ja kuvaavat nimilaput (labelText), joista käy ilmi, että kentät liittyvät taulukon datan manipulointiin.
  • Kun taulukon dataa ladataan palvelimelta, tulee taulukko asettaa lataustilaan (loading-prop) ja näyttää visuaalinen "Ladataan..." -teksti taulukon yläpuolella.
  • Layout shiftin välttämiseksi taulukolle on hyvä antaa loadingRowAmount-prop, joka kertoo kuinka monta skeleton-riviä taulukkoon piirretään lataustilan aikana.
  • Kun taulukon järjestystä muutetaan, aseta taulukkokomponentin tableSortedAriaLiveText-attribuutin teksti vastaamaan muuttunutta järjestystä. Tällöin tieto välitetään ruudunlukijakäyttäjille.
  • Mikäli rivien valintamahdollisuus on kytketty päälle, tulee jokaiselle taulukon dataobjektille asettaa rowSelectionCheckboxLabel-attribuutti, joka kertoo käyttäjälle mitä tietoa rivillä oleva valintaruutu edustaa.