Dnešním článkem se vydáme na cestu po celém XHTML, což je základní jazyk pro tvorbu webových stránek. Na konci byste měli být schopni vytvářet stránky tak, aby dodržovaly všechna pravidla XHTML a zároveň využívaly všech možností, které XHTML nabízí. Seriál bude vhodný jak pro začínající, tak pokročilé tvůrce, protože i ti budou možná překvapeni lecčím, co dříve nevěděli.

Proč tento seriál vznikl?

Jsem si vědom, že příruček HTML (předchůdce XHTML, viz dále v článku) je na internetu vcelku velké množství. V jejich podání se často HTML zdá být jednoduchou záležitostí, která není hodna přehnané pozornosti ani velkého přemýšlení (narozdíl třeba od JavaScriptu). Je to dáno tím, že mnoho z těchto příruček ukazuje HTML pouze povrchně a některé jeho oblasti ignoruje nebo je jen nakousne, což se především týká logické struktury a přístupnosti. V následujících článcích se budu snažit věnovat všem těmto oblastem náležitou pozornost, přičemž budu vycházet striktně ze specifikací (X)HTML.

Dosavadního vývoj (X)HTML

Nejprve se budeme zabývat vývojem a jednotlivými verzemi (X)HTML – k pochopení určitých věcí v (X)HTML se vám jejich znalost bude hodit. Pokud v této oblasti máte jasno, můžete rovnou přeskočit k dalšímu nadpisu v článku, kde se dozvíte, čím se tento seriál bude zabývat. Pokud se pustíte do následujícího textu a nebudete něčemu rozumět, nelamte si s tím hlavu, v seriálu se ke všemu, co je zde zmíněno, ještě dostaneme.

Historie značkovacích jazyků pro vytváření webových stránek začala specifikací HTML 2.0 (HyperText Markup Language – hypertextový značkovací jazyk), kterou vydala Internet Engineering Task Force (IETF), internetová standardizační organizace, v roce 1995 jako RFC. Tento jazyk byl jakousi podmnožinou SGML, univerzálního značkovacího jazyka, který je pod patronací standardizační organizace ISO. SGML si můžete představit jako nástroj k definici jakýchkoli jazyků pro popis informací.

Specifikace HTML 2.0 ale neobsahovala příliš mnoho prvků k vytváření pohledných grafických stránek, a tak byla hlavně kvůli tlaku ze strany Netscape a Microsoftu uvolněna specifikace HTML 3.2, ve které byly do jazyka začleněny mnohé prvky, které naprosto postrádají strukturální význam, a slouží pouze k definici vzhledu – tuto specifikaci již vydalo World Wide Web Consortium (Webové konsorcium, zkratka W3C), což je webová standardizační organizace. W3C se ale snaží vést web k tomu, aby byl přístupný z nejrůznějších zařízení, a ne jen z PC. Toho lze nejlépe dosáhnout pomocí strukturálních prvků, a ne zmiňovaných prvků vzhledových, které jsou specifické pro konkrétní zařízení a kterých bylo HTML 3.2 plné. (Pokud vás toto téma zajímá, doporučuji vám článek Logické strukturování HTML dokumentu, v seriálu se k tomuto problému ještě dostaneme.)

Proto W3C vydalo další specifikaci – HTML 4.0. Zde definuje již vcelku mocný jazyk pro definici struktury dokumentu, vzhled dokumentu nechává téměř výhradně na CSS (Cascading Style Sheets). W3C chtělo ale zároveň nechat výrobcům prohlížečů a autorům stránek čas k přechodu na tuto normu, proto rozdělilo HTML 4.0 na HTML 4.0 Strict, HTML 4.0 Transitional (přechodná norma, zachovává vzhledové atributy HTML 3.2 a zároveň obsahuje všechny výhody a vylepšení HTML 4.0 Strict, především v oblasti přístupnosti a CSS) a HTML 4.0 Frameset (tato norma se téměř shoduje s HTML 4.0 Transitional, je pouze rozšířena o elementy pro definici rámů).

Specifikace HTML 4.0 byla později revidována, byly opraveny některé chyby, a stala se z ní specifikace HTML 4.01. Tato verze obsahuje kompletní popis jazyka a všechny následující specifikace jazyků pro tvorbu webu, které dosud vyšly, se na ni odkazují.

V další fázi bylo potřeba definovat HTML jako podmnožinu jazyka XML (eXtensible Markup Language – rozšiřitelný značkovací jazyk), který vychází ze SGML, avšak je „ořezán“ o některé zbytečné vlastnosti a některé nové vlastnosti naopak přidává. W3C prosazuje XML jako hlavní a jediný značkovací jazyk nejen pro web, proto byla reformulace HTML do XML logickým vyústěním této snahy. Nově vytvořený jazyk dostal jméno XHTML (eXtensible HyperText Markup Language – rozšiřitelný hypertextový značkovací jazyk) a jeho první specifikace se označuje XHTML 1.0. Tato specifikace je stejná jako specifikace HTML 4.01, jsou zde pouze integrována pravidla XML (o rozdílech mezi těmito dvěma specifikacemi pojednávaly na Intervalu články Krátce o XHTML – budoucím nástupci HTML a XHTML – živá voda na HTML).

W3C chce XHTML prosazovat jako jediný jazyk pro definici webových stránek, bez ohledu na typ zařízení, které je zpracovává. Expanze webu na různá alternativní zařízení ukázala, že tato zařízení kvůli svým omezeným možnostem nemohou podporovat všechny vlastnosti XHTML, že podporují jen nějakou jeho část (podmnožinu). Tyto podmnožiny bylo třeba definovat a standardizovat, proto vznikla specifikace Modularization of XHTML. Tato specifikace rozděluje všechny prvky XHTML 1.0 do modulů, ze kterých se následně skládají značkovací jazyky. Skupiny zabývající se webem v alternativních zařízeních mohou definovat nové moduly s prvky specifickými pro dané zařízení, mohou stávající moduly modifikovat, ale hlavně mohou z modulů skládat nové kompletní značkovací jazyky, které vyhovují potřebám a možnostem interpretace webu na těchto zařízeních. Z těchto jazyků zatím W3C uznalo XHTML 1.1 (až na několik detailů se shoduje s XHTML 1.0 Strict, hlavní rozdíl spočívá v tom, že XHTML 1.1 je definováno pomocí modulů) a XHTML Basic (skládá se pouze ze základních modulů, k použití hlavně na mobilních telefonech, PDA a podobně). Pokud si chcete o tomto tématu přečíst něco více, doporučují vám článek Vývoj a standardy XHTML, v seriálu se ale k této problematice stejně ještě vrátím.

Čím se v seriálu budeme zabývat?

Vzhledem k tomu, že podpora základního formátování stránky pomocí CSS je dnes v drtivé většině prohlížečů dobrá, myslím si, že již nastal čas k používání striktních norem. Tyto normy totiž oproti benevolentnějším přechodným normám zakazují pouze ty prvky, kde již o nasazení CSS nemůže být pochyb. Proto se v tomto seriálu budeme věnovat striktním normám. Ve své praxi se ale možná setkáte s případy, kdy budete muset zajistit optimální vzhled i ve starých prohlížečích typu Netscape Navigator 4, což bohužel nelze jinak, než pomocí přechodných norem. Proto se jim budeme věnovat zvlášť, až si probereme striktní formy specifikace.

Jak již název napovídá, budeme se zabývat XHTML. HTML je již uzavřeným standardem, navíc XHTML je s HTML zpětně kompatibilní. Vzhledem k tomu, že jsou normy XHTML 1.0 Strict a XHTML 1.1 navenek téměř identické, rozhodl jsem se všechny vlastnosti XHTML vyložit na XHTML 1.0 Strict, protože se ještě neskládá z modulů a jeho struktura je tak o poznání jednodušší. Modularizaci XHTML a s ní související problematiku proberu zvlášť poté, co vás seznámím s XHTML 1.0 Strict, zavrženými prvky jazyka (definovanými v XHTML 1.0 Transitional) a rámy. Zdá se mi totiž, že kdybychom se najednou zabývali moduly i popisem XHTML, utrpěl by celý seriál na srozumitelnosti.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět