Átfogó útmutató az akadálymentes eszköztippek megvalósításához hover és fókusz állapotok használatával, biztosítva a használhatóságot minden felhasználó számára, beleértve a fogyatékkal élőket is.
Eszköztippek Megvalósítása: Akadálymentes Információk Hover és Fókusz Állapotokban
Az eszköztippek (tooltip) kicsi, kontextuális súgóüzenetek, amelyek akkor jelennek meg, amikor a felhasználó az egérmutatót egy elem fölé viszi, vagy egy elemre fókuszál. Kiegészítő információkat nyújthatnak, egyértelműsíthetik egy elem célját, vagy tippeket adhatnak egy funkció használatához. Azonban az eszköztippek könnyen akadálymentesítési rémálommá válhatnak, ha nem megfelelően implementálják őket. Ez az útmutató bemutatja azokat a legjobb gyakorlatokat, amelyek segítségével mindenki számára használható eszköztippeket hozhatunk létre, beleértve a fogyatékkal élő felhasználókat is.
Miért Fontos az Akadálymentesítés az Eszköztippeknél?
Az akadálymentesítés nem csupán a megfelelőségről szól; arról van szó, hogy jobb felhasználói élményt teremtsünk mindenki számára. Ha az eszköztippek nem akadálymentesek, az kizárhatja azokat a felhasználókat, akik kisegítő technológiákra, például képernyőolvasókra, billentyűzetes navigációra vagy beszédfelismerő bevitelre támaszkodnak. Vegyük fontolóra ezeket a forgatókönyveket:
- Képernyőolvasót használók: Ha egy eszköztipp nincs megfelelően jelölve, a képernyőolvasó lehet, hogy nem jelzi a jelenlétét vagy a tartalmát.
- Billentyűzetet használók: Ha egy eszköztipp csak az egérmutató fölé mozgatásakor (hover) jelenik meg, a billentyűzetet használók nem fogják tudni elérni.
- Mozgáskorlátozott felhasználók: A hover interakciókhoz szükséges precíz egérmozgások kihívást jelenthetnek vagy akár lehetetlenek is lehetnek.
- Kognitív fogyatékossággal élő felhasználók: Egy rosszul időzített vagy zavaró eszköztipp frusztrációt okozhat és akadályozhatja a megértést.
Az akadálymentesítési legjobb gyakorlatok követésével biztosíthatjuk, hogy az eszköztippek javítsák, ne pedig akadályozzák a felhasználói élményt mindenki számára.
Az Akadálymentes Eszköztippek Fő Alapelvei
A következő alapelvek kulcsfontosságúak az akadálymentes eszköztippek létrehozásához:
- Alternatív hozzáférés biztosítása: Győződjön meg róla, hogy az eszköztippek mind egérmutatóval (hover), mind billentyűzetfókusszal elérhetők.
- ARIA attribútumok használata: Használjon ARIA (Accessible Rich Internet Applications) attribútumokat az eszköztippek megfelelő azonosítására és leírására a kisegítő technológiák számára.
- Fókusz kezelése: Irányítsa, hová kerüljön a fókusz, amikor egy eszköztipp megjelenik és eltűnik.
- Elegendő kontraszt biztosítása: Biztosítson elegendő színkontrasztot az eszköztipp szövege és háttere között.
- Elegendő idő biztosítása: Adjon a felhasználóknak elég időt az eszköztipp tartalmának elolvasására.
- Elutasíthatóvá tétel: Biztosítson egyértelmű módot az eszköztipp bezárására.
- A túlhasználat kerülése: Az eszköztippeket takarékosan és csak akkor használja, ha szükséges.
Megvalósítási Technikák
1. Hover és Fókusz Használata
Az akadálymentes eszköztippek legkritikusabb szempontja annak biztosítása, hogy mind az egeret, mind a billentyűzetet használók számára elérhetőek legyenek. Ez azt jelenti, hogy az eszköztippnek meg kell jelennie mind az egérmutató fölé mozgatásakor (hover), mind akkor, amikor az elem fókuszt kap.
HTML:
<a href="#" aria-describedby="tooltip-example">Példa Link</a>
<div id="tooltip-example" role="tooltip" style="display: none;">Ez egy példa eszköztipp.</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; /* Biztosítja, hogy az eszköztipp felül legyen */
}
Magyarázat:
aria-describedby
: Ez az attribútum az azonosítója (ID) segítségével összekapcsolja a linket az eszköztipp elemmel. Ez tudatja a kisegítő technológiákkal, hogy az eszköztipp további információkat nyújt a linkről.role="tooltip"
: Ez az ARIA szerepkör (role) azonosítja az elemet mint eszköztippet.- A CSS a szomszédos testvér szelektor (
+
) segítségével jeleníti meg az eszköztippet, amikor a link fölé visszük az egeret vagy fókuszba kerül.
JavaScript (Haladó Vezérlés - Opcionális):
Bár a CSS képes kezelni az egyszerű megjelenítést/elrejtést, a JavaScript robusztusabb vezérlést tesz lehetővé, különösen, ha az eszköztippek dinamikusan generálódnak, vagy összetettebb viselkedést igényelnek.
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 Attribútumok Használata
Az ARIA attribútumok elengedhetetlenek a szemantikai információk biztosításához a kisegítő technológiák számára. Íme a legfontosabb attribútumok részletezése:
aria-describedby
: Ahogy korábban említettük, ez az attribútum hozza létre a kapcsolatot a kiváltó elem és az eszköztipp elem között.role="tooltip"
: Ez az attribútum explicit módon eszköztippként definiálja az elemet.aria-hidden="true"
/aria-hidden="false"
: Ezekkel jelezhetjük, hogy az eszköztipp jelenleg látható-e a kisegítő technológiák számára. Amikor az eszköztipp rejtett, állítsa be azaria-hidden="true"
értéket. Amikor látható, állítsa be azaria-hidden="false"
értéket. Ez különösen fontos, ha JavaScript segítségével vezéreljük az eszköztipp láthatóságát.
Példa:
<button aria-describedby="help-tooltip">Küldés</button>
<div id="help-tooltip" role="tooltip" aria-hidden="true">Kattintson ide az űrlap elküldéséhez.</div>
JavaScript (az aria-hidden-hez):
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. A Fókusz Kezelése
Amikor egy eszköztipp megjelenik, általában *nem szabad* elvennie a fókuszt a kiváltó elemtől. A fókusznak a tooltipet aktiváló elemen kell maradnia. Ez biztosítja, hogy a billentyűzetet használók váratlan megszakítások nélkül folytathassák a navigációt az oldalon.
Azonban előfordulhatnak olyan helyzetek, amikor *szeretnénk* a fókuszt az eszköztippre helyezni, különösen, ha az eszköztipp interaktív elemeket (pl. linkeket, gombokat) tartalmaz. Ebben az esetben győződjön meg arról, hogy:
- Az eszköztipp vizuálisan megkülönböztethető, jelezve, hogy fókuszban van.
- Van egy egyértelmű mód a fókusz visszajuttatására az eredeti kiváltó elemre (pl. egy bezárás gomb az eszköztippen belül).
A legtöbb esetben az egyszerűség és a használhatóság érdekében előnyösebb elkerülni a fókuszkezelést magán az eszköztippen belül.
4. Megfelelő Kontraszt Biztosítása
A színkontraszt kulcsfontosságú az olvashatóság szempontjából. Győződjön meg arról, hogy az eszköztippek szövegének színe elegendő kontraszttal rendelkezik a háttérszínhez képest. A Web Content Accessibility Guidelines (WCAG) legalább 4.5:1 kontrasztarányt javasol normál méretű szöveghez és 3:1 arányt nagy méretű (18pt vagy 14pt félkövér) szöveghez.
Használjon online kontrasztellenőrzőket annak ellenőrzésére, hogy a színválasztásai megfelelnek-e az akadálymentesítési szabványoknak. Példák kontrasztellenőrzőkre:
- WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
- Coolors: https://coolors.co/contrast-checker
Példa (Jó Kontraszt):
.tooltip {
background-color: #000;
color: #fff;
}
Példa (Gyenge Kontraszt):
.tooltip {
background-color: #fff;
color: #eee;
}
5. Elegendő Idő Biztosítása
A felhasználóknak elegendő időre van szükségük az eszköztipp tartalmának elolvasásához. Kerülje a túl gyorsan eltűnő eszköztippeket. Bár nincs mágikus szám, törekedjen legalább néhány másodperces minimális megjelenítési időre. Emellett az eszköztippnek addig kell láthatónak maradnia, amíg a felhasználó a kiváltó elem fölött tartja az egeret vagy fókuszál rá. Ha más események miatt el kell tüntetnie az eszköztippet, jelezze, hogy az be fog záródni.
Ha az eszköztipp tartalma hosszú, fontolja meg egy olyan módszer biztosítását, amellyel a felhasználó manuálisan bezárhatja az eszköztippet (pl. egy bezárás gomb vagy az Escape billentyű megnyomása).
6. Elutasíthatóvá Tétel
Bár az eszköztippek gyakran automatikusan eltűnnek, amikor a felhasználó elmozdítja az egeret vagy leveszi a fókuszt, jó gyakorlat egyértelmű módot biztosítani a manuális bezárásukra, különösen hosszú vagy interaktív elemeket tartalmazó eszköztippek esetében.
Módszerek az Eszköztippek Bezárására:
- Bezárás gomb: Helyezzen el egy vizuálisan jól látható bezárás gombot az eszköztippen belül.
- Escape billentyű: Tegye lehetővé a felhasználók számára, hogy az Escape billentyű megnyomásával bezárják az eszköztippet.
- Kattintás kívülre: Zárja be az eszköztippet, ha a felhasználó bárhová kattint az eszköztippen és a kiváltó elemen kívül. (Óvatosan használja, mert zavaró lehet).
Példa (Bezárás Gomb):
<div id="my-tooltip" role="tooltip" aria-hidden="true">
Ez az én eszköztippem tartalma.
<button onclick="hideTooltip()">Bezárás</button>
</div>
Példa (Escape Billentyű):
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
hideTooltip(); // Cserélje le a saját eszköztipp elrejtő függvényére
}
});
7. A Túlhasználat Kerülése
Az eszköztippeket takarékosan és csak akkor szabad használni, ha valóban hasznos információt nyújtanak. A túlhasználatuk zsúfolttá teheti a felületet, elvonhatja a felhasználók figyelmét, és frusztráló élményt okozhat.
Alternatívák az Eszköztippekre:
- Egyértelmű címkék: Használjon világos és leíró címkéket az űrlapmezőkhöz, gombokhoz és linkekhez.
- Kontextuális súgó: Helyezzen el súgószöveget közvetlenül a felületen, a releváns elemek közelében.
- Súgódokumentáció: Linkeljen átfogó súgódokumentációra az összetettebb funkciókhoz.
Haladó Megfontolások
Dinamikus Tartalom
Ha az eszköztipp tartalma dinamikusan generálódik (pl. egy API-ból töltődik be vagy felhasználói bevitel alapján frissül), győződjön meg róla, hogy az aria-describedby
attribútum és az eszköztipp láthatósága megfelelően frissül. Használjon JavaScriptet ezen frissítések kezelésére.
Pozicionálás
Gondosan fontolja meg az eszköztippek pozicionálását. Kerülje el, hogy fontos tartalmat takarjanak el vagy elrendezési elcsúszásokat okozzanak. Vegye figyelembe a különböző képernyőméreteket és felbontásokat, és használjon CSS-t annak biztosítására, hogy az eszköztippek mindig a nézetablakon belül láthatók legyenek.
Mobileszközök
Az eszköztippek hagyományosan a hover interakciókra támaszkodnak, amelyek nem állnak rendelkezésre az érintőképernyős eszközökön. Mobileszközök esetében fontolja meg alternatív interakciós módszerek használatát, mint például:
- Érintés (Tap): Jelenítse meg az eszköztippet, amikor a felhasználó megérinti az elemet.
- Hosszú lenyomás: Jelenítse meg az eszköztippet, amikor a felhasználó hosszan lenyomja az elemet.
- Megjelenítés fókuszra Jelenítse meg, amikor az elem fókuszt kap. Ezt JavaScript segítségével lehet elérni, ellenőrizve az érintés támogatását (pl. `('ontouchstart' in window)`), és ennek megfelelően módosítva a megjelenítési viselkedést.
Az Eszköztippek Tesztelése
Alaposan tesztelje az eszköztippeket, hogy biztosítsa azok akadálymentességét minden felhasználó számára. Használjon manuális tesztelés és automatizált akadálymentesítési tesztelőeszközök kombinációját.
Tesztelési Módszerek:
- Billentyűzetes navigáció: Ellenőrizze, hogy az eszköztippek elérhetők-e a billentyűzet használatával.
- Képernyőolvasóval való tesztelés: Használjon képernyőolvasót annak ellenőrzésére, hogy az eszköztippek megfelelően felolvasásra kerülnek-e.
- Színkontraszt-elemzés: Használjon színkontraszt-ellenőrzőt az elegendő kontraszt ellenőrzésére.
- Mobil tesztelés: Tesztelje az eszköztippeket különböző mobileszközökön és képernyőméreteken.
- Automatizált akadálymentesítési tesztelés: Használjon olyan eszközöket, mint az axe DevTools, WAVE vagy a Lighthouse a lehetséges akadálymentesítési problémák azonosítására.
Nemzetköziesítés (i18n) és Lokalizáció (l10n)
Amikor globális közönség számára fejleszt eszköztippeket, tartsa szem előtt a nemzetköziesítést és a lokalizációt:
- Szövegirány: Támogassa mind a balról-jobbra (LTR), mind a jobbról-balra (RTL) írásirányt. Használjon CSS logikai tulajdonságokat (pl. `margin-inline-start`, `margin-inline-end`) a fizikai tulajdonságok (pl. `margin-left`, `margin-right`) helyett az elrendezéshez.
- Nyelvspecifikus fordítások: Biztosítson fordításokat az eszköztipp tartalmához különböző nyelvekre.
- Dátum- és időformátumok: Igazítsa a dátum- és időformátumokat a felhasználó területi beállításaihoz.
- Számformátumok: Használjon megfelelő számformátumokat a különböző régiókhoz (pl. tizedes elválasztók, ezres elválasztók).
Összegzés
Az akadálymentes eszköztippek megvalósítása gondos tervezést és a részletekre való odafigyelést igényel. Az ebben az útmutatóban vázolt elvek és technikák követésével olyan eszköztippeket hozhat létre, amelyek mindenki számára használhatók, képességeiktől függetlenül. Ne feledje, hogy az akadálymentesítés egy folyamatos folyamat, ezért folytassa az eszköztippek tesztelését és finomítását, hogy azok minden felhasználó igényeinek megfeleljenek.