Validita je pojem, který pohltil miliony webdesignerů po celém světě, ale co to vlastně je? Pro mě je pojem validní dokument takový kus kódu, který funguje. Beru to tak, že když mi validátor vypíše, že můj dokument je validní, tak vím, že bude fungovat korektně a zobrazí se správně.
Pro vás, kteří mi nevěříte, tu mám pár příkladů z praxe:
id
dvakrát, nebudou JavaScripty fungovat korektně, protože hojně používám metodu getElementById
.id
začínat číslicí, což je proti standardům, nebudou fungovat odkazy na kotvy.application/xhtml+xml
mi dokument znehodnotí jakákoliv syntaktická chybka a stránka se nezobrazí.<![CDATA[
může způsobit nečekané chování prohlížeče při posílání dokumentu jako XML.Samozřejmě toto je jen krátký výpis toho, co se může stát při porušení zásad (X)HTML. Narozdíl od naprostých fanatiků neberu validaci jako jistou modlu či způsob povyšování mého ega, ale jako pomůcku při tvorbě kvalitního webu.
Často se stává, že pro jisté webdesignery je validita zárukou kvalitního webu. To však není vůbec pravidlo. Nezáleží pouze na validitě, ale hlavně na sémantice, o které si můžete přečíst na jednom zajímavém webu.
Výše zmínění "fanatici" dělají vše pro to, aby jejich byl validní. Projedou si web validátorem a upravují chybu po chybě, ale to by měl být odstrašující příklad. Když validujete svůj web, měli byste pochopit, co jaká chyba znamená a předejít jí.
Dnes jsem si pročítal specifikaci XHTML 1.0 Strict, abych se kouknul, jakých hodnot můžou nabývat hodnoty width
a height
u obrázků. Našel jsem tam zmíňku: nn for pixels or nn% for percentage length
. Něco takového jsem čekal, ale nebylo mi jasné, proč je tedy web Radka Hulána validní podle XHTML 1.1 (byť upraveného) i přes to, že používá hodnotu 500px
. Zkusil jsem si zvalidovat takový kód pod XHTML 1.0 Strict a stále bez chyby. Po pár minutách jsem zjistil, že W3C validátor nekontroluje obsah atributů. Nepočítám však kontrolu osamělého amperstandu, mluvím jen o kontrole hodnoty dle specifikace. Pro mnohé staré známé, pro mě novinka. Novinka, která dovoluje do atributu width
napsat treba "pes" a dokument sice nebude funkční, ale stále validní.
Na závěr malé shrnutí: validátor je pro mě pomůcka k objevení syntaktických či logických chyb. Dále to je klíč k funkčnosti, pokud opomenu hodnoty atributů, které musím otestovat sám.
Dokument nebude validní, protože validita je shoda dokumentu s normou, bude pouze otestovaný a schválený validátorem W3C. Validaci dokumentů se v ČR nikdo moc nevěnuje, i když jde o rozsáhlé a zajímavé téma - doporučuji pozorně pročíst článek http://interval.cz/clanky/relaxed-novy-validator-xhtml-kodu/ ;-)
Vilém Málek: "Dokument nebude validní, protože validita je shoda dokumentu s normou"
(X)HTML stránka je validní, pokud vyhovuje danému DTD. Toť vše.
K článku: předně dekuji za odkaz :-). Jen bych měl ještě dodatek k poznámce ohledně application/xhtml+xml. Zde není validita důležitá, dokument musí být hlavně well-formed (a well-formed nemusí být nutně validní).
[2] "Zde není validita důležitá, dokument musí být hlavně well-formed (a well-formed nemusí být nutně validní)." - Jistě, to chápu, také proto píši "syntaktická chyba", nikoliv "neshoda s normou". Je to pro mě taková obdoba parseru pro PHP.
[2] Ano, v normě XHTML skutečně tenhle lingvisticko-logický kotrmelec je kodifikován. Myslím ale, že už jsme se v diskusi na jiném místě shodli, že si autoři návrhu tímto způsobem pouze velmi značně zjednodušili práci. Zároveň tím také nadělali žalostný nepořádek, protože validita v XHTML přestala odpovídat nejen obecnému chápání tohoto pojmu, ale i jeho definici v ostatních normách W3C. Doufám, že autoři další verze budou mít natolik soudnosti, aby tuhle ostudu napravili ;-)
Výše zmínění "fanatici" dělají vše pro to, aby jejich byl validní. Projedou si web validátorem a upravují chybu po chybě, ale to by měl být odstrašující příklad. Když validujete svůj web, měli byste pochopit, co jaká chyba znamená a předejít jí.
Promiň odeslal sem to omylem - nyní k věci: ten příspěvek co jsem odeslal výše, resp. citace z tvého článku, si trošku protiřečí: první větu beru, druhá už je taková divná. Podlě mě pokud má být web validní tak musíš hledat chybu po chybě a musíš pochopit o co jde, aby jsi jí mohl odstranit a nechápu tedy proč píšeš o odstrašujícím příkladu. Validátor taky není vždy 100%-ní a ne vždy je dobré se jim řídit, je to jen informace že web "může" // nemusí být validní.
[6] Ale tito fanatici tyto chyby odstraňují způsoby neslýchanými. Nastavují prázdné alty, <script type=''> apod.
[6] Mohu vědět, kdy validátor chybuje, tj. za jakých podmínek není stoprocentní? Zajímá mě jenom, co třeba považuješ za chybu Validátoru :-).
[4] Nicméně Vaše domněnky jsou v rozporu se současným stavem, tudíž by se slušelo spíše uvádět současný stav, než právě tyto Vaše domněnky, nemyslíte?
[3] Ok, já jen aby někdo nebral validitu jako nutnost pro zobrazení XHTML :-).
[8] Lukáši (pokud ti mohu tykat) toto tvrzení "že validátor není vždy 100%" nepochází ode mně, já tu jen tlumočím to co jsem se dočetl a to na co přišly hytřejší hlavy než je ta má -> toto tvrd(í/il) i pixy a další, pro mě je pixy hlava v oboru a proč mu tedy nevěřit?
[7] Dobře, špatně jsem asi pochopil smysl věty, s tim s tebou souhlasim
Ještě bych dodal k odpovědi [8], k části proč mu tedy nevěřit? -> Samozřejmě nedá se věřit všemu co kdo napíše ale pokud si pamatuju pixy uváděl konkrétní příklad(y) - pokud to najdu dám link
[10] Tady je: http://www.pixy.cz/pixylophone/2004_08_archiv.html#1091549155
Díky, že jsi to nalezl za mě
[9] Jistě, můžeš :-).
Ale jinak stačí když si přečteš komentáře (hlavně ty od Jirky Koska - 25. a 34.), tak zjistíš, že to vlastně nejsou chyby validátoru. Validátor pracuje v těchto případech správně, i když trochu jinak, než asi autor zamýšlel.
No znova jsem si příspěvky přečetl, ale stále budu stát za tím že 100%-ní není viz.
|Takže například pixyho příklad ze šířkou buňky tabulky je *validní* (šířka má typ CDATA, který může obsahovat libovolný řetězec), ale *není ve shodě se specifikací*, protože v ní je napsáno, že tam má být uvedeno číslo (počet pixelů).|
Pokud by se tedy autoři validátoru trošku více snažili, pro šířku by udělali fixní/konstantní hodnoty px.
[14] Kašpy: Ano, to je pravda, ale pokud to bereš za chybu, tak je to jedině chyba v DTD, není to chyba Validátoru :-). Navíc si nejsem jistý, jestli by to vůbec v DTD nějak šlo vyjádřit (neznám, nikdy jsem si vlastní DTD nestavěl, ale IMHO kdyby to šlo, tak to tak udělali).
Ano to s tebou souhlasim
Byla tady i předtím kapitolka "Chyba validátoru či nepotřebnost?" nebo to je pozdější úprava?
Validátor kontroluje hodnoty atributů, ale zrovna atribut width má typ CDATA, což znamená, že tam může člověk napsat prakticky cokoliv. Třeba tohle validátorem neproleze dir="blbost" (atribut dir má hodnoty pouze "rtl" a "ltr"). Jinak tuhle chybu by měl objevit validátor, na který odkazuje Vilém Málek.
[17] Ta kapitolka je tu celou dobu. Informace o CDATA mi je zcela nova a dekuji za ni. Jen trochu nechapu jeji podstatu a proc cloveku povoluje de-facto porusovat DTD.
[18] Tak to jsem ji musel minule nějak přehlédnout... No v DTD zkrátka neexistuje způsob jak definovat, že hodnota atributu může být číslo a znak (width="80%"). Takže jediná možná cesta je definovat CDATA, tedy, že může obsahovat prakticky všechno. Kdyby definovali hodnotu width jenom jako číslo, byl by zase nevalidní zápis width="80%". Možné hodnty atributů jsou zde - http://www.w3.org/TR/html4/types.html#h-6.2 Ještě tedy může mít atribut přímo výčet povolených hodnot (třeba align nebo výše zmiňovaný dir).
Jak si tak čtu po sobě [15] - že bych to spíš minule nevěděl? :-) Taky možnost...
[19] Jiste, neni to definovane v DTD, spatne jsem se vyjadril. Je to tam napsane slovne, takze clovek muze porusovat "logickou hodnotu atributu", ale nikdo si toho nevsimne.