<txp:image id=„81“ />
Při vytváření přístupného webu by se nemělo zapomenout na vhodné nastavení tabelačního pořadí odkazů na stránce. Narazil jsem na problém, že mám v tomto pořadí zahrnuté i nezobrazené položky rozbalovacího menu – což je docela problém – kurzor se ztratí a než se uživatel dostane k další hlavní položce, tak se uTABeluje.
Teorie na úvod
Dle specifikace HTML 4.01 určuje atribut TABINDEX tabelační pořadí (tabelátorem se v prohlížečích přechází po aktivních prvcích jako jsou odkazy nebo prvky formuláře) elementu na stránce. Jeho hodnotou je číslo 0 – 32767.
Pořadí je podle atributu TABINDEX následující:
1. Elementy s nastavenou kladnou hodnotou atributu TABINDEX (od nejmenší po největší hodnotu – tyto hodnoty nemusí začínat jedničkou ani nemusí být sekvenční – 1, 2, 3, 4,… Pokud mají elementy stejnou hodnotu TABINDEX, rozhoduje jejich umístění v kódu stránky).
2. Elementy s nenastavenou hodnotou TABINDEX a elementy s hodnotou TABINDEX = 0.
3. Elementy (prvky formuláře), které jsou DISABLED se v pořadí vůbec nevyskytnou.
Nadále se budu v textu věnovat TABINDEXu jen z hlediska odkazů.
Praxe a rozčarování
Pro ověření těchto teoretických poznatků jsem připravil jednoduchý příklad, na kterém můžete vyzkoušet chování vašeho prohlížeče. Budu jedině rád, pokud mi v komentářích napíšete jeho chování (pakliže se bude lišit od těch, které uvádím v článku).
- Mozilla Firefox (v. 1.0.2): chová se přesně dle standardu
- Microsoft Internet Explorer (v. 4.01 – 6.0): chová se dle standardu s jednou výjimkou: pokud nastavíte hodnotu atributu na –1 bude tento element z pořadí vyjmut (viz MSDN), což je sice fajn, ale vznikne tak nevalidní dokument.
- Opera (v. 7.2.1): Hodnotu –1 považuje nejspíše za 32767 tedy za maximum a prvek s tímto TABINDEXem tedy zařadí až na konec pořadí. Elementy s nulovou či nezadanou hodnotou TABINDEXu z pořadí úplně vynechá.
Nenašel jsem žádný způsob, jak validně vyjmout některé odkazy z tabelačního pořadí. Jediná možnost je nevyplňovat jim TABINDEX, čímž se dostanou až na konec pořadí.
11. 4. 2005
Používam Firefox1.0.2 a TABelátorom sa dostanem aj na linku s TABINDEX=„-1“. Takisto aj Netscape 7.2. Mozilla 1.8 linku vynechá.
25. 4. 2005
Jak jsem uvedl v odpovědi na Váš dotaz na mém weblogu. Nedomnívám se, že je vůbec správné z tabelátorového pořadí jakýkoliv odkaz vůbec vyjímat. Protože nezávisle na Vašem záměru musí být každý odkaz v HTML stránce dostupný pomocí tabelátoru.
Pokud chcete nějaký odkaz znepřístupnit klávesnici (nejspíše půjde o vnořenou větev rolovací navigace), pak celou větev generujte javascriptem. Pokud bude odkazem hlavní odkaz větve a z dané stránky bude dostupný zbytek, nebude problém s přístupností. A toto řešení má díky systematice rozkládání pageranku výhody i z hlediska SEO.
2. 9. 2010
Ahoj. řešil jsem teď intranetovou aplikaci na zadávání cen a tam by se mi vyjmutí z tabindexu velmi hodilo. Např. mám pole název zboží, počet a pak součty, které počítá JS. Potřeboval bych vyjmout součty z tabindexu, což nejde (FF). Idkyž jim přiřadím nulu, nebo maximum, tak po kliknutí z různých polí se to pak chová nevyzpytatelně. Muselo by se to měnit podle okolností přes JS.
2. 9. 2010
Oprava, nevšiml jsem si data příspěvků přede mnou. Nyní v roce 2010 mi –1 funguje i ve FF 3.6.3.