Understanding WCAG 2.0

Skip to Content (Press Enter)

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:

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.

Ellenőrzések

Folyamat
  1. Ellenőrizze, hogy a hivatkozást szimuláló elemek rendelkeznek-e JavaScript eseménykezelőkkel.

  2. 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.