• TwitterRSS
  • Domů na Webylon
  • Kritika W3C
  • Validita
  • Strohá slepá ulička

    20. července 2006

    Doporučení HTML 4 a XHTML 1 obsahují tři definice typu dokumentu: Strict, Transitional a Frameset. Je překvapivé, kolik lidí bez rozmyšlení sahá po Strict DTD. Je překvapivé, kolik z těch zbývajících se rozmýšlí na základě nepřesných předpokladů.

    Kterou DTD máte nejraději vy?

    O XHTML jsem psal v Sově již dvakrát a v tom druhém případě jsem vám v článku Jak přejít na XHTML popsal způsob, jak přetvořit stránky v HTML 4 a nižším do XHTML. To jsem ovšem uvažoval měkčí, přechodnou normu XHTML Transitional. Chcete-li být opravdu důslední, můžete spolu s námi zkusit tvrdou normu XHTML Strict.

    — Marek Prokop, XHTML — buďte striktní, Sova v síti, 14. ledna 2002

    Děsivé elementy

    Brrrrr. <font face="serif" size="6">. Jak strašný element to je. Úplně mi z něj cupitá Mráz po zádech. Strašný je především svojí nepraktičností. Dokument s prezentačními elementy a zejména s prezentačními atributy se hůře spravuje.

    To je dostatečně dobrý důvod pro užívání sémanticky čistších postupů. Vizáž se mění, účel zůstává. Fajn. Prezentační elementy používat nemusíte, nikdo vám je nikdy nenutil. Většinou vám překáží. A hle! Copak vám to konsorcium připravilo?

    Strict DTD. Ta prý neobsahuje zavržené věci, což jsou prý přesně ty, které nemáte rádi. Třikrát sláva odvážnému konsorciu! Díky němu konečně ty elementy a atributy, které užívat nechcete, užívat ani nesmíte (bez ztráty validity). Važte si toho. V běžném životě o vás takto stát nepečuje: uříznete-li si dobrovolně ruku, nikdo vás za to nepotrestá.

    Jenže volba DTD je na straně webmastera. On si vybírá, která pravidla bude dodržovat. On si nakonec i vybírá, zda je vůbec bude dodržovat. Použije-li Strict DTD a element <font color="green">, vznikne nevalidní dokument. Nevalidní, ale přesto plně funkční. Prohlížeč by porušil doporučení HTML 4, kdyby z <font>u nezezelenal. Totéž pochopitelně platí i pro XHTML 1, prezentační elementy musí fungovat.

    Netrefené

    Konsorcium W3 při své věčné pouti za plným potenciálem není konzistentní. Následující elementy, které samo označuje za prezentační, ponechalo uvnitř Strict DTD:

    Elementů určujících vzhled, které skutečně ze Strict DTD vyhozeny byly, je jen pět. Výše uvedený seznam je dvojnásobný. Dvě třetiny konsorciem uznávaných prezentačních elementů ve Strict DTD jsou.

    V případě prezentačních atributů bylo W3C ráznější. Schytala to drtivá většina. Masakr přežilo osm atributů ovlivňujících vzhled tabulek. Krom nich ovšem konsorcium ponechává i dva typicky prezentační atributy jako povinné: rows a cols u elementu <textarea>.

    Trefené

    Pár zapomenutých elementů nevadí. Nikdo vám je nenutí. Ve Strict DTD však oproti Transitional DTD chybí i několik věcí, které prezentační rozhodně nejsou:

    Atribut target u odkazů a formulářů
    Zmizel, aniž by byl zavržen. Stránky načítané uvnitř rámů musí užívat Transitional DTD? Proč taková nekonzistence?
    Atribut type u elementu <ol>
    Typ odrážek je prezentační záležitost pouze do doby, než zjistíte, že se v samotném textu odvoláváte na bod IX. 4. b.
    Atribut value u elementu <li>
    Pořadí prvku uvnitř uspořádaného seznamu může zamíchat uspořádáním. „Bod 6 zatím přeskočíme, doplníme jej později.“ Navíc je tímto atributem také ovlivněna odrážka.
    Atribut start u elementu <ol>
    Počátek číslování potřebujete nastavit zejména v okamžicích, kdy chcete navázat na jiný seznam.
    Element <iframe>
    Zmizel, aniž by byl zavržen. Bez jakéhokoliv zdůvodnění.
    Element <dir>
    Výpisy adresářů se snad na WWW nikdy nevyskytují? V HTML 4 najdete i mnohem méně užitečné a užívané elementy, které zavrženy nebyly.
    Element <menu>
    Menu není prachobyčejný seznam, menu je <menu>. Sémanticky vhodnější element pro něj neexistuje a zrovna v jeho případě by se sémantická čistota vyplatila.

    Strict DTD nevylévá vaničku i s dítětem. Vylévá pouze dítě a slastně mlaská nad čistotou vody. Zbytečně omezuje sémantickou rozmanitost, ničí HTML.

    Pradávný cíl

    Hlavním cílem definice typu dokumentu Strict nemělo býti pročištění jazyka. A už vůbec ne zjednodušení prohlížečů. Měla stanovit stabilní a přehledný základ pro budoucí verzi HTML. Základ, na němž se bude dále stavět. Základ, k němuž se přidají nové elementy či atributy. Základ, který by se měli naučit začátečníci, aby je navazující verze nepolekala.

    Zavržený element či atribut je takový, který byl překonán novějšími konstrukcemi. [...] Zavržené elementy se mohou stát zastaralými v budoucích verzích HTML.

    Zastaralý element či atribut je takový, u něhož není žádná záruka podpory ze strany prohlížeče.

    4.1 Definice v HTML 4.01, W3C, 24. prosince 1999

    Jenže navazující verze nepřichází. Z původně plánovaného bleskurychlého a bezproblémového přehození výhybky, tedy z reformulace do XML, se stal nekonečný porod hraničící s potratem. Mezitím se W3C místo vývoje navazující verze pustilo do budování úplně nového jazyka nesoucího označení „XHTML 2“, který se již takovou malicherností, jako je zpětná kompatibilita, nijak nezdržuje. Má být nekompatibilní nejen s prohlížeči HTML 4 a XHTML 1, ale i se starší představou konsorcia o budoucnosti jazyka.

    V budoucí verzi XHTML přeci měly zemřít všechny zavržené části HTML 4. A všechny nezavržené měly přežít bez úhony. Podle plánu konsorcia zemřou úplně všechny a část z obou zmíněných množin bude v nekompatibilní podobě vzkříšena.

    Rozdíl mezi Transitional DTD a Strict DTD byl odjakživa dán především jejich perspektivou do budoucna. Tento rozdíl konsorcium úspěšně vyrušilo.

    Znáte jediný rozumný důvod pro užívání Strict DTD?