„Každý moderní webdesignér používá ty nejmodernější webové standardy zaručující bezproblémovou interpretaci v libovolném cílovém zařízení“ — tak nějak zní současná politicky korektní pravda webdesignu.
Škoda, že je i politicky zkažená.
Nejmodernějšími standardy se pochopitelně myslí sedm let staré XHTML 1.0 a devět let staré CSS 2.0 (či dosud nedodělané CSS 2.1). Nikdo nenazývá moderním sedm let staré HTML 4.01.
Pojmem XHTML se nemyslí pouze dotyčné W3C doporučení, ale především „nová filosofie s ním spojená“
Je-li řeč o XHTML, tak jde samozřejmě pouze o přístupné a validní XHTML. Jak se přístupnost v XHTML zajišťuje? Snadno: stačí se nehrabat v HTTP hlavičce text/html
. Díky tomu získá stránka prakticky totožnou cílovou skupinu jako HTML stránky.
A validita? Jednoduše odladíte dokument podle připomínek oficiálního W3C Validátoru, ne? Mezi zmíněnými parametry moderního webdesignu má validita výsadní postavení. Je perfektně definovaná a lze ji ověřit strojově.
Vše, co v HTML můžete a v XHTML musíte, při MIME typu text/html
nemusíte. Nehrozí vám žádný postih při porušení „nových“ pravidel, jelikož interpreti vašeho kódu ctí „stará“ pravidla. Čím to tedy je, že jsou tyto povinnosti i přes svoji bezzubost vnímány jako posvátné? Že by úcta ke specifikaci? To těžko. Vždyť specifikace nikdo nečte.
Zatímco v případě HTML vše, co nemusím, validátorem projde bez připomínek, u striktního XHTML se dozvím všechny detaily.
— Petr Staníček, Proč používám XHTML, Interval.cz, 14. října 2004
Jednoho postihu za porušení nových pravidel se tedy nakonec dočkáte: W3C Validátor vás potrestá červenou hláškou. Nástroj konsorcia má na moderní webdesign značný vliv. Jedno jeho slovo má pronikavější zvuk než deset specifikací. Stačí zeleně podbarvený nápis „This Page Is Valid XHTML 1.0 Strict!“ a autor se hned zaraduje, že dodržuje ty „nejmodernější webové standardy“.
Sám validátor se však také musí řídit specifikacemi. Vyhovující validátor je zvláštní odrůda vyhovujícího cílového zařízení. Má jasně dané chování. Nekontroluje dodržování W3C specifikací, kontroluje pouze validitu. To není totéž, neboť vyhovující dokument nemusí být validní a validní dokument nemusí být vyhovující.
Jako každé cílové zařízení by měl i validátor volit parser podle MIME typu. Nečiní tak. Konsorcium před osmi lety svůj nástroj záměrně nabouralo: k detekci MIME typu dopsalo nestandardní výjimku, kvůli které oficiální validátor přestal vyhovovat.
Nyní postupuje tak, že začne každou text/html
stránku rozebírat jako XML. Jakmile najde deklaraci <!DOCTYPE>
, nakoukne do jejího veřejného identifikátoru a s ohledem na něj zvaliduje dokument buď jako XML, nebo jako HTML. Takové očichávání kódu mu žádná specifikace nedovoluje a lidé z W3C jej všude možně odsuzují. Podle standardů může <!DOCTYPE>
říct validátoru pouze adresu DTD, nikoliv syntaktická pravidla. Ta totiž musí být známa předem.
Pohleďte na tento zdrojový kód:
Ty podivnosti s otazníkem jsou tzv. „instrukce pro zpracování“. Validátor se o ně nestará a prohlížeče také ne. Začínají sekvencí „<?
“ a končí „>
“ v HTML a „?>
“ v XML. Díky nim jde kód větvit.
Správně jsou tři možná vyhodnocení výše uvedeného zdroje v závislosti na MIME typu:
text/html
text/xml
us-ascii
).
application/xml
nebo */*+xml
Oficiální validátor ovšem při typu text/html
přehlédne HTML <!DOCTYPE>
a vesele validuje XML procesorem, takže webmastera ujistí, že je všechno v pořádku a ten se zaraduje. Jak dlouho mu asi radost vydrží?
Koukne se na stránku v libovolném prohlížeči a co nevidí? Nic nevidí. Kam se podělo důležité sdělení? Jak to, že není vidět? Stránka je validní i vyhovující, tak v čem je problém? Začne z chyby vinit prohlížeč. Nahlásí proto závadu výrobci (třeba tady). Autory prohlížeče to samozřejmě nezaskočí, jelikož podobné stížnosti dostávají každý týden. Na všechny odpovídají stejně: „U nás chyba není! Slova W3C Validátoru nejsou rozhodující, protože validuje totálně blbě trošičku úplně jinak.“
Takřka všechny existující XHTML dokumenty dodávané s typem text/html
jsou nevalidní. Pod rouškou dodržování standardů se moderní webdesign upnul k optimalizaci pro nástroj vynucující si jejich porušování. Vskutku fascinující jev.
Chyba W3C Validátoru umožňuje každému text/html
dokumentu spatřit zelenou hlášku „This Page Is Valid XHTML 1.0 Strict“, aniž byste sáhli na jeho značky. Stačí ho obalit do následující XHTML slupky:
Tři řádky na začátek, tři znaky na konec. Krása, že?
Můžete dělat ta největší zvěrstva a oficiální validátor vás stejně pochválí, že máte validní XHTML. Svým XML procesorem totiž uvidí XML dokument s prázdným kořenovým elementem <q>
. Správně fungující cílová zařízení (včetně českého validátoru) slupku přejdou bez povšimnutí.
Svým způsobem ano. Ale je to ten nejmodernější webový standard.