Co je vlastně validita?
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:
- Pokud vyplním někde atribut
iddvakrát, nebudou JavaScripty fungovat korektně, protože hojně používám metodugetElementById. - Když bude atribut
idzačínat číslicí, což je proti standardům, nebudou fungovat odkazy na kotvy. - Při použití
application/xhtml+xmlmi dokument znehodnotí jakákoliv syntaktická chybka a stránka se nezobrazí. - Chybějící koncový může vážně narušit rozložení stránky.
- Absense uvozovek (apostrofů) kolem hodnot atributů se může vymstít při neošetřeném výpisu hodnot těchto atributů.
- Nepoužívání
<
Vše z Blog Lupa.cz
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.