Celovit vodnik za implementacijo dostopnih opisov orodij z uporabo stanj lebdenja in fokusa, ki zagotavlja uporabnost za vse uporabnike, vključno z invalidi.
Implementacija opisov orodij: Dostopne informacije ob lebdenju in fokusu
Opisi orodij (angl. tooltips) so majhna, kontekstualna sporočila za pomoč, ki se prikažejo, ko uporabnik z miško lebdi nad elementom ali ga fokusira. Lahko zagotovijo dodatne informacije, pojasnijo namen elementa ali ponudijo namige za uporabo funkcije. Vendar pa lahko opisi orodij hitro postanejo nočna mora za dostopnost, če niso pravilno implementirani. Ta vodnik opisuje najboljše prakse za ustvarjanje opisov orodij, ki so uporabni za vse, vključno z uporabniki z invalidnostmi.
Zakaj je dostopnost pri opisih orodij pomembna
Dostopnost ni le vprašanje skladnosti; gre za ustvarjanje boljše uporabniške izkušnje za vse. Ko opisi orodij niso dostopni, lahko izključijo uporabnike, ki se zanašajo na podporne tehnologije, kot so bralniki zaslona, navigacija s tipkovnico ali glasovni vnos. Razmislite o naslednjih scenarijih:
- Uporabniki bralnikov zaslona: Če opis orodja ni pravilno označen, bralnik zaslona morda ne bo naznanil njegove prisotnosti ali vsebine.
- Uporabniki tipkovnice: Če se opis orodja prikaže le ob lebdenju z miško, uporabniki tipkovnice do njega ne bodo mogli dostopati.
- Uporabniki z motoričnimi ovirami: Natančni gibi miške, potrebni za interakcije z lebdenjem, so lahko zahtevni ali nemogoči.
- Uporabniki s kognitivnimi ovirami: Neprimerno časovno usklajen ali zmeden opis orodja lahko povzroči frustracije in ovira razumevanje.
Z upoštevanjem najboljših praks za dostopnost lahko zagotovimo, da opisi orodij izboljšajo in ne ovirajo uporabniške izkušnje za vse.
Ključna načela za dostopne opise orodij
Naslednja načela so ključna za ustvarjanje dostopnih opisov orodij:
- Zagotovite alternativni dostop: Zagotovite, da so opisi orodij dostopni tako ob lebdenju z miško kot ob fokusu s tipkovnico.
- Uporabite atribute ARIA: Uporabite atribute ARIA (Accessible Rich Internet Applications) za pravilno identifikacijo in opisovanje opisov orodij podpornim tehnologijam.
- Upravljajte fokus: Nadzirajte, kam gre fokus, ko je opis orodja prikazan in skrit.
- Zagotovite zadosten kontrast: Zagotovite dovolj barvnega kontrasta med besedilom in ozadjem opisa orodja.
- Omogočite dovolj časa: Dajte uporabnikom dovolj časa za branje vsebine opisa orodja.
- Naredite jih zapirljive: Zagotovite jasen način za zapiranje opisa orodja.
- Izogibajte se pretirani uporabi: Opise orodij uporabljajte zmerno in le, kadar je to potrebno.
Tehnike implementacije
1. Uporaba lebdenja in fokusa
Najpomembnejši vidik dostopnih opisov orodij je zagotoviti, da so dostopni tako uporabnikom miške kot tipkovnice. To pomeni, da se mora opis orodja prikazati tako ob lebdenju z miško kot takrat, ko element prejme fokus.
HTML:
<a href="#" aria-describedby="tooltip-example">Primer povezave</a>
<div id="tooltip-example" role="tooltip" style="display: none;">To je primer opisa orodja.</div>
CSS:
a:hover + div[role="tooltip"],
a:focus + div[role="tooltip"] {
display: block;
position: absolute;
background-color: #f0f0f0;
border: 1px solid #ccc;
padding: 5px;
z-index: 1000; /* Zagotovite, da je opis orodja na vrhu */
}
Pojasnilo:
aria-describedby
: Ta atribut poveže povezavo z elementom opisa orodja z uporabo njegovega ID-ja. To podpornim tehnologijam sporoči, da opis orodja zagotavlja dodatne informacije o povezavi.role="tooltip"
: Ta vloga ARIA identificira element kot opis orodja.- CSS uporablja selektor sosednjega sorodnika (
+
) za prikaz opisa orodja, ko uporabnik lebdi nad povezavo ali jo fokusira.
JavaScript (Napredni nadzor - neobvezno):
Medtem ko lahko CSS obravnava preprosto prikazovanje/skrivanje, JavaScript omogoča bolj robusten nadzor, še posebej, ko so opisi orodij dinamično generirani ali potrebujejo bolj kompleksno obnašanje.
const link = document.querySelector('a[aria-describedby="tooltip-example"]');
const tooltip = document.getElementById('tooltip-example');
link.addEventListener('focus', () => {
tooltip.style.display = 'block';
});
link.addEventListener('blur', () => {
tooltip.style.display = 'none';
});
link.addEventListener('mouseover', () => {
tooltip.style.display = 'block';
});
link.addEventListener('mouseout', () => {
tooltip.style.display = 'none';
});
2. Uporaba atributov ARIA
Atributi ARIA so ključni za zagotavljanje semantičnih informacij podpornim tehnologijam. Sledi razčlenitev ključnih atributov:
aria-describedby
: Kot že omenjeno, ta atribut vzpostavi razmerje med sprožilnim elementom in elementom opisa orodja.role="tooltip"
: Ta atribut izrecno opredeli element kot opis orodja.aria-hidden="true"
/aria-hidden="false"
: Uporabite ju za označevanje, ali je opis orodja trenutno viden podpornim tehnologijam. Ko je opis orodja skrit, nastavitearia-hidden="true"
. Ko je viden, nastavitearia-hidden="false"
. To je še posebej pomembno pri uporabi JavaScripta za nadzor vidnosti opisa orodja.
Primer:
<button aria-describedby="help-tooltip">Pošlji</button>
<div id="help-tooltip" role="tooltip" aria-hidden="true">Kliknite tukaj za pošiljanje obrazca.</div>
JavaScript (za aria-hidden):
const button = document.querySelector('button[aria-describedby="help-tooltip"]');
const tooltip = document.getElementById('help-tooltip');
button.addEventListener('focus', () => {
tooltip.setAttribute('aria-hidden', 'false');
tooltip.style.display = 'block';
});
button.addEventListener('blur', () => {
tooltip.setAttribute('aria-hidden', 'true');
tooltip.style.display = 'none';
});
button.addEventListener('mouseover', () => {
tooltip.setAttribute('aria-hidden', 'false');
tooltip.style.display = 'block';
});
button.addEventListener('mouseout', () => {
tooltip.setAttribute('aria-hidden', 'true');
tooltip.style.display = 'none';
});
3. Upravljanje fokusa
Ko se prikaže opis orodja, na splošno *ne sme* prevzeti fokusa od sprožilnega elementa. Fokus mora ostati na elementu, ki je sprožil opis orodja. To zagotavlja, da lahko uporabniki tipkovnice nadaljujejo z navigacijo po strani brez nepričakovanih prekinitev.
Vendar pa lahko obstajajo situacije, ko *želite* premakniti fokus na opis orodja, še posebej, če opis orodja vsebuje interaktivne elemente (npr. povezave, gumbe). V tem primeru zagotovite, da:
- je opis orodja vizualno različen, da pokaže, da ima fokus,
- obstaja jasen način za vrnitev fokusa na prvotni sprožilni element (npr. gumb za zapiranje znotraj opisa orodja).
V večini primerov je za enostavnost in uporabnost bolje, da se izogibamo upravljanju fokusa znotraj samega opisa orodja.
4. Zagotavljanje zadostnega kontrasta
Barvni kontrast je ključnega pomena za berljivost. Zagotovite, da ima barva besedila v vaših opisih orodij zadosten kontrast glede na barvo ozadja. Smernice za dostopnost spletnih vsebin (WCAG) priporočajo kontrastno razmerje vsaj 4,5:1 za običajno besedilo in 3:1 za veliko besedilo (18pt ali 14pt krepko).
Uporabite spletna orodja za preverjanje kontrasta, da preverite, ali vaše barvne izbire ustrezajo standardom dostopnosti. Primeri preverjevalnikov kontrasta so:
- WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
- Coolors: https://coolors.co/contrast-checker
Primer (dober kontrast):
.tooltip {
background-color: #000;
color: #fff;
}
Primer (slab kontrast):
.tooltip {
background-color: #fff;
color: #eee;
}
5. Zagotavljanje zadostnega časa
Uporabniki potrebujejo dovolj časa za branje vsebine opisa orodja. Izogibajte se opisom orodij, ki prehitro izginejo. Čeprav ni čarobne številke, si prizadevajte za minimalni čas prikaza nekaj sekund. Poleg tega mora opis orodja ostati viden, dokler uporabnik lebdi nad sprožilnim elementom ali ga ima v fokusu. Če morate opis orodja zapreti zaradi drugih dogodkov, zagotovite indikator, da se bo opis orodja zaprl.
Če je vsebina opisa orodja dolga, razmislite o tem, da uporabniku omogočite ročno zapiranje opisa orodja (npr. z gumbom za zapiranje ali s pritiskom na tipko Escape).
6. Omogočanje zapiranja
Čeprav opisi orodij pogosto samodejno izginejo, ko uporabnik odmakne miško ali odstrani fokus, je dobra praksa zagotoviti jasen način za njihovo ročno zapiranje, še posebej za dolge opise orodij ali opise, ki vsebujejo interaktivne elemente.
Metode za zapiranje opisov orodij:
- Gumb za zapiranje: Vključite vizualno opazen gumb za zapiranje znotraj opisa orodja.
- Tipka Escape: Uporabnikom omogočite, da zaprejo opis orodja s pritiskom na tipko Escape.
- Klik zunaj: Zaprite opis orodja, ko uporabnik klikne kjerkoli zunaj opisa orodja in sprožilnega elementa. (Uporabljajte previdno, saj je lahko moteče).
Primer (gumb za zapiranje):
<div id="my-tooltip" role="tooltip" aria-hidden="true">
To je vsebina mojega opisa orodja.
<button onclick="hideTooltip()">Zapri</button>
</div>
Primer (tipka Escape):
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
hideTooltip(); // Zamenjajte s svojo dejansko funkcijo za skrivanje opisa orodja
}
});
7. Izogibanje pretirani uporabi
Opise orodij je treba uporabljati zmerno in le takrat, ko zagotavljajo resnično koristne informacije. Pretirana uporaba opisov orodij lahko nasiči vmesnik, moti uporabnike in ustvari frustrirajočo izkušnjo.
Alternative opisom orodij:
- Jasne oznake: Uporabite jasne in opisne oznake za polja obrazcev, gumbe in povezave.
- Kontekstualna pomoč: Zagotovite besedilo za pomoč neposredno v vmesniku, blizu ustreznih elementov.
- Dokumentacija za pomoč: Povežite se z obsežno dokumentacijo za pomoč za bolj kompleksne funkcije.
Napredne rešitve
Dinamična vsebina
Če je vsebina vašega opisa orodja dinamično generirana (npr. naložena iz API-ja ali posodobljena na podlagi uporabniškega vnosa), zagotovite, da se atribut aria-describedby
in vidnost opisa orodja ustrezno posodobita. Za upravljanje teh posodobitev uporabite JavaScript.
Pozicioniranje
Pazljivo razmislite o pozicioniranju vaših opisov orodij. Izogibajte se postavljanju na način, ki zakriva pomembno vsebino ali povzroča premike postavitve. Bodite pozorni na različne velikosti zaslonov in ločljivosti ter uporabite CSS, da zagotovite, da so opisi orodij vedno vidni znotraj vidnega polja (viewport).
Mobilne naprave
Opisi orodij se tradicionalno zanašajo na interakcije z lebdenjem, ki niso na voljo na napravah na dotik. Za mobilne naprave razmislite o uporabi alternativnih metod interakcije, kot so:
- Dotik: Prikažite opis orodja, ko se uporabnik dotakne elementa.
- Dolg pritisk: Prikažite opis orodja, ko uporabnik dolgo pritisne na element.
- Prikaz ob fokusu: Prikažite, ko element prejme fokus. To je mogoče doseči z JavaScriptom, s preverjanjem podpore za dotik (npr. `('ontouchstart' in window)`) in ustrezno spremembo obnašanja prikaza.
Testiranje vaših opisov orodij
Temeljito preizkusite svoje opise orodij, da zagotovite, da so dostopni vsem uporabnikom. Uporabite kombinacijo ročnega testiranja in avtomatiziranih orodij za testiranje dostopnosti.
Metode testiranja:
- Navigacija s tipkovnico: Preverite, ali so opisi orodij dostopni z uporabo tipkovnice.
- Testiranje z bralnikom zaslona: Uporabite bralnik zaslona, da zagotovite, da so opisi orodij pravilno naznanjeni.
- Analiza barvnega kontrasta: Uporabite preverjevalnik barvnega kontrasta, da preverite zadosten kontrast.
- Testiranje na mobilnih napravah: Preizkusite opise orodij na različnih mobilnih napravah in velikostih zaslona.
- Avtomatizirano testiranje dostopnosti: Uporabite orodja, kot so axe DevTools, WAVE ali Lighthouse, za odkrivanje morebitnih težav z dostopnostjo.
Internacionalizacija (i18n) in lokalizacija (l10n)
Pri razvoju opisov orodij za globalno občinstvo imejte v mislih internacionalizacijo in lokalizacijo:
- Smer besedila: Podprite smeri besedila od leve proti desni (LTR) in od desne proti levi (RTL). Za postavitev uporabite logične lastnosti CSS (npr. `margin-inline-start`, `margin-inline-end`) namesto fizičnih lastnosti (npr. `margin-left`, `margin-right`).
- Prevodi za določene jezike: Zagotovite prevode vsebine opisov orodij za različne jezike.
- Formati datumov in časov: Prilagodite formate datumov in časov lokalnim nastavitvam uporabnika.
- Formati številk: Uporabite ustrezne formate številk za različne regije (npr. decimalna ločila, ločila tisočic).
Zaključek
Implementacija dostopnih opisov orodij zahteva skrbno načrtovanje in pozornost do podrobnosti. Z upoštevanjem načel in tehnik, opisanih v tem vodniku, lahko ustvarite opise orodij, ki so uporabni za vse, ne glede na njihove zmožnosti. Ne pozabite, da je dostopnost stalen proces, zato nadaljujte s testiranjem in izboljševanjem svojih opisov orodij, da zagotovite, da ustrezajo potrebam vseh vaših uporabnikov.