CSS Zibaldone

[ Home ] - [ Articoli ] - [ Traduzioni ] - [ Altro ] - [ Appunti sui CSS ] - [ L'autore ]

Sei qui: Home > Traduzioni > Inviare l'XHTML come text/html è ritenuto dannoso

Inviare l'XHTML come text/html è ritenuto dannoso

Articolo originale: http://www.hixie.ch/advocacy/xhtml

Autore: Ian Hickson

Traduzione: Gabriele Romanato (12 febbraio 2007)

Autore: Ian Hickson <ian@hixie.ch> (I commenti sono ben accetti)

Riassunto

Vengono discussi alcuni problemi risultanti dall'uso del MIME type text/html in unione al contenuto XHTML. Viene suggerito che l'XHTML servito come text/html è debole e l'XHTML servito come text/xml è dannoso. Così gli autori che destinano il loro lavoro alla fruizione pubblica dovrebbero usare HTML 4.01, e gli autori che intendono usare XHTML dovrebbero servire la loro marcatura come application/xhtml+xml.

Altre versioni

Une traduction française est disponible: http://www.hixie.ch/advocacy/xhtml.fr

Il team di sviluppo di Safari ha inserito un post in merito all'argomento sul loro blog: http://webkit.org/blog/?p=68.

Contesto

Questo articolo è stato scritto originariamente nel contesto di questo post: http://ln.hixie.ch/?start=1031465247&count=1

Da allora è stato aggiornato regolarmente per correggere gli errori messi in evidenza su varie mailing list e altri forum di discussione. Come per la fine del 2004, esso ha la stessa rilevanza avuta all'epoca della sua pubblicazione.

Si noti che questo documento compara l'XHTML 1.0 conforme nell'Appendice C con l'HTML 4.01, poichè questa è l'unica variante di XHTML che può essere inviata come text/html.

Terminologia: l'Appendice C si riferisce alle cosiddette "Linee guida di compatibilità con l'HTML" della specifica XHTML che si trovano all'indirizzo http://www.w3.org/TR/xhtml1/#guidelines.

Sommario d'uso

Se usate XHTML, dovreste servirlo con il MIME type application/xhtml+xml . Se non lo fate, dovreste usare HTML4 invece di XHTML. L'alternativa, usare XHTML ma servirlo come text/html, causa numerosi problemi descritti di seguito.

Sfortunatamente, IE6 non supporta application/xhtml+xml (difatti, non supporta affatto XHTML ).

Perchè usare text/html per l'XHTML è un male

Quello che succede di solito agli autori che decidono di inviare XHTML come text/html è il seguente:

  1. Gli autori scrivono XHTML ritenuto funzionante solo per la zuppa di tag [tag soup, N.d.T.] o per i browser HTML4, e non per i browser XHTML, e lo inviano come text/html. (Le supposizioni comuni sono elencate di seguito)
  2. Gli autori vedono che tutto funziona bene.
  3. Passa il tempo.
  4. Gli autori decidono di inviare lo stesso contenuto come application/xhtml+xml, perchè, dopo tutto, è XHTML.
  5. Gli autori si trovano di fronte ad un sito orribile. (Si veda più avanti l'elenco dei motivi)
  6. Gli autori cominciano a detestare l' XHTML.

I punti da 1 a 5 sono stati riscontrati da ogni persona con cui ho parlato che è passata al MIME type XHTML. L'unico motivo per cui in questi casi non si è verificato il punto 6 è perchè si trattava di autori esperti che avevano appreso un modo per risolvere il problema col loro contenuto.

PROBLEMI SPECIFICI

I seguenti sono problemi che affliggono i documenti quando questi passano da text/html a application/xhtml+xml:

COPIA E INCOLLA

Ho il sospetto che il problema peggiore, e anche il motivo principale, per cui la maggior parte delle pagine XHTML DAVVERO non valide, stia nel fatto che gli autori, che non conoscono l'XHTML, hanno copiato e incollato il loro DOCTYPE da un altro documento. Così anche se voi scrivete XHTML valido, usando XHTML, è probabile che incoraggiate gli autori che non conoscono il modo per scrivere XHTML valido ad affermare invece che lo sanno fare.

Perchè cercare di usare XHTML e inviarlo come text/html è un male

Questi problemi non riguardano tanto gli autori che validano regolarmente le loro pagine, quanto piuttosto gli altri.

Il mito dei documenti XHTML 1.0 compatibili con l' HTML

La specifica RFC 2854 fa riferimento a "un profilo d'uso di XHTML compatibile con HTML 4.01". Non esiste una cosa simile. I documenti che seguono le linee guida nell'appendice C non sono documenti HTML 4.01 validi. Si avvicinano soltanto all'essere gestibili come zuppa di tag dai parser, proprio come molte altre pagine web.

Gli esempi più semplici sono:

Usare XHTML e inviarlo come text/html è lo stesso, da un punto di vista dell'HTML4, che scrivere una zuppa di tag (si veda Perchè i browser non possono trattare l'XHTML dato in text/html come XML below).

Nota: questo viene trattato dal problema HTMLWG XHTML-1.0/6232.

Perchè i browser non possono trattare l'XHTML dato in text/html come XML

I vantaggi di XHTML

Se inviato come application/xhtml+xml, l'XHTML ha diversi vantaggi:

  1. Il contenuto XHTML sarà in grado di essere unito e di trovare una corrispondenza con il contenuto di altri namespace conosciuti (in particolare, MathML). Questo è il vantaggio principale per gli autori.
  2. I browsers individueranno subito gli errori nella corretta scrittura.
  3. Gli strumenti che interagiscono con i documenti XHTML garantiscono un documento ben formato.
  4. Il contenuto XHTML può essere analizzato con un parser più semplice di quello usato per una zuppa di tag, e molto più di uno SGML.

Tuttavia, nessuno di questi vantaggi si applica se un documento XHTML viene inviato come text/html, e poichè gli autori sanno che le loro pagine dovrebbero essere leggibili dal browser web più popolare, che non supporta application/xhtml+xml, non c'è alcun motivo per usare XHTML attualmente.

Conclusione

Ci sono pochi vantaggi nell'usare XHTML se lo inviate come text/html e molti svantaggi.

Inoltre, attualmente, la maggioranza (oltre il 90% secondo le statistiche più diffuse) del mercato dei browser non è in grado di rendere il vero contenuto XHTML inviato come text/xml (o altri MIME type XML). Per esempio, andate con IE su:

http://www.mozillaquestquest.com/

Solo Mozilla, i browser basati su Mozilla come Netscape 6 7, e le versioni recenti di Opera e Safari, sono in grado di rendere correttamente questo sito. (IE6 un albero del DOM!)

Gli autori che non vogliono usare i MIME type XML dovrebbero continuare a scrivere HTML 4.01 valido. Quando i programmi utente che supportano XML e XHTML dati con uno dei MIME type XML si saranno diffusi, allora gli autori potranno riconsiderare l'apprendimento e l'uso di XHTML.

(Gli autori esperti dovrebbero vedere l'Appendice B.)

Ulteriori letture

Ho scritto un altro articolo sull'argomento: le persone vogliono che i browser trattino i documenti XHTML dati in text/html come XML e non come zuppa di tag.

http://www.damowmow.com/playground/xhtml-in-uas.xhtml

Henri Sivonen ha scritto un articolo simile domandandosi quale sia l'obiettivo di XHTML. XHTML:

http://www.hut.fi/u/hsivonen/xhtml-the-point

Ci sono molti altri post in merito sulle mailing list, per esempio su www-talk. Il seguente post riassume alcuni problemi sull'uso di text/html per il contenuto XHTML con estensioni XML:

http://lists.w3.org/Archives/Public/www-talk/2001MayJun/0046.html

Alcune persone hanno avuto i problemi citati in questo mio articolo, per esempio:

http://flrant.com/index.php?id=P21

Altri punti interessanti si trovano anche in altri post, per esempio:

> Ma Mozilla usa il suo parser xml per http://www.w3.org/ ?

No. Se lo facesse, renderebbe la pagina senza nessun riferimento esteso ad entità carattere, in quanto Mozilla non è un parser validante e quindi salta il parsing della DTD e non sa cosa sono &nbsp;, &middot; e &copy;. Per non dire che finirebbe per ignorare la sezione specifica per la stampa del foglio di stile, la quale usa nomi di elementi in maiuscolo e non troverebbe corrispondenze per gli elementi in minuscolo (riga 138 del primo foglio di stile), e userebbe un colore di sfondo non previsto per la pagina, in quanto il foglio di stile imposta lo sfondo su <body> e non su <html>, il che in XHTML porterebbe ad una resa differente rispetto all'equivalente in HTML4 (stesso foglio di stile, riga 5).

-- http://lists.w3.org/Archives/Public/www-talk/2001MayJun/0004.html

O questo post, vicino alla fine del thread:

Sto ancora cercando un buon motivo per scrivere siti web in XHTML in questo momento, dato che la maggioranza dei browser non supporta XHTML. L'unico motivo che ho trovato (da Dan Connolly [1]) è che rende la gestione del contenuto più semplice con gli strumenti XML... ma sarebbe altrettanto semplice convertire l'XML in zuppa di tag o in HTML prima della pubblicazione, e così non sono sicuro di capirlo. Dato che XML è per la gestione dei contenuti, perchè questo implica che una minoranza di browser devono trattare il documento come XML invece che come zuppa di tag? Qual'è il vantaggio? E dato che chi usa gli strumenti XML spesso gestisce anche i siti, perchè non ci si affida ad una procedura lato server piuttosto che spingere gli autori a spendere le loro già scarse risorse nell'implementazione di uno sniffing del tipo di contenuto?

[1]

http://lists.w3.org/Archives/Public/www-talk/2001MayJun/0031.html

-- http://lists.w3.org/Archives/Public/www-talk/2001JulAug/0005.html

Appendice A: application/xhtml+xml

Si veda: http://ln.hixie.ch/?start=1036767231&count=1

Appendice B: autori esperti

Alcuni autori esperti sono in grado di dare l'XHTML come application/xhtml+xml ai browser che lo supportano, e come text/html ai vecchi browser.

Presupponendo che usiate XHTML 1.0 conforme all'Appendice C (o che avete verificato che l' XHTML 1.0 che inviate è compatibile con i processori da zuppa di tag), allora va bene. Quello che dico è SOLO che inviare l'XHTML come text/html è pericoloso.

Nota: dare l'XHTML 1.1 come text/html non è MAI un bene. Non ci sono specifiche che lo consentono. Dare l' XHTML 2.0 ancora in sviluppo (senza test) non è MAI un bene, in quanto questa specifica non ha ancora raggiunto lo stato di Candidate Reccomendation (CR).

Si noti anche che vorrei suggerire agli autori esperti di non usare XHTML come text/html, in quanto molti autori copiano e incollano la marcatura da altri autori e questo può facilmente portare a copiare XHTML valido ma usarlo come HTML4.

Appendice C: Riconoscimenti

Grazie a Nick Boalch per l'introduzione. Grazie a Dan Connolly per la pignoleria che ha migliorato la qualità dell'articolo. Grazie a Ted Shaneyfelt, Quinn Comendant, per i miglioramenti al testo suggeriti.

Appendice D: Note a piè di pagina

[1] Il termine "trattato come una zuppa di tag" si riferisce al fatto che i browser di solito sono molto permissivi nella loro gestione degli errori, e non supportano nessuna delle caratteristiche "avanzate" di SGML. Per esempio, i browser trattano la stringa "<br/>" come "<br>" e non come " <br>&gt", essendo l'ultima quella che dovrebbe essere secondo HTML4/SGML. Allo stesso modo i browser del mondo reale non hanno problemi a gestire contenuto come "<b> foo <i> bar </b> baz </i>" anche se secondo le specifiche HTML4 non ha senso.