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:
- Se edistää inklusiivisuutta varmistaen, että kaikki voivat käyttää verkkosivustoasi.
- Se parantaa käyttäjäkokemusta kaikille käyttäjille, ei vain vammaisille.
- Se voi parantaa verkkosivustosi SEO:ta (hakukoneoptimointia).
- Se voi olla laillisesti vaadittu joillakin alueilla. Esimerkiksi monissa maissa on lakeja, jotka edellyttävät verkkosaavutettavuutta julkishallinnon verkkosivustoilta ja tietyiltä yksityisen sektorin toimijoilta. Yhdysvalloissa Americans with Disabilities Act (ADA) on tulkittu koskevan verkkosivustoja. Euroopassa Euroopan esteettömyysdirektiivi asettaa saavutettavuusvaatimuksia laajalle joukolle tuotteita ja palveluita, mukaan lukien verkkosivustot ja mobiilisovellukset. Australiassa on Disability Discrimination Act, joka kattaa myös verkkosaavutettavuuden.
- Se osoittaa yhteiskuntavastuuta ja vahvistaa brändisi mainetta.
WCAG:n periaatteet: POUR
WCAG perustuu neljään ydinperiaatteeseen, jotka muistetaan usein lyhenteestä POUR:
- Havaittava: Informaation ja käyttöliittymän komponenttien on oltava esitettävissä käyttäjille tavoilla, jotka he voivat havaita.
- Hallittava: Käyttöliittymän komponenttien ja navigoinnin on oltava hallittavissa.
- Ymmärrettävä: Informaation ja käyttöliittymän toiminnan on oltava ymmärrettävää.
- Toimintavarma: Sisällön on oltava riittävän toimintavarmaa, jotta se voidaan tulkita luotettavasti monenlaisilla käyttäjäohjelmilla, mukaan lukien avustavilla teknologioilla.
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:
- WebAIMin värikontrastin tarkistin: https://webaim.org/resources/contrastchecker/
- Accessible Color Palette Builder: https://www.learnui.design/tools/accessible-color-palette-builder.html
- Chrome DevTools: Chrome DevTools -työkaluissa on sisäänrakennettu värikontrastin tarkistus.
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:
- NVDA (NonVisual Desktop Access): Ilmainen ja avoimen lähdekoodin ruudunlukija Windowsille.
- JAWS (Job Access With Speech): Suosittu kaupallinen ruudunlukija Windowsille.
- VoiceOver: Sisäänrakennettu ruudunlukija macOS:lle ja iOS:lle.
Lisävinkkejä testaukseen:
- Näppäimistönavigointi: Testaa, että kaikki interaktiiviset elementit ovat saavutettavissa näppäimistöllä ja että kohdistusjärjestys on looginen.
- Lomakkeiden saavutettavuus: Varmista, että lomakekentät on merkitty oikein ja että virheilmoitukset ovat selkeitä ja helposti ymmärrettäviä.
- Kuvien alt-teksti: Varmista, että kaikilla kuvilla on kuvaileva alt-teksti, joka välittää tarkasti kuvan sisällön ja funktion.
- Dynaaminen sisältö: Testaa, että dynaamisen sisällön päivitykset ilmoitetaan oikein ruudunlukijoille.
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.
- Julkishallinnon verkkosivustot: Monilla mailla, kuten Isolla-Britannialla, Kanadalla ja Australialla, on tiukat saavutettavuusohjeet julkishallinnon verkkosivustoille. Nämä sivustot toimivat usein esimerkillisinä malleina WCAG-yhteensopivuudesta, esitellen parhaita käytäntöjä semanttisessa HTML:ssä, värikontrastissa ja näppäimistönavigoinnissa.
- Verkkokauppa-alustat: Globaalit verkkokaupan jättiläiset, kuten Amazon ja Alibaba, investoivat voimakkaasti saavutettavuuteen tavoittaakseen laajemman yleisön. Ne toteuttavat usein ominaisuuksia, kuten vaihtoehtoisen tekstin kuville, näppäimistönavigoinnin tuotteiden selaamiseen ja säädettävät kirjasinkoot parantaakseen luettavuutta.
- Oppilaitokset: Yliopistot ja korkeakoulut maailmanlaajuisesti keskittyvät yhä enemmän saavutettavien verkko-oppimisympäristöjen luomiseen. Ne tarjoavat usein transkriptioita videoille, tekstityksiä äänisisällölle ja saavutettavia versioita kurssimateriaaleista vammaisten opiskelijoiden huomioon ottamiseksi.
Yleisiä vältettäviä saavutettavuusvirheitä
- Riittämätön värikontrasti: Väriyhdistelmien käyttö, jotka ovat vaikealukuisia heikkonäköisille käyttäjille.
- Puuttuva alt-teksti kuvista: Kuvailevan alt-tekstin jättäminen pois kuvista, mikä tekee niistä saavuttamattomia ruudunlukijoiden käyttäjille.
- Huono näppäimistönavigointi: Sivustojen luominen, joita on vaikea tai mahdoton navigoida näppäimistöllä.
- Taulukoiden käyttäminen asetteluun: HTML-taulukoiden käyttäminen asettelutarkoituksiin semanttisten HTML-elementtien sijaan.
- Kohdistuksen ilmaisimien sivuuttaminen: Visuaalisen kohdistuksen ilmaisimen poistaminen tai peittäminen, mikä vaikeuttaa näppäimistökäyttäjien tietää, mikä elementti on kohdistettuna.
- Luottaminen pelkästään väreihin tiedon välittämisessä: Värin käyttäminen ainoana tiedon välityskeinona, mikä tekee siitä saavuttamattoman värisokeille käyttäjille.
- Testaamatta jättäminen avustavilla teknologioilla: Verkkosivuston testaamatta jättäminen avustavilla teknologioilla, kuten ruudunlukijoilla, saavutettavuusongelmien tunnistamiseksi ja korjaamiseksi.
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
- Web Content Accessibility Guidelines (WCAG): https://www.w3.org/WAI/standards-guidelines/wcag/
- Web Accessibility Initiative (WAI): https://www.w3.org/WAI/
- WebAIM: https://webaim.org/
- Deque University: https://dequeuniversity.com/