Na webu je spousta více či méně užitečných služeb, jako jsou počítadla, trackery nebo servery pro výměnu reklamy. Stačí si do stránky vložit kousek jejich kódu. Ale jakého kódu?! Valná část těchto služeb
zamrzla u HTML 3.2
Dnes jsem dělal redesign jistých stránek. Z tabulkového layoutu jsem kód přepisoval do validního XHTML se vzhledem definovaným pomocí CSS. Velikost kódu klesla na polovinu, to jen tak mimochodem... Ale narazil jsem na problémy právě s externě vkládaným kódem.
Vesele jsem si nadefinoval DOCTYPE jako
XHTML 1.0 Strict a přepisoval jsem, až jsem narazil na vloženou reklamu. Reklama byla vložena pomocí IFRAME, kterýžto prvek mi validátor vyhodil. Chvilku jsem přemýšlel a rozhodl se, že to zase takový problém není — server má vlastní reklamní systém, budu tam tedy reklamní kód vkládat skriptem na straně serveru a bude vše OK.
Nebylo.
Reklama byla totiž řešena tak, že byl vkládán kód z BillBoardu a dalších serverů, u kterých bohužel neovlivním to co mi pošlou. A že posílají opravdu věci nevídané! Např. z BillBoardu přichází některé atributy ve tvaru
MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0 HSPACE=0 VSPACE=0. (V této souvislosti mě zaráží to, že když jsem si onehdá dovolil kód BB vykuchat a změnit tak, aby byl validní, byl jsem za pár týdnů upozorněn na to, že nepoužívám originální kód, a tím pádem nesplňuji podmínky užívání služby...)
Nakonec jsem tedy zvolil cestu nejmenšího odporu, oželel jsem
Strict, nahradil ho
Transientem a nechal jsem tam iframe. Můj kód je validní, to co posílají do iframu jiné servery neovlivním, tak — bohužel...
Jiný příklad —
TopList. Proč jsou v kódu, který generuje, psány tagy velkými písmeny?
<A HREF="http://www.toplist.cz/" target="_top"><IMG SRC="http://toplist.cz/count.asp?id=33215&logo=" BORDER="0" ALT="TOPlist" WIDTH="88" HEIGHT="31"/></A>
HTML4.01 to sice snese, ale — psát to malými písmeny by byla minimální změna (z hlediska funkčnosti žádná) a přitom by to ušetřilo práci těm, kdo chtějí TopListí kód vložit do XHTML stránek. Přitom tag
img je zapsán v „xml syntaxi”, tedy i s ukončovacím lomítkem...
A pokud si necháte vygenerovat kód s JavaScriptem, jsou tagy malými písmeny, ale zůstane tam
WIDTH="88" HEIGHT="31" a přibude tag
noscript, který validátor vyhodí s hláškou
document type does not allow element „NOSCRIPT” here;
Stejně tak bývá vyhozen atribut
target — musí opravdu v tom generovaném kódu být?
Podobné kódy jsou generovány i dalšími webovými službami. Co si pamatuju, tak jsem se nesetkal se službou, která by mi vygenerovala buď XHTML validní kód nebo alespoň „XHTML ready” kód — tedy atributy i tagy malými písmeny a parametry uzavřené v uvozovkách.
Vždyť by to nebyl žádný velký problém a ušetřilo by to uživatelům spoustu práce.
PS: A také jsem se dozvěděl jeden argument na obranu
IE-only stránek. Prý návštěvníci s jinými prohlížeči mají velmi často filtrovanou reklamu, a tak je lepší napsat stránky primárně pro IE, čímž vzroste procento návštěvníků, kteří reklamu uvidí...
Aktualizace — vyjádření Pavla Francírka, autora TopListu
No, třeba zrovna ty tagy malými písmeny už v CVSku mám, ale ještě jsem je nepustil
Teď přes léto jsem se chtěl obecně podívat na kód Toplistu a trochu ho poladit (některý části jsou sedm let starý a je to na nich vidět), ale znáš to, není čas... (Znám — pozn. aut.)
Takže TopListí kód bude (možná už) na podzim validní. Kdy zvalidní BillBoard a další?