OKblog

Český validátor není špatný

Úterý, 12. června 2007 21.33 Webdesign

Stále častěji se setkávám s názorem, že český validátor je špatný . Ne, není. Ale proč si někteří myslí a proč si to nemyslím já? Nejdřív ale pár zajímavostí.

Za českou verzí validátoru, kterou pár lidí přivítalo (a zbytek jej odsoudil nebo nikdy neviděl), stojí Tomáš Hradil a používá v podstatě stejné parsery jako ten oficiální. Jen opravuje několik chyb, které W3C validátor úplně ignoruje. A není jich zrovna málo

A teď tedy – proč si někteří myslí, že je špatný? Jsou pro to minimálně dva důvody. Český validátor není oficiální = je tedy špatný. Ale jak už jsem uvedl, používá totožné skripty, takže slovíčko „oficiální“ je spíš jen formální.

Druhý důvod: „W3C validátor říká, že stránka je validní, ten český tvrdí, že není.“ Aha, zrada. Už se začínají projevovat první rozdíly, první opravené chyby. Spousta lidí píšících v XHTML totiž posílá stránku se špatným MIME-typem text/html. (O problémech spojených s MIME-typem application/xhtml+xml je to na delší povídání, takže to vynechám.) Validátor totiž stránku posuzuje jako HTML a tagy s prázdným obsahem (tedy s lomítkem) považuje za chybné. Což je správně a v souhladu se specifikací.

W3C validátor se na MIME-typ vůbec nedívá, všechno vidí jako text/html, ale přitom mu nějaká ta lomítka náladu nezkazí. Stránka tedy bude validní, webmaster může být na svůj XHTML (který vlastně není XHTML, nýbrž HTML) výtvor patřičně hrdý a dá si na web ikonku…

Jaký je tedy závěr? Český validátor není špatný. Je totiž mnohem lepší. Upozorní tvůrce na chyby, které ten oficiální neobjeví (a ani nechce objevit), nicméně stále není stoprocentní. Ale přece se může stát, že W3C validátor opraví (přestože to není pravděpodobné) a tisíce stránek tak budou nevalidní. Kvůli tomu, že tvůrci pohrdali lepším řešením a nechtěli chyby opravit…

předchozí další


Související články

Komentáře (29)

 
úterý, 12. června 2007 22:37:07

Český validátor jsem mockrát nepoužil, ale myslím, že začnu :)

 
úterý, 12. června 2007 22:45:23

Všude jen slýchávám že je špatný, ale jednou jsem si zvalidoval web podle českého. Vše bylo validní, a když jsem zkusil ten anglický, naskákalo mi mnoho chyb :-)

 
středa, 13. června 2007 6:33:22

Psala jsem o něm na blogu /fbi/, ale odpovědi byly celkem negativní.

Např.

cesky validator neopravuje radu chyb konsorcia W3C, ale naopak obsahuje radu chyb oproti W3C. Osobne jsem nekolikrat s W3C komunikoval a neni pravdou, ze W3C neresi DTD.

Evco, cesky validator si neporadi se slozitejsi xhtml strict strnakou. V html rezimu jeste jakztakz obstoji, ale v xhtml nikoli. Vubec to neni dobry nastroj a doporucuju pouzivat W3C. (Navic W3C je celosvetove uznavany a proc to asi bude…)

Český validátor neřešit. Pouze poukazuje na nedokonalost xhtml, kdy se kvůli IE muselo opravit řada chyb, kdy validátor přivírá oči nad špatným MIME typem atp. Český validátor jede čistě dle původních pravidel. Nevím jak si to přebrat. Spíše bych to nebral vážně

 
středa, 13. června 2007 13:12:12

jen by mě zajímalo, jak se tedy na validní XHTML díváš ty – vídím 1.0 strict, který stejně zasíláš s mime-type text/html. já to dělám také tak, ale invaliditu v českém validátoru neřeším.

PS.: přepsání mime v meta tagu opravdu nestačí :)

PPS.: a co je větší chyba – zasílat xthml jako text/html nebo se marně snažit změnit mime v meta tagu? :)

 
středa, 13. června 2007 13:53:56

[3] Evča: Tak to jsem se fakt pobavil. Jedině s tím posledním se dá jakž takž souhlasit. Zajímavé je, že proti němu brojí jen ti, kteří se v téhle problematice neorientují…

[4] Mike: To je složité. Já posílám stránky s application/xhtml+xml jen prohlížečům, které tento MIME-typ mají v hlavičce HTTP_ACCEPT. Pokud jej tam nemají, dostanou text/html. Přijde mi to jako nejschůdnější řešení a je správné, že validátor akcepuje i tohle (což by ostatně měl). Škoda jen, že W3C validátor nehledí na MIME-typ, což je v podstatě to první, na co by se měl dívat…

P.S.: Vím, proto to posílám v HTTP hlavičce, v meta tagu je to jenom pro doplnění ;) Super je, že český validátor tě na tuhle chybu upozorní.

P.P.S.: Rozhodně je větší chyba posílat XHTML jako text/html, protože pokus o změnu v meta tagu je 1) úplná zbytečnost, 2) není to chyba a 3) navíc stejně se vždycky posílá dřív HTTP hlavička než samotné tělo stránky, takže cpát content-type do meta tagu je opravdu k ničemu.

 
středa, 13. června 2007 13:58:59

Kategorický a tvrdý nesouhlas. XHTML lze za určitých podmínek posílat s text/html a není to chybou. Počítalo se s tím (tou zpětnou kompatibilitou) od začátku „vývoje“ (v uvozovkách neboť „jen“ vcucli HTML do XML) a nikdo by nevypustil do světa něco, co nepodporuje prohlížeč 70% lidí.

A nejenom verze 1.0 lze posílat s text/html. http://atd.havrlant.net/xhtml-11

 
středa, 13. června 2007 14:23:16

[6] Petr Tichý: Netvrdím, že posílání XHTML jako text/html je chybou. Jde tady o princip – když budeš někomu se zavázanýma očima dáš rajče a řekneš mu, že to je okurka, bude si myslet, že to ta okurka opravdu je…

A s nikdo by nevypustil do světa něco, co nepodporuje prohlížeč 70% lidí bych tak úplně nesouhlasil. Vždyť tady existuje například SVG, o kterém nemá IE ani potuchy ;)

Jde tady čistě o princip. Jednoduše řečeno – XHTML posílané jako text/html není XHTML, ale HTML. Proč? Protože MIME-typ rozhoduje o typu dokumentu.

 
středa, 13. června 2007 14:25:57

xergic:[5] xergic: také je to možnost, inteligentním prohlížečům zaslat application/xhtml+xml, a IEčku text/html…

jenže jak je to potom s tím podmínečným zasíláním hlavičky, když to český validátor stejně vezme jako text/html? nemluvě o vyhledávačích, kteří ti takovou stránku nikdy nezaindexují (popravdě rečeno, o posílání mime robotům nevím vůbec nic, ale právě robotům je nutné zaslat html…l) :)

 
středa, 13. června 2007 14:34:12

[8] Mike: Validátor, pokud je mi známo, bere i application/xhtml+xml. V tom nevidím problém.

Vyhledávače v HTTP_ACCEPT MIME-typ application/xhtml+xml nemají, takže taky dostanou text/html. Takhle jsem to vyřešil já a zdá se, že to celkem funguje.

 
středa, 13. června 2007 14:41:23

[9] xergic: Není ti známo ;o) Validátor přestal krátce po svém narození posílat hlavičku accept, takže tvůj web je jaksi nevalidní…

Vždyť tady existuje například SVG, o kterém nemá IE ani potuchy
SVG ale nemá za úkol nahradit HTML. (Což tedy teď už XHTML také nemá, ale mělo,)

Netvrdím, že posílání XHTML jako text/html je chybou.
Takže také krátce. Není-li to chyba, měl by to validátor taktéž tolerovat. Třeba s nějakým upozorněním, ale ne s napočítáním chyb a nakládání s dokumentem jako HTML, když si to autor očividně nepřeje. (=uvádí v doctypu něco jiného) Ostatně jak činí oficiální validátor.

[8] Mike: Přečti si Ondrovy příspěvky odzhora dolů. Ptáš se na věci, které jsou o komentář výše zodpovězeny.

 
středa, 13. června 2007 14:59:20

[10] Petr Tichý: Máš pravdu, nevšiml jsem si toho. Pokud ale validuju přímo z Opery (přes pravé tlačítko), tak je stránka validní. Ale že je nevalidní, je mi srdečně jedno :D

SVG má zase jiné plány. A nejsem si jistý, jestli byl prvotní plán XHTML, že má nahradit HTML, možná ano.

Tady je trochu rozdíl, jestli si to myslím já, nebo tvůrce validátoru. Já si třeba nemyslím, že text/html je velká chyba, ale díky zmatkům ve specifikacích (i když to jsou vlastně jen doporučení), nikdo pořádně neví, jak to je. Tvůrce českého validátoru to asi pochopil jinak (neříkám, že špatně) a tak prostě pro XHTML doctype vyžaduje application/xhtml+xml.

 
středa, 13. června 2007 15:09:47

[11] xergic: Já si třeba nemyslím, že text/html je velká chyba, ale díky zmatkům ve specifikacích (i když to jsou vlastně jen doporučení), nikdo pořádně neví, jak to je.

Citace z http://www.w3.org/TR/xhtml1/#diffs: XHTML Documents which follow the guidelines set forth in Appendix C, „HTML Compatibility Guidelines“ may be labeled with the Internet Media Type „text/html“ [RFC2854], as they are compatible with most HTML browsers.

Přičemž všichni víme co je to Appendix C. Snůška pravidel zajišťujících kompatibilitu s HTML, tj. redukující problémy a nepřesnosti při zpracovávání HTML parserem.

Neřekl bych, že to jsou zmatky. Citace je z normativní sekce, dodatek je informativní.

 
středa, 13. června 2007 15:10:55

Promiň za double koment, ale to víš, vyskočila syntatická chyba. Když už application/xhtml+xml, tak well formed ;o)

 
středa, 13. června 2007 15:17:09

[12] Petr Tichý: Dobře, ale pořád tu ještě zbývá princip a tím se specifikace vůbec nezabývá… Ale zmatečné je to pro mě stejně :)

[13] Petr Tichý: Stane se, ještě nemám úplně vyřešené převádění hvězdiček na tagy a jejich křížení. Proto jsem musel tvůj komentář lehce upravit, za což se omlouvám :)

 
středa, 13. června 2007 16:03:22

[14] xergic: Ano. To není totiž vůbec snadné. Přemýšlel si o texy!?

 
středa, 13. června 2007 16:08:48

[15] Petr Tichý: Rád bych, ale nemám jak… V ASP totiž texy! není a ani asi nikdy nebude…

 
středa, 13. června 2007 16:54:29

[16] xergic: Heh, to mi nedošlo :)

 
středa, 13. června 2007 17:39:06

Zapomněl si uvést, že je česky a to je taky velký důvod proč není špatný. Rozhodně není, používám ho i já a o takových chybáh jsem už věděl. Ten kdo říká že je špatný, tomu asi nerozumí. Určitě jsi udělal dobře, že jsi o tom napsal ;)

 
středa, 13. června 2007 19:56:46

Tak tenhle validator jsem ani neznal a jsem rad, ze jsem ho diky tomuto clanku poznal… I kdyz ja ani validator nepotrebuji. Pisu XHTML 1.1 validne i bez testu, ale i tak si po konci prace jej pro jistotu zvaliduji a vzdy s uspechem. Ted jsem sve vytvory protestoval i tym ceskym a samozdrejme taky s uspechem coz jsem ani necekal, kdyz jsem tady cetl, ze se chova trosku jinak…

 
středa, 13. června 2007 20:01:07

Kdo chce ať si používá ten oficiální EN, ale nemusí na ten neoficiální CZ říkat takové věci, že je špatný. Chudák potom ten člověk co to překládal, vždyť to taky dalo práce. Holt každý má jiný názor.

[19] CrazyDog: Tak to gratuluji ;)
[18] Králík: Maš tam chybu :D

 
středa, 13. června 2007 23:27:53

Díky za pěkný článek.

[5] V českém validátoru si můžeš nastavit hlavičky dotazu (včetně Accept). Znám pár webů, které XHTML prohlížečům posílají validní XHTML a HTML prohlížečům validní HTML.

[6] Za účelem „zpětné kompatibility“ je dovoleno posílat XHTML s typem „text/html“, ale nikde není psáno, že bude takový dokument validní. Naopak sama specifikace říká, že při tomto MIME typu nedefinuje chování cílových zařízení (což neobnáší pouze starší prohlížeče). Mají užívat HTML parser a až na oficiální W3C Validátor tak všechna činí.

[8] K čemu ti je validita, když uvažuješ v měřítku tří prohlížečů? Pošleš-li Mozille a Opeře validní XHTML a všem ostatním (Explorerům, robotům) nevalidní HTML, tak se můžeš na nějaké validování rovnou vybodnout, ne?

[10] W3C řeklo, že se s „text/html“ má nakládat jako s HTML. W3C řeklo, že <!doctype> pro určení jazyka podstatný není. Proč validovat dokument podle jiných pravidel, než jaká mají dodržovat prohlížeče?

 
středa, 13. června 2007 23:45:28

[21] Chamurappi: A já děkuju za komentář a doplnění, lépe řečeno spíš upřesnění.

O posílání čistého HTML (ne XHTML s text/html) jsem už uvažoval, ale kvůli pár problémům a nutnosti hodně zasáhnout do kódu systému, jsem to nakonec zavrhl. Nicméně myšlenka je to pěkná, třeba se k tomu ještě někdy vrátím.

 
čtvrtek, 14. června 2007 21:00:01

[21] Chamurappi:

>> Za účelem „zpětné kompatibility“ je dovoleno posílat XHTML s typem „text/html“, ale nikde není psáno, že bude takový dokument validní.

Dle mého: validita = soulad se specifikací; ve specifikaci je may, takže dle toho soudím.

>> Naopak sama specifikace říká, že při tomto MIME typu nedefinuje chování cílových zařízení (což neobnáší pouze starší prohlížeče). Mají užívat HTML parser a až na oficiální W3C Validátor tak všechna činí.

Cílová zařízení by měly použít HTML parser a činí tak. U validátoru je to ale dle mého věc jiná.

>> W3C řeklo, že se s „text/html“ má nakládat jako s HTML. W3C řeklo, že <!doctype> pro určení jazyka podstatný není.

Jak jste řekl, v prohlížečích je doctype nepodstatný. U validátoru může mít (a u oficiálního má) zásadní vliv.

>> Proč validovat dokument podle jiných pravidel, než jaká mají dodržovat prohlížeče?

Neb validátor je pomůcka pro webdesignéry/kodéry, kteří si chtějí ověřit správnou gramatiku jejich kódu oproti specifikaci, kterou mají uvedenou v doctypu. Nikoliv simlulace zobrazení kódu v prohlížeči a vyhodnocování dle něho.

Jinak se mi tento rozhovor líbí, stručné argumenty. Nikoliv několikrát zamotaná diskuze na jpw.

 
neděle, 17. června 2007 5:07:22

[23] Petr Tichý:

>> „Dle mého: validita = soulad se specifikací

Tak to není. Validita je (nepovinná) vlastnost SGML/XML dokumentu. Specifikace SGML i XML definují mechanismus pro tvorbu jednoduchých schémat (zvaných DTD), podle nichž mohou být vyhodnocovány dokumenty konkrétních jazyků. Doporučení HTML a XHTML těchto mechanismů využívají, takže si nedefinují svoji vlastní validitu, ale jen své DTD. Díky tomu je validita [X]HTML ověřitelná obecným parserem a není třeba psát na každou verzi speciální algoritmus (jako tomu je třeba u CSS). To, jestli dokument skutečně vyhovuje [X]HTML specifikaci, strojově ověřit nejde.

>> „U validátoru je to ale dle mého věc jiná.

Validátor je cílové zařízení jako každé jiné. Mohl by existovat i validující prohlížeč  – ten by měl zvolit jaký parser?

>> „Jak jste řekl, v prohlížečích je doctype nepodstatný. U validátoru může mít (a u oficiálního má) zásadní vliv.

Deklarace <!doctype> má říkat validátoru adresu DTD. K tomu lze použít veřejný identifikátor a/nebo systémový. V žádné specifikaci není psáno, že by určitý identifikátor mohl tak razantním způsobem změnit syntaktická pravidla. Už jen k tomu, abys jej našel, potřebuješ ta pravidla znát.

>> „*Neb validátor je pomůcka pro webdesignéry/kodéry, kteří si chtějí ověřit spr&

 
neděle, 17. června 2007 5:13:33

[23] Petr Tichý, část druhá:

>> „Neb validátor je pomůcka pro webdesignéry/kodéry, kteří si chtějí ověřit správnou gramatiku jejich kódu oproti specifikaci

Validátor je pomůcka pro ty, kdo si chtějí ověřit validitu libovolného SGML/XML dokumentu. To, co vyhodnocuje nástroj konsorcia, možná může být za jistých speciálních okolností k něčemu užitečné (nevím k čemu), ale není to validita.

>> „Nikoliv simulace zobrazení kódu v prohlížeči a vyhodnocování dle něho.

Téměř každá stránka popisující výhody validity naznačuje opak. Neplatí-li, že musí validní dokument fungovat (= být korektně rozebrán) ve vyhovujícím cílovém zařízení, je snaha o zelenou hlášku samoúčelná.

 
čtvrtek, 21. června 2007 17:08:39

[25] Chamurappi: Tak to je tedy s tou validitou jinak. Díky za osvětu. V tom případě budu tedy používat termín, že můj web je v souladu se specifikací místo „je validní“ :o)

Snaha o zelenou hlášku je samoúčelná už jen proto, neb vždy neplatí, že validní = korektně rozebrán.

 
neděle, 11. listopadu 2007 17:25:03

Český validátor je opravdu o dost a dost věcí lepší. Hlavně, když odhaluje chyby, které oficiální ignoruje… Jen díky jemu mám web plně validní…. Hned jak jsem ho objevil pouzívám jen český validátor. A navíc máte všechno přeloženo takže je i pro amatéry, kterí neumí anglicky… Hodnotím ho maximálně!:P

 
pátek, 23. listopadu 2007 16:11:00

Myslím, že averze vůči české verzi W3C není na místě. Oficiální mi validitu schválil au českého jsem byl stále nevalidní. Vážím si práce Tomáše Hradila a každý kdo haní jeho práci, by si to měl zkusit, asi by vás nepotěšilo číst o své práci to co píšete zde. A navíc ho určitě všichni využívají, ale tvrdí něco jiného Každopádně validitu testuji na obou a to proto abych měl oficiální i nadoficiální stanovisko. Nedívejte se na něj jako na kritika, ale jako na pomocníka.

 
sobota, 21. března 2009 20:50:20

Máš naprostou pravdu. Český validátor používám neustále a jsem s ním spokojenej. Je rychlejší, je česky a hromada dalších plusů. Každý, i ten co neumí anglicky si může svojí stránku zvalidovat. Jsem hrozně rád, že nikdo něco takového udělal. Bez toho bych dál vůbec netušil co po mně W3 chce ….

K tomuto článku již není možné přidávat komentáře.