/dev/random

HTML5, pronta la working draft

Dopo alcuni mesi di discussione “informale” il W3C ha rilasciato la Working Draft di HTML 5.

La prima cosa che salta all'occhio (non ho ancora letto tutto il draft, e non penso lo leggerò mai, è lunghissimo!) è che finalmente hanno unificato la numerazione delle varie componenti. Quindi avremo HTML5, XHTML5 e DOM5 (invece di HTML 4.01, XHTML1.0, DOM3, ecc.).

Vi lascio il piacere della scoperta per vedere tutte le novità introdotte, ma se volete una scorciatoia, c'è un anche draft per le differenze con HTML4. Speriamo solo che questa draft rimanga tale il meno possibile. O almeno non tanto quanto sono rimaste draft quelle di CSS3.

Ma la cosa più interessante è che, pur non essendo ancora uno standard, HTML5 inizia già ad essere supportato da alcuni browser, e purtroppo la Microsoft ci mette lo zampino.

Per farla breve: si sono accorti che IE7 non rispetta gli standard benissimo, mentre vogliono rispettarli di più con IE8. Il problema è che molti utenti stanno scrivendo pagine per IE7 pensando che rispetti gli standard quando si specifica un DocType corretto. Una cosa del genere è già presente in IE6, che abilita lo “standards mode” specificando un DocType corretto, mentre va in “quirks mode” se il DocType è errato o mancante. Ma non rispettando totalmente gli standard, questo modo viene chiamato “almost standards mode”. IE7 li rispetta un po' di più... possiamo definirlo “a little bit more almost standards mode”?. IE8 quindi avrà tre metodi di rendering delle pagine: quirks mode, almost standards mode, standards mode. Il problema è quindi come distinguere tra IE7 e IE8, che usano lo standards mode in modo diverso. Con un meta-tag, naturalmente!

Devo ancora raccapezzarmici, ma la mia opinione è che sia l'ennesima porcheria. In pratica verrebbe introdotto un meta-tag che specifica quale versione del browser viene richiesta per visualizzare una certa pagina:

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4">

Quindi se io scrivo un nuovo motore di rendering delle pagine devo andare a controllare cosa la gente ha messo (sempre che lo metta) in OtherUA, almeno finché il mio motore non sarà abbastanza famoso da meritare un tag apposito (notare che lì sopra manca Webkit, motore di Konqueror e Safari), oppure affidarmi alla compatibilità del mio motore con Firefox, e usare le sue versioni. E se l'utente non lo specifica?

Gli sviluppatori sono già abituati a usare un subset di HTML e CSS o a fare salti mortali (fortunatamente alleviati dalla presenza di commenti condizionali in IE) per far funzionare i siti su IE6, IE7, Firefox e Safari. Quelli che non lo facevano prima sicuramente non si ricorderanno nemmeno che esiste questo tag! Non era più semplice rispettare gli standard in IE8 e forzare l'upgrade appena esce, come stanno facendo con IE7? Con IE9 e Firefox4 dovranno tutti implementare almeno 4 o 5 modalità di rendering? I nostri browser supereranno finalmente la soglia dei 2 GiB occupati in memoria appena avviati?

Ai posteri l'ardua sentenza, diceva il saggio.