Patrick Zandl, marigold.cz a Opera

MyEgo.cz

home foto blogy mywindows.cz kontakt

Patrick Zandl, marigold.cz a Opera

Technologie 23.04.04
WiFi

Patrick Zandl, marigold.cz, si na základě mého článku o Opeře tuto stáhnul, pár minut ji používal, zjistil, že marigold.cz je tam totálně rozhozen, tak ji zase smazal. Uhuh.

Marigold.cz je totálně nevalidní web, ale o to zde nejde! Tento problém není, typicky, Operní, ale spíše chybějící, či přebývající, DIV.

Tak jsem se na celou věc podíval a... je to tak. :)

Toto je starý kód:

....
</FORM>
</div> <!-- tady tento div smazeme -->
<form action="/zpracuj_hlasovani.php3" method="post">
....
<a href="#" onclick="window.open('/hlasovani_vysledky.html','Hlasovani','width=400,
 height=500'); return  false;"> zobrazit výsledky</a>
</form>
</p>
</div> 
.... 

A toto je upravený kód:

.... 
</FORM>
<form action="/zpracuj_hlasovani.php3" method="post">
.... 
<a href="#" onclick="window.open('/hlasovani_vysledky.html','Hlasovani','width=400,
 height=500'); return  false;">  zobrazit výsledky</a>
</p> <!-- tady presuneme p do formu, predtim bylo za nim -->
</div> <!-- tady jeden novy div pridame -->
</form>
</div> 
.... 

To je celé! Není to problém Opery, ale, pokud uzavřu "obsah" webu dříve než má skončit, tak, Opera jej skutečně uzavře. IE si myslí, vzhledem k tomu, že ještě něco následuje, že raději tento uzavírací DIV bude ignorovat, protože to tam asi někdo, jen tak, zapomněl. Hm. Nemám rád browsery, co si vymýšlejí. Ono to je chvíli dobře, ale, co když Patrick zítra napíše nějaký článek, a už to bude pro IE špatně?

Na marigold.cz chodí dost podstatná část lidí s ne-IE browsery (tedy, možná ne, kvůli "vylučovacímu efektu", o kterém moc pěkně psal Yuhů).

Co z toho tedy plyne? Validita sama o sobě nemá smysl (pro praktické použití webu). Validní není ani google.com, ani amazon.com, ani yahoo.com. Nicméně, jak jsem o tom psal před pár dny, je to takový dobrý debugger pro web-designéra, aby on odhalil svoje chyby. Ono, pokud děláte validní web, a něco Vám nefunguje jak má, tak to v 5 chybách snadno najdete. V 300 chybách už to je dost obtížné... A jinak než validátorem se k chybě budete propracovávat hodně těžko.


Komentáře

  1. 1 michal 23.04.04, 11:04:50
    FB

    Tak si myslim, ze ted si pekne odporujes. Pises:

    "Validita sama o sobě nemá smysl (pro praktické použití webu)..."

    Ale to neni pravda. Protoze jak ukazuje pripad marigold.cz, NEvalidni web si v Opere neprohlidnes (samozrejme jak ktery nevalidni web).

  2. 2 Radek Hulán 23.04.04, 11:04:53
    FB

    [1] ale neodporuji, Michale, i po této úpravě bude marigold.cz ZCELA nevalidní, ale PŘESTO se zobrazí dobře ve všech browserech ;) Validita MÁ smysl jako debugger, při hledání chyby, ale.. to je celé!

  3. 3 michal 24.04.04, 12:04:01
    FB

    Ale to je jedno ze po teto uprave bude stale nevalidni (ale nahodou ho Opera zkousne).
    Jde prece o to, ze diky tomu, ze je web NEVALIDNI, se muze stat, ze nebude pouzitelny v nejakem prohlizeci. Zatimco VALIDNI web ma 100% jistotu, ze bude vsude zobrazen korektne (aspon by to tak melo byt).
    A to mi prijde jako dost podstatny argument pro validitu webu. Kde mas jistotu, ze tento NEVALIDNI kod, ktery dnes IE zobrazuje bez problemu, bude v pristi verzi IE take chodit (ze se k nemu zachova IE stejne)?

  4. 4 Radek Hulán 24.04.04, 12:04:22
    FB

    [3] ne, Michale, tak to není. Validní třeba znamená, že nepoužiješ centrování tabulky na obrazovce (které sice není validní, ale funguje ve všech browserech)... Nebo místo ampersandu jej píšeš v URI entitou... To je validita pro validitu.. Jiný smysl nemá ;)

    Validita není závazná právní norma, je nutné se na to dívat PRAKTICKY ;)

    A jediný praktický důvod je.. že se ve validním webu lépe hledají SKUTEČNÉ chyby.

    Věci, které nejsou validní, ale napíšu je vědomě, jsou ZCELA V POŘÁDKU.

  5. 5 Jiří Macich ml. 24.04.04, 12:04:26
    FB

    Nemám rád browsery, co si vymýšlejí. - to platilo na IE nebo na Operu?

    Já nevím ... spíše si myslím, že je lepší chybu ignorovat (či použít nějaké shůdné řešení), než stránku zobrazit zpraseně. Mě jako čtenáře nezajímá, kde je chyba, ale že chyba je. Nebylo by tedy ze strany Opery lepší, aby dokázala (třeba na rozkaz někde v nastavení) vytušit chybu a pokusit se ji opravit? To samé u media="screen" ve fullscreenu. Neříkám chyby přímo podporovat, ale vyskytnou-li se, tak se je pokusit napravit.

  6. 6 Radek Hulán 24.04.04, 12:04:29
    FB

    [5] Jirko, ale o tom to není. Žádný stroj nemůže přece "myslet za tebe". A nikdy nebude. Tento KONKRÉTNÍ problém se objevil v Opeře, jiný by se zase projevil v IE. Zítra Patrick může napsat jiný článek, a ... bude to blbě třeba v IE.

    Pokud to zjednoduším, ta Patrickova mini-chyba je takováto:

    <div id='obal'>
    text-1
    <div id='menu'>
    text-2
    </div>
    text-3
    </div>
    text-4

    Co udělá IE? V tomto případě rozhodne za tebe, že poslední DIV asi platit nebude. No jo, ale co když tam budou dvě takové chyby? Nebo jiná chyba? Žádnej browser nemůže, proboha, automaticky opravovat VŠECHNY chyby!!

  7. 7 Jiří Macich ml. 24.04.04, 01:04:08
    FB

    [6] Já vím, kde je ta chyba. HTML trošku ovládám ;-) Myslím, že by stroj resp. software klidně za mě myslet mohl a to nemyslím Operu, IE, Windows, Linux atd ... Ale prostě SW obecně.

    Bylo by přece fajn předvídat chyby a snažit se je napravit ...

    Abys chápal - nekritizoval jsem Operu (a nevyzdvihoval IE) - spíše jsem si vysnil intelignentní software schopný řešit chyby.

  8. 8 pavelm 24.04.04, 01:04:53
    FB

    [5] Proboha jenom to ne! :-( Vše by dnes bylo jednodužší, kdyby neexistoval browser, který by stránku s chybou zobrazil.

    Když udělám chybu třeba v PHP, skript neběží, dokud ji neodstraním.

    Vím, je to extrémní příklad. V PHP, stejně jako v jakémkoliv jiném skriptovacím jazyce je to samozřejmě nutné. Stroj si za mě nemůže výmýšlet kód, protože on přece neví, co je mým záměrem. Toto srovnání se tedy může zdát hloupé.

    Myslím, že ale úplně tak hloupé není.

    Browser může většinu chyb ignorovat a stránku zobrazit, protože vlastní nijak nezměněná informace, se vždy ke čtenáři (byť třeba na rozhozené stránce - v jiné formě) dostane.

    Je ale škoda, že vůbec nějaký browser, který při nalezení chyby nezobrazí chybovou hlášku vznikl. Vznikla tak situace, kdy je možné stránky, které se mohou chovat nepředvídatelným způsobem, psát. (A tak je také tak plno lidí stále píše. Proč se učit nějaké standardy, když to jde i bez nich, že. :-( Když to udělá profesionál, který ví co dělá - NO PROBLEM. Ale internetové stránky "umí" dnes už dělat skoro každý...) Proč nepředvídatelným? No právě z toho důvodu, že ani browser nemůže při každé chybě správně odhadnout, jakým způsobem má být opravena! (Například jak má asi poznat, kde neuzavřený div ukončit?)

    Za tohoto stavu, kdy každý browser nějakým způsobem chyby opravuje, už bohužel nikdo nemůže očekávat, že by jiný browser, který tak činit nebude, vůbec někdo používal. Kdo by si ho asi nainstaloval, když by v něm nebylo možné 90% (To jsem jen tak plácnul, chtěl jsem prostě říct nějaké vysoké číslo, protože se domnívám, že vysoké opravdu je.) obsahu internetu vůbec prohlédnout? No já ne! Leda na testovací účely.

    Prohlížeče by mohly být daleko jednodužší, protože by od nich nikdo neočekával vlastní "invenci", nějaká optimalizace (co to je za blbost) pro konkrétní prohlížeče by byla neznámým pojmem. Problémy s jiným než zamýšleným zobrazením stránky (neříkám špatným, protože špatný je přece kód - nemůžu přece chtít, aby se obsah za těchto okolností zobrazil nějakým konkrétním způsobem!) by také neexistovaly.

    Ty problémy nemusí existovat ani teď (když opominu některé již dobře známé chyby exploreru, kterým je možné se relativně snadno vyhnout), v případě že budu psát validní kód.

    Proto je validita důležitá. U validní stránky mohu mít jistotu, že se vždy zobrazí tak jak očekávám. Nemusím se klepat strachy, že nová verze mého prohlížeče bude chytrá trochu jiným způsobem (jiná logika opravy chyb) a já tak budu muset hledat a odstraňovat své chyby.

  9. 9 mirun 24.04.04, 02:04:42
    FB

    [7] Ten problém s myšlením za nás není řešitelný - až bude už nás nebude třeba.

    Nemám sice nic proti rádoby-přemýšlení za uživatele, ale pokud výrobce něco takového implementuje, mělo by se to dát vypnout, protože ve spoustě případů je to spíš vopruz.

    U chybějících/přebývajích tagů - nedávno jsem si dělal takový pokus a každý browser si kód domyslí trošku jinak (dle své implementace) takže ono "domyšlení" vypadá pokaždé jinak zběsile - ve spojení s CSS (plain HTML bývá v pohodě, tam snad ani není co zkazit)

  10. 10 Patrick Zandl 24.04.04, 10:04:15
    FB

    Jen tak na okraj k tomu "velkému počtu neIE prohlížečů": za duben dělá 76% IE rodina, 18% Mozilla a Gecko jádra, 4% dělá Opera a 1% KHTML (fuj, co to je...).

    Za dnešek je tam ovšem 13% opera :)

    http://navrcholu.cz/Statist...

  11. 11 Radek Hulán 24.04.04, 10:04:43
    FB

    [10] no, ono je to taky o tom, že pokud k Vám někdo přijde s Operou, a vypadá (vypadalo) to divně, tak třeba (některé) to odradí ;)

  12. 12 llook 24.04.04, 11:04:50
    FB

    [5] > "Nebylo by tedy ze strany Opery lepší, aby dokázala (třeba na rozkaz někde v nastavení) vytušit chybu a pokusit se ji opravit?"
    Problém je v tom, že to prohlížeče dělají, akorát každý trochu jinak!
    Ten, kdo by měl opravovat chyby je tvůrce, tedy kodér nebo editor. Pokud je chyba podobná jako ta popisovaná výše, jak má prohlížeč poznat, co tím autor myslel?
    Jediný způsob, který mě napadá: Prohlížeč by našel na stránce text "Optimalizováno pro XY" a pak by použil renderovací engine XY. Pěkná kravina, co? Pak by to už ale nebylo HTML+CSS, ale "MSIE5.5 HTML"+"MSIE5.5 CSS", "Mozilla1.3 HTML"+"Mozilla1.3 CSS" apod. Zajímavé by bylo takovou obludu portovat pod j2me-midp.;)

    [10] KHTML je třeba Konqueror(fuj) ale taky Safari.

  13. 13 Ondřej Kokeš 24.04.04, 12:04:17
    FB

    [10] kdyz o tom pise radek, cekejte jen Operu ;)
    Jinak ty KHTML (Konqueror, Safari) muzes videt tady: http://capture.danvine.com/...

  14. 14 michal 24.04.04, 01:04:08
    FB

    [4] a chybejici DIV neni NEVALIDITA???

  15. 15 Jiří Macich ml. 24.04.04, 01:04:27
    FB

    [9] Vypnout by se to dát opravdu mělo.

    [12] Jasně, že by to měl řešit kodér nebo jeho editor, ale mě to jako čtenáře nezajímá. Pro mě, za mě, ať to vyřeší třeba bin Ládin, ale hlavně abych to viděl správně.

    A v žádném případě by prohlížeč nemyslel za uživatele. Jen by za použití podmínek (daných programátorem - opět člověkem) řešil nejčastější problémy. Někdo se tady moc kouká na Matrix ;-)

  16. 16 Radek Hulán 24.04.04, 02:04:41
    FB

    [14] hele, Michale, naprostá většina webů NENÍ validních a zobrazí se DOBŘE. Naopak, znám validní weby, co se zobrazují blbě. Ono to FAKT NENÍ o validitě. Blbě validní CSS je problém. Dobře napsaný nevalidní web není problém. W3C není žádná nejvyšší, nadstátní, božská, instituce, její "normy" nejsou normy, ale JEN doporučení.

    Pokud vím, že něco není tzv. "validní", ale VEŠKERÉ browsery to zobrazí dobře, tak NEMÁM nejmenší důvod to řešit.