
Tabindex
Atribut tabindex slouží k uspořádání položek pro procházení klávesnicí.
Tabindex je universální – lze ho použít na každém elementu.
<div tabindex="0">
</div>
Využití
Použití tabindexu jsou tři:
- změna pořadí procházení klávesou Tab,
- umožnění procházení/
:focusu, - zabránění označení Tabem
Změna pořadí
Bez použití tabindexu se Tabování zachytí jen na určitých prvcích (formuláře a odkazy). Pořadí je potom řízeno umístěním jednotlivých prvků v HTML kódu.
Chceme-li toto pořadí upravit, což se v případě nelogického pořadí může hodit, začneme hodnoty tabindexu zvyšovat nad nulu (nula je u standardně Tabovatelných elementů výchozí hodnota).
<input value="Druhý">
<input tabindex="1" value="První">
<input value="Třetí">
Tabindex se nemusí (a ani to není příliš vhodné) nastavovat všem položkám, ale jen těm, kterým chceme zvýšit prioritu.
Při řazení pomocí vyšší hodnoty tabindexu není nutné neustále hodnotu zvyšovat (ve smyslu 1, 2, 3, …), ale lze využít pravidla, že při stejné hodnotě se pořadí řídí umístěním v kódu.
V této ukázce proto s klidem můžeme použít jako hodnoty tabindexu jen samé jedničky (ukázka) místo:
<input value="Čtvrtý">
<input tabindex="1" value="První">
<input tabindex="2" value="Druhý">
<input tabindex="3" value="Třetí">
Umožnění procházení
Pro elementy mimo formulářové prvky a odkazy způsobí přidání atributu tabindex schopnost se na element odTabovat nebo prvku udělit focus. To se hodí v případě, že chceme mít klikací <span> nebo <div> a umožnit ho vybrat jen pomocí klávesnice.
<div tabindex="0">
Tabovatelný DIV
</div>
Hodnota 0 zajistí, že se prvek vloží do pořadí dle umístění v HTML kódu.
Zabránění označení
Poslední možnost je tabindex nastavit na zápornou hodnotu:
<input tabindex="-1" value="Nepůjde vybrat">
U formulářových prvků mě využití moc nenapadá. Když se pole skryje (display: none nebo visibility: hidden) či zablokuje (atribut disabled), tak se na něj dostat nedá. A jinak je poměrně žádoucí, aby se na prvek dostat dalo.
U neformulářových elementů to ale smysl dávat může.
Záporným tabindexem získá element možnost být :focusován – z čehož plyne využití v CSS pomocí příslušného selektoru :focus.
Rovněž v JavaScriptu jde elementu focus udělit.
element.focus();
Související články
Odeslání formuláře tlačítkem mimo něj
Jak odeslat formulář tlačítkem, které je mimo formulář.
Resetování <input type=file>
Jak resetovat (odstranit) hodnotu z <input>u pro upload souborů.
