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>