Domande frequenti su HTML5 a cui ho cercato di rispondere nel modo più esaustivo possibile.
Posso usare HTML5 da oggi?
Certo. L'unico consiglio che posso dare è di non usare ancora i nuovi elementi HTML5 se il tuo sito deve soddisfare dei requisiti di accessibilità. Infatti le tecnologie assistive non supportano ancora i nuovi elementi HTML5.
HTML5 è compatibile con XHTML?
Si, se usi la notazione HTML5 per gli elementi vuoti e non utilizzi i nuovi elementi ed attributi. L'unica cosa che dovrai fare per tornare ad XHTML è cambiare il DOCTYPE e dichiarare il namespace XHTML, in questo modo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
</html>
Internet Explorer supporta HTML5?
IE supporta HTML5 dalla versione 9 in poi. Per le versioni precedenti devi utilizzare uno script per fargli riconoscere i nuovi elementi HTML5:
<head>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
I browser assegnano già degli stili predefiniti ai nuovi elementi HTML5?
Non tutti, o almeno solo le versioni più recenti. Per esempio, IE9 (e inferiori) non lo fa, quindi devi specificarli tu stesso all'inizio del tuo foglio di stile:
article,
aside,
header,
hgroup,
footer,
nav,
section {
display: block;
}
Posso usare SVG con HTML5?
Si se servi il tuo documento come application/xhtml+xml
(esattamente come si faceva con XHTML).
Posso validare i miei documenti come HTML5?
Si, ma essendo HTML5 ancora in stato di bozza la validazione è sperimentale e non ha lo stesso significato che ha per XHTML o HTML4. In altre parole, alcune regole potrebbero cambiare in futuro, quindi quello che è valido oggi potrebbe non esserlo più domani.
Con HTML5 le librerie JavaScript esistenti continueranno a funzionare?
Certo. HTML5 ha solo introdotto nuove API, ma niente nelle specifiche DOM è stato modificato rispetto a quanto avveniva in passato e che permetteva alle librerie JavaScript di funzionare correttamente. Quindi:
$('article', document.body).each(function() {
//...
});
funzionerà come per i vecchi elementi XHTML/HTML 4.
È vero che ora l'elemento body è divenuto opzionale?
Si, e anche altri elementi, ma non ti consiglio di ometterli per il semplice motivo che costringeresti i browser ad un lavoro aggiuntivo sul DOM per riempire le lacune di una marcatura incompleta.
Cosa cambia nella sintassi di elementi e attributi?
Ora puoi usare sia la notazione XHTML che HTML 4. Quindi:
<input type="email" name="email" required="required" />
e
<input type="email" name="email" required>
sono entrambi validi.