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.

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.


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.