XHTML: namísto kotvy úryvek

Jistě víte, co je to odkaz na kotvu. Myslím takový ten odkaz, který nejenže odkazuje konkrétní stránku, ale navíc i její část. Prakticky se projevuje tak, že skočí na stránce na konkrétní místo, záložku, kotvu. Zaslouží si poznámku, že se odkazy na kotvy, pokud nejsou jasně odlišeny, moc nelíbí Jakobu Nielsenovi, protože komplikují definici předpokladu, jak se odkazy chovají.

Ale to, o čem chci mluvit, je praktická kodérská realizace těchto odkazů v HTML a XHTML dokumentech. Inspiroval mě k tomu Jan Řezáč v příspěvku Sémantika: Kotvím, kotvíš, kotvíme (Filův Blog, 23. února 2005).

Historie, HTML, XHTML

Pojem „kotva“ byl zaveden ve starém HTML. Pojmenování se používá dodnes a tento článek je tomu jen příkladem. I HTML 4 se jej drží. Kotva je v dokumentu realizována prvkem odkazu a s atributem name, jakožto unikátním identifikátorem místa v dokumentu. Odkaz je pak realizován klasickým URL následovaném „vězením“ # a jménem kotvy. V rámci jedné stránky pak stačí jen vězení + kotva: <a href="#kotva">odkaz</a>.

XHTML přichází s novinkou. Formát odkazu zůstává stejný, ale "kotva" se nedoporučuje. Namísto ní se zavádí úryvek dokumentu, v originále „fragment“. Úryvkem je myšlen libovolný prvek dokumentu s atributem id, jehož hodnota slouží jako jméno úryvku a je odkazována.

Úryvek dokumentu

Nenechte se ale mýlit, že stačí k prvkům a připisovat atribut id a je vyřešeno. Takto novinka rozhodně zamýšlena nebyla.

Úryvek dokumentu bude zpravidla prvek div. Neříkám že vždy, a znovu připomínám, že jím může být jakýkoli element, ale povětšinou to bude obecný blokový prvek div. A tento prvek, opatřený atributem id, by měl obsahovat celou odkazovanou informaci. Například při odkazování do weblogu, kde je více příspěvků na jedné stránce, by měl být celý příspěvek obalen právě jednoznačně identifikovatelným „divem“.

Všimněte si, že v porovnání s kotvami získáváme druhý rozměr – známe nejen začátek úryvku, leč i jeho konec.

Výhody odkazovaných úryvků

Praktické využití je nasnadě. Když budeme používat úryvky v dokumentech správně, pak můžeme obohatit dokumenty o šikovné JavaScripty, které odkazovanou část na stránce zvýrazní. Dovolím si předpokládat, že touto „fíčurou“ budou v budoucnu disponovat již samotné prohlížeče.

Ale i vyhledávače by se měly lépe orientovat v rozčleněných dokumentech, vezmou-li v úvahu odkazy na úryvky. Mimochodem, bylo by fajn, kdyby to dokázaly a my jako tvůrci webů bychom jim k tomu měli dávat důvod.

Abych nezapomněl na přístupnost webu, tak ještě zmíním hlasové čtečky pro osoby s poškozením zraku. Tyto čtečky by při správně postavených odkazech do dokumentů nejen že mohly na správném místě začít se čtením (to umějí už dnes), ale na konci úryvku spořádaně zmlknout.

Kompatibilita

Již řečený Jan Řezáč provedl průzkum (Filův blog, 3. března 2005), které prohlížeče odkazy na úryvky dokumentu znají a které nikoliv.

Výsledek vypadá poměrně přívětivě a myslím si, že pokud stavíte nový web v XHTML, tak není důvod nepoužívat XHTML tak jak se má. Konec konců, z kompatibilních důvodů můžete používat zároveň klasickou kotvu, která v XHTML 1.0 zakázaná není. Jen není doporučená a v budoucích verzích nebude přítomna.

A pokud budete odkazování úryvků zavádět u již existujícího webu, pak nezapomeňte na tu nepříjemnost, že zatímco atribut name smí začínat číslicí, atribut id pouze písmenem (číslice smí následovat až ve druhém a dalším znaku).

Doplnění tohoto článku: Ještě ke kotvám a úryvkům.

Související:

Komentáře

1. Brbla – 9. března 2005, 15:56

Hezký článek. Jen bych byl opatrnější s překladem termínu fragment. Překlad „úryvek“ mi IMHO nepřipadá jako dostatečně vystihující. Více než úryvek mi připadá trefnější: zlomek, kousek. Osobně bych zachoval termín fragment (který se užívá např. i v archeologii).

2. Jakub Vrána – 10. března 2005, 11:46

Když jsem někdy v roce 1996-7 s HTML začínal, tak jsem přesně takhle chápal značku <a name> a její konec umisťoval až za blok, ke kterému se záložka vztahovala. Jenže pak některé prohlížeče takový blok celý obarvily jako odkaz a já se navíc něco dozvěděl o blokových VS řádkových značkách, takže jsem to používat musel přestat :-).

3. Vilém Málek – 11. března 2005, 17:29

Idkazování přes id je z hlediska logiky webu velký krok vpřed. Znám z praxe ale jednu situaci, ve které může dojít k problému. Pokud stránku s více „fragmenty“ zformátujete tak, že se celá nachází na jedné obrazovce, ale pro její čtení je nutno rolovat v nějakém vnitřním okně (overflow: scroll), Opera na rozdíl od ostatních prohlížečů, nedokáže v tomto vnitřním pseudookně dokument správně narolovat - pravděpodobně proto, že se domnívá, že je celý dokument viditelný (je beze zbytku obsažen ve viewportu ;-)).

Viz též Problém v Opere s kotvama ve skrolovacím divu (Interforum Interval.cz). (Tento problém odhalila kolegyně Blanka Dudašková. ;-))

Váš komentář

K článku nelze připojit komentář, Mraveniště bylo zakonzerováno.


Copyright © Jan Bien.
W3C XHTML 1.0  | W3C CSS 2  | UAW adaptive  | Geo URL  | RDF RSS