Suomi

Opi tekemään verkkosivustoistasi saavutettavia kaikille soveltamalla WCAG-ohjeita CSS:ssä. Luo inklusiivisia suunnitelmia globaalille yleisölle.

CSS-saavutettavuus: Käytännön opas WCAG-yhteensopivuuteen

Nykypäivän yhä digitaalisemmassa maailmassa verkkosaavutettavuuden varmistaminen ei ole vain paras käytäntö, vaan eettinen välttämättömyys. Saavutettavat verkkosivustot tarjoavat yhdenvertaisen pääsyn ja mahdollisuudet kaikille käyttäjille heidän kyvyistään riippumatta. Tämä opas keskittyy siihen, miten CSS:ää voidaan hyödyntää saavutettavien ja inklusiivisten verkkokokemusten luomiseksi noudattaen verkkosisällön saavutettavuusohjeita (WCAG).

Mitä WCAG tarkoittaa ja miksi se on tärkeä?

Verkkosisällön saavutettavuusohjeet (WCAG) ovat joukko kansainvälisesti tunnustettuja suosituksia verkkosisällön tekemiseksi saavutettavammaksi vammaisille henkilöille. World Wide Web Consortiumin (W3C) kehittämä WCAG tarjoaa jaetun standardin verkkosaavutettavuudelle, joka vastaa yksilöiden, organisaatioiden ja hallitusten tarpeisiin kansainvälisesti. WCAG on tärkeä, koska:

WCAG:n periaatteet: POUR

WCAG perustuu neljään ydinperiaatteeseen, jotka muistetaan usein lyhenteestä POUR:

Saavutettavuuden CSS-tekniikat

CSS:llä on ratkaiseva rooli WCAG-yhteensopivuuden saavuttamisessa. Tässä on joitakin keskeisiä CSS-tekniikoita, jotka kannattaa ottaa huomioon:

1. Semanttinen HTML ja CSS

Semanttisten HTML-elementtien oikea käyttö antaa merkityksen ja rakenteen sisällöllesi, mikä tekee siitä saavutettavamman ruudunlukijoille ja muille avustaville teknologioille. CSS puolestaan parantaa näiden semanttisten elementtien esitystapaa.

Esimerkki:

Sen sijaan, että käyttäisit yleisiä <div>-elementtejä kaikkeen, käytä semanttisia elementtejä kuten <article>, <nav>, <aside>, <header>, <footer>, <main>, <section> ja otsikkotageja (<h1> - <h6>).

HTML:

<article> <h2>Artikkelin otsikko</h2> <p>Artikkelin sisältö tulee tähän.</p> </article>

CSS:

article { margin-bottom: 20px; } h2 { font-size: 1.5em; font-weight: bold; margin-bottom: 10px; }

Käyttämällä <article>- ja <h2>-elementtejä annat sisällölle semanttisen merkityksen, mikä auttaa avustavia teknologioita ymmärtämään sen rakenteen ja kontekstin.

2. Värit ja kontrasti

Varmista riittävä värikontrasti tekstin ja taustavärien välillä, jotta sisältö on luettavissa heikkonäköisille tai värisokeille käyttäjille. WCAG 2.1 -taso AA vaatii vähintään 4.5:1 kontrastisuhteen normaalille tekstille ja 3:1 suurelle tekstille (18pt tai 14pt lihavoituna).

Työkaluja värikontrastin tarkistamiseen:

Esimerkki:

/* Hyvä kontrasti */ body { background-color: #000000; /* Musta */ color: #FFFFFF; /* Valkoinen */ } /* Huono kontrasti */ body { background-color: #FFFFFF; /* Valkoinen */ color: #F0F0F0; /* Vaaleanharmaa */ }

Ensimmäinen esimerkki tarjoaa hyvän kontrastin, kun taas toisessa esimerkissä on huono kontrasti ja se olisi monille käyttäjille vaikealukuinen.

Värien lisäksi: Älä luota pelkästään väreihin tiedon välittämisessä. Käytä tekstiselitteitä, ikoneita tai muita visuaalisia vihjeitä värin lisäksi varmistaaksesi, että tieto on kaikkien saavutettavissa. Esimerkiksi sen sijaan, että korostaisit vaaditut lomakekentät punaisella, käytä yhdistelmää punaisesta reunasta ja tekstiselitteestä, kuten "(vaadittu)".

3. Kohdistuksen ilmaisimet

Kun käyttäjät navigoivat verkkosivustollasi näppäimistöllä (esim. Tab-näppäimellä), on ratkaisevan tärkeää tarjota selkeät visuaaliset kohdistuksen ilmaisimet, jotta he tietävät, mikä elementti on sillä hetkellä kohdistettuna. Selaimen oletusarvoinen kohdistuksen ilmaisin voi olla riittämätön tai jopa näkymätön joissakin tapauksissa. Käytä CSS:ää kohdistuksen ilmaisimen mukauttamiseen, jotta se olisi näkyvämpi.

Esimerkki:a:focus, button:focus, input:focus, textarea:focus, select:focus { outline: 2px solid #007bff; /* Sininen ääriviiva */ outline-offset: 2px; /* Luo tilaa elementin ja ääriviivan väliin */ }

Tämä CSS-koodi lisää sinisen ääriviivan elementteihin, kun ne saavat kohdistuksen. outline-offset-ominaisuus lisää pienen tilan elementin ja ääriviivan väliin parantaen näkyvyyttä. Vältä kohdistuksen ilmaisimen poistamista kokonaan tarjoamatta sopivaa korvaajaa, sillä tämä voi tehdä verkkosivustostasi käyttökelvottoman näppäimistökäyttäjille.

4. Näppäimistönavigointi

Varmista, että kaikki interaktiiviset elementit (linkit, painikkeet, lomakekentät jne.) ovat navigoitavissa näppäimistöllä. Tämä on olennaista käyttäjille, jotka eivät voi käyttää hiirtä. Elementtien järjestyksen HTML-lähdekoodissa tulisi vastata visuaalista järjestystä sivulla loogisen navigointivirran varmistamiseksi. Käytä CSS:ää elementtien visuaaliseen uudelleenjärjestelyyn säilyttäen samalla loogisen näppäimistönavigointijärjestyksen.

Esimerkki:

Harkitse tilannetta, jossa haluat näyttää navigointivalikon näytön oikealla puolella CSS:n avulla. Saavutettavuussyistä haluat kuitenkin navigointivalikon näkyvän ensimmäisenä HTML-lähdekoodissa, jotta ruudunlukijoiden käyttäjät kohtaavat sen ennen pääsisältöä.

HTML:

<nav> <ul> <li><a href="#">Koti</a></li> <li><a href="#">Tietoa</a></li> <li><a href="#">Palvelut</a></li> <li><a href="#">Yhteystiedot</a></li> </ul> </nav> <main> <h1>Pääsisältö</h1> <p>Tämä on sivun pääsisältö.</p> </main>

CSS:

body { display: flex; } nav { order: 1; /* Siirtää navigaation oikealle */ width: 200px; padding: 20px; } main { order: 0; /* Pitää pääsisällön vasemmalla */ flex: 1; padding: 20px; }

Käyttämällä order-ominaisuutta CSS:ssä voit visuaalisesti järjestellä navigointivalikon näytön oikealle puolelle säilyttäen sen alkuperäisen sijainnin HTML-lähdekoodissa. Tämä varmistaa, että näppäimistökäyttäjät kohtaavat navigointivalikon ensin, mikä parantaa saavutettavuutta.

5. Sisällön piilottaminen vastuullisesti

Joskus sinun on piilotettava sisältöä visuaalisesta näkymästä, mutta pidettävä se ruudunlukijoiden saatavilla. Haluat ehkä esimerkiksi antaa lisäkontekstia linkille tai painikkeelle, joka on visuaalisesti esitetty vain ikonilla. Vältä display: none- tai visibility: hidden -ominaisuuksien käyttöä, koska ne piilottavat sisällön sekä visuaalisilta käyttäjiltä että ruudunlukijoilta. Käytä sen sijaan tekniikkaa, joka piilottaa sisällön visuaalisesti, mutta pitää sen avustavien teknologioiden saatavilla.

Esimerkki:

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

Tämä CSS-luokka piilottaa elementin visuaalisesti, mutta pitää sen ruudunlukijoiden saatavilla. Käytä tätä luokkaa tekstiin, jonka haluat ruudunlukijoiden lukevan, mutta jota ei näytetä visuaalisesti.

HTML-esimerkki:

<a href="#">Muokkaa <span class="sr-only">kohdetta</span></a>

Tässä esimerkissä teksti "kohdetta" on piilotettu visuaalisesti, mutta ruudunlukijat lukevat sen, mikä antaa kontekstin "Muokkaa"-linkille.

ARIA-attribuutit (Accessible Rich Internet Applications): Käytä ARIA-attribuutteja harkitusti dynaamisen sisällön ja monimutkaisten käyttöliittymäkomponenttien saavutettavuuden parantamiseksi. ARIA-attribuutit tarjoavat lisätietoa semantiikasta avustaville teknologioille. Vältä kuitenkin ARIA-attribuuttien käyttöä sellaisten saavutettavuusongelmien korjaamiseen, jotka voidaan ratkaista semanttisella HTML:llä. Käytä esimerkiksi ARIA-rooleja ja -attribuutteja mukautettujen widgetien määrittämiseen ja tilapäivitysten antamiseen ruudunlukijoille, kun sisältö muuttuu dynaamisesti.

6. Responsiivinen suunnittelu ja saavutettavuus

Varmista, että verkkosivustosi on responsiivinen ja mukautuu eri näyttökokoihin ja laitteisiin. Tämä on ratkaisevan tärkeää vammaisille käyttäjille, jotka saattavat käyttää avustavia teknologioita mobiililaitteilla tai tableteilla. Käytä CSS-mediakyselyitä sisällön asettelun ja esitystavan säätämiseen näytön koon ja suunnan perusteella.

Esimerkki:

@media (max-width: 768px) { nav ul { flex-direction: column; /* Pinoaa navigointikohteet pystysuoraan pienemmillä näytöillä */ } }

Tämä CSS-koodi käyttää mediakyselyä muuttaakseen navigointikohteiden suunnan pystysuoraksi pienemmillä näytöillä, mikä helpottaa navigointia mobiililaitteilla.

7. Animaatiot ja liike

Liialliset tai huonosti toteutetut animaatiot voivat aiheuttaa joillekin käyttäjille kohtauksia tai liikesairautta. Käytä CSS:ää animaatioiden vähentämiseen tai poistamiseen käytöstä käyttäjille, jotka suosivat vähennettyä liikettä. prefers-reduced-motion-mediakyselyn avulla voit havaita, onko käyttäjä pyytänyt järjestelmää minimoimaan käyttämänsä animaation tai liikkeen määrän.

Esimerkki:

@media (prefers-reduced-motion: reduce) { .animated-element { animation: none !important; transition: none !important; } }

Tämä CSS-koodi poistaa animaatiot ja siirtymät käytöstä käyttäjiltä, jotka ovat ottaneet käyttöjärjestelmässään käyttöön "vähennetyn liikkeen" asetuksen. Harkitse säätimen tarjoamista, jonka avulla käyttäjät voivat manuaalisesti poistaa animaatiot käytöstä verkkosivustollasi.

8. Testaus avustavilla teknologioilla

Tehokkain tapa varmistaa verkkosivustosi saavutettavuus on testata sitä avustavilla teknologioilla, kuten ruudunlukijoilla, näytönsuurennusohjelmilla ja puheentunnistusohjelmistoilla. Käytä erilaisia avustavia teknologioita saadaksesi kattavan käsityksen verkkosivustosi saavutettavuudesta.

Suositut ruudunlukijat:

Lisävinkkejä testaukseen:

Edistyneet CSS-tekniikat saavutettavuuteen

1. Mukautetut ominaisuudet (CSS-muuttujat) teemoitukseen

Käytä CSS:n mukautettuja ominaisuuksia (muuttujia) luodaksesi saavutettavia teemoja, joissa on korkean kontrastin vaihtoehtoja. Tämä antaa käyttäjille mahdollisuuden mukauttaa verkkosivustosi ulkoasua omien tarpeidensa mukaan.

Esimerkki:

:root { --text-color: #333; --background-color: #fff; --link-color: #007bff; } body { color: var(--text-color); background-color: var(--background-color); } a { color: var(--link-color); } /* Korkean kontrastin teema */ .high-contrast { --text-color: #fff; --background-color: #000; --link-color: #ff0; }

Tämä esimerkki määrittelee CSS:n mukautetut ominaisuudet tekstin värille, taustavärille ja linkin värille. .high-contrast-luokka ohittaa nämä muuttujat luodakseen korkean kontrastin teeman. Voit sitten käyttää JavaScriptiä vaihtaaksesi .high-contrast-luokan <body>-elementissä teemojen välillä.

2. CSS Grid ja Flexbox saavutettaviin asetteluihin

CSS Grid ja Flexbox ovat tehokkaita asettelutyökaluja, joita voidaan käyttää saavutettavien ja responsiivisten asettelujen luomiseen. On kuitenkin tärkeää käyttää niitä huolellisesti varmistaaksesi, että elementtien visuaalinen järjestys vastaa DOM-järjestystä.

Esimerkki:

Kun käytät Flexboxia tai Gridiä, varmista, että sarkainjärjestys pysyy loogisena. order-ominaisuus voi häiritä sarkainjärjestystä, jos sitä ei käytetä huolellisesti.

3. `clip-path` ja saavutettavuus

`clip-path`-ominaisuutta voidaan käyttää visuaalisesti mielenkiintoisten muotojen ja tehosteiden luomiseen. Ole kuitenkin varovainen käyttäessäsi `clip-path`-ominaisuutta, koska se voi joskus peittää sisältöä tai tehdä siitä vaikeasti vuorovaikutteisen. Varmista, että leikattu sisältö pysyy saavutettavana ja että leikkaus ei häiritse näppäimistönavigointia tai ruudunlukijan pääsyä.

4. `content`-ominaisuus ja saavutettavuus

CSS:n `content`-ominaisuutta voidaan käyttää luodun sisällön lisäämiseen elementin eteen tai jälkeen. Luotu sisältö ei kuitenkaan ole aina ruudunlukijoiden saavutettavissa. Käytä `content`-ominaisuutta harkitusti ja harkitse ARIA-attribuuttien käyttöä lisäsemantiikan tarjoamiseksi avustaville teknologioille.

Tosielämän esimerkkejä ja tapaustutkimuksia

Tarkastellaan joitakin tosielämän esimerkkejä havainnollistamaan, miten näitä periaatteita sovelletaan eri alueilla ja konteksteissa.

Yleisiä vältettäviä saavutettavuusvirheitä

Johtopäätös: Saavutettavuuden omaksuminen paremman verkon puolesta

Saavutettavuus ei ole vain tekninen vaatimus; se on perustavanlaatuinen osa inklusiivisen ja kaikille saavutettavan verkon luomista. Toteuttamalla näitä CSS-tekniikoita ja noudattamalla WCAG-ohjeita voit luoda verkkosivustoja, jotka eivät ole vain visuaalisesti houkuttelevia, vaan myös käyttökelpoisia ja nautittavia kaikille käyttäjille heidän kyvyistään riippumatta. Omaksu saavutettavuus kiinteäksi osaksi web-kehitysprosessiasi, ja edistät osaltasi inklusiivisempaa ja oikeudenmukaisempaa digitaalista maailmaa.

Resurssit ja lisälukemisto