F42: Az 1.3.1 és 2.1.1 teljesítési feltételekhez tartozó hiba, amelyet a hivatkozásokat szimuláló de algoritmikusan nem meghatározható szkriptek okoznak
Alkalmazás
Szkript szimulációval rendelkező HTML és XHTML.
Ez a hiba az alábbiakra vonatkozik:
- 1.3.1 teljesítési feltétel (Információ és összefüggések/relációk)
- 2.1.1 teljesítési feltétel (Billentyűzet)
- 4.1.2 teljesítési feltétel (Név, szerep, érték)
Leírás
Ez a hiba akkor következik be, amikor egy elemhez csatolt JavaScript eseménykezelő hivatkozást szimulál. Az ilyen stílusban készített vezérlők vagy hivatkozások nem kezelhetők a billentyűzettel és nem fókuszálhatók úgy, mint a hasonló vezérlők és/vagy hivatkozások. Abban az esetben, ha a szkript események hivatkozások szimulációjára kerülnek felhasználásra, akkor a felhasználói programok, beleértve a segítő technológiákat is, nem lesznek képesek hivatkozásként azonosítani a tartalomban szereplő linkeket. A segítő technológiák sem fogják interaktív vezérlőként értelmezni őket, vagy ha mégis, akkor sem fogják őket hivatkozásként felismerni. Ezek az elemek a felhasználói programok vagy segítő technológiák által előállított hivatkozás listában sem fognak megjelenni.
A <a href>
és
<area>
elemek a hivatkozások
megjelölésére szolgálnak.
Az egyébként nem interaktív elemekhez, mint például a
span
és div
, rendelt
eseménykezelők meglehetősen zavarók a felhasználók
számára. Még abban az esetben is, ha a billentyűzettel
hozzáférhetők ezek az elemek, a felhasználóknak gondot
jelenthet az interaktív vezérlők felfedezése a
tartalomban, illetve azok viselkedésének értelmezése.
Például a felhasználók nem biztos, hogy tudják melyik
billentyűt támogatja az adott elemet aktiváló szkript.
Ezen kívül ezek az elemek interaktív elemekként nem
ugyanazokat az operációs rendszer eseményeket generálják,
ezért aktiválásukkor nem jeleznek a segítő
technológiáknak.
Példák
1. hiba példa: A <span> elem szkriptelése
A társított szkript eseménykezelő miatt a
span
elem rákattintáskor hivatkozásként
viselkedik. A segítő technológia azonban nem
hivatkozásként ismeri fel az elemet.
Példa kód:
<span onclick="this.location.href='newpage.html'">
Fake link
</span>
2. hiba példa: Egy <img> elem szkriptelése
A társított szkript eseménykezelő miatt az
img
elem klikkeléskor hivatkozásként
viselkedik. A segítő technológia azonban nem
hivatkozásként ismeri fel az elemet.
Példa kód:
src="go.gif"
alt="go to the new page"
onclick="this.location.href='newpage.html'"
3. hiba példa: Egy <img> elem szkriptelése billentyűzet támogatással
A társított szkript eseménykezelő miatt az
img
elem hivatkozásként viselkedik.
Ebben a példában a hivatkozás funkcióját az egérrel
vagy az Enter billentyűvel lehet kiváltani, abban az
esetben, ha a felhasználói program rendelkezik ezzel
az elemmel. Ennek ellenére az elem nem hivatkozásként
kerül felismerésre.
Példa kód:
function doNav(url)
{
window.location.href = url;
}
function doKeyPress(url)
{
//if the enter key was pressed
if (window.event.type == "keypress" &&
window.event.keyCode == 13)
{
doNav(url);
}
}
A kép kijelölése:
Példa kód:
<p>
<img src="bargain.jpg"
tabindex="0"
alt="View Bargains"
onclick="doNav('viewbargains.html');"
onkeypress="doKeyPress('viewbargains.html');"
>
</p>
4. hiba példa: Egy <div> elem szkriptelése
A példában szereplő doboz elem egy szkript segítségével hivatkozásként viselkedik. Habár a szerkesztő billentyűzet útján is hozzáférhetővé tette az elemet és a tartalom céljának újra meghatározása érdekében elválasztotta az eseménykezelőket a kijelöléstől, a segítő technológiák mégsem fogják hivatkozásként felismerni a doboz elemet.
Példa kód:
window.onload = init;
function init()
{
var objAnchor = document.getElementById('linklike');
objAnchor.onclick = function(event){return changeLocation(event,
'surveyresults.html');};
objAnchor.onkeypress = function(event){return changeLocation(event,
'surveyresults.html');};
}
function changeLocation(objEvent, strLocation)
{
var iKeyCode;
if (objEvent && objEvent.type == 'keypress')
{
if (objEvent.keyCode)
iKeyCode = objEvent.keyCode;
else if (objEvent.which)
iKeyCode = objEvent.which;
if (iKeyCode != 13 && iKeyCode != 32)
return true;
}
window.location.href = strLocation;
}
A doboz elem kijelölése:
Példa kód:
<div id="linklike">
View the results of the survey.
</div>
Források
A források csak információs célokat szolgálnak, és csak angolul elérhetőek.
Kapcsolódó technikák
Ellenőrzések
Folyamat
-
Ellenőrizze, hogy a hivatkozást szimuláló elemek rendelkeznek-e JavaScript eseménykezelőkkel.
-
Ellenőrizze, hogy az elem algoritmikusan hivatkozásként került-e meghatározásra.
Elvárható eredmények
- Amennyiben az 1. és 2. pont hamis, akkor a hiba bekövetkezik és a tartalom nem felel meg a teljesítési feltétel követelményeinek.
Ez a weboldal A Technikák és Gyakori Hibák a Web Akadálymentesítési Útmutató 2.0-hoz része. Ez a dokumentum elérhető egy HTML fájlban is. Nézze meg a A WCAG 2.0 dokumentumait ezen dokumentum és a WCAG 2.0 egyéb dokumentumai között fennálló kapcsolatok áttekintéséhez.
Copyright © 2008 W3C® ( MIT, ERCIM, Keio), Minden jog fenntartva. Alkalmazandók a W3C felelősségi, védjegyoltalmi és dokumentumhasználati előírásai.