Nakonec mít stránky validní je dobrá obrana proti bláznům, kteří projíždějí validátorem všechny stránky a rozzuří se pokaždé, když narazí na nějakou nevalidní konstrukci a mají tendenci to sdělit autorovi webu 😉.
A já si říkám, jestli třeba už nenastala ta doba, kdy bych sem mohl pustit sérii článků o tom, proč není XHTML žádná výhra, kde všude udělali autoři XML chybu a podobně. Jestli bych nebyl ukamenován. Nebo zaživa sněden. Bez chleba!
Komentáře
Petr Brádler #1
Napiš.. Rád se přiučím nové věci.. ;)
Martin Hložek #2
Myslím, že bys zhynul vyčerpáním u nikdy nekončících diskuzí a komentářů. Argumenty a konstruktivní diskuze u tohoto tématu nefungují. Je to stejné jako u sporů o nejlepší prohlížeč.
Honza Hučín #3
Ono záleží, milý dgx, pro jaké auditorium ty články chceš psát. Příměr odjinud: u kola je samozřejmě kvalitativní rozdíl mezi řadou Alivio a SX, ale kdo ujede ročně 200 km nenáročným terénem, je mu to jedno. Stejně jako se mezi Authorem a Meridou (resp. jinou značkou) bude rozhodovat podle designu a podle toho, co právě potřebuje prodavač prodat (tj. co mu prodavač „poradí“).
Zpět k webu: je jistě řada věcí, na které se HTML a XML nehodí. Ale také řada věcí, na které stačí.
To byla jen taková preventivní poznámka 🙂
MiSHAK #4
No už by to některé lidi přestalo IMHO bavit…
Skaven #5
Provozuji stránky nokturno.net , nejsem žádný programátor – jen samouk, ale baví mě to a tak sleduju dění na internetu a tu a tam na stránkách něco vychytám. Osobně nevidím důvod, proč třebas vytvářet stránky v xml. Nemá to pro mě vůbec žádný význam a uživatelé to nijak nepocítí. Stejně tak jsem na tom s validním html. Kód stránek je celkem sprasený co do chybějících uvozovek a „povinných atributů“ je to děs a hrůza, ale uživatel to znovu nijak nepocítí. Pro mě je tedy oprava kódu do validního html potažmo xml naprosté mrhání časem, nemyslíte?
Marek #6
#5 Skavene, To co pises o tom ze uzivatele to nepociti neni tak docela pravda. Vychazis zjevne z predpokladu ze k prohlizeni tvych stranek totiz pouziji vyhradne ten prohlizec ve kterem si je testoval pri vyvoji (nebo spise bastleni ? 😉 ) a pocitas s tim ze ty tve chyby v kodu ten prohlizec proste OPRAVI … ale otazka zni, … da se na to za vsech okolnosti opravdu spolehnout ? Podle mne ne, a je vzdy snazsi kod nebastlit podle aktualni nalady ale drzet se spravne syntaxe. – noflame pls, je to jen muj osobni pristup k veci, ten vas vam opravdu nemam v umyslu vyvracet, to mi za to nestoji 🙂
Milf #7
#5 Skavene,
Jsem lama obecná co se komerční tvorby týče, ale IMHO tento argument je to nejhorší co můžeš uvést. O jakém mrhání časem píšeš v případě chybějících uvozovek?
Copak Ti zabere tolik času najít uvozovky na klávesnici? Nebo zmíněné povinné atributy – zajisté víš které se vyžadují, zajisté znáš jak je užít a jsi jen líný, je tak? Kolik času Ti zabere doplnit alt atribut? Deset vteřin? Kolik jich chybí na Tvé HP? Kolik činí součet poměrem ku času strávenému na stvoření celého webu? Promile?
Jasně, i na dálnici se dá jet 200 v hodině, jen gumy jezdí předepsaných 130. 😉 I web se zobrazí bez všech povinných trapáren, … jeden či dva uzavírací tagy navíc (bez svých otevíracích protějšků) a co? Nic se neděje, však to nějak šlape.
Ostatně, je to Tvoje věc zda rád od někoho uslyšíš – ano, jsi frajer, vyznáš se v tvorbě webu, víš vo co go – já Ti tohle napsat nemohu, protože Tvé laciné opovržení mi frajeřinou nezavání. 😄
Skaven #8
#6 Marku, – rozumím, jenomže já třebas ze statistik vím, že na prohlížení mých stránek používá 55% lidí IE, 36% Firefox, 7% Operu, 1% Mozillu a 0,5% Netscape. Safari pak tvoří 0,08% – ve všech těchto prohlížečích se stránky zobrazí tak, jak bych chtěl. Vpodstatě neexistuje uživatel, který by v současné době nemohl zobrazit moje stránky…
#7 Milfe, – to mrhání časem jsem myslel při dodatečné práci. Když dělám stránky teď, tak se snažím všechny ty uvozovky a serepetičky s rozměry obrázků dodržet. Když jsem ale dělal zmíněný web, o validitě jsem nevěděl prakticky nic. Měl jsem snahy to napravit a způvodních řejněme 300 chyb na úvodní stránce jsem to stáhnul řekněme na 40, ale zabralo to kvantum času (protože ak říkám, nejsem žádný profík a opravu různých chyb jsem si musel vyhledávan na natu, jak to vlastně má být…) a já si myslím, že to zkrátka nemá žádný objektivní výsledek…
roman #9
Kurnik sopa, mohli sme sa este kludne hojdat na stromoch… ved po rovnej zemi sa tak spatne chodilo… ktory somar to vobec prvy zliezol zo stromu? Ved to je proti prirode! ;-(
A mimochodom, ked uz sme pri tych normach a nenormach. Ono niekto povie.. postavit dom a nedodrzat normy je zle. Ale web ti nespadne. Fajn.. tak si chodte kupit do obchodu Disco keksy.. na obale budete mat napln az po okraj, ale ked ich otvorite zistite ze to vyzerá trosku inak.. podobne je to aj nevalidnymi strankami.. zezrat sa to da, predat sa to da… zarobit sa na tom da.. ale vyrobca zakaznika tak trochu ošidil… no nekupte to. 😉
Skaven #10
#9 romane, – to je sice hezké, ale který běžný čtenář stránek bude zkoumat zdrojový kód, a když zjistí, že tam chybí uvozovky, tak už se nikdy neukáže…
Rozumějte – já se jen snažím zjistit nějaký objektivní důvod, proč stránky zvalidnit, protože se domnívám, že je to celkem fuška (když si vyjedu výcuc z validátoru je tam řekněme 50% chyb, se kterými si naprosto nevím rady a pak chyby, které způsobuje třebas texy tím, že nechává v url znak and (možná jej jenom neumím správně nastavit…) jaký má pro mě smysl se pídit po správném řešení, které nebude nikde vidět?).
Ukee #11
Já k tomu přistupuji trochu jinak. Validita pro mne není modla, kterou se snažím dodržet … jak všichni víme, tak když je web validní, tak to ne vždy znamená, že bude ve všech prohlížečích vypadat shodně.
Takže validitu beru spíše jako druhotný krok, ale upřímně je mně úplně jedno, jestli web validní je nebo není – hlavně, že je přístupný a použitelný ve všech možných prohlížečích.
Milf #12
#10 Skavene, > proč stránky zvalidnit
Tak třeba jen a pouze proto, že se hned v prvním řádku dokumentu snažíš vnutit něco, čemu sám nevěříš. Vniveč potom příchází veškerá snaha těch, kteří se snaží v rámci možností najít společnou řeč skrze veškeré možné minulé, současné a budoucí technologické přežitky.
Proč se tedy obecně hlásit k nějakému DTD, když vnitřně cítíme, že je to předpis o ničem, že je to jen buzerace, že to nemá valného významu.
IMHO jen otázka času, kdy narazíš na případ, kdy Ti díky nevalidní skladbě bude CSS vyvádět různé kousky – a spraví se až při validním kódu. To si musíš asi zažít, … pak to přijde samo, až čas strávený hledáním chyby porovnáš s časem, který Ti zabere psaní validního kódu za běhu (BTW těch Tvých 40/75 chyb je otázka – ať nežeru 😉 – 15 minut).
Samozřejmě, pokud do toho přicházejí externí záležitosti (WYSIWYG, všemožná udělátka, všemožně psané redakční systémy, ..) – ano, to může být dřina a často i marná snaha. Ovšem vytvořit validní web je dle mého opravdu kumšt, který asi musíme začít oceňovat, protože jinak pro mnohé (jak je patrné) nebude mít stále hodnotu.
Co je špatného na dialogu stylem:
A: Proč validní web?
B: Protože avízované DTD! 😉
roman #13
#10 Skavene, Netreba sa toho bat. Zacni trebars tym ze si naistalujes do Firefoxu plugin TIDY. Ten ti na kazdej stranke bude ukazovat vacsinu chyb ktore by ti zobrazil aj W3C validator. Len s tym ze nemusis furt bytg pripojeny na webe a aj refresh-time je rychlejsi. Dokonca by som povedal ze je to aj prehladnejsie ako na w3c validatore.
Zistis ze vacsina chyb sa nabaluje na niekolko zakladnych chybnych navykov. A ze casto sa z jednej chyby spravi 10 hlasok. Nie je to vobec tak zlozite ako to na prvy pohlad vyzera.
Co sa tyka tvojho webu, treba sa este pozriet aj na druhu vec. Naucit sa zjednodusovat strukturu stranky a vyhybat sa inline stylom (style="") a „inline“ javascriptom (onmouseover="" atd.) to co tam mas robene cez inline javascripty vies spravit aj s pouzitim csshover.htc ( http://www.xs4all.nl/…sshover.html ) alebo podobnych rieseni. Proste validita kraca ruka v ruke so spravnou semantikou a dobre vystavanou strukturou html dokumentu.
mila #14
Je třeba rozlišovat nevalidní a nekvalitní web. Tak nějak vychází, že většina nevalidních webů má spoustu dalších podstatnějších chyb – jako podpora jen pro jeden prohlížeč, závislost na zobrazení obrázků či javascriptu.
Nechci říci, že kvalitní iff validní, ale už když se podíváme, kdo stránky tvoří, tak to tak většinou vychází.
Osobně, pokud se připletu k hodnocení nějakého webu (např. na JPW), tak se snažím poukazovat na ty další chyby, které z nedodržování norem často nějak vycházejí, ale nabazíruji na nějaké hloupé hlášce nějakého stroje.
Pokud jsou dvě konstrukce validní a nevalidní rovnocenné, tak samozřejmě upřednostňuji tu validní.
Na druhou stranu nemám nic proti kontrolované nevaliditě.
Kupříkladu css je podle mě jasný příklad normy, kde důsledné sledování validátoru je spíše na škodu. Konstrukce jako expression či filter mohou být velmi užitečné a nevidím důvod je nepoužívat jen kvůli nějakému w3c.
Dají se pomocí nich často ošetřit nedostatky IE nebo uživatelům majoritního prohlížeče nabídnout přidanou hodnotu, která jinde prostě není, ale nechybí.
V html nevidím problém v konstrukci typu
<a href=...><h1>...</h1><h2>...</h2></a>
.Nevím, že by s tím měl nějaký prohlížeč problém.
Jestli se jí vyhnu, tak protože nechci vést dlouhé debaty o smyslu validity.
Mimochodem, co mě nadzvedává ze židle jsou lidé, kteří za každou cenu bojují za validitu, ale jejich weby jsou plné věcí typu
<div class="nadpis">...</div>
Skaven #15
#13 romane, – tíky za tip. Plugin je fajn, ale zatímco mi zobrazí jen jedno varování, validátor w3c vyhodí hned 8 chyb. Kde je zakopán pes… ?
roman #16
#15 Skavene, W3c validator sa pravdepododobne vyvija rychlejsie a kontroluje aj dalsie veci. Konkretne v pripade xhtml je to XML well-formedness a validita.
Aj niektore moje weby co maju (v idealnom pripade) v tidy 0 chyb maju na W3c validatore aj 10.. niekedy sa to odstranit da, niekedy nie (trebars ak ti na hostingu v PHP povypinaju ini_set a pouzivas standardne PHP session tak mas proste smolum niektorych veci sa nezbavis). A na W3C sa ti kludne moze stat, ze odstranis jednu chybu a zmizne dalsich 10 warningov. Treba si to postupne vyskusat.
roman #17
#16 romane, Totiz.. W3C validator sa sprava ako browser, ktory nema „cookies“.. takze standardne nastavene PHP v pripade sessions automaticky vsade do URL napcha PHPSESSID (z entitou &… namiesto & amp; 😉.
Gringo #18
#17 romane, Stejně je to blbost s těma entitama – copak Javascript se taky sesype, když nezdvojím zpětné lomítko (třeba
a = 'ahoj\muflone!';
)? Ne. Tak proč by to takhle nemohlo fungovat i u HTML (XHTML, XML)?dvorix #19
Můj subj. názor- validace se mi vyplatí, protože odhalím drobné chybky, než z nich při pozdějších úpravách vzniknou velké chyby.
Jiný význam IMHO nemá (tedy až na umlčení prudičů).
Všude se šíleně řeší syntaxe a obsah webu je podružný. Raději mnoho nevalidních webů s informacemi co hledám, než jeden validní s „nevalidním“ obsahem…
Andrew #20
#18 Gringo, Když už chceme mrvit parsery, tak proč to nezavedeme i do programovacích jazyků, uděláme novou normu SQL, … Prostě něco namatláme a on už si to prohlížeč/kompilátor/… přebere a něco z něj vypadne. To je teda názor…
#19 dvorixi, No to bude asi tím, že tu řešíme dodržování normy jazyka. Na obsah webu jaksi norma není a být ani nemůže. Maximálně tak z hlediska přístupnosti a použitelnosti.
[všichni] Upřímně, moc nerozumím tomu, proč tu validitu tak řešíte. Já když dělám web, tak to ze mě ve spolupráci s editorem validní rovnou leze a Tidy plugin mám jenom pro kontrolu. A po večerech sním o světe, kde existují pouze striktní webové prohlížeče.
Gringo #21
#20 Andrewe, Já nechci mrvit parsery, jen nechápu, proč když za & není entita nebo mezera tak se na tom validátor haltne…
I tak pro mě je validita celkem jenom pomoc když něco nejede jak má, jinak mě moc nezajímá…
kmotr #22
Objektivni duvody? Ja taky nejsem profik, ale o par bych vedel. Treba jak tady napsal roman – semantika. Ta si vynucuje strukturovat dokument spravne, takze je pak dobre citelny i bez stylu. Primy dusledek je tusim v indexovani pomoci vyhledavacu. Pak treba pristupnost, pokud popises obrazky altem a opet dobre nastrukturujes dokument, tak je stranka citelna a pouzitelna pro nevidome se screen readerem. Tech budes mit ve statistikach prohlizecu uplne nejmin, ale zadny z nich nema ten luxus „vymenit prohlizec“. Podobne je to s mobilnimi zarizenimi.
Opravdovi profici by vyjmenovali duvodu vice, tyto dva jsou pro mne hlavni.
melodie #23
Je dulezite proc se co dela, pokud je za tim touha pochlubit se, pak budiž ;) Nejlepší je dělat takové weby tak, aby splnili učel pro toho, komu jsou určeny.
anode #24
duvodu tu bylo dost, tak jen priklad ze zivota 🙂 :
taky jsem dlouho poslouchal, ze to prece funguje a k cemu validita. potom hledat nekde chybu je ale utrpeni. kdybychom ve firme delali validni stranky, nehledali bychom chybu pul hodiny, ale vedeli bychom to hned. nemluvim o usili vynalozenem k uspesnemu behu i na FF…
David Grudl #25
#21 Gringo, protože si můžeš definovat vlastní entity, není tak snadné rozhodnout, co entita je a co není. Třeba je tohle entita nebo fragment?
example.com?produkt=lavazza1
Je tohle entita nebo parametr ‚amp‘?
example.com?produkt=lavazza&
#10 Skavene, nevěřím, že by ti Texy pustilo ven neošetřenou entitu…
Gringo #26
#25 Davide Grudle, Fajn, ale snad není problém porovnávat to i s entitami které si definuji, tzn. imo mělo by vždy jít jednoznačně určit co je entita a co ne. Nebo se mýlím?
BoneFlute #27
#21 Gringo, Validátor je od toho validátor aby byl přísný. Ten má najít vše, co nějak není v pořádku. Samozřejmě vlastní prohlížeč už má jistou dávku tolerance.
Co se týče entit, tak mě více vadí to, že vůbec existujou. V jiných jazycích se vyhrazené znaky eskapujou. V krajním případě zdvojujou. Jen v xml se uvozujou &…;. Přijde mi to blbí. Nic víc.
rony #28
dgx hodil stavnaty flak masa a ostatni sa on porvu 🙂
tomu hovorim instantne publikovanie 😉
lukas mach #29
Protoze pak by jednomu „fyzickemu“ dokumentu odpovidaly dva ruzne zdrojaky. Napriklad:
&ahoj
a
&ahoj
by podle normy (KDYBY to v ni bylo) bylo identicke, coz by mohlo udelat z nekterych nyni jednoduchych ukonu naprosto silenou pakarnu.
Mimochodem, neni vubec dobry napad ty entity takhle smudlat jak navrhujes. Uvaz treba tenhle odkaz:
muj_skriptik.php?id=1&image=4
Tak co, jak ma pochopit prohlizec toto? ℑ je specialni entita z HTML 4.0. Ma si prohlizec hrat na chytreho nebo nema?
Takze je videt, ze v tomhle je nutny dusledny pristup. Pri programovani se vzdy programuje tak, ze cast prace je zbytecna, navic a urcena k prevenci chyb. A asi je logicke podobny (byt zmirneny) pristup prevest i do psani HTML – i kdyz to neni programovani, porad se tam daji udelat chyby, nad kterymi clovek chvili stravi a dokonce neco muze mit i bezpecnostni dusledky v pripade obrane proti XSS.
Vite jak mega-tezke je napsat parser HTML, ktery by vzal akceptoval jakykoliv HTML kod, ktery spolknou dnesni prohlizece (tj. vcetne nevalidnich konstrukci, ktere jsou ale dobre pochopeny) a dokazal spolehlive rozhodnout, jestli ten kod pouziva javascript?
Podle meho nazoru je to dokonce neresitelna uloha (kvuli te jednoznacnosti), ale protipriklady bohuzel asi nebudu moct sdelit ☹
lukas mach #30
Pardon, ten priklad hned za prvnim odstavcem samozrejme mel byt (dekodujte si to):
[ampersand]ahoj
a
[ampersand]amp[strednik]ahoj
lukas #31
Mimochodem: muj nazor na validitu je, ze validita ma vyznam z 95% jen pro tvurce webu. Tech zbylych 5% jsou vyhody pro uzivatele stranky a pro jejiho provozovatele. A to jsem jeste stedry.
Je videt, ze 5% je dost zanedbatelne a patrne by se v jinych oblastech (copywriting, reklama, grafika webu, …) dalo radove vetsiho efektu dosahnout za stejne prostredky.
Dobry koder IMHO nikomu nerika, ze jeho weby jsou validni. Ono to taky nikoho nezajima a ani zajimat nema. Validita totiz predstavuje temer jen (= 95%) vyhodu pro nej a nikoho jineho.
kuba #32
#10 Skavene, Proč? Protože jestli tímhle způsobem budeš přistupovat ke každé zakázce (v jakémkoliv oboru), tak jich brzo moc mít nebudeš 😉
Skic #33
Pro mě je validní web vizitkou, mám rád validní weby a nemám větší problém je dělat validní. Nevidím na validnosti stránek nic špatného ani nijak obtížného.
Vždyť to přece není složité udělat validní kód, nebo snad je?
Roman #34
#28 rony, Ja sa praveze cudujem ze ziadny flame. DGX asi fakt nahodil to PerKo..
#31 lukasi, To su take strasne vtakoviny vycucane s prsta. Nemas to nicim podlozene ale aj napriek tomu si tym schopny zapratat cca 10 riadkov. No fuj. 😉 Bol by som rad keby dosiel Radek a oplieskal ti to „radove“ ohlavu. Na to ma trademark on 😉.
Chamurappi #35
Pěkný článek. Na diskusi JPW se před v prosinci rozproudila ještě hezčí debata o validitě.
Výjimečně se vyjádřím i zde. Omlouvám se za svůj zakrnělý cit pro stručnost.
#7 Milfe, Znamená to, že ten, kdo úmyslně píše nevalidní stránky, neví „vo co go“?
#12 Milfe, Validita pro mě nemá žádnou hodnotu. Je to víceméně jen optimalizace pro to nejzbytečnější cílové zařízení zvané validátor. To bych měl oceňovat?
Příznivci validity občas hovoří o tvorbě nevalidních kódů jako o bastlení – sami ale často vnímají validátor jako černou skříňku a nalezené chyby záplatují podobně, jako když opravují vady v zobrazení ve vizuálních prohlížečích: sem něco zkusmo přidají, támhle něco uberou, pár věcí vymění, hodí to do validátoru, ten oznámí jiný počet chyb (né vždy menší) – a tento postup opakují, dokud si nemůžou na web umístit oranžovobíločernomodroošklivou ikonku „optimalizováno pro validátor“. Neříkám, že těm chybovým hláškám nikdo nerozumí. Pouze odhaduji, že těch, kteří bastlí pro validátor, je větší než malé množství.
Ještě k tomu avizování DTD: Spousta webů používá <!doctype> hlavně jako přepínač vykreslovacích režimů prohlížečů. Což se neopírá o žádnou specifikaci.
#22 kmotře, Sémantika nemá mnoho společného s validitou. DTD konsorcia jsou často příliš upjaté a tlumí skutečné sémantické ozdoby HTML. Nejvýraznější sémantické možnosti mají Transitional DTD, které jsou v mnoha očích synonymem čirého zastarala.
#25 Davide Grudle, Při rozjímání nad validitou entit nejde o existující entity, ale o ty nedeklarované (které tak či onak musí parser rozpoznat). Můžeme zadefinovat počínání při nalezení takové entity jako:
Zvolilo-li by konsorcium čtvrté východisko, vznikne mnohem méně problémů, než když zvolí to první (už třeba jen proto, že kdyby zvolilo čtvrté, tak by nebylo o čem se hádat). Ono navíc v případě XHTML zvolilo něco mezi prvním a třetím, což je ještě trochu nešikovnější. Současné XHTML prohlížeče přání W3C zpravidla nerespektují a volí první.
#29 lukasi machu, Zápis muj_skriptik.php?id=1&image=4 je v HTML zcela správný a validní, hodnota id je: jednička, entita image, rovnítko a čtyřka. Tak to má býti interpretováno a ve většině případů i bude. Není to hra na chytrého, je to hra na standard (jedna z mých oblíbených).
A že text za ampersandem může být jménem entity, to beru, s tím je nutné počítat. Jako autor stránky bych si nikdy netroufnul vložit do adresy parametr jménem image, reg nebo copy – i kdybych si sám dal pozor, jak URL do svých stránek píšu, stala by se ta adresa nepoužitelná pro ty, kdo by si pozor nedali a chtěli na mě odkázat. Webmaster, který toto nepromyslí, je větší vůl, než ti, kdo nezaentitovávají ampersandy.
#30 lukasi machu, Tu poznámku o dvou rozdílně zapsaných dokumentech vyjadřujících stejnou strukturu nechápu. Že může být tentýž „fyzický“ dokument zapsán mnoha způsoby je snad jasné, ne? Můžu rozepsat koncovou značku prázdných elementů, posypat vhodná místa bílými znaky, změnit prefix jmenného prostoru – a pořád ten dokument vystihuje stejnou informaci. Jednoznačnou textovou reprezentaci XML stromu představuje až nepříliš známé Canonical XML.
#33 Skici, Jistě, udělat kód validním je nejen zbytečné, ale i snadné. Většinou stačí na první řádek střelit <!doctype #implied system>.
Roman #36
#35 Chamurappi, <!doctype #implied system> – takto jednoduche to zas nie je. Revolucia sa nekona.
David Grudl #37
#35 Chamurappi, vrátím se k těm entitám. Naprosto s tebou nesouhlasím.
Základním principem každého strojově zpracovávatelného kódu je jednoznačnost. V HTML vím, že znakem < začíná zápis značky a že znakem & začíná entita. Toto je pravidlo té nejnižší vrstvy syntaxe, kterou zkoumá lexikální analýza. Teprve vyšší vrstvy zjišťují, zda značka či entita je definovaná, zda je použita na správném místě atd.
Ale jednou pro vždy už je to značka nebo entita, byť třeba neplatná. Jinak to nejde. To by pak pouhé rozšíření DTD o jednu jedinou entitu mohlo sbořit půlku webových stránek. Najednou by jejich obsah získal jiný význam.
A co třeba
lang
? Neboprod
, kdyžproduct
je dlouhé? Takto se uvažovat nedá. To je stavění hodně chatrného domečku z karet.Webmaster, který zaentitovává ampersandy, nemá sebemenší důvod něco takového promýšlet. Vlastně by mě docela zajímalo, jak něco takového promýšlíš, když neznáš DTD dokumentu, jenž bude tvé stránky odkazovat ;)
…no, a tím jsme na počátku problému. & je začátek entity a z toho se nelze vyvléct.
Chamurappi #38
#36 Romane, Ale je. Viz ISO 8879, které pojem validity definuje. Jakápak revoluce, když toto platí již dvacet let. Není tajemstvím, že validitu jde řešit dvěma způsoby: změnit tělo dokumentu nebo změnit DTD. Klíčové slovo #implied značí, že DTD bude automaticky odvozena.
Nebo jiná hezká finta: dát do DTD <!entity #default „moje-entita“> – to je deklarace, která se použije na všechny jinde nedeklarované entity. Jinými slovy: při validaci díky ní všechny chybové hlášky týkající se nedeklarovaných entit zmizí.
#37 Davide Grudle, Děkuji za obsáhlou reakci.
Není přesné. Následuje-li znak nepovolený ve jménu značky/entity (typicky mezera), početí se nekoná.
Není problém. Pokud máme pod skalpelem něco, co vypadalo při ohledání na místě činu jako entita, mrkneme se, za co ji máme nahradit. Jak víme, nemusí jít jen o znak, entita může reprezentovat i jinou entitu nebo celý element, v SGML dokonce třeba jen jeho počáteční/koncovou značku.
Otázka zní, za co má parser entitu nahradit, nenajde-li pro ni žádnou deklaraci. Souhlasíš s tím, aby skončil s chybovým hlášením? Co je špatného na tom, když řeknu, že ji má nahradit za ampersand, její jméno a středník – tedy vykonat bod 4 z mého předchozího příspěvku?
Z pohledu validátoru ano. Je dobrým a poměrně respektovaným pravidlem standardizovanou DTD neměnit. Dokážu si představit dost zásahů do DTD, které by nabouraly stránky odkazující se na ně. Ty argumentuješ rozšířením DTD, já mohu argumentovat zúžením – odeberu entitu. Tvůj vysněný parser zareaguje jak?
Obdobně mohu upravit DTD tak, že se element
<html>
zanoří do ještě jednoho<html>
. Existující dokumenty zůstanou validní, jelikož<html>
má volitelné značky. Struktura se ovšem změní. Význam se změní. Náhle by dostal v CSS smysl selektor „* html“ :-)Asi jsem příliš rychle slepil několik částí mé úvahy. Lze k nim přistupovat autonomně. Dejme tomu, že svoji maličkost naporcuji na tři osoby:
Jako osoba (1) nutím spolu se zbytkem celého World Wide Webu osoby (2) konat tak, jak konají. Nehledě na to, jestli mám/nemám rád osoby (1) a (2), bych měl sám postupovat jako osoba (3), protože je v mém zájmu, aby na mě mohly odkazovat i osoby (1) bez problémů. Která z osob staví domeček z karet? Jednička využívá existující situace (což by nemohla, kdyby taková situace nebyla), dvojka se v ní naučila žít (což musela, jelikož taková situace byla) a trojka se snaží o prevenci – o to promýšlení.
Samozřejmě, že ta prevence nemůže být absolutní. Samozřejmě, že je-li osoba (1) podlý ničema s podezřele depresivním výrazem pod nosem a navoskovaným knírkem ve tváři, který si naschvál upraví DTD a přesvědčí pod pohrůžkou efektivního násilí všechny osoby (2) (prohlížeče/roboty) k úpravě svého interního seznamu entit, tak může tenhle padouch odkázat na stránku nebohé osoby (3) tak, že vznikne nefunkční adresa. Podlé. Chudák osoba (3) nemá jistotu, že k tomu nikdy nedojde. Co s tím může dělat? Nic. I když bude sama zapisovat ampersandy entitami, vždy je možné, že narazí na nějaký druh osoby (1), takže ta prevence je rozumný krok.
Jako osoba (2) jsem si vědom možných problémů, které by nová entita způsobila na běžných stránkách. Je v mém zájmu tomu předejít, proto pracuji s konstantním seznamem entit. Pořád mi to připadá lepší stav, než umřít v případě, že mi někdo nějakou entitu sebere.
Jako zajímavost si dovolím podotknout, že chování mé osoby (2) je dokonce v souladu s doporučením XHTML 1.0, kapitolou 3.2, bodem 7 a patrně neodporuje ani standardu SGML.
David Grudl #39
#38 Chamurappi, to je stejné, jako kdybych označil volem každého programátora knihoven, který v názvu identifikátoru použije vedle sebe písmena
rn
(třeba dirname), protože rn vypadá skoro jako m, a pokud bude jeho knihovnu používat někdo s horším zrakem, tak by místo dirname mohl psát dimame 🙂 To je absurdně přehnaná péče. Holt pokud na můj web někdo odkazuje a odkazuje blbě, tak je to jeho problém. A určitě si proto nezakážu 253 + ? parametrů, abych podpořil HTML fušery v jejich neschopnosti.To je opačná implikace než o které byla řeč. Mně prostě připadá jako naprostá zhovadilost vsadit všechno na to, že některé entity jsou (snad) nedefinované.
roman #40
#38 Chamurappi, A nie je nahodou ten tvoj spasonosny vsetkovalidator iba priklad vykopirovany zo specifikacie? 😉 Lebo potom je v praxi asi tak prinosny ako:
header(„Location: http://www.example.com/“); /* Redirect browser */
Ty si celkovo furt nieco vytrhavas s kontextu a cudujem sa kde beries tolko energie na prapodivnu kritiku W3C zalozenu na rozklade citatov roznych ludi. Tvoja stranka mi asi najviac pripomina www.vesmirni-lidi.cz myslim, ze si zasluzis aby ta Ivo Benda mal linkoval.
Gringo #41
Ty vole, člověk tu něco plkne a hned je diskuze dlouhá jak tamten papír…
Napadá mě – mají vlastně tyto diskuze význam? Vždycky se najde někdo, kdo říká že správně je A, pak někdo jiný, že ne, že správně jedině B a pak se hádají a hádají…
K tématu článku:
Někde jsem četl, že validita by neměla být cílem, ale jen nástrojem – a s tím plně souhlasím.
Milf #42
#35 Chamurappi,
Asi to potřebuješ číst, takže tedy napíši – ano, kdo úmyslně ignoruje entity, tagy, atributy tagů (vyžadované předpisem) – ano, neví vo co go a může mě zkusit přesvědčit o opaku. 😉 Druhá věc je, že mé striktní sortování ví/neví nic neznamená, ale to už je zase jiná pohádka.
Já tedy nevím ale to mi připadá jak sdělení, že se chováme slušně, disciplinovaně, kulturně, rozumně, sociálně jen kvůli policistům, kteří se tu a tam objeví na ulici a co kdyby nás pokutovali.
Proč do toho vůbec zatahuješ validátor? Vždyť to je jen prostředek umožňující porovnání skutečného stavu dokumentu a předepsaného ideálu, ke kterému se dokument hlásí.
Víra je asi silné slovo v tomto tématu, … mně jen nedochází důvody proč popírat mnou dobrovolně zvolený předpis. Ještě nikdy jsem neměl potřebu vytvořit úmyslně nevalidní (X)HTML kód. Pravda, přiznávám bez mučení, na Měsíci jsem také zatím nestál.
Skaven #43
Omlouvám se za OT, ale chtěl jsem se zeptat, zda nevíte o nějakém čistě textovém prohlížeči co běží pod windows. Zkoušel jsem hledat po netu, ale kde nic tu nic.
lukas #44
Rikas, ze neco nemam podlozene a pritom ve svem prispevku nereknes jedinou konkretni namitku. No, pak je ovsem tvuj prispevek trosku nanic, ze…
Pokud chces jeden konkretni fakt, tak Pixy nekde rikal, ze podle lidi ze SONS neni treba tabulkovy layout pro hlasove ctecky problem. (Tak samozrejme asi jen kdyz ten obsah dava smysl linearizovany, ale to vetsinou dava.)
Takze kdyz to shrnu. Mit validni web je dulezite. Ale je to dulezite jen pro vyvojare webu, protoze mu to umoznuje jednoduseji hledat chyby. To je vsechno…
Takze podle Chamurapiho jsou vyvojari nejvetsiho mega-projektu (podle GTPR) v domene .us volove! Ano, imageshack.us mel dost dlouho v adresach promennou image.
Roman #45
#44 lukasi, Bez tych % sa s tvojim nazorom da bez problemov suhlasit.
Roman #46
#43 Skavene, http://www.google.com/search?…
Chamurappi #47
#39 Davide Grudle, Dříve či později narazíš v každé analogii na bod, který do původního souboje argumentů nesedne. Jádro pudla se tím rozmělňuje, nikam to nevede. Ale budiž.
To je jeden z mnoha důvodů, proč i v současnosti většina programátorů používá neproporciální písmo. Dva znaky
rn
jde snadno rozlišit od jednoho znakum
. Byla-li by zvyklost jiná, věz, že by v mnoha případech byli autoři knihoven opatrnější. Tato analogie není fér ze dvou důvodů:Je to jeho chyba, ale Tvůj problém: Jsi to Ty, kdo přijde o návštěvníka.
Ampersandy v URL zásadně nezapisuje entitami ani Google ve výsledcích svého hledání, tudíž se přes tento vyhledávač na stránku s nevhodnou adresou nikdo nedostane. Chyba Googlu, problém webmastera.
Je pro Tebe důležitější, aby se „fušer“ naučil zapisovat entity, nebo aby díky jeho stránce k tobě přišel návštěvník?
Fušerství a neschopnost, to jsou docela silná slova. Ve většině případů jde přeci jen o využití existujícího pravidla: nedeklarovaná entita ⇒ text. Neříkám, že by se to takhle mělo dělat, neříkám, že je to takhle lepší. Říkám, že se to tak může dělat. Což je v praxi ověřitelný fakt. Bít se v prsa „Já to mám lepší, já zapisuji správně entity!“ postrádá smysl, poněvadž se prozíravost takového počínání projeví jednou za dobu meziledovou.
#40 romane,
Ne není. V čem spočívá samospásnost té DTD? Pouze upozorňuji, že validita je již z definice prázdný pojem. Dosáhnout validity čehokoliv je při znalosti technologie triviální – mohu si napsat svoji DTD i svoji SGML deklaraci. Není to spása, není to revoluce, je to prachobyčejné využití dostupných prostředků.
Rozkládám především specifikace. Energii mi posílají ještírci potrubní poštou v mikročipech.
#43 Skavene,
Znám možné následky. Počítám s nimi. Spoléhám na ně.
Bráno do důsledku: i většina validních stránek je závislá na tolerování nevyhovujících dokumentů v existujících prohlížečích. Sám tento weblog porušuje specifikaci nejméně ve dvou bodech, které by teoreticky měly ohrozit funkčnost – dgx spoléhá na benevolenci cílových zařízení. Přesto mu nikdo nevyčítá, že neví, „vo co go“.
To je obvyklá kritika pragmatismu postaveného do kontrastu s neochvějným a všemi přijatelným ideálem. Co když se mi ten Tvůj ideál prostě jen nelíbí? Smí se mi nelíbit, ne?
OK. Dosaď si v mé větě za validátor ten prohnilý ideál. Pořád je to meta vcelku nepotřebná.
Já neměl nikdy potřebu vytvořit úmyslně validní kód, i když je možné, že k tomu někdy došlo.
#44 lukasi, Ano, vývojáři ImageShacku byli volové. Jedinou jejich záchranou bylo, že pro své uživatele rovnou generovali funkční HTML kód. Oni sami se dodnes o entity nestarají.
Milf #48
#47 Chamurappi,
Zajisté. Ovšem nesnaž se přesvědčovat ostatní, že zrovna Tebou zvolené vybočení z řady je správné – o nic jiného v debatě nejde.
Kam až jsi schopný zajít? Vnímáš zelenou shodně jako my, nebo pro Tebe je zelená modrou? A co červená, tu máš tu samou jako my? A co abeceda? Nemáš chuť prohodit F a W, B a U … ? Cože, že bychom Ti nerozuměli? No a co, však nepotřebujeme rozumět, jde jen o Tvůj pocit být jiný, vybočený z šedi ostatních.
A co zabití? Když úmyslně zabiješ, asi bys neměl být trestán, ne? Nebo to jsme už někde úplně jinde?
Ale nejsme, jsou to všechno IMHO kvalitní příměry k tomu zda tvořit validně či nikoliv. Veškeré debaty na toto téma mi připadají naprosto zbytečné, … ovšem mě irituje, že někdo (zde Ty) se snaží vnutit ostatním, že porušování pravidel je správné. Proto a právě proto jsem se ozval, vidím že v Tvém případě je veškerá snaha marná, protože se potřebuješ odlišovat – budiž Ti přáno a dopřáno. 😉
V pohodě, to je Tvá volba. Já za sebe když se k něčemu přihlásím tak dělám vše možné, abych splnil co splněno býti má, nemám potřebu se odlišit, ikdyž bych našel zdůvodnění. Když něco přijmu, přijímám se vším všudy a nemám potřebu hledat skuliny. V momentě kdy je mi třeba skulin holt musím hledat něco jiného, co přijmu za své a to naplnit obět beze zbytku.
Tvé chování mi ad absurdum zavání anarchií. Pravidla jasně stanovena, … ten poruší to, druhý ono, třetí to i ono … sedmý má na háku vše kompletně a čeho se můžeme dočkat?
Roman #49
#47 Chamurappi, Fajn, to som rad ze si uznal ze to nebude takto napisane fungovat. Tym si de-facto priznal ze vedome zavadzas a klames. A to, ze tebe je to jedno, je v tomto pripade absolutne irelevantne.
thingwath #50
Chamurappi nevaliduje, chyby neopravuje, nehleda. Misto toho je vsechny uhada.
Asi.
lukas mach #51
Jeden citat, ktery se hodi k diskuzim podobnym teto (a vlastne skoro ke vsem na internetu):
Lokutus #52
Pročpak se XML nehodí na výměnu dat?
Andrew #53
#52 Lokutusi, Já bych tipnul že kvůli tomu, že XML, aby se zpracovalo, se musí načíst komplet celé. A parsovat třeba 2 GB XML musí být super :)
Lokutus #54
#53 Andrewe, Ehm,… to trochu nechápu.
Který idiot vytváří 2GB XML soubor, aby tímto způsobem transferoval data?
XML, jako všechno, se hodí zase jen na něco, samozřejmě. Nebudu tímto způsobem transferovat gigabajty dat, to je přeci kravina. Na to jsou jiné nástroje. Ale jen proto nebudu přeci tvrdit, že XML je na přenos dat nepoužitelné.
XML používám nějakou dobu pro webové služby a přesouvám mezi jednotlivými službami jednotlivé záznamy a zprávy ve formě XML. Je to jednoduché, rychlé a lehce rozšiřitelné.
Kromě toho neznám lepší definiční formát.
Andrew #55
#54 Lokutusi, No já pomocí XML opravdu gigabajty nestěhuju. Ale tohle (nutnost načíst soubor celý a s tím související problémy, pokud je soubor objemnější) byl jediný zápor, který jsem dokázal vymyslet :)
Lokutus #56
#55 Andrewe, I kdyby měl někdo potřebu narvat dvougigovou databázi do XML, dá se to rozdělit na jednotlivé záznamy.
David Grudl #57
#54 Lokutusi, Nepoužitelné určitě není. Použitelné je naopak velmi dobře, proto se často používá bez účasti rozumu.
Kupříkladu – XML je vrcholem neúspornosti. Ironií je, jak reflektuje dobu svého vzniku – tehdy si jen ti nejmajetnější mohli dovolit linku 64kbps, šetřil se každý bajtík na obrázku v HTML stránce, nicméně na akademických sítích tehdy lítaly megabajty. Například vzorová sitemap má po odstranění bílého místa 772 bajtů. Z toho 53 % tvoří „režie“ XML.
Vůbec spojení slov XML a databáze je náznakem, že někdo se vydává špatnou cestou…
Charlie #58
Byl bych rád, aby se webová populace dožila dne, kdy validita bude přežitek a nikdo na ní nebude lpět.
Mimochodem, lidé, o kterých Timy psal, jsou často weboví začátečníci, kteří si myslí, že mít 100 % validní web je to nejdůležitější, navíc toho často o skutečně validní prezentaci moc neví.
Roman #59
#58 Charlie, Terror of „Syntax error“ tu bol odjakziva.. 😉 Dokial sa nezacnu robit pocitace zalozene na 3 stavovvej logike (ano / nie / mozno) tak si neviem predstavi ze by sa neho mohol stat prezitok 😉
Dundee #60
jasně napiš, rád si počtu…
lukas mach #61
Chamurapi: Jak bych pak mel chapat:
&piv
V HTML 4.0 existuji jak entity π, tak ϖ. Znamena tedy vyse uvedene [entita pi][pismeno v] nebo [entita piv]? Jak by se pak napsalo to druhe?
wayfarer #62
tak vám nevim. Snažil jsem se dělat validní weby a do určité míry se mi to snad i dařilo, ikdyž nikdy nešlo o veledíla. Ale poslední dobou mám pocit, že je něco špatně. Nevidím potřebu validovat kdeco, každou prkleť. Doporučuju pečlivě projít webylon a koukat kolem sebe…
roman #63
#62 wayfarere, tak ti neviem. Snazil som sa mat zdravy rozum a neverit roznym zvestiam o mimozemstanoch a do urcitej miery sa mi to aj darilo, aj ked z casu na cas som podlahol a kupil si bosorku, fiškáľ, alebo ufo-magazín. Ale poslednou dobou mám pocit, že som bol až príliš uzavretý a nevšímal som si tie jemné náznaky a odkazy. Oni so mnou komunikujú! Teraz už mám otvorené srdce, a snažím sa šíriť lásku. Zahodil som mobil, nepozerám telku, odťahoval som sa do hôr a na internet chodím len zriedka. Doporučujem dôkladne prejsť stránky www.vesmirni-lidi.cz a poriadne sa poobzerať okolo seba.
MazeGen #64
#57 Davide Grudle, Já tuto neúspornost vidím jako záměrnou vlastnost XML. Každý formát, který je snadno ručně editovatelný, bude vždy neúsporný.
Stejně tak je neúsporný HTML nebo CSS – pokud by se zkompiloval do nějakého binárního formátu, byl by mnohem menší a pro parser čitelnější.
t0nyq #65
validní stránky? jak jinak? je to sila, kdyz sednu k applu a polovina internetu je pro me out, protoze vsichni stavi stranky pro majkroshiťáckej explorer, ktery ignoruje kazdy nesmysl od „vyvojare“ a v kvalitnich prohlizecich se to pak silene rozhazi… cokoliv – i operu, konqueror, ale nikdy ten sileny explorer – hlavne aby byl VALIDNI KOD!!! :o) have a nice time!
Ondra #66
Mno, navic predcitace pro nevidome se casto na nevalidni strankach seknou. Ondra
fanky #67
tohle si myslím zas o validitě stránek já… 🙂
http://www.fanky.cz/?…
bratr ekim #68
Podle mého skromného názoru je hlavní dobro uživatele, které není vždy nutně spojeno se striktní, pedantskou validitou.
Z hlediska webdesignu je ale třeba podotknout, že pokud se chce člověk „blejsknout“, získat dejmetomu…prestiž a uznání (ne že bych já cokoli z toho měl, ale známe takové…)…musí si odříkávat html dokumentaci ve sprše a když ho ve dvě ráno vzbudí noční můra, že byl jeho web nevalidní, honem běží zkontrolovat alty u obrázků… :D
Validní zkrátka jsem (https://web.archive.org/….unas.cz:80/) a mám to rád. Je to taková vizitka poctivě odvedené práce.
tz #69
#68 bratře ekime,
tak teď aspoň víme, jak to nedělat:
#stary-odkaz-#stary-odkaz-http://validator.w3.cz/check?uri=http%3A%2F%2Fbratrekim.unas.cz%2F&doctype=XHTML+1.1
Dokument neprošel validací, 58 chyb.
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.