Na Lupě o X
27. února 2007
Zde najdete poznámky k mému trojdílnému seriálu článků o XHTML.
Doporučuji číst je až po přečtení článku, k němuž se vztahují.
Díl 1.
Soumrak nad moderním X, vydán 27. února 2007.
Omlouvám se pravidelným čtenářům Webylonu, že z článku samotného mnoho nových informací nevyčtou (snad až na datování vývoje XML MIME typů). Oproti zdejším textům Kritiky W3C se mění formulace, výstižnost a především množství čtenářů.
Poznámky:
- Článek napadá čtyři mýty související s XHTML, z nichž tři napomáhají udržet jeho dobrou reputaci.
- Atribut
target
je u prvního mýtu „hezkým příkladem“ také proto, že je neoblíbený. Upozorňuji, že nijak nenabádám k jeho používání.
- V ukázce kódu u prvního mýtu mám
target
na elementu <form>
, u něhož prohlížeče běžně neumožňují ovlivnit, kde se výsledek otevře.
- Děkuji za inspiraci: Jiřímu Burešovi za zvoneček v mozku a Petru Staníčkovi za mlaskání o strop :-)
- Ve třetím mýtu byla původně před „jen si zkuste“ citace od jistého Radka Hulána. Doporučil totiž v článku o optimalizaci pro vyhledávače používání MIME typu „
application/xhtml+xml
“. Citaci jsem vyhodil, neboť by vyvolala agresivní komentáře od něj a na něj. Kdo by chtěl mít pod článkem takové svinstvo?
- U čtvrtého mýtu tvrdím, že domácí kutilové mohou dosáhnout validity i s prefixem. Třeba takhle.
- Podle známé legendy (podpořené filmem) fungují v přírodě nosorožci jako hasiči, mají prý tendenci zadupávat oheň. Proto v poslední části mluvím o „nakrknutých nosorožcích“ zadupávajích flamewary.
- Poslední odstaveček je vzkaz pro nosorožce. Ať si dupnou.
- Někdo možná namítne, že má smysl tvořit nové weby v XHTML, protože ten a ten program mu s kódem udělá to a to. OK, budiž. Nemá ovšem smysl posílat stránku v tomto formátu prohlížečům.
V mohutné diskusi pod článkem se párkrát vyjádřil i Jirka Kosek a jelikož mi nenadával, zřejmě jsem se nedopustil žádné faktické chyby, což mě těší :-)
Díl 2.
Život s krvelačným X, vydán 6. března 2007.
Stejně jako předchozí článek ani tento není pro pravidelné čtenáře Webylonu moc objevný.
Předpokládal jsem, že se dozvím, že jsem demagog, idiot, idiot, idiot, idiot, idiot, že ničemu nerozumím, že mám hrubé a blíže nespecifikované neznalosti a že si neumím přeložit ty dvě chybové hlášky validátoru, které vyskakují při validování úvodu webu Webylon.info. To se ale tentokrát nestalo.
Poznámky a zajímavosti:
- U pojednání o principu robustnosti odkazuji na Pixyho starý článek, v němž si stěžuje, že jej prohlížeč neupozornil na chybějící většítko. Podle HTML 4 mu tam však většítko nechybělo, problémem byla nedostatečná podpora HTML v prohlížečích.
- Nečekané smrtelné chyby okusí v létě řada RSS čteček, až Netscape nadobro smaže svoji DTD.
- V příkladu modularizace s nočníčkem říkám „zvaliduje jej proti své představě o ideálním dokumentu“ — tím nemyslím doslova validování proti DTD (to by musel být validující nočníček). Každý prohlížeč čehokoliv má určitou představu o optimálním vstupu. Tato představa může být (a nemusí) formalizována pomocí DTD či XML Schématu.
- Ukázaný XHTML kód rozšířený o MathML nefunguje dobře v žádném z rozšířených prohlížečů. Mozilla podporuje pouze prezentační MathML.
- Teoreticky lze v případě SVG nacpat alternativu do elementu
<svg:description>
, ale popře se tím jeho sémantika: je určen k popisu.
- Pokud vím, tak kromě zakládající listiny z listopadu 2006 není na W3.org o nové pracovní skupině ani slovíčko. Dodatek: Den po vydání článku se už věci daly do pohybu.
Díl 3.
Mix posvátné validity a X, vydán 13. března 2007.
Prokáže-li někdo v diskusi pod článkem, že je má úvaha chybná, nechám český validátor tak, jak je. Přísahám, že výsledek validování nikdy nepřizpůsobím svým choutkám či ryze vlastní představě o ideálním kódu. Respektuji čistotu validátoru.
Poznámky a zajímavosti:
- Většinu zádrhelů, které konsorcium vytvořilo, lze hájit jistým druhem „božské“ zaslepenosti. Tento nikoliv. W3C muselo vědět, že v doporučení XHTML 1.0 lže. Při uvědomění si důsledků považuji v článku kritizovaný krok za skutečně zvrácený.
- Chybu validátoru jsem si uvědomil již v únoru 2006. O dva měsíce později jsem vymyslel způsob, jak na ni výrazně upozornit.
- V článku uvádím, že díky odlišné syntaxi procesních instrukcí mohou parsery HTML a XML vidět každý jiný
<!doctype>
. V HTML totiž končí procesní instrukce znakem „>
“, kdežto v XML „?>
“. Názorně:
<?xml version="1.0"?>
<?instrukce v sgml a xml>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- instrukce v xml?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?instrukce v xml --><?instrukce v sgml?>
<html>
<head><title></title></head>
<body>
<p>Tento dokument je:</p>
<ul>
<li>Validní HTML 4.01 Strict</li>
<li>Validní XHTML 1.0 Strict</li>
</ul>
</body>
</html>
- Z výše uvedeného příkladu je zřejmé, že nakonec přeci jen lze zapsat dokument tak, aby byl HTML a XML zároveň. Všechny prázné elementy je ovšem zapotřebí zapisovat takto:
<?i ><img src="něco"><!--?><img src="něco"/><?i --><?i?>
- Stejně, jako jde zapsat prázdné elementy, jde zapsat cokoliv. Tudíž část dokumentu může být v HTML skryta a naopak část může být skryta v XML. Oficiální validátor zajásá „This page is valid XHTML 1.0 Strict“ a HTML prohlížeč pak klidně žvýká překřížené elementy, které si vozí své zmatené značky v luxusním
<marquee>
.