Billentyűzet navigáció javascript - sajátosságai, MDN

Transfer nem fejeződött be. Kérem, segítsen lefordítani ezt a cikket az angol.

Használata Tabindex

Tabindex attribútum-ben vezették be a specifikáció a HTML 4. Ez lehetővé teszi, hogy meghatározza a sorrendet, amely elemek kapnak hangsúlyt, ha navigálás billentyűzettel. A jelenlegi végrehajtási le van írva a HTML 5-tervezetet specifikációk, egészen eltér az eredetitől. Minden népszerű böngészők jelenleg csatlakoznak az új specifikáció.

Ez a táblázat viselkedését írja le az elemek értékétől függően az attribútum Tabindex:

Focus az ablak vagy programozottan keresztül element.focus ()

Nullánál nagyobb (például Tabindex = "33")

Tabindex attribútum értéke azt jelzi, hogy milyen sorrendben az elem megkapja a fókuszt. Minél alacsonyabb az érték az attribútum, annál hamarabb tételt kap hangsúlyt. Mindenesetre, ez fog összpontosítani ilyen elemeket korábban, mint elemeket Tabindex = „0” és az elemek, amelyek képesek fogadni fókusz nélkül Tabindex attribútum (például Tabindex = „7” kap hangsúlyt, mielőtt Tabindex = „11”)

egyszerű kezelés

Ahhoz, hogy egy egyszerű widget elérhető a Tab gombot, állítsa a Tabindex = „0” a HTML elemek

vagy . amelynek összetétele. Az alábbiakban egy példát emulációs négyzeteket. Ahelyett, hogy a bemeneti elemek példában használt .

1. példa: Egyszerű widgetet chekbosov emulált működése változó képek. Widget használ Tabindex, hogy a billentyűzet-hozzáférés.

csoportosított ellenőrzések

Természetesen szükség van, hogy több összetett eszköz. A példákban menüpanel tabok, különböző táblázatok, prezentációk információt, amelynek fa szerkezet. Az ilyen kontroll szülő elemnek kell legyenek az attribútum Tabindex = „0”. Ebben az esetben, akkor képes lesz arra, hogy a figyelem középpontjába a billentyűzetet. Minden leányvállalatok elmenty (menüpontok, egyes lapok, sejtvonalak) kell Tabindex = „- 1”. így nem esik a figyelem középpontjába, amikor a fül kattint. A felhasználók számára lehetővé kell tenni, hogy utazás a gyermek elemek segítségével nyilakat a billentyűzeten. (A teljesebb leírását, hogy a hozzáférési végre kell hajtani a billentyűzet közös kütyü, lásd DHTML Style Guide).

Az alábbiakban egy példát, amely bizonyítja az használja ezt a technikát a megvalósítása az almenüt. Miután a fő menüpont került előtérbe (

    ) A fejlesztő a program, hogy ellenőrizzék a hangsúly válaszul megvásárolt nyilakkal. Leírni a technológia középpontjában a modulban, lásd a „Management középpontjában a widget” a cikk későbbi részében.

    2. példa: Menü használatával Tabindex tulajdonság eléréséhez billentyűzet

    Inaktív (fogyatékos) kontrollok

    Ha a vezérlő elem inaktív, akkor nem kap fókuszba kattintva a lap, amely el van látva kiállítóként Tabindex = attribútum elem „- 1”. Felhívjuk figyelmét, hogy a nem aktív elemek a csomózott modult (például egy menüpont) képesnek kell lennie arra, hogy a kiválasztott segítségével a nyilak a billentyűzeten.

    összpontosítani kontroll belül a widget

    Amikor a felhasználó elhagyja a modult, majd jön vissza, a hangsúly visszatérhet az adott elem fókuszban állt előtte. Például egy bizonyos fa elem vagy sejt. Két lehetőség van, hogy ezt el lehet érni:

    1. Gördülő Tabindex. Szoftver mozgása fókusz
    2. aria-activedescendent. „virtuális” fókusz

    Első Technika: Gördülő Tabindex

    Az az elképzelés, ez a technika kiállító Tabindex tulajdonítanak a null értéket egy elem, hogy az utóbbi van a fókuszban. Ebben az esetben, ha a felhasználó elhagyja tabom egy widget, és aztán jön vissza, az elem irányítja a figyelmet, helyesen. Vegye figyelembe, hogy kiteszik Tabindex „0”, szükség van, hogy ki Tabindex = „- 1” előző kiválasztott elemet. Ez a technika megköveteli, hogy a hangsúly a program elemeinek, válaszul karakternél.

    Ehhez hallgatni a keydown esemény minden gyermek számára a widget elem. Amikor a felhasználó rákattint a nyilakat a billentyűzeten, hogy menjen egy másik eleme legyen:

    1. programozottan prmienit középpontjában egy másik elem
    2. Tabindex elem változás középpontjában a 0
    3. módosítsa az előző elem Tabindex -1

    A kapcsolat látható egy példa a WAI-ARIA fa nézet. ezzel a technikával.

    Használja element.focus () a fókuszt az elem

    Ne használjon createEvent (). initEvent () és dispatchEvent () állítsa be a fókuszt. DOM focus esemény csak akkor kell használni, hogy információkat szerezzen, hogy nem volt a hangsúly az elem, amely a rendszer által generált, amikor egy elem volt a középpontban. Nem szabad használni, hogy állítsa be a fókuszt. Ehelyett használja element.focus ().

    Használja onfocus esemény nyomon követni a hangsúly

    A fejlődő ne várjuk, hogy a fókusz csak akkor változik, aminek következtében a felhasználó manipuláció a billentyűzet és az egér. A támogatási programok, mint például a képernyőolvasó állíthatja be a fókuszt elemekkel. Pálya események onFocus és onBlur. helyett egér és billentyűzet események.

    onfocus onblur és használható bármely egyes elemeit. Most nem a szabványokat leírt eljárást az elem a középpontban. Ezért, ha kell követni a hangsúly elemet meg kell változóban tároljuk.

    Technológia Második: aria-activedescendant

    Ez a technika lehetővé teszi, hogy összekapcsolják minden egyes eseménykezelő a tartály grafikai elemet, és használja az ária-activedescendent figyelemmel kíséri a „virtuális” összpontosít. (További információt a ARIA megjegyzés áttekintésekor az internetes alkalmazások és widgetek.)

    Az ária-activedescendant tulajdonság azonosítja az ID a leszármazott elem jelenleg a virtuális hangsúly. Az eseménykezelő a tartályon kell válaszolni kulcsot és egér esemény frissítésével értéke ária-activedescendant és annak biztosítása, hogy az aktuális elem stílusát megfelelően (például a határon vagy a háttér színe). Lásd a forráskódjában ARIA radiogroup például közvetlen illusztrálja, hogy hogyan is működik ez.

    scrollIntoView

    Megjegyezzük, hogy az ezzel a minta megkívánja a szerző, hogy az éppen fókuszban widget böngészőablakban. Meg kell tudnia használni a element.scrollIntoView () függvény, de javasoljuk megerősítő e működik az Ön számára, a cél böngésző segítségével Quirksmode teszt.

    ajánlások

    Használja onkeydown események helyett fogása onkeypress

    Az IE gombnyomás kiváltó esemény csak az alfanumerikus gombokat. Használja onkeydown helyett.

    Biztosítani kell, hogy a billentyűzet és az egér ugyanazt tapasztalat

    Annak érdekében, hogy a felhasználói élmény tartalmától függetlenül beviteli eszköz, billentyűzet és egér eseménykezelőkkel ossza kódot adott esetben. Például a kódot, amely frissíti a Tabindex vagy formázó, amikor a felhasználók a nyíl gombok segítségével is fel kell használni az egérrel rakodók, hogy ugyanazt a változásokat.

    Biztosítani kell, hogy a billentyűzetet lehet használni, hogy aktiválja elem

    Annak érdekében, hogy a billentyűzet aktiválására használható elemeket, minden rakodók kötött egér eseményeket is köteles billentyűzet eseményeket. Például, hogy az Enter gomb aktiválja egy elemet, ha van egy. akkor kötődnek doSomething () a gombot lenyomva esemény is: onkeydown = "! visszaút event.keyCode = 13 || doSomething ();" .

    Ne használja: a hangsúly a stílus a fókusz (ha érdekel IE 7 és korábbi)

    IE 7 és a korábbi verziók nem támogatják a: focus pszeudo-választó; ne használja a stílus összpontosít. Ehelyett meg a stílus egy onfocus eseménykezelő, például hozzáadásával CSS stílus nevét a class attribútum.

    Mindig felhívni a figyelmet a Tabindex = „- 1” elemek és elemek kapnak hangsúlyt programozottan

    IE nem fog automatikusan levonja a hangsúly vázlatát elem, hogy programozottan kap hangsúlyt. Válasszon a változó a háttér színe keresztül valami hasonló this.style.backgroundColor = „szürke”; vagy adjunk hozzá egy pontozott keret révén this.style.border = „1 képpont pontozott invert”. A pontozott keret esetben meg kell, hogy megbizonyosodjon arról, hogy ezek az elemek egy láthatatlan határ 1px kezdeni úgy, hogy az elem nem növekszik, ha a határ stílust alkalmazunk (határok sok helyet foglalnak, és az IE nem hajtja végre a CSS körvonalai ).

    Akadályozza használt kulcsfontosságú események teljesítő böngésző funkciók

    Ha a modul kezeli a legfontosabb esemény, megakadályozhatja a böngésző is kezelésekor (például görgetés válaszul a nyíl billentyűk) segítségével a eseménykezelő a visszatérési kódot. Ha az eseménykezelő false. Az esemény nem szaporítható túl a kezelő.

    Ha handleKeyDown () false. Az esemény kerül felhasználásra, megakadályozza, hogy a böngésző végzett minden intézkedés a billentyűleütés.

    Nem hivatkozhat a következetes viselkedést gombismétlés, ezen a ponton

    Kapcsolódó cikkek