Išsamus vadovas, kaip įdiegti prieinamus patarimų įrankius naudojant užvedimo ir fokusavimo būsenas, užtikrinant patogumą visiems vartotojams, įskaitant ir turinčius negalią.
Patarimų įrankio diegimas: pasiekiama informacija užvedus pelę ir sufokusavus
Patarimų įrankiai (angl. tooltips) yra trumpi, kontekstiniai pagalbos pranešimai, kurie atsiranda vartotojui užvedus pelės žymeklį ant elemento arba jį sufokusavus. Jie gali suteikti papildomos informacijos, paaiškinti elemento paskirtį ar pasiūlyti užuominų, kaip naudotis funkcija. Tačiau netinkamai įdiegti patarimų įrankiai gali tapti tikru prieinamumo košmaru. Šiame vadove apžvelgiama geriausia praktika, kaip sukurti patarimų įrankius, kuriais galėtų naudotis visi, įskaitant vartotojus su negalia.
Kodėl patarimų įrankių prieinamumas yra svarbus
Prieinamumas – tai ne tik reikalavimų laikymasis; tai geresnės vartotojo patirties kūrimas visiems. Kai patarimų įrankiai nėra prieinami, tai gali atskirti vartotojus, kurie naudojasi pagalbinėmis technologijomis, tokiomis kaip ekrano skaitytuvai, naršymas klaviatūra ar įvestis balsu. Apsvarstykite šiuos scenarijus:
- Ekrano skaitytuvų naudotojai: Jei patarimo įrankis nėra tinkamai pažymėtas, ekrano skaitytuvas gali nepranešti apie jo buvimą ar turinį.
- Naudotojai, naršantys klaviatūra: Jei patarimo įrankis atsiranda tik užvedus pelę, klaviatūros naudotojai negalės jo pasiekti.
- Vartotojai, turintys motorikos sutrikimų: Tikslūs pelės judesiai, reikalingi užvedimo sąveikai, gali būti sudėtingi arba neįmanomi.
- Vartotojai, turintys kognityvinių sutrikimų: Netinkamu laiku pasirodęs ar painus patarimo įrankis gali sukelti nusivylimą ir trukdyti suprasti.
Laikydamiesi prieinamumo geriausios praktikos, galime užtikrinti, kad patarimų įrankiai pagerintų, o ne pablogintų vartotojo patirtį visiems.
Pagrindiniai prieinamų patarimų įrankių principai
Šie principai yra labai svarbūs kuriant prieinamus patarimų įrankius:
- Suteikite alternatyvią prieigą: Užtikrinkite, kad patarimų įrankiai būtų pasiekiami tiek užvedus pelę, tiek sufokusavus klaviatūra.
- Naudokite ARIA atributus: Naudokite ARIA (Accessible Rich Internet Applications) atributus, kad tinkamai identifikuotumėte ir apibūdintumėte patarimų įrankius pagalbinėms technologijoms.
- Valdykite fokusą: Kontroliuokite, kur nukreipiamas fokusas, kai patarimo įrankis rodomas ir slepiamas.
- Užtikrinkite pakankamą kontrastą: Užtikrinkite pakankamą spalvų kontrastą tarp patarimo įrankio teksto ir fono.
- Suteikite pakankamai laiko: Suteikite vartotojams pakankamai laiko perskaityti patarimo įrankio turinį.
- Padarykite juos uždaromus: Suteikite aiškų būdą uždaryti patarimo įrankį.
- Venkite perteklinio naudojimo: Naudokite patarimų įrankius saikingai ir tik tada, kai tai būtina.
Diegimo metodai
1. Užvedimo ir fokusavimo naudojimas
Svarbiausias prieinamų patarimų įrankių aspektas yra užtikrinti, kad jie būtų pasiekiami tiek pelės, tiek klaviatūros naudotojams. Tai reiškia, kad patarimo įrankis turėtų pasirodyti tiek užvedus pelę, tiek elementui gavus fokusą.
HTML:
<a href="#" aria-describedby="tooltip-example">Nuorodos pavyzdys</a>
<div id="tooltip-example" role="tooltip" style="display: none;">Tai yra patarimo įrankio pavyzdys.</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; /* Užtikrinti, kad patarimo įrankis būtų viršuje */
}
Paaiškinimas:
aria-describedby
: Šis atributas susieja nuorodą su patarimo įrankio elementu naudojant jo ID. Tai praneša pagalbinėms technologijoms, kad patarimo įrankis suteikia papildomos informacijos apie nuorodą.role="tooltip"
: Ši ARIA rolė identifikuoja elementą kaip patarimo įrankį.- CSS naudoja gretimo brolinio elemento selektorių (
+
), kad parodytų patarimo įrankį, kai ant nuorodos užvedama pelė arba ji sufokusuojama.
JavaScript (Išplėstinis valdymas – neprivaloma):
Nors CSS gali valdyti paprastą rodymą/slėpimą, JavaScript leidžia tvirtesnį valdymą, ypač kai patarimų įrankiai generuojami dinamiškai arba reikalauja sudėtingesnio elgesio.
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. ARIA atributų naudojimas
ARIA atributai yra būtini semantinės informacijos teikimui pagalbinėms technologijoms. Štai pagrindinių atributų apžvalga:
aria-describedby
: Kaip minėta anksčiau, šis atributas nustato ryšį tarp aktyvuojančio elemento ir patarimo įrankio elemento.role="tooltip"
: Šis atributas aiškiai apibrėžia elementą kaip patarimo įrankį.aria-hidden="true"
/aria-hidden="false"
: Naudokite juos norėdami nurodyti, ar patarimo įrankis šiuo metu matomas pagalbinėms technologijoms. Kai patarimo įrankis paslėptas, nustatykitearia-hidden="true"
. Kai jis matomas, nustatykitearia-hidden="false"
. Tai ypač svarbu, kai naudojate JavaScript patarimo įrankio matomumui valdyti.
Pavyzdys:
<button aria-describedby="help-tooltip">Pateikti</button>
<div id="help-tooltip" role="tooltip" aria-hidden="true">Spustelėkite čia, norėdami pateikti formą.</div>
JavaScript (skirtas 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. Fokuso valdymas
Kai pasirodo patarimo įrankis, jis paprastai *neturėtų* perimti fokuso iš jį aktyvavusio elemento. Fokusas turėtų likti ant elemento, kuris sukėlė patarimo įrankio pasirodymą. Tai užtikrina, kad klaviatūros naudotojai galėtų tęsti naršymą puslapyje be netikėtų trukdžių.
Tačiau gali būti situacijų, kai *norite* perkelti fokusą į patarimo įrankį, ypač jei jame yra interaktyvių elementų (pvz., nuorodų, mygtukų). Tokiu atveju užtikrinkite, kad:
- Patarimo įrankis vizualiai išsiskiria, rodydamas, kad jis yra sufokusuotas.
- Yra aiškus būdas grąžinti fokusą į pradinį aktyvuojantį elementą (pvz., uždarymo mygtukas patarimo įrankyje).
Daugeliu atvejų, siekiant paprastumo ir patogumo, geriau vengti fokuso valdymo pačiame patarimo įrankyje.
4. Pakankamo kontrasto užtikrinimas
Spalvų kontrastas yra labai svarbus skaitomumui. Užtikrinkite, kad jūsų patarimų įrankių teksto spalva turėtų pakankamą kontrastą su fono spalva. Žiniatinklio turinio prieinamumo gairės (WCAG) rekomenduoja kontrasto santykį bent 4.5:1 normaliam tekstui ir 3:1 dideliam tekstui (18pt arba 14pt paryškintu šriftu).
Naudokite internetines kontrasto tikrinimo priemones, kad patikrintumėte, ar jūsų spalvų pasirinkimai atitinka prieinamumo standartus. Kontrasto tikrinimo priemonių pavyzdžiai:
- WebAIM kontrasto tikrintuvas: https://webaim.org/resources/contrastchecker/
- Coolors: https://coolors.co/contrast-checker
Pavyzdys (geras kontrastas):
.tooltip {
background-color: #000;
color: #fff;
}
Pavyzdys (prastas kontrastas):
.tooltip {
background-color: #fff;
color: #eee;
}
5. Pakankamo laiko suteikimas
Vartotojams reikia pakankamai laiko perskaityti patarimo įrankio turinį. Venkite per greitai dingstančių patarimų įrankių. Nors nėra stebuklingo skaičiaus, siekite minimalaus kelių sekundžių rodymo laiko. Taip pat, patarimo įrankis turėtų likti matomas tol, kol vartotojas laiko pelę ant aktyvuojančio elemento arba jį sufokusavęs. Jei reikia uždaryti patarimo įrankį dėl kitų įvykių, pateikite indikatorių, kad patarimo įrankis bus uždarytas.
Jei patarimo įrankio turinys yra ilgas, apsvarstykite galimybę suteikti vartotojui būdą rankiniu būdu jį uždaryti (pvz., uždarymo mygtuku arba paspaudus „Escape“ klavišą).
6. Galimybė uždaryti
Nors patarimų įrankiai dažnai dingsta automatiškai, kai vartotojas patraukia pelę arba nuima fokusą, gera praktika yra suteikti aiškų būdą juos uždaryti rankiniu būdu, ypač ilgiems patarimų įrankiams arba tiems, kuriuose yra interaktyvių elementų.
Patarimų įrankių uždarymo būdai:
- Uždarymo mygtukas: Įtraukite vizualiai ryškų uždarymo mygtuką į patarimo įrankį.
- „Escape“ klavišas: Leiskite vartotojams uždaryti patarimo įrankį paspaudus „Escape“ klavišą.
- Spustelėjimas išorėje: Uždarykite patarimo įrankį, kai vartotojas spustelėja bet kur už patarimo įrankio ir aktyvuojančio elemento ribų. (Naudokite atsargiai, nes tai gali trikdyti).
Pavyzdys (uždarymo mygtukas):
<div id="my-tooltip" role="tooltip" aria-hidden="true">
Tai yra mano patarimo įrankio turinys.
<button onclick="hideTooltip()">Uždaryti</button>
</div>
Pavyzdys („Escape“ klavišas):
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
hideTooltip(); // Pakeiskite į savo faktinę patarimo įrankio slėpimo funkciją
}
});
7. Perteklinio naudojimo vengimas
Patarimų įrankius reikėtų naudoti saikingai ir tik tada, kai jie teikia tikrai naudingą informaciją. Pernelyg gausus patarimų įrankių naudojimas gali apkrauti sąsają, blaškyti vartotojus ir sukelti neigiamą patirtį.
Patarimų įrankių alternatyvos:
- Aiškios etiketės: Naudokite aiškias ir aprašomąsias etiketes formų laukams, mygtukams ir nuorodoms.
- Kontekstinė pagalba: Pateikite pagalbos tekstą tiesiogiai sąsajoje, šalia atitinkamų elementų.
- Pagalbos dokumentacija: Pateikite nuorodą į išsamią pagalbos dokumentaciją sudėtingesnėms funkcijoms.
Išplėstiniai aspektai
Dinaminis turinys
Jei jūsų patarimo įrankio turinys generuojamas dinamiškai (pvz., įkeliamas iš API arba atnaujinamas pagal vartotojo įvestį), užtikrinkite, kad aria-describedby
atributas ir patarimo įrankio matomumas būtų atitinkamai atnaujinti. Naudokite JavaScript šiems atnaujinimams valdyti.
Pozicionavimas
Atidžiai apsvarstykite savo patarimų įrankių pozicionavimą. Venkite juos dėti taip, kad jie užstotų svarbų turinį ar sukeltų išdėstymo poslinkius. Atsižvelkite į skirtingus ekrano dydžius ir raiškas bei naudokite CSS, kad užtikrintumėte, jog patarimų įrankiai visada būtų matomi peržiūros srityje (angl. viewport).
Mobilieji įrenginiai
Patarimų įrankiai tradiciškai remiasi užvedimo sąveika, kuri nėra prieinama jutikliniuose įrenginiuose. Mobiliuosiuose įrenginiuose apsvarstykite galimybę naudoti alternatyvius sąveikos metodus, tokius kaip:
- Palietimas: Rodyti patarimo įrankį, kai vartotojas paliečia elementą.
- Ilgas paspaudimas: Rodyti patarimo įrankį, kai vartotojas ilgai paspaudžia elementą.
- Rodyti sufokusavus: Rodyti, kai elementas gauna fokusą. Tai galima pasiekti naudojant JavaScript, tikrinant lietimo palaikymą (pvz.,
('ontouchstart' in window)
) ir atitinkamai keičiant rodymo elgseną.
Jūsų patarimų įrankių testavimas
Kruopščiai testuokite savo patarimų įrankius, kad įsitikintumėte, jog jie prieinami visiems vartotojams. Naudokite rankinio testavimo ir automatizuotų prieinamumo testavimo įrankių derinį.
Testavimo metodai:
- Naršymas klaviatūra: Patikrinkite, ar patarimų įrankiai pasiekiami naudojant klaviatūrą.
- Testavimas su ekrano skaitytuvu: Naudokite ekrano skaitytuvą, kad įsitikintumėte, jog apie patarimų įrankius tinkamai pranešama.
- Spalvų kontrasto analizė: Naudokite spalvų kontrasto tikrintuvą, kad patikrintumėte, ar kontrastas pakankamas.
- Testavimas mobiliuosiuose įrenginiuose: Testuokite patarimų įrankius skirtinguose mobiliuosiuose įrenginiuose ir skirtingų dydžių ekranuose.
- Automatizuotas prieinamumo testavimas: Naudokite įrankius, tokius kaip axe DevTools, WAVE ar Lighthouse, kad nustatytumėte galimas prieinamumo problemas.
Internacionalizavimas (i18n) ir lokalizavimas (l10n)
Kuriant patarimų įrankius pasaulinei auditorijai, nepamirškite internacionalizavimo ir lokalizavimo:
- Teksto kryptis: Palaikykite tiek iš kairės į dešinę (LTR), tiek iš dešinės į kairę (RTL) teksto kryptis. Maketavimui naudokite CSS logines savybes (pvz., `margin-inline-start`, `margin-inline-end`) vietoj fizinių savybių (pvz., `margin-left`, `margin-right`).
- Kalbos vertimai: Pateikite patarimų įrankių turinio vertimus įvairioms kalboms.
- Datos ir laiko formatai: Pritaikykite datos ir laiko formatus pagal vartotojo lokalę.
- Skaičių formatai: Naudokite tinkamus skaičių formatus skirtingiems regionams (pvz., dešimtainiai skyrikliai, tūkstančių skyrikliai).
Išvados
Prieinamų patarimų įrankių diegimas reikalauja kruopštaus planavimo ir dėmesio detalėms. Laikydamiesi šiame vadove aprašytų principų ir metodų, galite sukurti patarimų įrankius, kuriais galėtų naudotis visi, nepriklausomai nuo jų gebėjimų. Atminkite, kad prieinamumas yra nuolatinis procesas, todėl toliau testuokite ir tobulinkite savo patarimų įrankius, kad užtikrintumėte, jog jie atitiktų visų jūsų vartotojų poreikius.