Pořadí odkazů na stránce pomocí atributu TABINDEX

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

Komentáře

1
11 duben 2005, 19:26

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

 
2
25 duben 2005, 21:44

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.

 
3
2 září 2010, 11:22

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.

 
4
2 září 2010, 11:26

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.

 

Přidej komentář

Pište prosím slušně, s diakritikou a k věci. Dodržujte pravidla a využijte možnosti formátování uvedená pod formulářem.

Email nebude zveřejněn

Pravidla a možnosti formátování

  • Nepoužívejte HTML značky, blog podporuje formátování texy. Nový odstavec získáte 2x odřádkováním, odkaz: "text odkazu":odkaz, **tučně**, *kurzíva*
  • Adresy začínající na http:// budou automaticky převedeny na odkazy
  • Jediné dvě povinné položky formuláře jsou Jméno a zpráva
  • Na předchozí komentáře odkazujte zápisem [2]

 

Sekce