back to top

Il DOCTYPE di HTML5

La sintassi HTML di HTML5 richiede la dichiarazione di un doctype in testa al documento per assicurare che il browser renderizzi correttamente la pagina; quando la risorsa è servita come HTML (tipo MIME text/html) la sintassi corretta è riportata nel codice minimale che segue:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Titolo documento</title>
  </head>
  <body>
    <p>paragrafo</p>
  </body>
</html>

Notate l’utilizzo di meta per indicare l’encoding della pagina, la sintassi affianca la già precedentemente valida dichiarazione equivalente:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

L’esempio pone in evidenza la semplificata dichiarazione del doctype, diversa dalla specifica HTML 4.01 che ne prevede tre diverse, esattamente come per XHTML 1.0.

Come confronto riporto le sintassi sino ad ora utilizzate:

HTML 4.01 Strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

HTML 4.01 Transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

XHTML 1.0 Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

HTML 4.01 Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Frameset

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

In XHTML 1.1 la dichiarazione prevedeva questa sintassi:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Come emerge dagli esempi le dichiarazioni dei Doctype in HTML 4.01 ed XHTML richiedevano un rimando ad un DTD poichè il linguaggio era basato su SGML; HTML5 non è implementazione di SGML, quindi non lo richiede.

La dichiarazione è case-insensitive. Questo si traduce nell’equivalenza tra:

<!doctype html>

e

<!DOCTYPE html>

Personalmente preferisco "normalizzare" il codice scrivendo tags ed attributi in lowercase, per questo motivo opto per la prima variante.

Qualora si intendesse servire il documento come XML (MIME application/xhtml+xml oppure application/xml) il doctype non sarebbe richiesto; di seguito un esempio conforme alla sintassi XML di HTML5:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Titolo documento</title>
  </head>
  <body>
    <p>paragrafo</p>
  </body>
</html>
Pubblicità

In questa guida...