Hlavní navigace

Soumrak nad moderním X

27. 2. 2007
Doba čtení: 12 minut

Sdílet

 Autor: 29
Jazyk XHTML. Pro jednoho moderní technologie, pro druhého obchodní artikl, pro třetího budoucnost webu, pro čtvrtého samozřejmá současnost, pro pátého symbol porozumění webdesignu. Jeho současnou skvělou reputaci udržuje čtveřice mýtů. Odhrneme-li je, spatříme mrtvolu.

V tomto článku se zaměřím na nejčastější omyly při úvahách o XHTML. Většina faktů zde popsaných je zřejmá či veřejně známá již mnoho let. Nosím dříví do lesa?

Mýtus č. 1: Kvalitnější sémantika

Ohromné množství lidí se mylně domnívá, že je XHTML očištěno od prezentačních částí HTML. Hovoří o návratu k původní myšlence WWW, z pusy se jim sypou výrazy jako sémantika, oddělení vzhledu od obsahu, sem tam vypadne nějaký klasický argument proti tabulkovému layoutu. Stejnou pitomost opakují začátečníci i pokročilí, amatéři i profesionálové, lidé známí i neznámí, experti světoví i čeští.

„XHTML zrušilo značky B(old), I(talic) a ponechalo jen STRONG, EM(phasized), zrušilo CENTER, FONT a i další podobné a CSS vykázalo (v nejnovějších verzích už povinně) do externího souboru.“

Zdroj: Petr Staníček (říjen 2004), komentář ke Koskovu článku Proč nepoužívám XHTML.

XHTML 1 je reformulace HTML 4. Prostá výměna syntaktického základu: místo standardu SGML je užita jeho osekaná verze zvaná XML. Nic víc. Žádná nová filosofie se s ním nepojí.

Zlotřilý element <font> v XHTML stále existuje. Není v HTML 4 Strict DTD, stejně jako není v XHTML 1 Strict DTD. Je zavržený v HTML 4 i v XHTML 1, je přítomen v HTML 4 Transitional DTD i v XHTML 1 Transitional DTD. Jeho statut se nikterak nezměnil. Rozdíl v sortimentu elementů mezi HTML 4.01 a XHTML 1.0 neexistuje. Ani jeden jazyk a ani jedna DTD k užívání tabulkového layoutu nesvádí, ani jej nezakazuje. XHTML nepřikazuje užívání externích stylopisů o nic víc než HTML. Drtivá většina návodů tvrdí opak.

Za významný kus své současné popularity vděčí XHTML právě neznalosti tohoto. Část lidí si je vědoma existence trojice DTD, ale považuje XHTML Transitional za méněcennou přechodnou „verzi“ či „normu“ mezi HTML a XHTML.

„XHTML 1.0 Transitional – je řečeno lidově nejměkčí normou a slůvko Transitional značí, že je pouze normou přechodnou. Byla určena tabulkovým webdesignerům pro snadnější přechod z HTML do XHTML, takže obsahuje možnosti, které jsou v přísnějších normách už zakázány.“

Zdroj: Plaváček (červen 2004), CSS a XHTML není žádná věda (3.díl).

Definice typu dokumentu (DTD) je především předpis pro validátor. Zjednodušeně: <!DOCTYPE> je odkaz na primitivní schéma, podle něhož může být dokument ověřován k tomu určeným nástrojem. Sám výsledek onoho ověřování nemá dopad na funkčnost. I nevalidní dokument v mnoha případech musí bezchybně fungovat.

Hezkým příkladem je atribut target. Najdete stovky článků a tisíce diskusních příspěvků tvrdících, že target již v XHTML neexistuje (příklad). Některé ho oplakávají, jiné na jeho (prázdný) hrob plivou. Zpravidla je poblíž nějaká zaručeně „z prstu vycucaná“ obhajoba, proč konsorcium tento nikdy nezavržený atribut nezačlenilo do HTML 4 Strict DTD. Mrkněte na následující kód:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title/></head>
<body>
<form action="/" target="_blank">
<input type="submit"/>
</form>
</body>
</html>

Není validní. Má prohlížeč target="_blank" ignorovat? Poruší specifikaci, otevře-li výsledek formuláře v novém okně? Neporuší. Relevantní W3C doporučení zcela jasně říká, jak má target fungovat. Definice typu dokumentu nepřevyšuje autoritu specifikace. Sama nemůže část jazyka zrušit, nemůže vás donutit nevalidní prvky nepoužívat.

V tuto chvíli existuje z pohledu cílového zařízení jeden jediný jazyk XHTML, který je identifikován jmenným prostorem „ http://www.w3.org/1999/xhtml“. Formálně jej popisuje několik specifikací (XHTML 1.0, XHTML Modularizace 1.0 a její „vývary“), které nabízejí několik DTD. Sémantiku a funkci elementů i atributů stále definuje doporučení HTML 4.01.

Mýtus č. 2: Lepší přístupnost

Z mýtu o sémantice částečně pramení i sen o lepší přístupnosti. Různé atributy kvalitní a přístupné stránky jsou často podřizovány chybné domněnce, že si je XHTML nějak vynucuje:

  • Rozvržení stránky definované skrze kaskádové stylopisy.
  • Nízký objem přenášených dat – bráno do důsledku, XHTML dokument nikdy nemůže být menší než ekvivalentní HTML obdoba.
  • Výstižnější značení částí obsahu usnadňující alternativní metody prezentace (přečtení hlasovou čtečkou, vybublání inteligentní rychlovarnou konvicí apod.).
  • Nezávislost interpretace kódu na použitém prohlížeči.

Jelikož je XHTML pouhopouhou reformulací, vynucuje si oproti HTML jenom jinou syntaxi. V některých ohledech je přísnější, v jiných nabízí dosud nevídanou volnost. Právě ta jiná syntaxe by měla dle W3C otevřít World Wide Web i alternativním zařízením:

„Stále jsou představovány nové metody přístupu na Internet. Některé předpovědi naznačují, že v roce 2002 bude 75 procent prohlížení internetových dokumentů uskutečněno z těchto alternativních platforem.“

Zdroj: W3C doporučení XHTML 1.0 (první vydání, leden 2000)

Jiná syntaxe si žádá jiný přístup. Během posledních tří let značně vzrostlo povědomí o jakémsi „správném MIME typu“. Pro mnoho webmasterů zcela nová věc. Umějí zapisovat značky, atibuty, entity, ovládají stylopisy, JavaScript… a najednou mají „lézt“ do HTTP hlavičky Content-Type? Budiž. Vlezou tam. Co by neudělali pro tu věhlasnou přístupnost XHTML. (Méně pozorní lezou do elementu  <meta http-equiv="content-type">.)

Posíláte-li cokoliv s MIME typem „ text/html“, oznamujete všem cílovým zařízením, že jde o HTML dokument. Nehledě na <!doctype>. Prohlížeč očekává zdroj dodržující syntaxi HTML, proto na něj pustí HTML parser. Když se z jeho pohledu vůbec nic nemění, tak jakápak vyšší přístupnost?

„Fakt je totiž ten, že nově vznikající elektronická zařízení neimplementují HTML pro jeho přílišnou náročnost (a to jak hardwarovou, tak i softwarovou). Pokud tedy vytvoříte své stránky podle doporučení XHTML 1.0 v režimu zpětné kompatibility, budou přístupnější širšímu spektru uživatelů, než kdybyste je vytvořili podle jakéhokoli jiného doporučení!“

Zdroj: Vilém Málek (prosinec 2004), Jak používám XHTML

Tahle takzvaná „zpětná kompatibilita“ v doporučení XHTML 1.0 plně nahrazuje kompatibilitu přirozenou. Pokud vůbec existují nějaká cílová zařízení, která podporují skutečné XHTML a vůbec nedisponují HTML parserem, měla by zdroj onálepkovaný „ text/html“ ignorovat.

Aby XHTML bylo XHTML, mělo by býti dodáváno s takovým MIME typem, který prohlížeči řekne, že má užít XML procesor místo klasického HTML parseru. Nastává přesně ta chvíle, kdy každému guruovi přes přístupnost začíná vzadu v hlavě cinkat na poplach takový malý zvoneček. Co se asi stane, když prohlížeč XML procesor nevlastní? Co se stane, když jen nerozeznává jmenný prostor XHTML?

Mohu si vzít libovolný webový prohlížeč a přečíst si obsah libovolného XHTML dokumentu? Nemohu. Trhni si nohou, uživateli, tenhle web je optimalizovaný pouze pro XHTML prohlížeče! — tohle je pravá tvář XHTML. Nepřístupná, až to mlaská o strop.

Otázku přístupnosti konsorcium nevyřešilo. Ani ji řešit nehodlá. Považuje zradu principu universálního přístupu za přechodnou záležitost, na niž naše pravnoučata zapomenou. Příznivci skutečného XHTML často označují za jedinou brzdu Internet Explorer (IE) a z té obecné nepřístupnosti se snaží vyštěkat pochybení konkrétního prohlížeče.

„Rozhořel se lítý boj mezi zastánci a odpůrci XHTML a prozatím se zdá, že válka argumentů skončí nudnou plichtou, přičemž hlavní viník a třetí vzadu jménem JESPRP se tiše pochechtává.“

Zdroj: Plaváček (říjen 2004), HTML nebo XHTML, toť otázka

Nebýt IE, byla by zde jiná největší brzda. Vždy tu nějaká je. Existují prohlížeče nepodporující obrázky, nepodporující JavaScript, nepodporující rámy, nepodporující Flash, nepodporující PDF a také nepodporující XHTML. Existují dokonce i tehdy, když je neznáte. Překvapivě.

„Nepřístupný web se pozná podle toho, že jej nemohou využívat všichni ti, co by si to přáli, avšak pouze lidé, kteří splňují určitá kritéria, jež po nich konkrétní web vyžaduje. Z toho vyplývá, že nepřístupnost je jakýsi nežádoucí filtr, jenž nekompromisně rozděluje uživatele Internetu na dvě skupiny.“

Zdroj: Symbio.cz (březen 2005), Přístupnost internetových stránek.

I kdybyste chtěli principiální pochybnost hájit statistikami, skutečná čísla vás neoslní. V současné době se podporou XHTML může chlubit jen malá hrstka známých desktopových prohlížečů. Mobily nad nimi nevynikají, jak ukazuje test z června 2006. Není se čemu divit. Podpora HTML je pro jakýkoliv použitelný prohlížeč nutností, jelikož „ text/html“ užívají víceméně všichni. Kolik času a peněz by měl výrobce mobilního prohlížeče investovat do podpory jazyka, kterou vyžaduje (nikoliv podmíněně využije) jen jedna stránka z milionu?

Pozoruhodný počet webů uvádí v prohlášení o přístupnosti poznámku, že užívají jazyk XHTML. Měla by snad čtenáře ubezpečit o bezbariérovosti? Vážně? Stránky nikdy nejsou přístupné „díky XHTML“. Mohou být přístupné nanejvýš „navzdory XHTML“, jsou-li servírovány jako HTML.

Mýtus č. 3: Vyhledávače upřednostňují XHTML

První mýtus citelně ovlivnil i vyhledávačové voodoo know-how. Pomůže vám ultramoderní X v honbě za skvělou pozicí mezi výsledky vyhledávání? Vít Dlouhý si je jist:

„Jsem si jist, že kdybyste měli dvě (co do obsahu) naprosto stejné stránky, z nichž jedna by byla v XHTML a druhá v HTML (s použitím tabulek a všeho, co to obnáší), tak se XHTML stránka umístí líp.“

Zdroj: Vít Dlouhý (leden 2004), Bezproblémový přechod na XHTML.

Zdaleka není sám. Opět si většina odborníků popletla jazyk XHTML se čistým HTML 4. Zapomněli vzít v úvahu tu „drobnost“ s MIME typy. Při „ text/html“ užívá HTML parser i vyhledávací robot, takže se také z jeho pohledu rozdílnost XHTML a HTML maže.

Jen si zkuste poslat vyhledávacím robotům správně sestavenou (well-formed) XHTML stránku s MIME typem „ application/xhtml+xml“. Seznam vás chladnokrevně vyřadí a Google většinou nerozluští obsah. Výborný výsledek.

Polský CSS kutil známý jako Literary Moose je už takový profesionál, že svůj web [XHTML, 3 kB] nabízí pouze s typem „ application/xhtml+xml“. Prý ví, že odřezává IE, říká, že je chyba na straně prohlížeče, nezpřístupňuje-li text svému uživateli. Netradiční postoj. Leč poněkud nekonzistentní: Obsahuje-li identifikační řetězec prohlížeče slůvko „bot“, posílá mu Moose MIME typ „ text/html“. Zřejmě mu ta „chyba“ v robotech vyhledávačů nepřipadá tak závažná jako v IE.

Můžeme spekulovat, zda je odmítavé chování vyhledávačů nechtěné, či úmyslné. Většina návštěvníků Googlu užívá Internet Explorer 6, který odmítá „ application/xhtml+xml“ zobrazit. Je pro tuto většinu relevantním výsledkem hledání web, který jim nejde zobrazit?

Mýtus č. 4: Internet Explorer nepodporuje XHTML

Užívali byste XHTML, kdyby byl ten „třetí vzadu, co se tiše pochechtává“, bez viny? Tedy kdyby skutečné XHTML fungovalo v IE 6? Jistě jste na mnoha místech četli, že v něm nikdy fungovat nemůže. Zde se dočtete, že může fungovat i v IE 5. Co k tomu budeme potřebovat?

Nejprve trochu teorie:

  • MIME typy „ text/xml“, „ application/xml“ a „ */*+xml“ značí XML zdroj.
  • XML zdroj, jehož kořenový element má lokální jméno html a náleží do jmenného prostoru „ http://www.w3.org/1999/xhtml“, je XHTML dokument.
  • Prohlížeč smí stahovat externí DTD, ale v případě XHTML to není dobrý nápad.
  • Jmenné prostory užívají prefixy jako pojítko mezi lokálním jménem elementu a názvem jmenného prostoru (který má podobu URI). Jeden jmenný prostor může být v daném kontextu výchozí, tedy bez prefixu.
  • Dva XML dokumenty mající stejnou kanonickou podobu jsou logicky ekvivalentní. Tedy <html xmlns="http://www.w3.org/1999/xhtml"/> a <etemenanki:html xmlns:etemenanki="http://www.w3.org/1999/xhtml"/> jsou dva možné zápisy téhož kořenového elementu XHTML.

Samotná teorie je nestravitelná, nevlastníte-li čtyři žaludky, proto přidáme praxi:

  • Prohlížeče při MIME typech značících XML zdroj užívají XML procesor.
  • Prohlížeče znající XHTML skutečně poznají užitý jazyk podle názvu jmenného prostoru „ http://www.w3.org/1999/xhtml“.
  • Některé prohlížeče neznají MIME typ „ application/xhtml+xml“ (třeba libovolný IE).
  • Některé prohlížeče mají XML procesor a znají základní XML typy (třeba IE od verze 5).

Pro dochucení přisypeme i historii:

  • 02/1998: Doporučení XML 1.0
  • 07/1998: RFC 2376 popisuje MIME typy „ text/xml“ a „ application/xml
  • 03/1999: Internet Explorer 5.0
  • 01/2000: Doporučení XHTML 1.0
  • 01/2001: RFC 3023 zavádí konvenci „ */*+xml
  • 03/2001: Doporučení XHTML 1.1
  • 10/2001: Internet Explorer 6.0
  • 01/2002: RFC 3236 popisuje MIME typ „ application/xhtml+xml

Nyní rozbalíme pergamen s kouzelným receptem. Internet Explorer 5.0 chápe správně XHTML, pokud je prefix jmenného prostoru „ html“ a pokud je k dokumentu skrze procesní instrukci „ xml-stylesheet“ připojen CSS stylopis. Pro lepší představu to vypadá takhle:

<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="stylopis.css"?>
<html:html xmlns:html="http://www.w3.org/1999/xhtml">
<html:head>
<html:title>Mrtvá ukázka</html:title>
</html:head>
<html:body>
<html:h1>Mrtvá ukázka</html:h1>
<html:p>
<html:font color="red">XHTML kód</html:font> dokumentu.
</html:p>
</html:body>
</html:html>

Živá ukázka, s MIME typem „ application/xml“.

V březnu 1999 nebylo jasné, jaký jmenný prostor bude přiřknut XHTML, nejspíše proto se IE upnul na prefix ignorujíce URI. Tím veškerá snaha Microsoftu o podporu XHTML skončila. Oba požadavky, které dominantní prohlížeč klade, sice odporují konvencím, ale výsledný dokument je v naprostém pořádku.

Nyní na mě část z vás (ta s pěnou u huby) cení zuby a chystá se mě pokousat kvůli červené hlášce validátoru. V podobných situacích, kdy jde o život, je vhodné poodstoupit. Rozhlédnout se. Nemalá část XML-světa považuje <!DOCTYPE> za archaismus. Formát XML DTD je žebrák na molu módní přehlídky, sice fajn člověk, ale mezi modelky nezapadá. Krom estetických vloh postrádá i žádané schopnosti. Nemůžete s ním nevázaně provádět různé „oplzlosti“, jako třeba přidat/změnit prefix jmenného prostoru.

„Jestli by webu něco prospělo, tak to nejsou snahy o resuscitaci SGML, ale kampaň za nepoužívání !DOCTYPE na začátku XHTML stránek.“

Zdroj: Jirka Kosek (červen 2006), diskuse JPW.

Ze zahraničních expertů projevuje averzi k DTD kupříkladu Tim Bray (spoluautor doporučení XML 1.0) a Norman Walsh. Ale to už odbíháme do jiné pohádky.

Domácí kutilové, kteří vidí do nehostinných útrob XHTML modularizace, mohou dosáhnout validity i s prefixem. Již mnoho let tedy můžete provozovat validní a plně vyhovující XHTML 1.1 dokumenty, kterým správně porozumí nejznámější prohlížeče. Včetně Internet Exploreru.

Didaktická past blažené nevědomosti

Při každém veřejném sporu o XHTML se ozve nemálo „nakrknutých“ nosorožců. Plamenné debaty by nejraději rychle zadupali, aby negativní pohled na XHTML náhodou nenakazil budoucí generaci webmasterů. Nosorožce nezajímá jádro pudla, v jejich očích jsou pudlové podřadná zvířátka. K panice jim bohatě stačí představa, že si nahlas vyjádřený nesouhlas přečte nebohý začátečník a na XHTML se „vybodne“. Zvláštní jev.

BRAND24

„V článku J. Koska vidím jedno nebezpečí. V běžných lidech vyvolá pocit, že HTML je to jediné správné a XHTML je na nic. A to kvůli nynějším okrajovým nedostatkům v implementaci XHTML, které jde řešit mj. za cenu ustoupení od normativního purismu. Takový pocit totiž běžný čtenář, neznalý všech detailů, získá.“

Zdroj: Jiří Bureš (říjen 2004), XHTML nebo HTML.

A tak znalejší webmasteři vědomě (ač s dobrými úmysly) filtrují svůj výklad tak, aby ti neznalí snadno vpluli do společného snu o růžové budoucnosti. Ve výsledku pak začátečník vyrůstá v naivních iluzích a jeho místní „XHTML guru“ také, jelikož sám vychází z již „pročištěných“ zdrojů.

V tuto chvíli postrádá smysl tvořit nové weby v XHTML. Stejně jako posledních sedm let.

Používáte na svých stránkách HTML, nebo XHTML?

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

Autor článku

Autor je nezávislý publicista zaměřený na historii. Webdesignu, značkovací jazyky, JavaScript a W3C specifikace. Na svém webu Webylon.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).