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
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.
- Gördülő Tabindex. Szoftver mozgása fókusz
- aria-activedescendent. „virtuális” fókusz
- programozottan prmienit középpontjában egy másik elem
- Tabindex elem változás középpontjában a 0
- módosítsa az előző elem Tabindex -1
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:
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:
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.