W3C validátor nahatý!

Lukáš Havrlant (aka Timy) dnes publikoval článek propírající známý (X)HTML validátor konsorcia W3C – nadále jej budu označovat prostě jako Validátor. Timy na několika příkladech dokazuje, že ačkoliv Validátor velmi obstojně zvládá kontrolovat validitu proti DTD, kontrolou validity dle specifikace se chlubit nemůže.

Validátor jako modla

Někomu může připadnout tento nadpis nadnesený a přitažený za vlasy. Realita je ale taková, že mnozí, nejen začínající, kodéři pokládají Validátor za něco posvátného, čemu je třeba se zavděčit za každou cenu. Zkontrolují svoje dílo a postraší-li je Validátor červenou výhružkou, rychle utíkají chybu opravit, než si toho někdo všimne. Zamrká-li na ně však zeleně, jsou šťastní a mají pocit z dobře odvedené práce.

Ty červené okamžiky problémem nejsou, nebezpečný je ten pocit spokojenosti nad zeleným „validním přitakáním“. V současné době se drtivá většina webových tvůrců při tvorbě stránek uchyluje k použití HTML4 či libovolné novější specifikace, což zahrnuje především rodinu dokumentů XHTML a právě XHTML není ničím jiným než reformulací HTML4 do podoby XML aplikace. Mnoho chyb Validátoru má původ právě v mnohých spletitých uličkách specifikace HTML4 a tím pádem logicky i XHTML.

Pořád rovně a u stylů vlevo

Říkal jsem, že specifikace HTML4 obsahuje mnohá zajímavá zákoutí, jež však pravděpodobě autoři Validátoru při vývoji aplikace přehlédli či nemohli implementovat. Teprve nedávno jsem se při pročítání specifikace HTML4 zarazil na hlavě čtrnácté, kapitole druhé, oddílu prvním (HTML4 14.2.1), který pojednává o určení výchozího MIME typu pro styly na stránce.

Pokud používáte externí styly, definujete jejich typ při vkládání externího stylopisu pomocí atributu type. Stejným způsobem jejich typ určujete i při použití interních stylopisů. Specifikace však na tomto místě mluví o způsobu, jak určit typ tzv. inline stylů, tedy stylových předpisů vkládaných přímo k patřičnému elementu pomocí atributu style. Toto se realizuje dvojím způsobem:

  1. Pomocí meta elementu v hlavičce dokumentu (<meta http-equiv=„content-style-type“ content=„text/css“>).
  2. Pomocí HTTP hlavičky serveru (Content-Style-Type: text/css), k tomuto účelu můžete využít například PHP, pokud tuto hlavičku váš server neposílá automaticky

V případě, že ani jedna z těchto možností není využita, předpokládá se typ text/css. Specifikace však říká, že pakliže se v dokumentu vyskytují elementy s atributem style, přičemž není definován výchozí typ stylů, je dokument nevalidní. Cituji:

Documents that include elements that set the style attribute but which don't define a default style sheet language are incorrect.

Hádáte správně, Validátor tento prohřešek proti specifikaci však vůbec neregistruje (důkaz). Mnoho „validních“ stránek právě toto zastrčené pravidlo nedodržuje, velice pikantní příklad uvádí Chamurappi na diskusi serveru Jak Psát Web.

Věřit či nevěřit Validátoru?

Otázka by spíše měla znít: Starat se o validitu či nestarat? A další otázka by následovala: Co je to vlastně validita? Tak či tak, pokud stojíte o to, aby Vaše stránky byly validní dle specifikací konsorcia, jediná rozumná odpověď je: Studovat.

Validátor je dobrý pomocník, špatný a chybující však pán. A na závěř ještě jedno vlezlé klišé: Věřte v první řadě svému rozumu. Tím nic nezkazíte. Tak.

16. 3. 2006, 20.50 | (X)HTML, CSS, Webová glosa.


27 komentářů k “W3C validátor nahatý!”

  1. ObiSkyWalker říká:
  2. Pěkný a poučný článek. Styly vkládané přímo k elementu jsem skoro nikdy nepoužil a že bych měl před jejich použitím přidat nějaký meta tag, to jsem vůbec nevěděl. Každopádně teď už to vím a budu si dávat pozor :).


  3. klokyn říká:
  4. Ja validáciu považujem len za čerešničku na torte. Na prvom mieste je bezchybná použiteľnosť, bezchybná prístupnosť a ostatné bezchybné vlastnosti stránky. Až na poslednom mieste je "bezchybný kód" (oprávnene v úvodzovkách). Ak je podľa validátoru všetko v poriadku, ale v prehliadači nie, vtedy sa treba zamyslieť nad tým komu veriť.


  5. Leo říká:
  6. "Pokud používáte externí styly, definujete jejich typ při vkládání externího stylopisu pomocí atributu type."

    A pomoci http hlavicky Content-Type, kterou posila server.

    "Content-Style-Type"

    Rekl bych, ze tahle hlavicka je nastandardni rozsireni http. Leo


  7. Antirux říká:
  8. Věřím, že sice "zelená" od validátoru, ještě nemusí znamenat opravdovou validitu dokumentu, ale zase na druhou stranu bych neshazoval víru "nejen začínajících kodérů".

    Myslím si, že u někoho, kdo programuje ve svém volném čase a tak samozřejmě nemá čas a asi ani náladu studovat (ne zrovna dvakrát čtivé) specifikace by měla být oceněna už je ta snaha pokusit se ověřit validitu dokumentu. I jen snaha splňovat standardy a zvláště u neprofesionálů si myslím zaslouží patřičné úcty.

    Na druhou stranu souhlasím s názorem, že pro profesionála by měl být validátor maximálně třešnička na dortu (a spíš ani to ne).


  9. G_ říká:
  10. Perto existuji i jine validatory…urcite ano. ma nekdo zkusenosti s nejakym jinym? treba lepsim.


  11. Vilém Málek říká:
  12. 2 G: http://interval.cz/…-xhtml-kodu/ ;–)


  13. Vilém Málek říká:
  14. 2 G: Další lze nalézt na http://www.czilla.cz/…idatory.html ;–)


  15. Huggi říká:
  16. Docela se pohybuju po ‚amaterskejch diskuzich‘ kde plno zacinajicich koderu bere validni stranku jako za plne ‚fungujici‘ na vsech prohlizecich..(pokud vubec berou v uvahu jiny krom IE a FF).. osobne validator beru jako kontrolu zapomenutejch/neukoncenejch tagu..ze specifikace sem cetl jen par kousku..ve vysledku je dulezitejsi jak stranka funguje a v tom validator muze pomoct, ale taky vubec nemusi..at uz daq jakejkoli vysledek..


  17. Vilém Málek říká:
  18. 2 Huggi: Ještě před pár lety se stránky dělaly výhradně tak, aby fungovaly v tom prohlížeči, který používal vývojář nebo majitel stránek. Díky obrovskému tlaku se to změnilo a validita (potažmo validátor) začala být hodnocena jako znak kvality stránek. Současný stav je důsledkem tohoto vývoje – moho lidí validitu zbožštilo, což vyvolalo negativní reakci u jiných lidí. A tak zde dnes soupeří několik skupin, z nichž některé jsou pro validitu a jiné proti, každá ze svých důvodů. Otázkou je, kdo převáží a jaké to bude mít důsledky…


  19. thingwath říká:
  20. Validátor validuje podle DTD, kterým se HTML prostě úplně popsat nedá. Však je tam také odkazován Relaxed validátor, který používá místo DTD cos lepšího, co už mnoho věcí navíc postihnout dokáže. Někdo by ovšem mohl vnímat jako nedostatek, že je to určeno pro XML :-]


  21. Lokutus říká:
  22. [9] "jaké to bude mít důsledky"

    No, já myslím, že v rámci světa to bude mít důsledky minimální, až zanedbatelné a v rámci celého vesmíru naprosto bezvýznamné.


  23. Vilém Málek říká:
  24. 2 Lokutus: A co kdyby v počátcích WWW převážil názor, že je to zbytečná služba duplikující tehdejší informační systémy na internetu již zavedené? To by určitě také mělo naprosto zanedbatelné důsledky – v kosmickém měřítku ;-)


  25. melodie na mobil říká:
  26. Obávám se, že vždy se najde věc, kteoru lidé 100% nerozumí a tak ji "zbožští". Validator je toho jedině dalším důkazem. Je ale otázkou, zda se vyplatí skutečně mít 100% validní dokument…


  27. yossarian říká:
  28. Ja osobne souhlasim s lida007 v diskuzi v clanku zminovane, a myslim si, ze chamurappi je arogantni zmrd. protoze kdyz uz nic, tak by validnost stranek mela byt slusnosti, a ne tvrdit ‚ono to vsude funguje, i kdyz ty stranky zcela nesplnuji standard‘. s timto pristupem muzou prestat treba ukoncovat tagy, protoze si to prece prohlizece ve vetsine pripadu domysli. ale nejen prohlizece parsuji (x)html, coz si evidentne spousta lidi neuvedomuje. kdyz pouzivam jakykoliv skript a pokousim se ze stranky dostat dulezitou informaci, tak me jeji validita dle DTD jedine potesi, a usnadni mi praci se louskanim neci zmrvene prace.


  29. Lukáš Havrlant říká:
  30. yossarian
    Ano, jsi hrdina, když někoho pomlouváš za jeho zády, proč se radši nezapojíš do tamější diskuse?

    > s timto pristupem muzou prestat treba ukoncovat tagy, protoze si to prece prohlizece ve vetsine pripadu domysli…

    Má to dokonce svá (naprosto jednoduchá) pravidla – http://atd.havrlant.net/…funguje-html

    >…ale nejen prohlizece parsuji (x)html, coz si evidentne spousta lidi neuvedomuje.

    Neukončování značek je standardní vlastnost HTML, tudíž by to každý UA měl zvládnout.


  31. yossarian říká:
  32. tamejsi diskuze me nezajima, pocitam ze si muj zdejsi nazor chamurappi precte a ani mu nebudu stat za odpoved.

    neboj, tvuj clanek jsem cetl. vim, jak html funguje, parser na nej jsem uz psal. nicmene jsem nemluvil o neukoncovani tagu v ramci pravidel html, ale o porusovani pravidel html, ktere jedine vnaseji zmatky, a zhorsuji strojove zpracovani.


  33. Lukáš Havrlant říká:
  34. yossarian
    Když tě tamější diskuse nezajímá, tak proč se zde o ni zmiňuješ?

    Vynechání atributu type vnáší do HTML zmatek? V HTML 3.2 třeba žádný takový atribut v tomto elementu neexistoval a fungovalo to, tudíž už v rámci zpětné kompatibility to všechny prohlížeče musí zpracovat správně, což se o neuzavírání tagů, které uzavřené být mají, říct nedá.


  35. Hermes handbag říká:
  36. dsafd replica handbags, Wholesale replica handbags


  37. cheap products říká:
  38. dsafe china wholesale distributor We sell bulk wholesale


  39. dsafd říká:
  40. refd. Queue Management System.Aluminium foil


  41. grdg říká:
  42. sdfszumba dvd wholesalesdf wholesale bootssdf wholesale nflsdf


  43. lady bags říká:
  44. hiphop bags sere handbags lady bags golf bags


  45. hollister uk říká:
  46. hollister ukol good


  47. hollister uk říká:
  48. hollister uklady gaga


  49. UGG Classic Tall Boots říká:
  50. [url=http://www.uggboots5815.com]UGG Boots,UGG Boots 5815[/url]


  51. guess handbags říká:
  52. Compare prices on guess handbags and save ,Top ranking quality of the designer guess handbags for discerning ladies.Guess handbags are stylish accessories that complement a fashion-conscious woman's wardrobe and guess handbags .Enjoy a great selection of guess bags.guess handbags or every discerning women ,free shipping,110% price guarantee.


  53. Wholesale accessories říká:
  54. For people quite serious in making some good money by getting started with tattoo business, China Wholesalegiven below are few valuable tips to consider.


Zanechte komentář





Můžete použít Texy! formátování.
Pokud se obsah boxů níže mění, zatímco píšete, potom žádné číslice nevyplňujte. V takovém případě antispam funguje, pouze se prohlížeči nepovedlo skrýt tento box.