« 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 »
Autor Zpráva
DDD
Profil
Můžu se zeptat, proč jsou stránky w3.org typu application/xhtml+xml, ale např. plavacek.net (nebo dero.name) typu text/html ? (Kód je skoro stejný) Díky.
Acci
Profil
Do titulku stránky dát slovo "neoficiální"
Neúřední? On snad validátor od W3C.org je úřední?
Dero
Profil
DDD: Tvůrce stránek si usmyslel, že bude Firefoxu posílat XHTML s tímto MIME typem. DOCTYPE nijak MIME typ neovlivňuje. To je něco podobného, jako když já si třebas usmyslím, že nově vzniklému validátoru, který vytvořil Chamurappi a který označuje většinu XHTML dokumentů posílaných s MIME text/html za nevalidní, budu posílat své XHTML dokumenty s MIME application/xhtml+xml a přitom všem prohlížečům i validátoru W3C posílám MIME typ text/html.

Ukázka tady: http://83.240.10.78/fetch.php

Problém MIME type a XHTML byl v českých vodách řešen už mnohokrát. Stačí se zeptat Googlu.
j.jerry
Profil *
Web W3C se, co se týče mime typu, orientuje podle hodnoty Accept v HTTP hlavičce:

~ $ wget --spider --header="Accept: application/xhtml+xml" http://www.w3.org/
--08:58:07--  http://www.w3.org/
           => `index.html'
Resolving www.w3.org... 128.30.52.54, 128.30.52.47, 128.30.52.46, ...
Connecting to www.w3.org|128.30.52.54|:80... connected.
HTTP požadavek odeslán, program čeká na odpověď ... 200 OK
Délka: 34 044 (33K) [application/xhtml+xml]
200 OK

~ $ wget --spider --header="Accept: text/html" http://www.w3.org/
--08:58:56--  http://www.w3.org/
           => `index.html'
Resolving www.w3.org... 128.30.52.31, 128.30.52.54, 128.30.52.47, ...
Connecting to www.w3.org|128.30.52.31|:80... connected.
HTTP požadavek odeslán, program čeká na odpověď ... 200 OK
Délka: 34 143 (33K) [text/html]
200 OK
Joker
Profil
Web W3C se, co se týče mime typu, orientuje podle hodnoty Accept v HTTP hlavičce
Fakt že jo, i v Opeře stačí nastavit HTTP Accept na "application/xhtml+xml" a stránky W3C se posílají s MIME application/xhtml+xml
j.jerry
Profil *
Čili teď tu máme otázku, jestli by validátor schopný validovat XHTML neměl při načítání posílat odpovídající HTTP hlavičku Accept…;-)

Jak tak čtu diskusi, mám ještě jednu otázku do pléna - pokud Chamurappiho validátor považuje XHTML dokumenty poslané s text/html za HTML dokumenty, neměl by v takovém případě místo tvrzení, že nejde o validní XHTML, nahlásit pouze neznámý DOCTYPE? Protože v opačném případě by, mám takový pocit, nešlo o HTML validátor, nýbrž o SGML validátor, což přece není totéž. Dosud jsem žil v domění, že HTML má přesně vymezenou množinu deklarací typu dokumentu (končící momentálně třemi deklaracemi HTML 4.01) a co je mimo, je špatně. Mýlím se?
Joker
Profil
j.jerry
Podle mě by neměl nahlásit neznámý doctype, pokud ten doctype umí načíst. Čistě technicky je ale pravda, že to není jen (X)HTML validátor, ale prostě sežere jakýkoliv doctype mu kdo podstrčí. To by sice nebyl takový problém, ale moje námitka zní: v některých případech (záměrně) nevaliduje dokument proti správné speficikaci

Pak mi přijde poněkud zvláštní toto:
Styď se, zasněná menšino. Nejenže se spoléháš na chyby klasických prohlížečů, ty se opíráš i o chyby validátoru. Za nadbytečná lomítka skončíš v pekle, kde si můžeš s nevrlými nealtoidy, arogantními antiampersandéry a chlípnými bezdoktajpníky popovídat o smyslu validity. Neznalost specifikací neomlouvá.
Kde konkrétně jsem porušil specifikaci?
Specifikace podle které kód dělám mi vysloveně říká, že můžu svůj kód poslat jako text/html. Validátor ovšem záměrně můj dokument validoval podle jiné specifikace tak, aby můj dokument neprošel. To je ale spíš problém toho validátoru.
Kterou část XHTML specifikace jsem tedy porušil?

Na závěr si neodpustím dvě rýpnutí:
1. Chamurappiho validátor tvrdě prosazuje, že klíčový je MIME typ. Přestože XHTML specifikace to dovoluje, nezpracuje XHTML s typem text/html. Nevalidní. Nesprávné. Teda, u XHTML. U HTML to samozřejmě nevadí.
Já: Zkontroluj http://www.w3.org/
Specifikace XHTML: Správně
Prohlížeč (Opera, IE, Firefox): Zobrazím
Validátor: Špatně. Máš špatný MIME typ. Ať si říká specifikace co chce, posílání XHTML kódu s něčím jiným než XML MIME je špatně. Nevalidní.
Já: Zkontroluj http://skripty.webz.cz/test1.php
Specifikace HTML/XHTML: Tohle neznáme. Není to ani HTML ani XHTML.
Prohlížeč (Opera, IE, Firefox): Je to obrázek, ale bohužel ho neumím zobrazit.
Validátor: Validní HTML 4.01 transitional! Gratuluju, můžeš si dát ikonku.
Já: Jaké HTML 4.01 transitional? Jsem přece posílal obrázek, koukni na MIME typ!
Validátor: No ale tohle tohle je přece HTML! Podívej na doctype!
Já: No počkej, ale to XHTML předtím...
Validátor: Nojó, ale to bylo XHTML! To je přeci ošklivé a potřebujeme se ho zbavit, víš?

2. A co je doopravdy legrační: Validátor umí validovat i kód zadaný ručně přímo na stránce do příslušného políčka. K němu pak sám validátor připojí MIME typ... text/html.
Já: Zkontroluj mi kód, co jsem napsal.
Validátor: Nevalidní HTML... nejspíš máš XHTML s typem text/html, což je špatně.
Já: Jak špatně? Specifikace mi to přece dovoluje! A vůbec, kde se tam to text/html vzalo?! Já to tam nepsal!
Validátor: Já říkám, že to je špatně. A to text/html jsem tam doplnil já. S nějakým typem se to poslat musí.
Já: No to je skvělý. Tak si k tomu připoj správný MIME typ!
Validátor: No to teda ne, ještě by pak to Tvoje odporné XHTML bylo validní. Přepiš to v HTML a já Ti to odsouhlasím.
Chamurappi
Profil
Reaguji na Jokera:
Jaké HTML 4.01 transitional? Jsem přece posílal obrázek, koukni na MIME typ!
Opraveno.

Validátor umí validovat i kód zadaný ručně přímo na stránce do příslušného políčka. K němu pak sám validátor připojí MIME typ... text/html.
Ano, přesně jako oficiální validátor.
Plánuji k tomu formuláři dodělat přepínač mezi SGML a XML.
Joker
Profil
Ano, přesně jako oficiální validátor.
No, jenže oficiální validátor ho označí za validní, když je správně.
Petr Tichý
Profil
Ano, přesně jako oficiální validátor.
Plánuji k tomu formuláři dodělat přepínač mezi SGML a XML.

Do té doby, než se tak stane, je to IMHO naprosto špatně. Pozná snad validátor podle a, rychlosti psaní b, nálady při psaní MIME typ? :))
j.jerry
Profil *
Joker
Podle mě by neměl nahlásit neznámý doctype, pokud ten doctype umí načíst.

Nojo, ale validuje pak ještě stále HTML? XHTML v případě, že je dodáno s text/html, nevaliduje určitě, neboť k němu přistupuje jako k HTML. A HTML != XHTML. Přímo na stránkách validator.webylon.info se píše, že samotné definice typu dokumentu (to je ten soubor, na nějž odkazuje <!DOCTYPE>) pro XHTML nejsou právoplatnými definicemi typu dokumentu v HTML. Takže by zároveň měl být nahlášen nesprávný DOCTYPE. Alespoň když už si tu tedy někdo chce hrát na to, že XHTML poslané z text/html není XHTML.
Tin
Profil
Chamurappi
za pokus napsat validátor přesně podle specifikací máš plus.

Specifikace jsem nečetl a číst nebudu, ale z toho, co tady padlo, vidím jádro problému:
(1)ve spec html je, že typ text/html je html.
(2)ve spec xhtml je, že xhtml může mít i text/html.
Pokud se k tomu dostane xhtml zařízení, přechroustá to jako xhtml, koukne na typ, splňuje (2)... OK
Pokud se k tomu dostane html zařízení, jede podle pravidla (1) a nikdo mu do toho nemá co kecat -- taky je tam vše v pořádku.
Průšvih vzniká ve chvíli, kdy to koncové zařízení umí i html, i xhtml. Pak je to podle jedné podmínky html, podle druhé to může být xhtml... a je tady problém. Problém, za který můžou odporující si specifikace (téhož, takže se to tak jako tak zobrazí stejně -- xhtml větev si jede podle kódu tak jak je; html využije zásady kraviny ignoruj a zobrazí taky). Průser je, když to zařízení není prohlížeč, ale validátor i html i xhtml. Xhtml-část validátoru si to přečte jako xhtml (2) a jede dál; html-část si to podle (1) přečte jako html a taky má pravdu. A je jen na vyšší bytosti (tj. tvůrci programu), aby vybrala, kterou cestou to má jít. Oboje je správně.

Ale Chamurappi, JAK MŮŽEŠ PUSTIT DO SVĚTA PROGRAM S HROMADOU NEDODĚLKŮ???
habendorf
Profil
Tin: Ale Chamurappi, JAK MŮŽEŠ PUSTIT DO SVĚTA PROGRAM S HROMADOU NEDODĚLKŮ???

Tak zrovna tohle bych nevyčítal vůbec. To je celkem běžná věc. To by ses mohl stejně tak zeptat třeba Microsoftu :o)

Prostě je to verze 0.7.4 a bude se postupně vylepšovat/kurvit, jak se to vezme.
Tin
Profil
habendorf
Jasně. Ale zrovna v tomhle případě ten program měl být bezchybnej (co nejvíc), jinak mu to někdo omlátí o hlavu.
Hlavně mi ale vadily ty chybičky a nedodělky okolo (co jsem je zachytil z téhle diskuze): XHTML -> (X)HTML, ten chybějící přepínač.. Takovéhle věci dělají z původně snad dobrého programu jen argument proti autorovi a jeho důkazům. K jeho smůle.
Segur
Profil *
Rozběhla se tu poměrně zajímavá diskuze o tom, zda je možné posílat XHTML s MIME type text/html a co by v takovém případě měl prohlížeč/validátor udělat. Prošel jsem si tedy příslušné materiály a zjistil následující:

Z doporučení XHTML 1.0 se o MIME typech dočteme v odstavci 5.1 toto:
XHTML Documents which follow the guidelines set forth in Appendix C, "HTML Compatibility Guidelines" may be labeled with the Internet Media Type "text/html" [RFC2854], as they are compatible with most HTML browsers. (...) For further information on using media types with XHTML, see the informative note [XHTMLMIME].

Vidíme tedy, že (jak už zde bylo několikrát zmíněno) dle W3C doporučení za jistých okolností definovaných v dodatku C lze XHTML stránku poslat s MIME typem text/html. Nicméně nikde v této specifikaci jsem nenašel informaci o tom, jak by s takovou stránkou měl naložit vyhovující prohlížeč/validátor. Zajímavý je však v tomto směru odkazovaný dokument XHTML Media Types, konkrétně sekce 3.1 pojednávající o typu 'text/html', kde se dočteme:
XHTML documents served as 'text/html' will not be processed as XML (...) Also be aware that HTML rules will be applied for DOM and style sheets

Vidím to tedy tak, že při dodržení pravidel v dodatku C se posláním dokumentu jako 'text/html' specifikace neporuší, nicméně je nutné počítat s tím, že bude rozebrána jako HTML a doufat, že případné chyby onen parser přežije. Je sice pravda, že XHTML Media Types má (stejně jako dodatek C specifikace XHTML a RFC definující relevantní MIME typy) informativní/nenormativní charakter, nicméně bych si jej dovolil považovat za poměrně jasné stanovisko ze strany samotného konsorcia a je docela smutné, že se jím samo neřidí, přestože daný dokument označilo jako 'best current practice'.

Další možností je podívat se na na RFC2854, kde se dočteme že s typem 'text/html' lze poslat HTML dle poslední specifikace HTML (tj. aktuálně 4.01) a pak také, že "in addition, [XHTML1] defines a profile of use of XHTML which is compatible with HTML 4.01 and which may also be labeled as text/html". Tedy, že můžeme dostat i nějaké XHTML kompatibilní s HTML 4.01. Když je ale něco kompatibilního s HTML, nemělo by tomu přece vadit rozebrání SGML parserem, nebo se snad mýlím? Tato úvaha se navíc shoduje i s výše citovaným odstavcem z XHTML Media Types.
Joker
Profil
Segur
Vidím to tedy tak, že při dodržení pravidel v dodatku C se posláním dokumentu jako 'text/html' specifikace neporuší
Ano, já to vidím stejně. Takže pokud to validátor označuje za porušení specifikace, nemá pravdu. Což je podle mě odpověď, jakým způsobem by s tím měl validátor zacházet.
Podle mě je chování W3C validátoru správné: Pokud dostane typ text/html, zkusí rozlišit, zda jde o HTML nebo XHTML. Pokud se mu to nepovede, vyhodí upozornění, že nebyl schopen správně rozlišit režim dokumentu a zkusí ho validovat jako HTML.

nicméně je nutné počítat s tím, že bude rozebrána jako HTML a doufat, že případné chyby onen parser přežije
Ano. S tím, že bylo empiricky zjištěno, že existující parsery to zvládnou a s tím, že od XHTML specifikace by parsery měly s XHTML s typem text/html počítat.
jozob
Profil
Dodatok C je však len informatívny, takže jeho (ne)dodržanie nemá vplyv na zhodu s normami.
Segur
Profil *
Joker
Takže pokud to validátor označuje za porušení specifikace, nemá pravdu.
Odkdy validátor kontroluje porušení specifikace? Validátor, pochopil-li jsem to dobře, spadá do kategorie validating user agent (v případě XML by tedy měl kontrolovat [i]well-formness[i] a validitu proti dodanému DTD) a podle toho by se měl chovat. Dosta-li tedy něco s typem 'text/html', měl by to (zřejmě i dle názoru W3C) rozebrat HTML (SGML) parserem, zjistí-li, že to není validní HTML 4.01, oznámí, že to není validní HTML 4.01. A má pravdu.

S tím, že bylo empiricky zjištěno, že existující parsery to zvládnou
To jistě, dokonce je něco v tomto smyslu přímo v onom dodatku C. Jenže existující parsery zvládnou ledacos; znamená to snad, že by se tak měl chovat i validátor?

od XHTML specifikace by parsery měly s XHTML s typem text/html počítat
Proč? HTML/SGML parsery by se měly řídit specifikací HTML 4.01, XHTML/XML parsery pak specifikací XHTML. Benevolence existujících HTML parserů není dána dodatkem ve specifikaci XHTML 1.0, nýbž již dřívějším vývojem webu. Chtěl-li bych se navíc řídit jen specifikacemi, pak jsem nikde nenašel napsáno, že by se HTML parser měl připravit na XHMLT dokument.


jozob
Dodatok C je však len informatívny, takže jeho (ne)dodržanie nemá vplyv na zhodu s normami.
Dodatek C je víceméně sada doporučení, jak by se mělo psát XHTML, pokud autor chce, aby prošlo existujícími HTML parsery, takže stěží může být normativní. Nicméně se na něj odkazuje normativní oddíl 5.1 specifikace XHTML 1.0 při povolení typu 'text/html'; v případě využití této možnosti bych tedy ten dodatek považoval za závazný.
Tin
Profil
Vypadá to, že Chamurappi má pravdu.
Petr Tichý
Profil
Pročetl jsem několikrát toto vlákno + několik dalších článků a vytvořil jsem si osobní názor. Myslím, že Chamurappi má často ve svých tvrzeních pravdu, ale validátor (český) pravdu opravdu nemá.
j.jerry
Profil *
Jen tak pro zajímavost: český validátor se sice tváří, že umí validovat i XHTML se "správným" content-type, ale serveru vůbec nedává najevo, že je schopen takovýto obsah zpracovat. HTTP hlavička Accept totiž vypadá takto: 'Accept: text/html'. Pokud čtu dobře, RFC 2616 říká, že hlavička Accept definuje, jaký typ dat (media type) je přípustný (acceptable) pro odpověď. Pokud je jediným přípustným typem text/html, bylo by proti specifikacím posílat mu něco jiného. Nestálo by za to to opravit? Buď tuto hlavičku neposílat vůbec (jako to dělá originální validátor W3C), nebo tam uvést mime typy, které je skutečně možné zaslat?
Joker
Profil
Tin
Vypadá to, že Chamurappi má pravdu.
Podle mého názoru nemá pravdu v té jedné klíčové věci: že XHTML se nesmí posílat s typem text/html.

Dál jsem názoru, že Chamurappiho zášť k XHTML je hlavní příčina některých vlastností toho "českého validátoru". Nebo jinak, že cílem toho validátoru je označit jakýkoliv XHTML kód za chybný.

j.jerry
Jenže to by potom stránky W3C byly validní, že…
Timy
Profil
Joker
"Podle mého názoru nemá pravdu v té jedné klíčové věci: že XHTML se nesmí posílat s typem text/html."
Pardon že se zapojuji, ale kde přesně tohle Chamurappi tvrdí?
habendorf
Profil
Vypadá to, že Chamurappi má pravdu.
Podle mého názoru nemá pravdu v té jedné klíčové věci: že XHTML se nesmí posílat s typem text/html.


Tak možná to chápu celou dobu blbě, ale podle mě Chamurappi netvrdí, že XHTML se nesmí posílat s typem text/html. Podle mě tvrdí to, že pokud to pošleš s text/html, tak to prohlížeč rozebírá html parserem a tím pádem je jeho chybou, že zkousne konstrukce typu <br />.

Protože <br /> v html je blbost. Aspoň tak to chápu já.
j.jerry
Profil *
Joker
Jenže to by potom stránky W3C byly validní, že...

Nemusely by. Jsou dvě možnosti, buď tam explicitně zadat i application/xhtml+xml (pak by validní byly), nebo na konec přidat */*. Nebo, jak jsem už psal, hodnotu Accept neposílat vůbec, neboť if no Accept header field is present, then it is assumed that the client accepts all media types.
V každém případě je podle mého soudu v tuto chvíli odesílání jiného typu než text/html v rozporu s příslušnou RFC (i když převážná část webů to stejně respektovat nebude).
Tin
Profil
Xhtml se smí posílat s typem text/html, avšak parser má dokument s typem text/html považovat za html. (A protože html funguje i s chybami, normálně se zobrazí/zpracuje.)
j.jerry
Profil *
Tin
Xhtml se smí posílat s typem text/html, avšak parser má dokument s typem text/html považovat za html.

Ovšem pokud je při text/html chybou konstrukce typu <br />, nemůže být v 99% případů s text/html posílán totožný kód jako s application/xhtml+xml, protože s application/xhtml+xml je chybné pro změnu samotné <br> a <br></br> zase nezkousnou některé prohlížeče. Takže jsme se poněkud zacyklili, neboť daný kód nemůže být za těchto okolností validní zároveň s oběma mime typy.
Bubák
Profil
Podle mě tvrdí to, že pokud to pošleš s text/html, tak to prohlížeč rozebírá html parserem a tím pádem je jeho chybou, že zkousne konstrukce typu <br />
<br /> je v HTML validní konstrukce, "drobnost" je, že ji validátor chápe jinak, než HTML prohlížeče.
Timy
Profil
j.jerry
"Ovšem pokud je při text/html chybou konstrukce typu <br />"
Spíš <meta />, <br /> nevadí, je to legitimní konstrukce jak v HTML, tak v XHTML, akorát má v každém jazyku jiný význam.

"...a <br></br> zase nezkousnou některé prohlížeče"
<br></br> -- tím si nepomůžeš vůbec, kromě toho, že nějaké prohlížeče ti to odřádkují, tak to stejně není v HTML validní.

"Takže jsme se poněkud zacyklili, neboť daný kód nemůže být za těchto okolností validní zároveň s oběma mime typy."
Může :-). Stačí v <head>u nepoužít prázdné elementy. <br /> má sice jiný význam, nicméně jak už jsem říkal, je to HTML validní konstrukce.
habendorf
Profil
Bubák: Tuhle připomínku jsem přesně čekal :o) Napsal jsem to zjednodušeně, nechtělo se mi to moc zašmodrchávat. Říkal jsem si, že to snad bude jasné.
« 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: