Avastage, kuidas luua ligipääsetavaid liugur-nuppe oma veebisaitidele ja rakendustele. Tagage kaasatus ja parandage kasutajakogemust meie põhjaliku juhendiga vahemiku sisestuse ligipääsetavuse nõuete kohta.
Liugur-nupud: põhjalik juhend ligipääsetavale vahemiku sisestusele
Liugur-nupud, tuntud ka kui vahemiku sisestused, on levinud kasutajaliidese (UI) element, mida kasutatakse väärtuse valimiseks pidevast vahemikust. Need on laialt levinud veebisaitidel ja rakendustes, esinedes kõiges alates helitugevuse regulaatoritest ja hinnafiltritest kuni andmete visualiseerimise tööriistadeni. Kuid visuaalselt atraktiivne ja näiliselt funktsionaalne liugur võib kiiresti muutuda takistuseks puuetega kasutajatele, kui ligipääsetavust ei peeta prioriteediks. See juhend annab põhjaliku ülevaate liugur-nuppude ligipääsetavuse nõuetest, tagades, et igaüks saab teie vahemiku sisestusi tõhusalt kasutada, olenemata nende võimetest või kasutatavatest abitehnoloogiatest.
Ligipääsetavate liugurite olulisuse mõistmine
Ligipääsetavus ei ole pelgalt vastavuse kontrollnimekiri; see on hea veebidisaini ja -arenduse fundamentaalne aspekt. Ligipääsetav liugur-nupp tagab, et nägemis-, liikumis-, kognitiivsete puuetega ja muude piirangutega kasutajad saavad elemendiga sisukalt ja tõhusalt suhelda. Ligipääsetavuse kaalutluste eiramine võib välistada märkimisväärse osa teie potentsiaalsest sihtrühmast, põhjustades negatiivset brändi mainet ja potentsiaalselt isegi õiguslikke tagajärgi piirkondades, kus kehtivad ranged ligipääsetavuse seadused, nagu Euroopa ligipääsetavuse akt (EAA) või Ameerika puuetega inimeste seadus (ADA) Ameerika Ühendriikides. Globaalsest vaatenurgast laiendab ligipääsetavuse prioritiseerimine teie haaret ja näitab pühendumust kaasavusele, mis kõnetab laiemat kasutajaskonda.
Liugur-nuppude peamised ligipääsetavuse nõuded
Ligipääsetavate liugur-nuppude loomiseks tuleb käsitleda mitmeid võtmevaldkondi. Nende hulka kuuluvad semantiline HTML, ARIA atribuudid, klaviatuuriga navigeerimine, fookuse haldamine, värvikontrastsus ja selged visuaalsed vihjed. Uurime igaüht neist üksikasjalikumalt:
1. Semantiline HTML: elemendi <input type="range"> kasutamine
Ligipääsetava liuguri alus peitub semantilise HTML-elemendi <input type="range">
kasutamises. See element annab liugur-nupule põhistruktuuri ja pakub kaasasündinud ligipääsetavuse eeliseid võrreldes kohandatud liuguri ehitamisega <div>
elementide ja JavaScripti abil. Element <input type="range">
võimaldab brauseritel ja abitehnoloogiatel tuvastada elemendi liugur-nupuna ning pakub klaviatuuri ligipääsetavuse vaiketaset.
Näide:
<input type="range" id="volume" name="volume" min="0" max="100" value="50">
See koodilõik loob lihtsa liuguri helitugevuse reguleerimiseks, mille minimaalne väärtus on 0, maksimaalne 100 ja algväärtus 50. See semantiline struktuur on ligipääsetavuse jaoks ülioluline lähtepunkt.
2. ARIA atribuudid: semantilise tähenduse täiustamine
Kuigi element <input type="range">
annab semantilise aluse, on ARIA (Accessible Rich Internet Applications) atribuudid olulised, et pakkuda abitehnoloogiatele üksikasjalikumat teavet liuguri eesmärgi, oleku ja seoste kohta teiste lehe elementidega. ARIA atribuudid ei mõjuta liuguri visuaalset välimust ega funktsionaalsust; need on mõeldud puhtalt teabe edastamiseks abitehnoloogiatele, nagu ekraanilugejad.
Liugur-nuppude peamised ARIA atribuudid:
aria-label
: Annab liugurile lühikese, inimloetava sildi. Kasutage seda siis, kui nähtav silt puudub. Näiteks:aria-label="Helitugevuse reguleerimine"
aria-labelledby
: Viitab elemendi ID-le, mis annab liugurile nähtava sildi. See on eelistatud meetod, kui nähtav silt on olemas. Näiteks:aria-labelledby="volume-label"
, kus on olemas<label id="volume-label" for="volume">Helitugevus</label>
.aria-valuemin
: Määrab liuguri minimaalse lubatud väärtuse. See peegeldab elemendi<input type="range">
atribuutimin
.aria-valuemax
: Määrab liuguri maksimaalse lubatud väärtuse. See peegeldab elemendi<input type="range">
atribuutimax
.aria-valuenow
: Näitab liuguri praegust väärtust. See peegeldab elemendi<input type="range">
atribuutivalue
ja seda tuleks dünaamiliselt uuendada, kui liuguri väärtus muutub.aria-valuetext
: Annab praeguse väärtuse inimloetava esituse. See on eriti oluline, kui väärtus ei ole lihtne number, näiteks kuupäev, kellaaeg või valuuta. Näiteks:aria-valuetext="$500 USD"
hinnafiltri jaoks.aria-orientation
: Näitab liuguri suunda (horisontaalne või vertikaalne). Kasutage vertikaalsete liugurite jaoksaria-orientation="vertical"
. Vaikimisi on see horisontaalne.aria-describedby
: Viitab elemendi ID-le, mis annab üksikasjalikuma kirjelduse liuguri eesmärgi või kasutusjuhiste kohta. Näiteks võib see viidata tekstile, mis selgitab konkreetse väärtuse määramise tagajärgi.
Näide ARIA atribuutidega:
<label id="price-label" for="price-range">Hinnavahemik:</label>
<input type="range" id="price-range" name="price-range" min="0" max="1000" value="500" aria-labelledby="price-label" aria-valuemin="0" aria-valuemax="1000" aria-valuenow="500" aria-valuetext="$500 USD">
See näide kasutab aria-labelledby
atribuuti, et seostada liugur nähtava sildiga, ja aria-valuetext
atribuuti, et edastada praegune hind kasutajasõbralikus vormingus. Pange tähele "USD" kasutamist - sobiva valuutasümboli kasutamine on rahvusvahelistele kasutajatele oluline. Võiksite isegi kasutada dünaamilist valuutavahetajat ja uuendada vastavalt atribuuti `aria-valuetext`.
3. Klaviatuuriga navigeerimine: toimivuse tagamine ilma hiireta
Klaviatuuriga navigeerimine on ülioluline liikumispuudega kasutajatele või neile, kes eelistavad veebisaitidel navigeerida klaviatuuri abil. Liugur-nupp peab olema täielikult kasutatav ainult klaviatuuri abil.
Nõutavad klaviatuuri interaktsioonid:
- Tab-klahv: Fookus peaks liikuma liugurile, kui kasutaja vajutab Tab-klahvi. Fookust saavate elementide järjekord peaks järgima lehel loogilist järjestust (tavaliselt lugemisjärjekorda).
- Nooleklahvid (vasak/parem või üles/alla): Vasak ja parem nooleklahv (horisontaalsete liugurite puhul) või üles ja alla nooleklahv (vertikaalsete liugurite puhul) peaksid suurendama või vähendama liuguri väärtust mõistliku sammuga. Suurendamise/vähendamise samm peaks olema järjepidev ja prognoositav.
- Home-klahv: Peaks seadma liuguri väärtuse miinimumväärtusele.
- End-klahv: Peaks seadma liuguri väärtuse maksimumväärtusele.
- Page Up/Page Down klahvid: Peaksid suurendama või vähendama liuguri väärtust suurema sammuga kui nooleklahvid (nt 10% kogu vahemikust).
Element <input type="range">
pakub tavaliselt vaikimisi klaviatuuriga navigeerimist, kuid see võib vajada täiustamist, eriti kohandatud liugurite puhul. Nende interaktsioonide korrektseks rakendamiseks ning atribuutide aria-valuenow
ja aria-valuetext
dünaamiliseks uuendamiseks on sageli vaja JavaScripti. Veenduge, et teie skript käsitleb äärmuslikke juhtumeid, näiteks takistab väärtuse langemist alla miinimumi või tõusmist üle maksimumi.
JavaScripti näide (illustreeriv):
```javascript const slider = document.getElementById('volume'); slider.addEventListener('keydown', (event) => { let currentValue = parseInt(slider.value); const step = 5; // Suurendamise/vähendamise samm const minValue = parseInt(slider.min); const maxValue = parseInt(slider.max); switch (event.key) { case 'ArrowLeft': currentValue = Math.max(minValue, currentValue - step); break; case 'ArrowRight': currentValue = Math.min(maxValue, currentValue + step); break; case 'Home': currentValue = minValue; break; case 'End': currentValue = maxValue; break; // Käsitle Page Up/Page Down sarnaselt default: return; // Välju, kui klahv pole asjakohane } slider.value = currentValue; slider.setAttribute('aria-valuenow', currentValue); slider.setAttribute('aria-valuetext', currentValue + '%'); // Näide: protsendi kuvamine event.preventDefault(); // Takista brauseri vaikimisi käitumist }); ```
See JavaScripti koodilõik on lihtne näide, kuidas käsitleda klaviatuuri sündmusi liuguril. Ärge unustage kohandada sammu suurust, miinimumi, maksimumi ja `aria-valuetext` atribuuti vastavalt oma konkreetse liuguri nõuetele. Sobivate ühikute kasutamine on ülioluline, näiteks temperatuuri näitamine Celsiuse või Fahrenheiti kraadides sõltuvalt kasutaja asukohast. Seda on võimalik saavutada geolokatsiooni API või kasutaja seadete abil.
4. Fookuse haldamine: selgete visuaalsete fookuse indikaatorite pakkumine
Kui kasutaja navigeerib klaviatuuri abil liugurile, tuleks kuvada selge visuaalne fookuse indikaator. See indikaator aitab kasutajatel mõista, millisel elemendil on hetkel fookus. Brauserite pakutav vaikimisi fookuse indikaator ei pruugi alati olla piisav, eriti kui liuguril on kohandatud välimus.
Fookuse indikaatorite parimad tavad:
- Kasutage CSS-i fookuse indikaatori stiilimiseks: CSS-i pseudoklass
:focus
võimaldab teil fookuse indikaatorit stiilida. Vältige vaikimisi fookuse indikaatori eemaldamist ilma asendust pakkumata, kuna see võib klaviatuuriga navigeerimise väga keeruliseks muuta. - Tagage piisav kontrastsus: Fookuse indikaatoril peab olema piisav kontrastsus ümbritseva taustaga. WCAG (Web Content Accessibility Guidelines) nõuab fookuse indikaatoritele vähemalt 3:1 kontrastsussuhet.
- Kaaluge suurust ja kuju: Fookuse indikaator peab olema selgelt nähtav ja eristatav liuguri teistest visuaalsetest elementidest. Äärise, kontuuri või taustavärvi muutuse kasutamine võib fookuses olevat elementi tõhusalt esile tõsta.
CSS-i näide:
```css input[type="range"]:focus { outline: 2px solid #007bff; /* Sinine kontuur */ outline-offset: 2px; /* Loob tühimiku kontuuri ja liuguri vahele */ } ```
See CSS-kood lisab liugurile sinise kontuuri, kui see saab fookuse. Omadus outline-offset
loob kontuuri ja liuguri vahele veidi ruumi, muutes indikaatori visuaalselt paremini märgatavaks. Nägemispuudega kasutajate jaoks võib fookuse indikaatori kohandamise võimaluste (värv, paksus, stiil) pakkumine oluliselt parandada kasutatavust.
5. Värvikontrastsus: nähtavuse tagamine nägemispuudega kasutajatele
Värvikontrastsus on kriitiline ligipääsetavuse kaalutlus, eriti vaegnägijate või värvipimedate kasutajate jaoks. Liuguri visuaalsetel elementidel, sealhulgas rööpal, nupul ja mis tahes siltidel või juhistel, peab olema piisav kontrastsus nende taustavärvidega.
WCAG nõuded värvikontrastsusele:
- Tekst ja teksti kujutised: Kontrastsussuhe taustaga peab olema vähemalt 4.5:1.
- Suur tekst (18pt või 14pt paksus kirjas): Kontrastsussuhe taustaga peab olema vähemalt 3:1.
- Mitte-tekstiline kontrastsus (UI komponendid ja graafilised objektid): Kontrastsussuhe külgnevate värvidega peab olema vähemalt 3:1. See kehtib liuguri rööpa ja nupu kohta.
Kasutage värvikontrastsuse analüüsi tööriistu (saadaval veebis ja brauserilaienditena), et kontrollida, kas teie liugur vastab neile kontrastsusnõuetele. Pidage meeles, et erinevates kultuurides võib värvidel olla erinev tähendus. Vältige värvi kasutamist ainsa teabe edastamise vahendina (nt punase kasutamine veaolukorra näitamiseks ilma teksti või ikooni pakkumata). Alternatiivsete visuaalsete vihjete, näiteks ikoonide või mustrite pakkumine, on oluline kasutajatele, kes ei suuda värve eristada.
6. Selged visuaalsed vihjed: sisuka tagasiside pakkumine
Visuaalsed vihjed on olulised, et anda kasutajatele sisukat tagasisidet liuguri oleku ja väärtuse kohta. Need vihjed peaksid olema selged, intuitiivsed ja järjepidevad erinevates brauserites ja seadmetes.
Olulised visuaalsed vihjed:
- Nupu asend: Nupu asend peaks selgelt näitama liuguri praegust väärtust.
- Rööpa täide: Rööpa täitmine nupu ühel küljel võib visuaalselt esindada valitud väärtuse edenemist või suurust.
- Sildid ja kohtspikrid: Pakkuge silte, mis selgelt näitavad liuguri eesmärki, ja valikuliselt kuvage kohtspikker, mis näitab praegust väärtust, kui kasutaja liuguriga suhtleb.
- Visuaalne tagasiside interaktsioonil: Pakkuge visuaalset tagasisidet (nt värvi või suuruse muutust), kui kasutaja liuguriga suhtleb, näiteks kui nuppu lohistatakse või klahvi vajutatakse.
Arvestage kognitiivsete puuetega kasutajatega, vältides liiga keerulisi visuaalseid kujundusi või animatsioone, mis võivad olla häirivad või segadust tekitavad. Hoidke visuaalne kujundus lihtne ja keskenduge selge ning lühikese teabe pakkumisele.
Testimine ja valideerimine
Pärast ligipääsetavuse funktsioonide rakendamist on põhjalik testimine ja valideerimine ülioluline, et tagada liugur-nupu tõeline ligipääsetavus. See hõlmab:
- Käsitsi testimine: Testige liugurit klaviatuuri ja hiirega, et veenduda selle täielikus toimivuses ja visuaalse fookuse indikaatori selges nähtavuses.
- Ekraanilugejaga testimine: Testige liugurit ekraanilugejaga (nt NVDA, JAWS, VoiceOver), et veenduda, kas ARIA atribuudid on õigesti rakendatud ja kas ekraanilugeja annab täpset ning sisukat teavet liuguri eesmärgi, oleku ja väärtuse kohta.
- Automatiseeritud ligipääsetavuse testimine: Kasutage automatiseeritud ligipääsetavuse testimise tööriistu (nt axe DevTools, WAVE), et tuvastada potentsiaalseid ligipääsetavuse probleeme. Need tööriistad aitavad teil tabada levinud vigu, nagu puuduvad ARIA atribuudid või ebapiisav värvikontrastsus.
- Kasutajatestimine: Kaasake testimisprotsessi puuetega kasutajaid, et saada nende tagasisidet liuguri kasutatavuse ja ligipääsetavuse kohta. Kasutajatestimine on hindamatu väärtusega probleemide tuvastamisel, mis ei pruugi automatiseeritud või käsitsi testimise käigus ilmneda.
Pidage meeles, et ligipääsetavuse testimine on pidev protsess. Testige oma liugur-nuppe regulaarselt, kui teete oma veebisaidile või rakendusele muudatusi, et tagada ligipääsetavuse säilimine.
Kohandatud liugur-nupud: hoiatus
Kuigi element <input type="range">
pakub ligipääsetavusele tugeva aluse, võib mõnikord olla vaja luua kohandatud liugur-nupp, et vastata konkreetsetele disaininõuetele. Kuid kohandatud liuguri ehitamine nullist suurendab oluliselt ligipääsetavuse tagamise keerukust. Kui otsustate luua kohandatud liuguri, peate hoolikalt rakendama kõiki selles juhendis kirjeldatud ligipääsetavuse nõudeid, sealhulgas semantilist HTML-i (kasutades sobivaid ARIA rolle), klaviatuuriga navigeerimist, fookuse haldamist, värvikontrastsust ja selgeid visuaalseid vihjeid. Sageli on eelistatav täiustada natiivse <input type="range">
elemendi stiili, kui see on võimalik, selle asemel, et luua täiesti kohandatud komponent. Kui kohandatud liugur on absoluutselt vajalik, seadke ligipääsetavus algusest peale esikohale ning eraldage piisavalt aega ja ressursse põhjalikuks testimiseks ja valideerimiseks.
Rahvusvahelistumise kaalutlused
Globaalsele sihtrühmale liugur-nuppe kujundades arvestage järgmiste rahvusvahelistumise (i18n) aspektidega:
- Keel: Veenduge, et kõik sildid, juhised ja veateated on tõlgitud sobivatesse keeltesse. Kasutage tõlgete haldamiseks tugevat rahvusvahelistumise raamistikku.
- Numbrite vormindamine: Kasutage kasutaja lokaadile vastavat numbrite vormingut. See hõlmab kümnendkohtade eraldajaid, tuhandete eraldajaid ja valuutasümboleid.
- Kuupäeva ja kellaaja vormindamine: Kui liugurit kasutatakse kuupäeva või kellaaja valimiseks, kasutage kasutaja lokaadile vastavat kuupäeva ja kellaaja vormingut.
- Lugemissuund: Arvestage paremalt-vasakule (RTL) keeltega. Veenduge, et liuguri paigutus ja visuaalsed elemendid on RTL-keelte jaoks õigesti peegeldatud. Kasutage paigutuse kohanduste automaatseks käsitlemiseks CSS-i loogilisi omadusi (nt
margin-inline-start
asemelmargin-left
). - Kultuurilised tavad: Olge teadlik kultuurilistest tavadest seoses värvide, sümbolite ja metafooridega. Vältige sümbolite või metafooride kasutamist, mis võivad mõnes kultuuris olla solvavad või segadust tekitavad.
Kokkuvõte: kaasavama veebi loomine
Ligipääsetavate liugur-nuppude loomine on kaasavama veebi ehitamisel hädavajalik. Järgides selles juhendis toodud suuniseid, saate tagada, et teie vahemiku sisestused on kasutatavad kõigile, olenemata nende võimetest. Pidage meeles, et ligipääsetavus ei ole ainult tehniline nõue; see on eetika ja sotsiaalse vastutuse küsimus. Eelistades ligipääsetavust, saate luua parema kasutajakogemuse kõigile ja aidata kaasa õiglasema digitaalmaailma loomisele.
See põhjalik juhend andis üksikasjalikke soovitusi ligipääsetavate liugur-nuppude loomiseks. Pidage meeles, et vastavus on alles alguspunkt; püüdke luua intuitiivseid ja kasutajasõbralikke kogemusi kõigile. Kaasava disaini tavade omaksvõtmisega saate tagada, et teie veebisaidid ja rakendused on ligipääsetavad kõigile, olenemata nende võimetest või asukohast. Ligipääsetavuse prioritiseerimine ei ole mitte ainult eetiliselt vastutustundlik, vaid see laiendab ka teie haaret ja tugevdab teie brändi mainet üha mitmekesisemas ja omavahel seotud maailmas.