Siirry sisältöön

Sidebar

Sivupalkki-komponentti navigaatiovalikon toteuttamiseen eri kokoisille näytöille.

Julkaistu versiossa 0.15.3

Käyttötarkoitus

Komponenttia käytetään sivupalkissa sijaitsevan navigaation toteuttamiseen silloin, kun käytetään sivupohjaa, jossa päänavigaationa on Sidebar. Komponentti muuntuu myös mobiilinavigaatioksi.

Komponentti toimii kehyksenä navigaatiolle. Varsinainen navigaatiorakenne toteutetaan valikon sisään sijoitettavalla Nav-komponentilla.

Komponenttia ei kannata käyttää erillisen mobiilinavigaation toteuttamiseen muissa sivupohjissa. OverlayNav-komponentti soveltuu tähän paremmin.

Saavutettavuus

Jos sivulla on useita navigaatioelementtejä (HTML:n nav-elementti), navigaatio on hyvä erottaa muista navigaatioelementeistä aria-label-attribuutilla.

Sidebar-komponentin sisään lisättäviä linkki- ja painikelistoja voi tarvittaessa erottaa visuaalisesti lisäämällä listojen väliin hr-tagin (ks. esimerkki alla). Mikäli ruudunlukijan ei haluta lukevan erotinviivaa tulee siihen lisätä aria-hidden-attribuutti.

Sidebar lukitsee kohdistuksen ja ruudunlukijan virtuaalikursorin valikon elementteihin sen ollessa auki ja isOverlay-tilassa.

Kohdistus palautetaan sivupalkin avanneeseen elementtiin, sivupalkin sulkeutuessa.

Esimerkit

Alla olevat esimerkit on muokattu koodieditoria varten, joten ne eivät täysin vastaa todellista käyttöä. Oikea esimerkki löytyy Sivupohja Sidebar-navigaatiolla.

Sivupalkin toteutus

Navigaatio toteutetaan Sidebar-komponentin sisään Nav-komponentilla.

Sivupalkin tilat

Overlay-tilassa valikko kelluu sisällön päällä ja kohdistus lukitaan valikon sisään.

Overlay-tilan asettamiseen tietyssä ruudunkoossa voi käyttää useMediaQuery-hookia.

Sivupalkin sulkeminen ja kohdistuksen palautus

Overlay-tilassa kohdistus palautuu sivupalkin sulkeutuessa siihen elementtiin, joka avasi sivupalkin (triggerRef tai document.activeElement).

Kohdistus on mahdollista siirtää johonkin toiseen elementtiin, asettamalla returnFocus={false} ja toteuttamalla kohdistuksen siirron sovelluksessa.

Tunnetut ongelmat

Kohdistuksen palautus

Safari ei aseta document.activeElement-elementtiä, kun painiketta klikataan hiirellä tai painetaan kosketusnäytöllä. Välitä komponentille triggerRef-propin kautta elementti, johon kohdistus palautetaan.