Semplicemente

Introduzione ai CSS - Due parole su XHTML

Monday 8 October 2007 Marco Bertoni, ultimo aggiornamento: Tuesday 19 August 2008.

Quali sono le differenze tra XHTML e HTML? Tutti i browser "capiscono" XHTML?

Le differenze con HTML 4.01 non sono molte, ma rispettarle è fondamentale: in XHTML, infatti, i documenti devono essere ben formati e validi, pena la mancata validazione e, nei browser che interpretano correttamente XHTML, l'interruzione del rendering del documento. Ecco le differenze, insieme ad alcuni consigli:

  • Gli elementi e i nomi degli attributi devono essere scritti in minuscolo.
  • I valori predefiniti degli attributi devono essere scritti in minuscolo:
    • Alcuni attributi hanno valori predefiniti, per esempio, l'attributo type dell'elemento input ha valori predefiniti come i seguenti: text, password, checkbox, radio, submit, image, reset, button, hidden o file i quali devono essere scritti in minuscolo.
  • I marcatori di chiusura sono obbligatori per gli elementi non vuoti e/o vuoti:
    • Gli elementi non vuoti sono quelli che possono contenere testo o altri elementi. HTML consente di omettere il marcatore di chiusura per alcuni elementi non vuoti, per esempio P. Con XHTML questo non è più possibile.
    • Gli elementi vuoti non possono contenere testo o altri elementi. Essi sono: area, base, br, col, hr, img, input, link, meta e param. HTML consente di omettere il marcatore di chiusura per questi elementi, mentre XHTML non lo permette.
  • E' necessario minimizzare la sintassi degli elementi vuoti: <br></br> diventa <br />.
  • Per assicurare la retrocompatibilità è consigliabile aggiungere sempre uno spazio prima di chiudere gli elementi vuoti: <br/> diventa <br />.
  • Gli elementi devono essere annidati in modo corretto.
  • I valori degli attributi devono essere racchiusi tra virgolette (apici singoli o doppi).
  • I caratteri di marcatura (sono caratteri utilizzati per delimitare elementi, attributi o caratteri speciali: <, >, & e ") utilizzati nel testo o nei valori degli attributi devono essere sostituiti dalle opportune sequenze di escape:
    • < diventa &lt;
    • > diventa &gt;
    • & diventa &amp;
    • " diventa &quot;
  • Gli attributi booleani (la presenza dell'attributo implica il valore true, mentre l'assenza implica il valore false) devono essere scritti per esteso:
    • In HTML gli attributi booleani possono essere scritti in forma minimizzata, scrivendo solo il valore dell'attributo, o in forma completa con il nome e il valore. In XHTML deve essere sempre utilizzata la forma completa: <option value="1" selected> diventa <option value="1" selected="selected">.
  • Se gli script o i fogli di stile incorporati contengono i caratteri di marcatura <, >, & o ", il contenuto di questi elementi deve essere racchiuso in una sezione CDATA, per esempio:
    1. <script type="text/javascript">
    2. <![CDATA[
    3. alert('Tom & I want to say "10 > 9"');
    4. ]]>
    5. </script>

    La maggior parte dei browser non supportano le sezioni CDATA quando eseguono il parsing del documento come HTML (cioè quando XHTML è servito come text/html). Una soluzione è commentare la sezione:

    1. <script type="text/javascript">
    2. // <![CDATA[
    3. alert('Tom & I want to say "10 > 9"');
    4. // ]]>
    5. </script>
  • Quando XHTML è processato come XML gli spazi bianchi iniziali e finali e le interruzioni di riga negli attributi sono rimossi. Per ottenere un comportamento coerente, indipendentemente da come XHTML è processato, si deve evitare di utilizzare spazi bianchi iniziali e finali e interruzioni di riga negli attributi.

Internet Explorer e XHTML

La maggior parte dei server (a meno che non li si configuri ad hoc) servono erroneamente XHTML come text/html e non con il corretto tipo MIME application/xhtml+xml.

Se un server Web identifica il tipo di contenuto per una data pagina come text/html, il browser al quale invierà la pagina ne eseguirà il parsing come se fosse HTML.

Se il tipo di contenuto è identificato come application/xhtml+xml, il browser eseguirà il parsing della pagina come se fosse XML. Ciò significa che rispetterà le regole di XML: se il codice contiene errori (come la mancanza di marcatori di chiusura, elementi annidati in modo scorretto, attributi non chiusi tra virgolette ecc.) il browser non eseguirà il rendering della pagina.

Tutte le versioni di XHTML dovrebbero essere servite come application/xhtml+xml ma Internet Explorer, ad oggi, non supporta questo tipo MIME, a causa di ciò molti sviluppatori continuano a servire XHTML come HTML. Questo grazie al fatto che, quando è scritto in modo corretto, XHTML 1.0 è retro-compatibile con HTML 4.01.

Se si desidera utilizzare le DTD XHTML nel modo più corretto è possibile utilizzare la tecnica chiamata content negotiation con la quale ai browser Firefox, Opera e Safari XHTML è servito correttamente come XML, mentre a IE è servito come HTML. Questa tecnica si implementa utilizzando linguaggi di scripting come PHP, ASP ecc. oppure agendo direttamente sulla configurazione del server.

Per approfondire gli argomenti accennati in questo articolo consiglio leggere le risorse del sito Xhtml.com.

Contribuisci alla serie di articoli Introduzione ai CSS

Scrivi un commento

XHTML: Puoi utilizzare questi marcatori: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Non ho commentato ma desidero ugualmente essere avvisato quando è pubbicato un commento: