Hallake ligipÀÀsetavaid modaalseid dialooge. See pĂ”hjalik juhend hĂ”lmab ĂŒlekatte ja hĂŒpikakende ligipÀÀsetavuse standardeid, parimaid tavasid ja rahvusvahelisi kaalutlusi.
Modaalsed dialoogid: ĂŒlemaailmne juhend ĂŒlekatte ja hĂŒpikakende ligipÀÀsetavuse standardite kohta
Modaalsed dialoogid, tuntud ka kui ĂŒlekattted vĂ”i hĂŒpikaknad, on tĂ€napĂ€evase veebidisaini kriitiline komponent. Need esitavad teavet, koguvad sisendit vĂ”i kinnitavad toiminguid eraldiseisvas aknas, mis paikneb peamise sisu peal. Kui neid aga ei rakendata Ă”igesti, vĂ”ivad need luua mĂ€rkimisvÀÀrseid ligipÀÀsetavuse barjÀÀre puuetega kasutajatele. See pĂ”hjalik juhend sĂŒveneb modaalsete dialoogide ligipÀÀsetavuse standarditesse, pakkudes ĂŒlemaailmset vaatenurka ja praktilisi nĂ€iteid, et tagada teie rakenduste kaasatus ja kasutajasĂ”bralikkus.
Modaalsete dialoogide ligipÀÀsetavuse tÀhtsuse mÔistmine
LigipÀÀsetavad modaalsed dialoogid on hĂ€davajalikud sujuva kasutajakogemuse pakkumiseks kĂ”igile, sealhulgas puuetega inimestele. Halvasti kujundatud modaalid vĂ”ivad olla frustreerivad, segased ja isegi tĂ€iesti ligipÀÀsmatud kasutajatele, kes tuginevad abitehnoloogiatele, nagu ekraanilugejad, klaviatuuriga navigeerimine ja kĂ”netuvastustarkvara. LigipÀÀsetavuse standardeid jĂ€rgides loome vĂ”rdsema ja kasutatavama veebi ĂŒlemaailmse publiku jaoks.
Miks ligipÀÀsetavus on globaalselt oluline
LigipÀÀsetavus ei ole pelgalt tehniline nĂ”ue; see on pĂ”hilist inimĂ”igust. Ăle maailma on puuetega inimestel Ă”igus saada teabele ja teenustele vĂ”rdselt teistega. VeebipÀÀsetavus annab puuetega inimestele vĂ”imaluse tĂ€ielikult ĂŒhiskonnas osaleda, alates haridusest ja tööhĂ”ivest kuni sotsiaalse suhtluse ja meelelahutuseni. See on eriti oluline rahvusvahelise arengu ja digitaalse kaasamise kontekstis, kus tehnoloogiale juurdepÀÀs vĂ”ib olla elukvaliteedi parandamisel kriitilise tĂ€htsusega tegur. Rahvusvahelised seadused ja juhised, nagu Web Content Accessibility Guidelines (WCAG), pakuvad ĂŒhist raamistikku veebipÀÀsetavuse saavutamiseks.
Modaalsete dialoogide peamised ligipÀÀsetavuse pÔhimÔtted
LigipÀÀsetavate modaalsete dialoogide loomist reguleerivad mitmed peamised pĂ”himĂ”tted. Need pĂ”himĂ”tted ĂŒhtivad WCAG pĂ”hitĂ”dedega, tagades, et sisu on tajutav, toimiv, arusaadav ja robustne. Vaatame mĂ”ningaid neist pĂ”hiprintsiipidest.
1. Tajutav
Tajutav sisu tÀhendab, et kasutajad saavad tajuda modaalses dialoogis esitatud teavet. See hÔlmab jÀrgmisi kaalutlusi:
- Piltidele alternatiivse teksti pakkumine: KÔikidel modaalide piltidel, sealhulgas nuppudel ja ikoonidel, peaks olema kirjeldav alt-tekst.
- Piisava vÀrvikontrasti tagamine: Tekstil ja interaktiivsetel elementidel peaks olema taustaga piisav kontrast. Kasutage vÀrvikontrasti suhete kontrollimiseks tööriistu, tagades, et need vastavad WCAG juhistele (nt WCAG 2.1 AA-tase).
- Multimeedia jaoks pealdiste ja Àrakirjade pakkumine: Kui modaal sisaldab videoid vÔi heli, pakkuge pealdisi ja Àrakirju, et muuta sisu kÀttesaadavaks kurdidele vÔi kuulmispuudega inimestele.
- Sisu kohandatavaks muutmine: Sisu peaks olema vÔimalik esitada erineval viisil (nt lihtsustatud tekst, erinevad fondisuurused, erinevad paigutused) ilma teavet kaotamata.
NÀide: Modaalsel dialoogil, mis kuvab tootepilti, peaks olema alt-tekst, mis kirjeldab toodet tÀpselt. NÀiteks, selle asemel et 'tootepilt', kasutage 'Punane nahktagi lukuga ja kahe esitaskuga'.
2. Toimiv
Toimiv sisu tÀhendab, et kasutajad saavad modaalse dialoogiga interakteeruda. See hÔlmab jÀrgmisi kaalutlusi:
- Klaviatuuriga navigeerimine: Modaalsel dialoogil peaks olema tÀielikult vÔimalik navigeerida klaviatuuriga. Kasutajad peaksid saama tabulaatori abil liikuda interaktiivsete elementide vahel loogilises jÀrjekorras.
- Fookuse haldus: Fookus peaks olema selgelt nÀhtav ja fookus peaks jÀÀma modaalsesse dialoogi. Kui modaal avaneb, peaks fookus liikuma modaali esimesele interaktiivsele elemendile. Kui modaal suletakse, peaks fookus tagasi liikuma modaali kÀivitanud elemendile.
- Ajastatud sĂŒndmuste vĂ€ltimine: Ărge kasutage ajastatud sĂŒndmusi, mis vĂ”ivad hĂ€irida kasutaja interaktsiooni modaaliga. Ajastatud sĂŒndmused peaksid olema kasutaja poolt reguleeritavad.
- Selgete tegevuskutsete pakkumine: Veenduge, et modaalis olevad nupud ja lingid oleksid kergesti leitavad ja mÔistetavad.
NÀide: Kui modaalne dialoog avaneb, peaks fookus automaatselt suunama sulgemisnuppule vÔi esimesele interaktiivsele elemendile. Kasutajad peaksid saama kasutada Tab-klahvi modaali sees olevate elementide vahel liikumiseks ja Shift+Tab-klahve tagasiliikumiseks.
3. Arusaadav
Arusaadav sisu tÀhendab, et kasutajad saavad aru teabest ja kuidas kasutajaliidesega interakteerida. See hÔlmab jÀrgmisi kaalutlusi:
- Selge ja kokkuvĂ”tlik keel: Kasutage selget, lihtsat ja ĂŒhtlast keelt. VĂ€ltige ĆŸargooni ja tehnilisi termineid.
- Juhised: Vajadusel pakkuge selgeid juhiseid.
- Vigade ennetamine: Kujundage modaal vigade ennetamiseks. NĂ€iteks pakkuge informatiivseid veateateid ja valideerige kasutaja sisendit.
NĂ€ide: Selle asemel, et kirjutada 'Saada', kasutage nuppu, mille silt selgelt nĂ€itab toimingut, nagu 'Saada avaldus' vĂ”i 'Salvesta muudatused'. Veateated peaksid selgelt selgitama, mis lĂ€ks valesti ja kuidas kasutaja seda parandada saab. NĂ€iteks, âPalun sisestage kehtiv e-posti aadressâ ja esiletĂ”stke sisestusvĂ€li.
4. Robustne
Robustne sisu tĂ€hendab, et sisu on ĂŒhilduv laia valiku kasutajaagenditega, sealhulgas abitehnoloogiatega. See hĂ”lmab jĂ€rgmisi kaalutlusi:
- Kehtiv HTML: Kasutage kehtivat HTML-i ja jÀrgige kehtestatud kodeerimisstandardeid.
- ARIA atribuudid: Kasutage ARIA (Accessible Rich Internet Applications) atribuute, et pakkuda modaalse dialoogi ja selle elementide kohta semantilist teavet abitehnoloogiatele.
- Ăhilduvus: Tagage, et modaalne dialoog oleks ĂŒhilduv erinevate brauserite ja abitehnoloogiatega.
NÀide: Kasutage ARIA atribuute nagu `aria-modal="true"`, `aria-labelledby`, `aria-describedby` ja `role="dialog"`, et dialoogi ja selle elemente korralikult mÀÀratleda. Valideerige oma HTML HTML-validaatoriga.
LigipÀÀsetavate modaalsete dialoogide rakendamine: samm-sammuline juhend
Siin on praktiline juhend ligipÀÀsetavate modaalsete dialoogide rakendamiseks, integreerides WCAG pÔhimÔtteid ja ARIA atribuute:
1. HTML-i struktuur
Kasutage oma modaalse dialoogi aluse loomiseks semantilist HTML-i. See hÔlmab:
- KÀivituskomponent: See vÔib olla nupp vÔi link, mis aktiveerib modaali.
- Modaali konteiner: See on `div`-element, mis sisaldab kÔiki teie modaalse dialoogi sisu. Sellel peaks olema `role="dialog"` atribuut ja `aria-modal="true"`.
- Modaali sisu: Modaali sisu peaks olema modaali konteineris.
- Sulgemisnupp: See nupp vÔimaldab kasutajal modaali sulgeda.
NĂ€ide:
<button id="openModalBtn">Ava modaal</button>
<div id="myModal" role="dialog" aria-modal="true" aria-labelledby="modalTitle">
<div>
<h2 id="modalTitle">Modaali pealkiri</h2>
<p>Modaali sisu siin.</p>
<button id="closeModalBtn">Sule</button>
</div>
</div>
2. ARIA atribuudid
ARIA atribuudid pakuvad semantilist tÀhendust abitehnoloogiatele. Olulised ARIA atribuudid, mida lisada:
- `role="dialog"`: MÀÀratleb elemendi dialoogina.
- `aria-modal="true"`: NĂ€itab, et dialoog on modaalne.
- `aria-labelledby`: Osutab modaali pealkirja sisaldava elemendi ID-le.
- `aria-describedby`: Osutab modaali sisu kirjeldava elemendi ID-le.
- `aria-hidden="true"`: Kasutatakse ĂŒlejÀÀnud lehe sisu puhul, kui modaal on avatud, takistades ekraanilugejatel sellele juurdepÀÀsu (seda hallatakse sageli JavaScripti abil).
NĂ€ide:
<div id="myModal" role="dialog" aria-modal="true" aria-labelledby="modalTitle" aria-describedby="modalContent">
<div>
<h2 id="modalTitle">Modaali pealkiri</h2>
<p id="modalContent">Modaali sisu siin.</p>
<button id="closeModalBtn">Sule</button>
</div>
</div>
3. CSS-i kujundus
Kasutage modaali, ĂŒlekatte ja muude komponentide kujundamiseks CSS-i. Tagage piisav kontrast teksti ja taustavĂ€rvide vahel. Kaaluge:
- Ălekatte: Looge ĂŒlekatte (sageli poollĂ€bipaistev `div`), mis katab taustasisu, kui modaal on avatud. See aitab modaali visuaalselt eristada ĂŒlejÀÀnud lehest.
- Paigutus: Paigutage modaal Ôigesti CSS-i paigutusomadustega (nt `position: fixed` vÔi `position: absolute`).
- Kontrast: Tagage modaali sees oleva teksti ja taustavÀrvide piisav kontrast.
- Fookusseisundid: Kujundage fookusseisundid interaktiivsete elementide (nupud, lingid, vormivÀljad) jaoks `:focus` pseudo-klassiga, et muuta need selgelt nÀhtavaks.
NĂ€ide:
#myModal {
display: none; /* Algselt peidetud */
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
padding: 20px;
border: 1px solid #ccc;
z-index: 1000; /* Veenduge, et see ilmuks kÔige peale */
}
#myModal.show {
display: block;
}
.modal-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999; /* Modaali all */
}
.modal-overlay.show {
display: block;
}
#openModalBtn:focus, #closeModalBtn:focus {
outline: 2px solid blue;
outline-offset: 2px;
}
4. JavaScripti rakendamine
JavaScript on modaali kĂ€itumise haldamiseks ĂŒlioluline. See hĂ”lmab:
- Modaali avamine ja sulgemine: Lisage modaali avamiseks kĂ€ivituskomponendile (nt nupule) sĂŒndmuste kuulajad. Lisage sulgemisnupp vĂ”i mehhanism (nt klĂ”psates modaali vĂ€ljaspool) selle sulgemiseks.
- Fookuse haldus: Kui modaal avaneb, liigutage fookus modaali esimesele fookustavale elemendile. Hoidke fookus modaalis ja tagastage fookus kÀivituskomponendile, kui modaal on suletud.
- Sisu peitmine/nĂ€itamine: Kasutage JavaScripti modaali ja ĂŒlekatte peitmiseks ja nĂ€itamiseks, vajadusel `aria-hidden`-i vahetades.
- Klaviatuuriga interaktsioon: Rakendage klaviatuuriga navigeerimine (Tab-klahv navigeerimiseks, Esc-klahv sulgemiseks).
NĂ€ide:
const openModalBtn = document.getElementById('openModalBtn');
const closeModalBtn = document.getElementById('closeModalBtn');
const modal = document.getElementById('myModal');
const overlay = document.querySelector('.modal-overlay');
openModalBtn.addEventListener('click', () => {
modal.classList.add('show');
overlay.classList.add('show');
modal.focus(); // Suunake fookus modaali vÔi selle esimesse elementi
// Valikuliselt keelake modaali taga oleva lehe kerimine.
document.body.style.overflow = 'hidden';
});
closeModalBtn.addEventListener('click', () => {
modal.classList.remove('show');
overlay.classList.remove('show');
openModalBtn.focus(); // Suunake fookus tagasi nupule
document.body.style.overflow = 'auto';
});
overlay.addEventListener('click', () => {
modal.classList.remove('show');
overlay.classList.remove('show');
openModalBtn.focus();
document.body.style.overflow = 'auto';
});
// Sulgege modaal Esc-klahvi vajutamisel
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape') {
modal.classList.remove('show');
overlay.classList.remove('show');
openModalBtn.focus();
document.body.style.overflow = 'auto';
}
});
TĂ€psemad kaalutlused ja parimad tavad
Lisaks peamistele ligipÀÀsetavuse pÔhimÔtetele vÔivad mitmed tÀpsemad kaalutlused teie modaalsete dialoogide kasutatavust ja kaasatust veelgi parandada:
1. KlaviatuurilÔks ja fookuse haldus
KlaviatuurilÔksud vÔivad olla ÀÀrmiselt frustreerivad. Tagage, et kasutajad saaksid modaali abil ainult klaviatuuri abil navigeerida. Kui modaal on avatud, peaks fookus jÀÀma modaali. Kasutajad ei tohiks enne selle sulgemist modaalist vÀlja tabuleerida. Selle saavutamiseks kaaluge jÀrgmisi punkte:
- Fookuse lÔksutamine: Kui modaal avaneb, liigutage fookus modaali esimesele fookustavale elemendile.
- Fookuse silmamine: Kui kasutaja liigub tabulaatoriga modaalis, suunake fookus viimaselt fookustavale elemendilt esimesele ja vastupidi. See hoiab fookuse modaali piirides.
- Fookuse tagastamine: Kui modaal suletakse, tagastage fookus komponendile, mis kÀivitas modaali, et sÀilitada kontekst.
2. Ălekatte haldus
Ălekatte pakub visuaalset vihjet, et modaal on aktiivne ja tavaliselt keelab interaktsiooni taustasisuga. Veenduge, et ĂŒlekatte:
- On tÀielikult lÀbipaistmatu: Pakub piisavat visuaalset eristust.
- Peidab taustasisu: Hoiab Àra juhusliku interaktsiooni alusega sisuga.
- On eemaldatav: VĂ”imaldab kasutajatel modaali sulgeda, klĂ”psates ĂŒlekatet (kui see on modaali eesmĂ€rgi kohaselt sobiv).
3. Keerulise sisu kÀsitlemine
Keerulist sisu, nÀiteks vorme vÔi interaktiivseid elemente sisaldavate modaalide puhul veenduge jÀrgmises:- Loogiline struktuur: Korraldage sisu pealkirjade, alapealkirjade ja loenditega, et hÔlbustada navigeerimist.
- Vormi valideerimine: Rakendage nÔuetekohane vormi valideerimine, et pakkuda selgeid ja kasulikke veateateid.
- EdusammunÀitajad: Kasutage pikkade protsesside jaoks edusammunÀitajaid.
4. Mobiilne reageerivus
Veenduge, et teie modaalsed dialoogid oleksid reageerivad ja töötaksid mobiilseadmetes hÀsti. Kaaluge jÀrgmisi punkte:- Paigutuse kohandamine: Reguleerige modaali mÔÔtmeid ja sisu vÀiksematele ekraanidele sobivaks.
- Puutefunktsioonidega interaktsioonid: Veenduge, et nupud ja interaktiivsed elemendid oleksid piisavalt suured ja neid oleks lihtne puudutada.
- Klaviatuuri haldamine mobiilseadmetes: Testige klaviatuuri kÀitumist mobiilseadmetes.
5. Testimine ja valideerimine
Testige regulaarselt oma modaalseid dialooge erinevate kasutajate ja abitehnoloogiatega, et tagada ligipÀÀsetavus:- Manuaalne testimine: Testige oma modaale kÀsitsi klaviatuuri ja ekraanilugejaga.
- Automaatne testimine: Kasutage automaatseid ligipÀÀsetavuse testimise tööriistu (nt WAVE, Axe DevTools), et tuvastada vÔimalikke probleeme.
- Kasutajate testimine: Viige lÀbi kasutajate testimisi puuetega inimestega, et koguda tagasisidet ja tuvastada kasutatavusprobleeme.
Rahvusvahelise leviku ja lokaliseerimise kaalutlused
Kui arendate modaalseid dialooge globaalsele publikule, kaaluge jÀrgmisi rahvusvahelise leviku (i18n) ja lokaliseerimise (l10n) aspekte:- Teksti suund: KÀsitsege erinevaid teksti suundi (vasakult paremale ja paremalt vasakule).
- KuupÀeva ja kellaaja vormingud: Kasutage erinevate piirkondade jaoks sobivaid kuupÀeva- ja kellaajavorminguid.
- Valuuta vormingud: Kuvage valuutasĂŒmbolid Ă”igesti kasutaja asukoha alusel.
- Keeletugi: Pakkuge modaali sisu ja nuppude siltide tÔlkeid.
- Kultuuriline tundlikkus: Olge teadlik kultuurilistest erinevustest, mis vÔivad mÔjutada modaali kujundust vÔi sisu. VÀltige kultuuriliselt tundlike piltide, ikoonide vÔi sÔnastuse kasutamist.
- TÀhemÀrgikodeering: Tagage, et tÀhemÀrgikodeering oleks Ôigesti konfigureeritud, et toetada erinevaid tÀhemÀrgikomplekte.
NÀide: Kui teie rakendus toetab mitut keelt, peaksid modaalse dialoogi sildid, pealkirjad ja juhised olema tÔlgitud kasutaja eelistatud keelde, mis pÔhineb tema brauseri sÀtetel vÔi kasutajaprofiilil. KuupÀeva ja kellaaja vormingud peaksid kohanema nende piirkonnaga.
PÀrismaailma nÀited ja juhtumiuuringud
Siin on mÔned nÀited selle kohta, kuidas ligipÀÀsetavaid modaalseid dialooge kasutatakse tÔhusalt pÀrismaailma rakendustes, koos mÔningate vigadega, mida vÀltida:1. E-kaubanduse tellimisprotsess
Paljud e-kaubanduse veebisaidid kasutavad tellimisprotsessi jaoks modaalseid dialooge. Need modaalid koguvad teavet, nagu tarneaadress, arveldusandmed ja makseteave. Nende modaalide ligipÀÀsetavuse parimad tavad hÔlmavad:- Selged sildid ja juhised: Pakkuge vormivÀljadele selgeid ja kokkuvÔtlikke silte ja juhiseid selle tÀitmise kohta.
- Vigade kÀsitlemine: Rakendage pÔhjalikke veateateid, et nÀidata probleeme.
- Klaviatuuriga navigeerimine: Kasutaja peaks saama tabulaatoriga liikuda kÔigi vormivÀljade kaudu jÀrjest ja saama vormi klaviatuuriga esitada.
NĂ€ide: Amazon kasutab tellimisprotsessi ajal modaalseid dialooge. Tellimuse iga osa, nagu aadress, makseteave ja tellimuse ĂŒlevaade, on struktureeritud modaalis. Need modaalid on tavaliselt hĂ€sti struktureeritud ja kujundatud nii, et need vastavad ligipÀÀsetavuse pĂ”himĂ”tetele.
Viga: Modaali, mida ei sulgetud korralikult ja mis vÔimaldas kasutajal juhuslikult vormi esitada.
2. Sisu kuvamine (nt pildid, videod)
Modaalseid dialooge kasutatakse sageli piltide ja videote kuvamiseks, eriti kui kasutaja klÔpsab pisipildil, et vaadata tÀissuuruses sisu. LigipÀÀsetavuse nÔuded hÔlmavad:- Alternatiivne tekst: KÔikidel modaalis olevatel piltidel peaks olema ekraanilugejate kasutajatele kirjeldav `alt`-tekst.
- Pealdised ja Àrakirjad: Pakkuge videote jaoks pealdisi ja Àrakirju, et mahutada kurte vÔi kuulmispuudega inimesi.
- Klaviatuurikontrollid: Veenduge, et video ja pilt oleksid klaviatuuri abil ligipÀÀsetavad.
NÀide: Paljud uudiste veebisaidid kasutavad modaalseid dialooge tÀissuuruses piltide kuvamiseks, kui kasutaja klÔpsab pisipildil. NÀiteks, kui kasutaja klÔpsab fotol, ilmub modaal tÀissuuruses pildiga ja pealdisega, kus on fotograafi teave.
Viga: Piltidele alt-teksti mittepakkumine, muutes need nÀgemispuudega kasutajate jaoks tÀhendusetuks.
3. Kinnitusdialoogid
Modaalseid dialooge kasutatakse sageli kinnitusmĂ€rguanneteks enne, kui kasutaja teostab toimingut, nagu ĂŒksuse kustutamine vĂ”i vormi esitamine. LigipÀÀsetavuse parimad tavad hĂ”lmavad:- Selged kĂŒsimused: MĂ€rkige selgelt kinnitatav toiming.
- Lihtne valik: Veenduge, et kasutajatel oleks valik jĂ€tkamiseks vĂ”i tĂŒhistamiseks.
- Fookuse haldus: Kui modaal ilmub, peaks fookus suunama kĂ”ige olulisemale toimingule, nagu 'Kinnita' vĂ”i 'TĂŒhista'.
NĂ€ide: Google kasutab kinnitusmodaale, kui kasutajad kustutavad Gmaili e-kirju. Modaali ilmub, paludes kasutajal oma kavatsust kinnitada.
Viga: Ebaselge vÔi segadusttekitav keelekasutus, mis ei kirjelda tegevust selgelt.
LigipÀÀsetavuse testimise tööriistad ja ressursid
Mitmeid tööriistu on saadaval, et aidata teil testida oma modaalsete dialoogide ligipÀÀsetavust ja tagada, et need vastavad WCAG standarditele:- WAVE (Web Accessibility Evaluation Tool): Brauseri laiendus ja veebipĂ”hine tööriist, mis analĂŒĂŒsib veebilehti ligipÀÀsetavuse probleemide osas.
- Axe DevTools: Brauseri laiendus, mis pakub automaatset ligipÀÀsetavuse testimist.
- Accessibility Insights for Web: Brauseri laiendus, mis pakub erinevaid ligipÀÀsetavuse kontrolle ja automaatset testimist.
- Ekraanilugejad (nt JAWS, NVDA, VoiceOver): Kasutage ekraanilugejaid, et testida, kuidas teie modaalsed dialoogid on vÀlja kuulutatud ja navigeeritud.
- Ainult klaviatuuriga navigeerimine: Testige oma modaale ainult klaviatuuri kasutades.
- VÀrvikontrasti kontrollijad: Kasutage vÀrvikontrasti suhete kontrollimise tööriistu (nt WebAIMi kontrastikontrollija).