Hlavní navigace

Kam kráčí HTML?

7. 9. 2007
Doba čtení: 11 minut

Sdílet

 Autor: 29
Pro odpověď na samotnou otázku, kam kráčí HTML, nebude křišťálové koule zapotřebí. HTML 5 je jasným vzkazem pro odbornou veřejnost, že vše zůstává při starém, tedy že trend devastace HTML bude pokračovat. Zajímavější proto jistě bude zamyslet se nad jednotlivými aspekty jazyka, jenž se již dnes vymyká jakékoliv specifikaci.

Krátce z historie

V roce 1990 sepsal Tim Berners-Lee návrh hypertextového projektu, z něhož později vzniklo HTML. Do verze 3.2 HTML obsahovalo především strukturální a deskriptivní tagy. Tyto značky neumožňovaly autorům webových stránek určovat v dostatečné míře grafickou podobu HTML dokumentů. Vývojáři prohlížečů proto vyšli vstříc a do HTML zakomponovali množství dalších ryze prezentačních tagů, které byly posléze standardizovány právě verzí 3.2. Tímto způsobem bylo zajištěno vytváření pohledných a vzhledově variabilních stránek, zvláště při využití tabulkového layoutu. Tento krok měl však i svou odvrácenou tvář. Kvůli zneužívání tabulek k formátovacím účelům a nadměrnému používání prezentačních tagů ztrácely HTML dokumenty svou přehlednost, navíc autoři stránek strukturální a deskriptivní tagy částečně vynechávali. Problém byl v tom, že web se čím dál více stával multimediální záležitostí a čím dál více zařízení nejrůznějšího charakteru (tiskárny, hlasové čtečky, mobilní telefony aj.) získávalo přístup k webovému obsahu, přičemž ne všechna měla dispozice k interpretaci prezentačních tagů. Zejména proto se standardizační webová organizace W3C počala snažit o potlačení nastoleného trendu a v roce 1997 vydala specifikace pro HTML 4, kde se zaměřila na vylepšení struktury dokumentu; pro vzhled stránek měly nadále sloužit především kaskádové styly. Lze říci, že se konzorciu podařilo situaci zlepšit. Díky nesporným výhodám definování vzhledu přes CSS začala role tabulkového layoutu a prezentačních prvků zvolna slábnout. Nicméně konzorcium přišlo s mnohem smělejšími plány. V roce 1999 uvedlo „nový“, přísný jazyk zvaný XHTML, který měl HTML nahradit. Vývoj HTML byl prohlášen oficiálně za ukončený.

XHTML bylo přijato s nadšením. Provázel jej příslib návratu k čistě strukturovanému kódu a nových možností vyplývajících z faktu, že XHTML je podmnožinou XML. Tento příslib dodnes nebyl zcela naplněn. Kodéři sice zachytili módní vlnu a promptně obohatili své výtvory o lomítka a koncové tagy, avšak jinak zůstalo vesměs vše při starém. XHTML dokumenty jsou stále posílány s MIME typem text/html, aby je HTML parsery mohly zpracovat, a stále se v nich uplatňují prezentační tagy, ačkoliv to je v příkrém rozporu s propagovaným ideálem oddělení vzhledu od obsahu. Vývoj mezitím ustrnul. První verze XHTML nepřinesla s výjimkou modularizace (XHTML 1.1) nic nového a druhá ještě ani není vydaná, zejména však není zpětně kompatibilní, tudíž její užívání je věcí vzdálené perspektivy. Za této situace se ujala myšlenka znovuobnovení vývoje jazyka HTML, se kterou přispěchala skupina Web Hypertext Application Technology Working Group (dále jen WHATWG), sdružující zejména řadu tvůrců webových prohlížečů jako například Mozilla Foundation, Opera Software či Apple.

Velestručně o HTML 5

Iniciativa skupiny WHATWG, jak se zdá, ukončila dosavadní přešlapování na místě a nabídla jak nové možnosti odpovídající náročnějším potřebám programátorů webových aplikací, tak potřebnou kompatibilitu s předchozími verzemi HTML a rovněž také vylepšenou sémantiku, viz přibližné srovnání.

Je asi zbytečné HTML 5 podrobně rozebírat, neboť několik dobrých článků o něm již bylo napsáno, viz odkazy níže. Takže jen souhrnně – počátkem roku 2007 byla v rámci W3C založena nová pracovní skupina, jejímž úkolem je vypracovat konkrétní specifikaci pro HTML 5. Specifikace bude vycházet z Web Applications 1.0 a Web Forms 2. od WHATWG. Jako termín dokončení této nové specifikace se předpokládá rok 2010.

Skutečné HTML

Mluvíme-li o HTML, je zapotřebí si vyjasnit, zda máme na mysli specifikace, nebo kód v podobě více či méně uspořádané změti znaků promíchaných s (X)HTML tagy. Výše uvedené kapitoly byly o specifikacích, kteréžto jsou vhodné jenom pro diskuse zainteresovaných odborníků, případně pro zábavu. Na webu se s HTML kódem striktně vyhovujícím specifikacím příliš nesetkáme. Autoři webových stránek ve spolupráci s benevolentními webovými prohlížeči dali vzniknout trochu odlišnému jazyku, jenž je sice také deklarován jako HTML, popřípadě XHTML, nicméně jeho zákonitosti jsou podstatně divočejší a těžko nějak specifikovatelné. Pro tento jazyk je patrně označení HTML daleko legitimnější než pro specifikace, které sice všichni uznávají, ale od nepaměti je téměř nikdo nedodržuje.

K věci. V nynějších podmínkách nemá nejmenší smysl vytvářet zařízení, která by zpracovávala kód dle řádných pravidel. Je nezbytné je „budovat“ robustní, maximálně odolné vůči nejrůznějším excesům v kódu. Pojďme se schválně jen tak letmo podívat, jaké šílenosti musí naše prohlížeče zvládat.

  • v případě potřeby ignorovat strukturu dokumentu
  • znát nestandardní elementy, atributy a hodnoty a umět je interpretovat
  • umět si poradit s výskytem zakázaných znaků
  • zobrazit znaky i z jiné znakové sady, než která je aktuálně použita
  • interpretovat překřížené elementy

Jsou věci, které zvládat naopak nesmí! Třeba interpretovat NET syntaxi. Prostě a jednoduše – musí zvládnout stránku zobrazit tak, aby uživatel byl spokojen. Jinak předložený přehled je vskutku pouze namátkový. Prohlížeče prošly dlouhým vývojem a jejich schopnost interpretovat vadný kód se v lítém konkurenčním boji vypracovala na velmi vysokou úroveň. Například tuto stránku „stráví“ bez viditelných komplikací a uživateli předloží se vší parádou. Nic jiného jim ani nezbývá. Běžní uživatelé totiž nejsou příliš zvědaví na množství funkcí, jak ostatně dokládá malý zájem o Operu a relativní neznalost rozšíření pro Firefox. Mnohem více ocení hezky zobrazenou stránku. Toho si jsou vývojáři prohlížečů velmi dobře vědomi a ještě usilovněji pracují na vylepšení jejich interpretačních schopností.

Srovnání s XHTML

Nejčastějším argumentem zastánců HTML je, že zatímco v XHTML sebemenší chyba znamená „smrt“, v HTML se bez potíží zobrazí. Takovéto zjednodušené konstatování ovšem neodráží v plné míře ani realitu, ani specifikace.

V reálné praxi se XHTML dokument odesílá s MIME typem text/html, prohlížeče jej zpracují svým HTML parserem, který si s chybami poradí, a obsah normálně zobrazí. Není v této souvislosti jistě bez zajímavosti, že XHTML 1.0 byl navrhován také s ohledem na to, aby byl zpracovatelný i staršími verzemi prohlížečů, které ještě XHTML neznaly. Prohlížeče při zjištění, že MIME typem je text/html, už neprovádějí další analýzu, vždyť specifikace jim to ani nenařizují, a rovnou předpokládají, že se jedná o HTML dokument, a je-li v něm chybička, „smrtí“ se to neprojeví.

V samotné specifikaci není explicitně určeno, že nevyhovující XHTML dokument nesmí být nabídnut ke převzetí a zpracování jiné technologii. A tak, byť je jisté, že takové chování je minimálně na hraně dodržení příslušného standardu, jenž přikazuje, že parser nesmí takový dokument zpracovat, se prohlížeče nejspíš budou snažit najít způsob, jak zpřístupnit i obsah vadných stránek hlásících se k XHTML, aniž by se dostaly do příkrého rozporu se specifikací. Celkem rozumné je v tomto směru chování Opery, která takovou stránku nezpracuje, pouze ohlásí chyby a nechá na rozhodnutí uživatele, co dál.

Co se týče HTML, žádná specifikace nestanovuje povinnost parseru zpracovat chybný kód. Pokud nám tedy prohlížeč nezkolabuje a vadnou stránku poslušně zobrazí, není to kvalitou dané HTML specifikace, ale kvalitou použitého prohlížeče.

V současné době si kodéři užívají obrovské svobody. Nemusí se „zbytečně“ zaobírat studováním syntaxe. Nemusí vědět, jestli se elementy mohou křížit, zda se všechny hodnoty atributů mohou psát bez uvození či jak je tomu s koncovými značkami elementů atd. Stačí, když si myslí, že to vědí. Je to dobré i v tom, že případné nesrovnalosti v minoritních prohlížečích potažmo jiných zařízeních si uživatel vysvětluje „chybami“ provinilého interpreta.

Ano, u HTML je notoricky známo, že si jej každý může psát doslova, jak se mu zachce. A co drakonické XHTML? Dokáže zajistit „čistotu“ kódu? Zjistíme záhy. Vytvořme si pro názornou ukázku testovací XHTML dokument odesílaný s MIME typem application/xhtml+xml. Tento bude trpět následujícími (jinak nepříliš vzácnými) chybami: obrázky bez atributu alt, blokové elementy vnořené do řádkových, přítomnost nestandardního elementu <embed>, hodnoty atributů id začínající číslicí. Sem tam ještě můžeme navíc rozhodit i nějaké neznámé entity. A nyní si takový soubor vyžádejme prostřednictvím HTTP protokolu. Zjistíme, že požadovaná extrémně nevalidní stránka se zobrazí. Kdo se vsadil, že ne, má smůlu. XHTML není až tak drakonické. Při parsování nehraje validita (dokument je validní, pokud odpovídá dané DTD) roli, podstatné je, jestli je dokument správně sestaven, tj. zda se v něm nevyskytují syntaktické chyby nebo jiné nedostatky, které by znemožnily další rozebírání dokumentu. To v podstatě znamená, že ani XHTML samo o sobě nemá dostatečné prostředky pro udržení „čistoty“ kódu, byť prohřešky proti syntaxi už tvrdě trestá.

Ona proklamovaná svoboda je ovšem další mýtus. Je důležité si uvědomit, že co je svobodou pro jedny, může být omezením pro druhé. Uveďme si pro představu alespoň několik omezení.

  • Zadavatel, pokud problematice aspoň částečně nerozumí, nemá žádnou možnost zkontrolovat, jestli je kód jeho nového webu bez závad. Prohlížeč chyby nehlásí, stránky zobrazí.
  • Ačkoliv je doplnění alternativního textu k obrázkům formálně povinné, kodéry nic nenutí textovou alternativu nabízet. Tratí na tom hlavně uživatelé se zrakovým postižením. Dá se samozřejmě argumentovat, že u obrázků je alternativní text často zbytečný, nebo naprosto nedostatečný. To však nemůže zastřít fakt, že některé typy obrázků (např. navigační prvky, jednoduché plánky nebo schémata a také obrázky s nápisem) v sobě nesou podstatné informace, které by měly být přístupné.
  • Rovněž se dá spekulovat, že vývoj prohlížečů je za takových anarchistických podmínek mnohem náročnější.
  • Předělávat stránky, v nichž se to hemží tagy <font>, <center> apod., je velmi komplikované. Pokud by původní autor tyto tagy k dispozici neměl, byl by nesvobodně přinucen seznámit se s CSS, což by bylo jedině dobře.

Zamyšlení

Většinový uživatel, coby rozhodující faktor, je se současným stavem spokojený a nic mu neschází. Stránky se mu přehledně zobrazují, a pokud si nevypne omylem JavaScript, vše funguje, jak má. Ani tvůrci prohlížečů si na HTML nikterak nestěžují. Čím je dána taková popularita? Je to jednoduše tím, že HTML jako seriózní jazyk prostě neexistuje. Jeho rozvoj je chaotický (nebo evoluční – těžko soudit, který výraz je přesnější), každý si do HTML přidává, co chce. Něco se pak uchytí a něco zase ne. Kupříkladu nestandardní tag <bgsound> funguje bez nesnází ve všech moderních prohlížečích na rozdíl od tagu <q>, který, ač standardizován, není jednotně implementován. Tvůrci prohlížečů celkem ochotně vymýšlejí pro HTML různá vylepšení, jak ostatně přesvědčivě dokládá iniciativa skupiny WHATWG. Autory webových stránek (alespoň ty horší) zase uspokojuje extrémní benevolence, která je u počítačových jazyků jinak zcela nevídaná.

Sluší se poznamenat, že chaotický vývoj HTML mnoho neprospívá. Například rozvoj prezentačních tagů sice bezprostředně saturoval potřeby webdesignérů, ale v průběhu doby se ukázal jako velký krok stranou. Podobně smutnou úlohu by nakonec možná mohl sehrát i připravovaný HTML 5, své obavy pregnantně shrnul jeden z čtenářů Rootu:

Mohli jsme se ještě několik desetiletí mazat s kompatibilitou obtloustlými a těžko použitelnými standardy a házet uživatelům kosti v podobě nových naleštěných funkcí, přišpendlených na zapáchající tělo mrtvoly, ale my jsme řekli ano. whatwg. howgh

Proč se vlastně W3C rozhodlo HTML 5 posvětit a připustit tak přímou konkurenci XHTML? Zřejmě mu ani nic jiného nezbývalo. Byly jen dvě možnosti – zůstat mimo, nebo jít v čele. Ta druhá možnost byla přece jen přijatelnější, umožňovala totiž zachování vedoucí úlohy.

Na celou věc však lze nahlížet i optimisticky: Díky prozřetelnému udržování zpětné kompatibility se uživatelům budou bez komplikací zobrazovat i historické HTML stránky z 20. století. Spokojeni mohou být i standardizátoři. Jejich standardy jsou implementovány, aniž by webdesignéry omezovaly a nutily je zbytečně se patlat s kódem. Navíc není vyloučeno, že se v budoucnu podaří vytvořit jednotný model interpretace vadného kódu, takže by šlo vytvářet i velmi špatné stránky s garancí interoperability. Zrovna tato představa sice už zavání utopií, protože je daleko pravděpodobnější, že s přibývajícími možnostmi bude rozmanitost chyb, jichž se kodéři dopouštějí, růst do nekontrolovatelných rozměrů, ale proč hned propadat skepsi?

Většina expertů se shoduje, že jednou z hlavních příčin velkolepého úspěchu HTML byl jeho, zde tolik kritizovaný, laxní přístup k chybám. Je nesporné, že pro poskytování informací není jazyk uplatňující draconian error handling vyloženě ideální, avšak opačný extrém v podání „evolučního“ HTML může být stejně tak nebezpečný. Princip evoluce spočívá v eliminaci slabších a upřednostnění zdatnějších. Princip prověřený miliony let však není jaksi dost dobře v souladu s požadavkem svobodného přístupu k informacím. Současný stav zmíněný požadavek, zdá se, nenaplňuje. Ve webdesignu silně převažuje vizuální pojetí HTML dokumentů, důraz na sémantiku je ojedinělý, což je do značné míry dáno i neutěšeným stavem standardů. Spousta elementů je nadbytečných, často i duplicitních, naproti tomu elementů pro hlavičku a patičku stránky se dočkáme až s HTML 5! Své již o tom kdysi napsal Dušan Janovský:

Rozvoj HTML tagů jako významových značek ustrnul brzo po rozjezdu www, takže dnes sice v HTML máme šest tagů pro nadpisy, osm tagů pro seznamy a tři tagy pro citace, ale nemáme tag pro patičku, navigaci, blok odkazů, není značka pro poznámku pod čarou, viditelné shrnutí článku, viditelný popisek obrázku, nemáme tag pro datum, autora ani pro další druhy informací, které se do HTML jaksi „nevešly“. Pro skutečný sémantický popis moderní webové stránky by ale údaje o tom, co je třeba patička, co je reklama, co hlavní text a co je nesouvisející informace, byly zásadně důležité.

Ještě zbývá dodat

Lpění na syntakticky správném, validním a sémantickém kódu není ostentativním výrazem programátorského puritánství. Uvažme, že jazyk HTML je jakýmsi základem webových stránek, na něj se pak aplikují jiné jazyky (CSS, JavaScript), také se zpracovává dalšími technologiemi… Prostá logika praví, že základy mají být solidní.

BRAND24

Při všech těch dohadech o budoucnosti (X)HTML se trochu zapomíná na jednoho velmi významného hráče. Jako vždy v minulosti, jistě bude mít i v budoucnu rozhodující vliv na podobu zdrojových kódů dominantní prohlížeč. Webdesignéři jednoduše nebudou používat technologie, které Internet Explorer nepodporuje. Pro další směřování HTML tedy bude důležité i to, kdy a jak Microsoft přijme HTML 5.


Úkolem tohoto článku není zatracovat HTML. HTML je úspěšný jazyk, se kterým panuje všeobecná, byť ne bezvýhradná, spokojenost. Svou sílu prokázal dostatečně, když dokázal přežít svůj zánik, a dál bude minimálně ještě nějakou dobu stěžejní pro vytváření webových stránek. Nicméně tak jako mnoho dalších věcí má i on své nedostatky. Je to samozřejmě vždy diskutabilní záležitost, často zneužívaná pro flame war, ale zcela pominout ji nelze, jak by si mnozí fanoušci HTML úpěnlivě přáli.

Kontrolujete čistotu, správnost, validitu kódu vašich stránek?

  • Ano, pravidelně.
    51 %
  • Občas ano.
    37 %
  • Ne, na to nemám kdy.
    5 %
  • Neumím to.
    1 %
  • Nemám vlastní stránky.
    5 %

Byl pro vás článek přínosný?

Autor článku

Autor je nezávislý publicista.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).