Autor Zpráva
Polki
Profil
Chtěl bych se zeptat na validitu XHTML. Jde mi o to, že oficiální validátor W3C mi stránku ohodnotí jako Valid XHTML 1.1
Jen tak jsem projížděl web a narazil jsem na příspěvek, ve kterém se Chamurappi chlubí svým českým Validátorem.
Jen z recesse jsem jej vyzkoušel a vyhodil mi přesně 123 chyb a 27 varování.
Jako první chyba je psáno, že definice typu dokumentu "-//W3C//DTD XHTML 1.1//EN" obsahuje chyby a že příčinou této chyby je posílání XHTML dokumentu s typem „text/html“.
Chtěl bych se zeptat, jak je to možné, když mám soubor PHP a pomocí PHP odesílám v hlavičce HTTP údaje o typu dokumentu: application/xhtml+xml??

Můj kód:

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
         "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
         
<?php 

if (isset($_SERVER["HTTP_ACCEPT"]) && stristr( $_SERVER["HTTP_ACCEPT"], "application/xhtml+xml") ) 
{
    header ("Content-type: application/xhtml+xml; charset=windows-1250");
} 
else 
{
    header ("Content-type: text/html; charset=windows-1250");
} 
?>
Chamurappi
Profil
Reaguji na Polkiho:
Můj validátor neposílá hlavičku Accept, pokud mu to explicitně neporučíš. Části návštěvníků (včetně validátoru) posíláš nevalidní výstup, takže je to vyhodnoceno správně.

Proč vůbec validitu řešíš? A k čemu ti je XHTML 1.1?
Polki
Profil
Ze zkušenosti vím, že když člověk vidí něco, co je uděláno podle některých pravidel, tak na to víc dbá. Přesněji řečeno když příjdeš k někomu a řekneš mu hele založil sem si domácí pekárnu a tady sem udělal rohlík na zkus ho budeš můj první zákazník a ten rohlík nebude vypadat moc hezky, tak si těžko ten rohlík vezmeš a sníš jej, zatímco, když se reprezentuješ hromadou certifikátů a že máš letitou tradici a teď si na ní začal vydělávat, tak to vypadá trošku jinak a mnozí si ten rohlík vezmou, nebo jej alespoň zkusí. Navíc, když je například dokument Strict, tak na to lidi nahlížejí jinak, než na ostatní, hlavně proto, že nechápu, co je Strict za zvěrstvo.

No a poslední důvod je asi to, že aspoň je ten dokument nějak strukturovaný. Jak by se ti líbilo, kdybych ti předal kuchařku, která by měla vytrhané stránky a různě přeházené, nebo ti dal jednotlivé recepty za sebou seřazené? :)

K mému kódu: Podmínka je tam proto, že například takový IE nepodporuje application/xhtml+xml. Chtěl bych se tedy zeptat, jak to udělat, aby to bylo validní po všech stránkách i na Tvém validátoru.
_es
Profil
Polki:
Chtěl bych se tedy zeptat, jak to udělat, aby to bylo validní po všech stránkách i na Tvém validátoru.
Tipujem, že namiesto nejakej teoretickej, prakticky nefunkčnej, verzie XHTML, použiť „normálne“ HTML, trebárs aj HTML5.
Plaváček
Profil
Polki:

Srovnáváš nesrovnatelné. XHTML jako takové je prakticky mrtvé a nemá vůbec cenu to řešit. Protože i "obyčejné HTML" má být dobře strukturované. Už od počátků digitálních věků.
Bubák
Profil
Hezké povídání, ale výběr je ve skutečnosti asi takový:
- nepříliš chutné rohlíky s hromadou certifikátů, včetně přesného složení a zabalené v igelitovém pytlíku
- chutné rohlíky, volně ložené, hygiena nemá k provozu pekárny ani pekařství žádnou výtku

Polki:
když je například dokument Strict, tak na to lidi nahlížejí jinak, než na ostatní
Já také nahlížím jinak, můj názor je, že strict je omezená verze a transitional je plná verze, se všemi HTML 4.01 značkami a atributy. Pokud chceš být moderní, tak věz, že HTML 5 číslo verze neřeší a dělení na strict a transitional v něm není.

Nejvhodnější je nepoužívat XHTML. Pokud Xcosi opravdu potřebuješ, koukni na http://www.zdrojak.cz/clanky/polyglot-aneb-webovym-koderem-pod-oboji/
shaggy
Profil
Polki:
a ten rohlík nebude vypadat moc hezky, tak si těžko ten rohlík vezmeš a sníš jej, zatímco, když se reprezentuješ hromadou certifikátů a že máš letitou tradici a teď si na ní začal vydělávat, tak to vypadá trošku jinak a mnozí si ten rohlík vezmou, nebo jej alespoň zkusí
Preto je na čase, aby si ten svoj nie moc pekný rohlík prerobil a urobil niečo, čo aspoň trochu dokazuje, že máš niekoľkoročnú tradíciu ;-)

Navíc, když je například dokument Strict, tak na to lidi nahlížejí jinak, než na ostatní
Áno, väčšinou na to pozerám tak, že koder zaspal dobu a má mylné informácie. Je to isté, ako keby si ten tvoj pekár zavesil certifikát z VUML.

Jak by se ti líbilo, kdybych ti předal kuchařku, která by měla vytrhané stránky a různě přeházené
Ale veď to je to, čo robíš.

Ach, človek sa po pár mesiacoch vráti na fórum a chvíľu rozmýšľa, či sa nevrátil aj v čase...
Chamurappi
Profil
Reaguji na Polkiho:
Argumentace analogiemi mi nikdy moc nešla. Rozumím značkovacím jazykům, nejsem expert na rohlíky, ani na vaření — dodnes jsem ani netušil, že existuje nějaké správné pořadí receptů v kuchařce. Znám asi jen jeden složitější recept a ten mám vyfocený v telefonu, kde se mi celkem špatně hledá mezi ostatními fotkami, když ho potřebuji.

když je například dokument Strict, tak na to lidi nahlížejí jinak
Máš na to nějaký průzkum, nebo je to jen tvé přání?

Podmínka je tam proto, že například takový IE nepodporuje application/xhtml+xml.
Prohlížečů neznajících tento konkrétní MIME typ bude víc, i když asi nejsou moc známé a používané. Nové verze Exploreru ho podporují. Vyhledávače už možná také, archivační roboti nevím…
XHTML se narodilo mrtvé, což tvůrcům prohlížečů začalo docházet v roce 2001, mně v roce 2004 a konsorciu v roce 2007, letos je řada na tobě :-)

Chtěl bych se tedy zeptat, jak to udělat, aby to bylo validní po všech stránkách i na Tvém validátoru.
Posílej validní výstup všem. Pokud někomu servíruješ text/html, zajisti, abys mu posílal validní HTML.
Polki
Profil
To Bubák
XHTML 1.1 také neřeší rozdělení ;)

Hezké povídání, ale výběr je ve skutečnosti asi takový:
- nepříliš chutné rohlíky s hromadou certifikátů, včetně přesného složení a zabalené v igelitovém pytlíku
- chutné rohlíky, volně ložené, hygiena nemá k provozu pekárny ani pekařství žádnou výtku

Ehm, není to to, co jsem psal? Myslel jsem ten samý výrobek, jen s doporučením a bez.

To Plaváček
Když napíšeš nesmysl v HTML, tak to nikoho nezajímá a každý to respektuje. Když ale napíšeš nesmysl v XHTML, tak už je něco špatně a měl by si to předělat. Očividně ti uchází důvod vzniku XHTML. Je to právě proto, že předtím si mohli programátoři dělat co chtěli a tedy si každý zapisoval kód jinak a všechny chyby byli akceptovatelné. (I když si udělal dost hnusnou chybu, stejně vše fungovalo) Přechod takových webů k jiným administrátorům a webmasterům pak končil katastrofou a v mnoha případech také tím, že se musel kód zahodit a vytvořit úplně nový, což samozdřejmě stálo spoustu času a peněz navíc. Kvůli těmto problémům vzniklo W3C, kteří začali tvořit nějaký standard zápisu, z čehož vzniklo XHTML. To se nelíbilo programátorům, protože proč by se přeci měli omezovat na něco, když se nemusí nic učit a pořád si mohou dělat co chtějí + za opravy dostanou peníze navíc (klidně si práci udělá 2x, protože taky dostane 2x zaplaceno). Není tedy divu, že se XHTML zavrhlo. S vycházející verzí HTML5 se začlo připravovat i XHTML 2, které má asociovat s HTML 5 a je pro ty, kteří chtějí dodržovat alespoň nějaký řád.

To Chamurappi
Mám tedy na výběr, buď předělat kód do HTML, nebo vytvořit novou verzi stránek, s HTML kódem mám pravdu?
_es
Profil
Polki:
Když napíšeš nesmysl v HTML, tak...
Asi si „zaspal“ veľa rokov v čase. Skús si pohľadať niečo novšie, než tie staré „dogmy“.
Polki
Profil
_es:
HTML 4.01

Přišla tuším v roce 1997. Kromě několika nových tagů (div, span, pokročilejší tabulky) přinesla zjednodušení v tom, že jasně deklarovala oddělení smyslu a vzhledu. Verze HTML 4.01 plně počítala s tím, že existují kaskádové styly (CSS), takže označila formátování prvků přímo v HTML za zastaralé. Ovšem autoři webů si brzo zvykli pracovat s takovou kombinací HTML 3.2, 4.01 a CSS 1, kterou jim prohlížeče dovolovaly. A nutno říct, že jim toho dovolovaly hodně, v podstatě všechno. Od roku 1999 v podstatě dodnes tedy může autor použít cokoli a prochází mu to.

Verze HTML

Toto není jediný zdroj. Kdo zaspal? Jak jsem psal. HTML se používá jen proto, že nikdo nekontroluje kód programátorům a ti tam tedy mohou dělat prasárny jaké chtějí a jelikož jim do toho XHTML začalo kecat, tak ho vyšoupli. ;)


Jinak jak už bylo psáno na stránkách, které jsem výše poslal, tak HTML 4.01 sama deklarovala, že se HTML už nebude dál vyvíjet.
Původní náhrada byla XHTML, ale jelikož se to lidem z důvodů popsaného výše nelíbilo, tak byli nuceni přejít na vývoj HTML5. XHTML2 se vyvynulo pro ty, kteří chtějí dodržovat alespoň nějaké zásady.

A proč chci validitu? Proč si ty vytvořil validátor, když neuznáváš validitu?
Trejpa
Profil
Polki:
Proč si ty vytvořil validátor, když neuznáváš validitu?
Protože ji pochopil.

Neboj, ty na to třeba taky přijdeš. Přečti si webylon a ujasni si, co je pro tvůrce stránky důležité.
_es
Profil
Polki:
No ale treba si ten odkazovaný článok aspoň prečítať. Okrem toho v tom máš zmätok, vraj „S vycházející verzí HTML5 se začlo připravovat i XHTML 2, které má asociovat s HTML 5 a je pro ty, kteří chtějí dodržovat alespoň nějaký řád.“. Čo si predstavuješ pod pojmom „asociovať“? Išlo o dva mimobežné návrhy, viď krátky článok www.lupa.cz/clanky/xhtml-2-pravdepodobne-miri-k-ledu - treba si všimnúť aj dátum.
Polki
Profil
_es:
Chybka se vloudila chtěl jsem napsat XHTML5, které je součástí specifikace HTML 5.


A tou asociací jsem myslel, že to jde pěkně dohromady a W3C se snaží HTML a XHTML spojit v jedno. Z toho důvodu je také možné deklarovat dokument jako HTML5 pomocí 2 způsobů:

1)
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

2)
<?xml version="1.0" encoding="UTF-8" ?>

<html xmlns="http://www.w3.org/1999/xhtml">

V druhém případě se musí posílat v hlavičce souboru také správný MIME typ (application/xml nebo application/xhtml+xml), jenže ten podporuje až IE od verze 9. TO je přesně ten problém, který se snažím celou dobu vyřešit.
Chamurappi
Profil
Reaguji na Polkiho:
Proč si ty vytvořil validátor, když neuznáváš validitu?
Jak praví staré vulkánské přísloví: „Jen Nixon mohl jet do Číny“ :-)

Očividně ti uchází důvod vzniku XHTML.
Hlavní motivací pro vznik byla agresivní podpora XML ze strany W3C a nespokojenost značkovacích teoretiků se složitostí SGML. Jenže to konsorcium trochu nedomyslelo, samotnou XHTML specifikaci odfláklo. Po pár měsících začalo být zřejmé, že páni standardizátoři nad implementací v reálném světě moc nepřemýšleli — a nejde zdaleka jen o tu přísnost, v XHTML nebylo domyšlené prakticky nic, neexistovala XML schémata, nevyužíval se vůbec potenciál jmenných prostorů, přístup k entitám de facto otevřeně odporoval XML specifikaci (má či nemá prohlížeč číst DTD?), nikde nebylo vysvětleno, jak má v praxi fungovat modularizace. Byl to takový napůl neúmyslný propracovaný podvod, včetně obhajující neozdrojované předpovědi, že v roce 2002 bude 75 % přístupů na web z alternativních platforem (= ne z PC). Mnoho následujících let stavělo W3C další Xdomečky z Xkaret … a vlastně jen čekalo, kdy mu někdo bouchne zaťatým nosem do stolu a veškerou tu vznešenou abstrakci sesype. Mezitím si kodéři s pomocí nakopnutého W3C validátoru jazyk zbožštili — začali věřit v blahodárné účinky něčeho, co de facto nepoužívali (kvůli MIME typu). Český validátor jsem stvořil právě proto, aby se dozvěděli, že používají HTML. A že z posvátné trojice XHTML <!doctype>, validita a přístupnost musí jedna modla vypadnout. Kterou tedy obětuješ ty?

Řekl bych, že během posledních let umírá i XML (klesá popularita RSS, strukturovaná data se čím dál častěji předávají raději v JSONu), takže ani dodělané a učesané XHTML ve formě XHTML 5 se patrně moc neujme, i kdyby mělo dokonalou podporu mezi všemi používanými prohlížeči (což teď nemá). Není důvod riskovat selhání stránky u návštěvníka, když už neexistuje společenský tlak prahnoucí po XML.

To se nelíbilo programátorům, protože proč by se přeci měli omezovat na něco, když se nemusí nic učit a pořád si mohou dělat co chtějí
Tohle je naivní pohádka. Síla pohřbívající XHTML vzešla ze strany výrobců prohlížečů a musela vzdorovat zfanatizovaným tvůrcům XHTML kódů (kteří vesměs všichni používali text/html). Prasárny se dělaly, dělají a budou dělat nezávisle na značkovacím jazyku. Správná specifikace má garantovat jednotné chování (i při špatných vstupech), ne vychovávat. Na vychovávání stačí učebnice a validátory.

Když ale napíšeš nesmysl v XHTML, tak už je něco špatně
Buď uděláš syntaktickou chybu v XML (takovou, která nemusela/mohla být chybou i v HTML) a stránka ti nepojede vůbec, nebo ti to projde úplně stejně jako v HTML. Třeba <img hatlapatla="7"><table/></img> musí XHTML prohlížeč nějak zpracovat, i když to není validní.
Co když se XHTML stránka návštěvníkovi nenačte celá? Nekompletní dokument není správně sestavené XML, protože minimálně kořenový element není uzavřený. Nebo co když ji po cestě nešetrně vylepší proxy server?

XHTML2 se vyvynulo pro ty, kteří chtějí dodržovat alespoň nějaké zásady.
Posledním zoufalým výdechem pracovní skupiny odpovědné za XHTML 2 byl návrh XHTML 1.2. Smilovali se nad targetem! :-)
Polki
Profil
Ok beru vaše názory. Problém s XML znám a je fakt, že se od něj upouští. K validátoru W3C mohu dodat jen to, že když posíláte MIME text/html, tak vám rovnou vypíše, že se ověřuje podle HTML a ne podle XHTML. Pokud jej natvrdo chcete ověřit podle XHTML, pak vám validátor vyplivne hlášku, že máte špatný MIME a měli byste si jej změnit.

Dospěl jsem k názoru, že stejně přejdu na HTML, jelikož mi nic jiného okolí stejně neumožňuje. Mohl bych zůstat u XHTML a vytvořit speciální verzi pro prohlížeče nepodporující XML, ale je to zbytečnost.

Díky tedy všem za názory.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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