Nuova versione del validatore del w3c, nuove discussioni sullo standard

La nuova versione 0.8.0 del validatore validator.w3.org, rilasciata il 25 Luglio 2007 dal w3c dopo 3 mesi di test, alimenta le discussioni sul tema degli standard html.
L'ultima versione della sintassi html attualmente disponibile secondo quanto rilasciato dal w3c, è
l'xhtml 1.1.
In realtà xhtml non e' html, anche se vorrebbe raccoglierne l'eredità, ma ha delle regole molto rigide (strict, opzionale nella 1.0 e implicito nella 1.1).
Queste regole includon il modo con cui i tag devono essere scritti e impostati nel codice, la separazione degli stili nei css, e coprono anche elementi esterni al codice.

E' opportuno a questo proposito ricordare che q
uando un client web (browser, bot, o altro) fa una chiamata al server su protocollo http, prima che passi anche il primo carattere della pagina html, web server e client si scambiano delle informazioni. Tra queste informazioni c'e' l'header, che contiene per ogni documento il "content/type" (o " mime.type") che specifica che tipo di documento il browser sta leggendo.
Contrariamente a quanto superficialmente si potrebbe credere, sul web non è l'estensione dei file che stabilisce se il contenuto passato è un'immagine o una pagina html o un file binario da scaricare, ma e' questo questo "content/type".
Generalmente (praticamente sempre) i web server vengono istruiti per dire: se l'url corrisponde ad un file con estensione .jpg restituisci "image/jpeg" come content type, se invece e' un file con estensione .htm o .html, restituisci "text/html" e per un file .css restituisci "text/css".
Ma se volessimo cambiare le regole, potremo impostare il nostro server perche' restituisca "text/html" per le immagini, che vedremo nel nostro browser come una sfilza di caratteri illeggibili.
Per le pagine dinamiche questo content/type e' ancora piu' importante perche l'estensione non sempre c'è, ma anche in presenza di uno script che abbia l'estensione (es. .php o .asp o .jsp) lo script stesso potrebbe produrre non solo pagine html ma anche immagini e altro.
E se come content/type si istruisce il server perchè per una pagina venga specificato "testo/parolacce" il browser come si comporta? Non conoscendola, non la digerisce e infatti la "vomita" proponendo all'utente di scaricare questo file sconosciuto o richiedendogli una applicazione da associarvi per la sua gestione.

Nel definire l'xhtml 1.0 e 1.1 poi, l'idea del w3c approssimativamente è stata: "l'html non va piu' bene, il codice e' troppo pasticciato, creiamo l'xhtml che e' piu' rigido cosi' il codice sara' piu' pulito".
E per l'xhtml, e' stato creato il nuovo content/type "application/xhtml+xml", opzionale per l'1.0 e obbligatorio per la 1.1
Peccato che fino a quel momento quel context/type non esistesse, e quindi i browser esistenti all'epoca si comportino come con gli altri valori sconosciuti: invece di visualizzare la pagina, magari male, chiedono all'utente se la vuole scaricare in locale o se ha qualche "application" associata per gestirla.
Il problema è piu' che attuale, perche' neanche IE6 riconosce questo mime, e se gli diamo una pagina xhtml specificando il content/type="application/xhtml+xml" la vomita.
Si potrebbe ricorrere alla "content negotiation", ovvero il server chiede al browser "che content/type conosci?", quello restituisce una lista, si verifica se tra queste c'e' il nostro "application/xhtml+xml" altrimenti restituiamo "text/html". Facile a dirsi, ma tra pagine statiche e dinamiche, configurazione di apache e script, browser che inviano intestazioni incomplete o che non le inviano affatto, non c'e' garanzia di successo.
Potete approfondire leggendo http://juicystudio.com/article/content-negotiation.php e
http://www.webstandards.org/learn/articles/askw3c/sep2003/

L'esempio piu' lampante che questo problema esiste ce lo da il w3c: nella sua home page usa l'xhtml 1.0 strict, nelle pagine dell'accessibilità usa l'xhtml 1.0 transitional, fortunatamente almeno la pagina che parla dell'xhtml 1.1 sul sito del w3c e' in xhtml 1.1: http://www.w3.org/TR/xhtml11/
ma se andiamo a vedere gli header, salta fuori che questa pagina ha il content type "text/html", contrariamente a quanto la sintassi xhtml 1.1 imporrebbe:
Date Wed, 25 Jul 2007 14:56:23 GMT
Server Apache/1.3.37 (Unix) PHP/4.4.7
...
Content-Type text/html; charset=utf-8
tant'e' vero che verificandola con il validator anche per questa pagina del w3c ci viene restituito come l'important warning "Conflict between Mime Type and Document Type": http://validator.w3.org/check?uri=http%3A%2F%2Fwww.w3.org%2FTR%2Fxhtml11%2F&charset=%28detect+automatically%29&doctype=Inline&group=0
Quindi lo stesso w3c non riesce a rispettare le regole che crea, e possiamo allora noi comportarci allo stesso modo?

Che il w3c stia percorrendo una strada tutta in salita, prima con l'xhtml 1.0, 1.1, ma ancora di piu' con il prossimo xhtml 2, se ne sono accorti in tanti, e tra questi gli autori dei browser mozilla, opera, e apple, che nel 2004 hanno creato il gruppo whatwg.org a cui si e' successivamente aggiunto anche google.
Quello che questi signori vorrebbero, è che lo standard html si evolva (magari anche in maniera piu' veloce di quanto non sia successo con il w3c) ma soprattutto che non si crei una frattura nel web, con due mondi incompatibili tra loro.
Le vecchie pagine devono essere visibili anche con i nuovi browser, e chi ha i vecchi browser deve riuscire a vedere anche i siti realizzati con i nuovi standard, magari in maniera non perfetta ma almeno leggibili.
Se all'utente di Internet Explorer 6 che viene sul nostro sito invece di vedere una pagina gli compare un messaggio che praticamente dice: "non so che fare di questa cosa, al limite te la scarico sul pc e poi ti arrangi", allora vuol dire che non siamo nella direzione giusta.
E così il
whatwg in alternativa all'xhtml propone il suo html5 (scritto senza spazio tra la L e il 5).
Anzi, propone che l'xhtml2 sia messo da parte e il futuro standard html sia proprio l'html5.
La particolarità di questo nuovo standard proposto e' che ogni browser possa vedere tutte le pagine web, magari con una leggera degradazione quando il browser e' troppo vecchio rispetto alla nuova sintassi.
E alla domanda "
l'html5 mettera' fine alla discussione sull'xhtml come text/html" rispondono "Yes" http://blog.whatwg.org/faq/#text-html-debate
E siccome google, apple, mozilla e opera un certo peso ce l'hanno, sono riusciti a far aprire un working group al w3c http://www.w3.org/html/wg perchè l'html5 diventi "lo" standard.
Ma visti i tempi del w3c niente fa pensare che lo possa diventare a breve.
E' interessante (quasi paradossale) la posizione di Microsoft, che non vuole aderire al gruppo di lavoro perchè dice che non c'è garanzia sul fatto che questo standard sia libero da licenze.
Ovviamente il gruppo di lavoro ha tutti gli interessi a rendere la sintassi compatibile con i browser presenti e futuri di Microsoft.


Commenti

Post più popolari