Quando tempo fa l'XHTML comincio' a diffondersi, pensai - come credo molti - che fosse l'evoluzione dell'HTML, la nuova frontiera del web design. Poi pero' ho passato diverso tempo senza bene capire quali fossero i vantaggi visto che le uniche differenze visibili erano gli slash sparsi qua e la' in tag come <input> e
.
Poi leggendo in giro mi e' capitato di trovare questo articolo che e' stato decisamente illuminante.
Riassumendo il punto principale, l'XHTML non e' solo sintassi, ma richiede un particolare content-type per essere interpretato come markup XML-like. Il content type corretto e' "application/xhtml+xml" mentre il normale HTML viene servito come "text/html". Ora, il problema fondamentale e' che nessuna versione di Internet Explorer supporta il content type "application/xhtml+xml", quindi qualunque webserver fornisce tutte le pagine come "text/html" indipendentemente dal DOCTYPE. La conseguenza di cio' e' che una pagina dichiarata XHTML servita come "text/html" altro non e' che una pagina HTML con markup invalido (perche' la sintassi XHTML non e' corretta per il "semplice" HTML4).
Una volta appurato questo, i vantaggi dell'XHTML sostanzialmente spariscono perche' i vari requisiti (come il fatto che un documento debba essere "well-formed") rimangono solo teorici visto che i browser usano il parsing HTML (che e' - diciamo - molto largo di maniche) e non quello XML (che invece e' molto rigido e se un documento e' invalido da' un errore). Sta quindi solo al web designer scrivere codice corretto, perche' anche non facendolo le pagine vengono mostrate lo stesso; ma questo si puo' fare anche con l'HTML.
Un altro vantaggio spesso attribuito all'XHTML e' che incoraggia la separazione del contenuto dalla presentazione. In realta' pero' l'XHTML non offre nulla in piu' dell'HTML: si possono usare gli stessi style sheet per entrambi i markup. Quindi anche qui il discorso si riduce esclusivamente alla bravura del web designer.
A seguito di questi ragionamenti, mi domando come mai l'XHTML abbia avuto tutta questa diffusione giacche' non mi sembra che ci sia alcun vantaggio rispetto all'HTML4. E' soltanto una moda o mi sto perdendo qualche punto fondamentale?