...ujma vsak je ta, ze kvoli neadekvatnemu pristupu uzivatela z vonku (fora, komentare) sa uplne nie mojim pricinenim nebude zobrazovat stranka.
Nedostatečné ošetření vstupů je chyba pouze a jen programátora. Používejte na komentáře Texy! a nemusíte mít obavy.
„Stale. Skus si spravit krkolomne riesenie a zobraz si ho prehliadaci. Nikdy nie je 100% iste, ze sa zobrazi vsade rovnako.
Ci Vy robite stranky len pre tri prehliadace ? Tak to ak by som mal web developersku firmu nikdy nezamestnal.
Sorry, ale to pravda.“
Denne robím niekoľko krkolomných riešení a nikdy to nemá nič spoločné so značkovaním. Koniec koncov, dobrý kóder nerobí nikdy krkolomné riešenie na strane štruktúry. Problémy a rozdiely vo vykreslení sú vždy spojené s chybnou a odlišnou implementáciou CSS.
A o tom bola aj moja pôvodná otázka. Týkala sa značkovania, nie CSS. Myslím, že ľudí čítajúcich tento článok, ktorí sa vôbec zaujímali rozdielmi v prehliadačoch na základe značkovania, by som spočítal na prstoch jednej ruky.
Hlavne je potrebné uvedomiť si, že hovoríme o značkovaní, štruktúre, nie o forme, CSS.
„A dodržují to, protože vědí, že striktní přístup je vyvážen stoprocentní kompatibilitou a přenositelností.“
Ke stoprocentní kompatibilitě stačí jasně daná pravidla s minimem nedefinovaných stavů. Drakonismus netřeba. Pokud parser přelouská i Babičku, nic se neděje, pokud ji louskají všichni podle stejných pravidel. Bez drakonismu jsou mírnější důsledky, pochybí-li ten, kdo louská.
„Všichni s tím počítají a zařídili se podle toho (ba i u toho XML už si na to zvykli)“
Určitě? V červenci přestanou mnoha lidem fungovat některé RSS kanály (včetně toho na Pixy.cz), jelikož spousta čteček čte externí DTD ze serveru Netscapu. Ta zmizí.
Velmi často narážím na XML dokumenty s českými znaky, které jsou dodávány s MIME typem „text/xml“ (jako RSS kanál na Pixy.cz), jehož výchozí kódování „us-ascii“ jde přebít pouze běžně neuváděným parametrem charset v HTTP hlavičce a nejsou tedy správně sestavené. Je to zatím ta nejvíce tolerovaná fatální chyba.
„Mají snad nějaké problémy exporty do formátů PDF či JPG, které taky vyžadují striktní syntaxi a na chybě zkolabují?“
Nemají, protože jsou nástroje s nimi pracující takřka bezchybné. U minulého článku jste vy sám psal: „Myslím si, že zcela univerzální XML parser, který by byl bezchybný a zvládl všechny myslitelné obskurnosti syntaxe DTD, ani neexistuje.“ — V tom jste sice pravdu neměl, ale fakt je, že XML procesory v prohlížečích chybují. Nikoliv pouze na obskurnostech DTD.
„Že by stejně nemohly fungovat WWW stránky, je úplně scestné tvrzení.“
Mohly by fungovat. Přechod na toto fungování by však přinesl řadu problémů, kterými současná praxe netrpí.
„všechny prezentace dělané ve Flashi právě tak fungují a nikomu to nevadí“
Zotavení se z poškození bývá u binární směsi nemožné. Půlka programu je vždy k ničemu, půlka dokumentu nemusí být.
„Spor mezi anarchistou a standardizátorem je z principu neřešitelný.“
Minule jsem byl demagog, teď jsem anarchista, příště budu terorista :-)
Smysl standardizace chápu a nezpochybňuji.
„Autor se nestydi za porusovani standardu, ale za sve jmeno asi ano.“
Jsem patřičně hrdý na všechna svá jména. Zvláštní, že po napsání článku o Exploreru 7 mi nikdo do anonyma nenadával. Scházela motivace. Teď neschází — jsem zlosyn a na „neznámého pachatele“ se špatně plive.
„Mozna na svem webu standardy porusuje, ale na jinem pilne specifikace dodrzuje.“
Na jednom mám dokonce tu hnusnou žlutou ikonku XHTML 1.0 Valid! :-)
pokud je na 89. znaku na řádce 1.547 syntaktická chyba, program zkolabuje
Komu ku prospechu? Uzivateli ne. Programatorovi ne. HTML mechanismy znemoznujici pristup uzivatelum k bezchybnym castem dokumentu nepotrebovalo, chyby v zobrazovani vetsinou nebyly chyby v rozebirani. To je pro me svetly moment jinak prumerneho clanku - poukazuje na historicke pozadi zajimaveho chovani XHTML k chybam. Takhle jsem o tom nikdy nepremyslel ;-)
A i díky tomu flashe vypadají a fungují zcela stejně v každém přehrávači.
Hm, asi tak jako DOC. Skutecne vypada vsude stejne kvuli striktnosti, proprietalnosti nebo monopolu? Nebo ze by vsude stejne nevypadal? Takhle presne vypadaji dusledky trapneho prirovnani - OT diskuse a zadna argumentacni hodnota.
Podle nadpisu článku bych čekal kritiku XHTML. A ony jsou to ve skutečnosti dva náměty na vylepšení XHTML.
První se týká přísnosti parseru – osobně si myslím, že vyžadování well-formed XML není na škodu, proč dělat parsery zbytečně složité. Navíc dnes se používají nejrůznější formuláře, skripty atd., které jsou velmi háklivé na chyby v objektovém modelu dokumentu (DOM). Dokumenty, které nejsou well-formed, nejspíš vznikly nějakou chybou (stránka se nenatáhla celá, nějaká část se na serveru vygenerovala špatně). Myslím, že je lepší v takovém případě přiznat uživateli, že došlo k chybě, než se pokoušet to ututlat. Pak se zblázní skripty, uživatel je zavalen chybovými hláškami, pomyslí si cosi o autorovi stránek – ale že před ním ve skutečnosti prohlížeč tají to, že nedostal stránku celou, se nedozví. A i kdyby se vývojáři dohodli na tom, že raději zobrazit něco, než nic – celá přísnost XHTML specifikace spočívá v jediném must v jedné větě, které by stačilo nahradit za may nebo should.
In order to be consistent with the XML 1.0 Recommendation, the user agent must [může být may, should] parse and evaluate an XHTML document for well-formedness.
Druhá věc se týká neznámých jmenných prostorů – byl by dobrý nápad dát do XHTML sémanticky neutrální tag, který bude fungovat jako podmínka – jeho obsah se vykreslí pouze v případě, že prohlížeč zná resp. nezná daný jmenný prostor. Tedy jakási zobecněná podoba microsoftích podmíněných komentářů. Každý prohlížeč se navíc dle své verze může přihlásit k tomu, že zná nějaký svůj jmenný prostor – a hned dokážeme na úrovni HTML rozlišit i jednotlivé prohlížeče (pro případ, že prohlížeč má např. nějakou chybu, kterou chceme obejít). Takže by se pak psalo např.:
<if known-namespace="http://www.w3.org/1998/Math/MathML" <math xmlns="http://www.w3.org/1998/Math/MathML"> … </math> </if> <if unknown-namespace="http://www.w3.org/1998/Math/MathML"> (a + b)<sup>2</sup> </if>