Představte si jeden universální metr na všechno. Máte? Ne? Pro lidský mozek je to patrně příliš nesmyslné zadání. Webmasterův mozek má však jasno. Ten metr má podobu validátoru.
Pojem validity si mnoho nadšenců pro „webové standardy“ ohnulo takovým způsobem, že by se nad jejich výkladem pozastavilo i samotné konsorcium. Kdyby již nebylo pozastavené několik let.
Validita je shoda dokumentu s normou.
Validita není shoda dokumentu s normou. A nikdy jí býti neměla.
V souladu se standardem SGML a doporučením XML je validita pouhopouhé dodržení pravidel v definici typu dokumentu. Nic víc. Světe, div se, definice typu dokumentu není norma, definice typu dokumentu je jen definice typu dokumentu.
Validátoru je šumák, jestli DTD psalo konsorcium nebo jestli si ji postavil sám webmaster. Neřídí se doporučeními HTML a XHTML, ale standardem SGML a doporučením XML. Na tom není nic zvláštního. Je jasné, že na nedostatky, které jsou mimo rozlišovací schopnost DTD, validátor neupozorní.
Je dokument validní, obsahuje-li takové nedostatky? Jistě, že je. A co třeba následující dokument:
Podle ISO SGML se při typu dokumentu #implied
kontroluje jen správné zanořování elementů. Zbytek pravidel, která se běžně vyskytují v DTD, se automaticky „domyslí“ podle dokumentu. A ten je pak pochopitelně dodržuje, je validní.
Lze najít i mnohem pochopitelnější úkaz: Může být dokument validním HTML 4.01, vynechám-li element <title>
? Může. Nepotřebujete k tomu dokonce ani upravovat oficiální DTD:
Samotné pozitivní vyhodnocení validity nic neznamená. Je to podobná situace, jako když zatoužíte dostat lednici pod koberec: vezmete kus koberce, dáte ho na lednici, fajn, hotovo. Skvělý pocit, že?
Správný kamarád „webových standardů“ ctí W3C doporučení, ne pružnou modlu validity. Všimněte si, že v případě HTML 4 se dokonce vyhovující a validní dokument mohou míjet: Validní nemusí vyhovovat a vyhovující nemusí být validní.
Většina dnešních validních stránek nevyhovuje „webovým standardům“. Kvůli drobnostem a prkotinám. Teoretické důsledky ignorování W3C jsou dobře známé. „Že to funguje tobě a teď, to nestačí!“ Paradoxně ti největší křiklouni prosazující dodržování specifikací je většinou bezostyšně porušují. Z přesně stejného důvodu, jako ti, které kritizují: nečetli je.
V případě CSS je situace podobná jako u HTML. Tentokrát se ale nemusíte nořit do hlubin SGML a XML, jelikož zdejší validita je specifická vlastnost spjatá pouze se stylopisy. Neodráží soulad s doporučením, ověřuje pouze dodržení pravidel nutných k dosažení validity. To jsou opět dvě různé věci.
Návrh CSS 2.1 dovoluje, aby vlastnosti ve specifikaci nedefinované začínaly podtržítkem. Zároveň praví, že validní stylopis obsahuje pouze konsorciem definované vlastnosti. Vidíte nějaký nesoulad? Já vůbec.
Tudíž definice CSS, např. _color:red, je korektní, protože specifikace CSS 2.1 ji povoluje (ať si softwarové validátory, které znají jen starší verzi CSS 2.0, říkají, co chtějí — v tom, že je to chyba, se mýlí).
— Pixy, Podtržítkový hack, 21. listopadu 2003
Přimhouříme-li všechna oka, vyhovuje slavný „podtržítkový hack“ současnému návrhu CSS 2.1. Ale validní není, v tom se validátory nemýlí.
O tom, že CSS může obsahovat nedefinované vlastnosti, jsem se s Honzou Bienem (a jinými) hádal mockrát – jsem přesvědčen, že může.
— Pixy, komentář pod článkem Konec W3C prostřednictvím psa II., La Trine, 22. března 2005
Doporučení CSS definuje z důvodů dopředné kompatibility ještě jedno měřítko: dodržení gramatiky. Nedefinovaná vlastnost není validní a za vyhovující ji podle CSS 2.1 můžete označit jen tehdy, začíná-li podtržítkem či pomlčkou. Dodržuje-li jen gramatiku (třeba jako vlastnost filter
), neznamená to, že vyhovuje. Sám fakt, že dodržuje gramatiku, by měl zajistit bezchybné rozebrání.
Každé měřítko by mělo mít svůj účel. Svůj jasný smysl. Jasnou implikaci: dodržíte tohle pravidlo => můžete počítat s tímhle výsledkem. V případě starších doporučení W3C tyto implikace často jasné nejsou a tam, kde jasné jsou, bývají špatně vykládány. Zrovna v případě XHTML je validita zbytečně přeceňována.
Kvůli tomu, že se veškeré evangelizační úsilí dogmaticky upnulo především na validátor, se z propagace „webových standardů“ stala fraška plná polopravd, legend a mýtů. Přitom je to všechno tak krásně jasné.