DOCTYPE neříká nic, podstatný je MIME type

Spousta lidí kolem webdesignu se zjevně pyšní tím, že jejich web je občas XHTML 1.0 STRICT validní. Někam si dají ikonku XHTML 1.0 valid a jsou tak moc moderní... Fakt je ale ten, že prakticky žádný český web skutečně v XHTML nejede. Podstatný je totiž MIME type, který posílá server, nikoliv DOCTYPE v (X)HTML kódu. Pokud je hlavička typu text/html, jako tomu je u naprosté většiny českých blogů, a nikoliv application/xhtml+xml, tak si na XHTML jen hrají, ale každý prohlížeč jejich blog zpracovává jako obyčejné 15 roků staré HTML.

Pojďme se podívat na pár nejnavštěvovanějších blogů dle toplist.cz/weblogy.

Web DOCTYPE MIME type Komentář
5. Pixylophone XHTML 1.0 Strict text/html web je zpracováván jako 15 roků staré HTML, nicméně přesto má ikonky na XHTML validaci, zcela nesmyslnou, nejedná se application/xhtml+xml, která je pro XHTML požadavkem
8. WELL.DONE Radka Hulána XHTML 1.0 Strict application
xhtml+xml
web je jako jediný zpracováván jako moderní XHTML, není problém z něj XSL transformací generovat třeba WML, či verzi pro PDA, při jediné chybě je zpracování zastaveno (není tedy nutné ani ukazovat validační ikonky), klade to ovšem mimořádný důraz na kvalitu redakčního systému
13. Blog počítačového nadšence XHTML 1.0 Transitional text/html přestože tento web používá velice benevolentní normu Transitional a je zpracováván jako 15 roků staré HTML, není ani podle ní validní... nicméně, alespoň se nepyšní (ani nemůže) odkazy na w3c.org validátor
16. About newslog a weblog XHTML 1.0 Strict text/html web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že Petr se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML
23. Internetový Oříšek XHTML 1.0 Strict text/html web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že Tomáš se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML
36. Přístupnost XHTML 1.0 Strict text/html web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že David se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML

Samozřejmě, Microsoft Internet Explorer application/xhtml+xml nezpracuje, je nutné mu servírovat jen text/html. Jak toto zařídit jsem popisoval v jednom z předchozích článků. Na svém WELL.DONE chystám, pomocí XSLT, rovněž WML verzi a PDA verzi. Je to samozřejmě rovněž možné toto dělat jako skin redakčního systému, a bylo by to i rychlejší, nicméně, pomocí XSLT je to zábavnější 🙂

Komentáře 50

  1. #1 Vlado Raab

    Ano pěkný přehled jen co je pravda, co se týče technické stránky tak jsi na tom nejlíp. Uznávám, jenom bych chtěl upozornit na to, že všichni lidé jenž použivaji/píšou své blogy nejsou "programátoři" ,ale převážně nadšenci, které baví podělit se o své znalosti viz třeba Marigold ten se nebojí přiznat,že mu už před nějakou dobou ujel vlak. cituji nemám se montovat do věcí, kterým nerozumím a nikdy více se nevěnovat něčemu, co zavání tvorbou HTML/CSS stránek. Je to odborník ve svém oboru a píše o něm zasvěceně a velmi čtivě. To je jenom jedna ukázka z mnoha, kde lidé používaji blog jako NÁSTROJ ke komunikaci s komunitou stejně smýšlejících nadšenců.

    Vlado Raab - Empy

  2. #2 Radek Hulán autor webu ▲10 ▼0

    [1] souhlas, já taky ale nerecenzuji Marigold, ale lidi, co se zabývají, či přímo živí webem..

  3. #3 Jiří Macich ml.

    v tom případě vůbec netuším, jak jsem se ti do výčtu dostal já se svým blogem, když se tvorbou webu nezabývám ani neživím 😉 Jen si občas něco zpatlám.

  4. #4 Fred

    To rADo : OT - nějak tu blbne charset, chtěl jsem si uložit ten článek o CDMA, protože přes týden jsem offline a kdybych si to pořídil určitě by mi to helflo. Jenže bohužel (teď vidím, že tisková verze je v pohodě) při stažení nejde doladit charset, stejně tak je rozhozen v pdf. Jo a nevím jak ve FF, ale ve Firebirdu (český FF má velké problémy s addons http://forum.czilla.cz/view... takže čekám na opravu, abych mohl reinstalovat) má application/xhtml+xml problémy s otevíráním oken do nového tabu pomocí kolečka myši.

  5. #5 Vilém Málek

    To je velmi zajímavé, já MSIE nepoužívám (respektive používám různé klienty) a stále dostávám hlavičku "Content-Type: text/html; charset=utf-8". Čím to asi bude - že by chybička v CMS? 😉

  6. #6 Radek Hulán autor webu ▲10 ▼0

    [5] asi se neumíte dívat, pane Málek, Opera i Firefox rozhodně dostávají application/xhtml+xml 😉 Že by chybička šéfredaktora Interval.cz? 😉

  7. #7 Radek Hulán autor webu ▲10 ▼0

    [4] jo, díky, při instalaci jsem zapomněl na změnu charset na UTF-8 pro export do PDF, upraveno 🙂

  8. #8 JohnyB

    app/xhtml+xml je ruzne vyzadovano u ruznych verzi XHTML, dokonce nikde neni MUST, je jen SHOULD. Navic rendering stranky ci validace proti DTD se vazne ridi uvedenym doctypem.

  9. #9 Radek Hulán autor webu ▲10 ▼0

    [8] je vidět, že lidé nechápou, co je DOCTYPE a co je MIME type.

    Zkus poslat browseru s MIME type application/xhtml+xml jeden neuzavřený <p> tag. Co se stane? Ukončí se zpracování. Proč? Protože se data zpracovávají jako XML.

    Teď ten samý kód měj s MIME type text/html, znovu s DOCTYPE XHTML 1.0 STRICT. Co se stane? No projde to. Proč? Protože to browser chápe jako obyčejné "tag soup", směs znaků, je mu jedno, zda to je či není well-formed, nezpracovává to jako XHTML, ale jako nevalidní HTML!!!

    Oprav si znalosti, JohnyB 😉

    Tady se nejedná vůbec o validaci, ale o to, jak funguje PARSER browseru, a ten se NEŘÍDÍ DOCTYPE, ale MIME type, DOCTYPE jen mění rendering mode, třeba má vliv na to, jak je počítána šířka boxu, ale ne to, zda se použije HTML či XML parser! A pokud posílám MIME type text/html, tak to browser skutečně zpracuje jako HTML. Opera i Firefox. Howgh.

  10. #10 Vilém Málek

    Opera a Firefox nejsou jedinými alternativními prohlížeči. 😉

  11. #11 bogey

    Rád bych zdůraznil, že NIKDE není řečeno, že XHTML 1.0 se musí posílat jako application/xhtml+xml. Toto platí až o verzi XHTML 1.1, se kterou mohou mít starší prohlížeče (resp. IE až dodnes) problémy. Viz:

    HTML a XHTML: Často zodpovídané dotazy

    Je tedy hezké, že vy posíláte stránky s jiným MIME typem, nicméně se nedržíte standardu o nic více než výše uvedené weby.

  12. #12 Radek Hulán autor webu ▲10 ▼0

    [11] ach jo, pokud bogey ten tvůj odkaz čtu, tak XHTML je XML formát; to znamená, že by mělo být odesláno s media typem z rodiny XML (application/xhtml+xml, application/xml nebo text/xml). Avšak XHTML 1.0 bylo důkladně navrženo, aby pracovalo také na přeživším uživatelském softwaru. Pokud se budete držet několika jednoduchých doporučení, můžete přimět mnoho starých browserů k práci s XHTML 1.0. To rozumí z media typů pouze text/html, takže ho musíte použít, pokud jim odesílate dokument XHTML 1.0. Ale buďte připraveni, že odeslání XHTML dokumentů těmto browserům jako text/html znamená, že je tento software chápe jako HTML dokumenty a nikoliv XHTML.

    Jinak řečeno, MIME type text/html se parseruje jako prachobyčejné HTML, přestože má DOCTYPE typu XHTML 1.0 STRICT!! Vícekrát to už zde fakt opakovat nehodlám.. 😉 Ale díky za link, který POTVRZUJE moje slova 🙂

  13. #13 Radek Hulán autor webu ▲10 ▼0

    [10] pokud nějaký browser nezasílá v HTTP_ACCEPT, že akceptuje application/xhtml+xml, pak to není problém redakčního systému (který mu pošle text/html), ale chybně napsaného browseru. Opera ani Firefox ani Mozilla touto chybou netrpí, pane Málek 😉

    Vedro, co?

  14. #14 bogey

    Ano samozřejmě, nikde jsem ve svém příspěvku netvrdil nic o parsování, či zobrazování, ale o tom, že i XHTML 1.0 lze zasílat jako text/html a stále to bude XHTML 1.0 podle definice standardů W3C, takže vážně nechápu tu srovnávací tabulku s ostatníma webama.

    Přišlo mi z tvého článku, že se nám snažíš vsugerovat myšlenku, že jakmile není použit application/xhtml+xml, tak se nejedná o XHTML 1.0 validní stránka, což je samozřejmě nesmysl.

  15. #15 Radek Hulán autor webu ▲10 ▼0

    [14] ne, já proboha píšu a 5x opakuji to, že pokud posílám XHTML 1.0 STRICT DOCTYPE s MIME type text/html, tak jej browser nezpracovává jako XHTML jako obyčejné HTML.. Je tedy naprosto jedno, jestli použiji XHTML 1.0 STRICT, či HTML 4.01 STRICT, pokud můj MIME type není application/xhtml+xml... Prostě si takovej web jen hraje na XHTML, aby se cítil moderně, ale v praxi to nemá žádný smysl.. 😉

    Validátor, ten je mimo. Validátor stránku nezobrazuje. Podstatné je, kdy browser použije XML parser, a kdy obyčejný HTML parser, a o tom rozhoduje MIME type, nikoliv DOCTYPE. DOCTYPE, to jsou jen nuance při renderování, ale ne to zásadní rozlišení.

  16. #16 johno

    Někam si dají ikonku XHTML 1.0 valid a jsou tak moc moderní... Fakt je ale ten, že prakticky žádný český web skutečně v XHTML nejede.

    Radku, validita je syntaktická správnosť dokumentu a nie to s aký mime/type sa posiela.

    Keď sa pozrieme do špecifikácie tak ale zistíme, že aj ty máš v niečom pravdu. Robiť by sa to malo ale v tomto prípade to určite nie je absolútne žiadna podmienka validity dokumentu.

    No mňa by však zaujímal napríklad taký test, že o koľko sa stránka rýchlejšie zobrazí, keď pošlem namiesto text/html tak ospevované application/xhtml+xml.

    Ak tento čas nie je zanedbateľný tak naozaj stojí za to posielať prehliadačom čo to strávia application/xhtml+xml. Ak je naopak tento čas zanedbateľný tak sa tu snažíme robiť veci, ktoré sú úplne zbytočné pre používateľov a zbytočné aj z hľadiska dodržiavania štandardov.

  17. #17 Ijin

    btw ja s tebou nesouhlasim - protoze pokud vim, tak jsem zatim nezaznamenal rozdil mezi text/html a application/xhtml+xml.

  18. #18 Radek Hulán autor webu ▲10 ▼0

    [16] vzhledem k tomu, že v případě application/xhtml+xml si prohlížeč nemusí domýšlet, jak a kde nechal kodér díru, protože vše MUSÍ být well-formed, tedy žádný tag navíc či méně, tak by to mělo být (v teorii) rychlejší, pokusím se najít nějaký test, nebo jej udělat..

    Nicméně, toto nebude jediná výhoda XHTML, vidím, že je nejvyšší čas napsat článek další, v čem jsou skutečné výhody.

    re: editace příspěvků - pokud je v něčem jen osobní napadání, mažu to a budu to mazat, nesouhlasné věci, ale bez flames, zde veškeré ponechávám... Toto není fórum zive.cz.

  19. #19 rawe

    hmm. jako je to pekny, ale co mam delat kdyz IE neumi application/xhtml+xml a pritom 98% navstevniku myho webu pouziva IE ????

  20. #20 rawe

    jo jen tak mimochodem ... porad mi tady vyskakuje javascript error 😉