Home > realizzare > accessibilità: codice HTML/XHTML > XHTML 2 e HTML 5
Alcune novità sui futuri linguaggi di marcatura.
a cura di: Alessio Mantegna e Andrea Di Pizio | 29 luglio 2008
I professionisti del web ben comprendono i vantaggi di utilizzare gli standard:
Tratto da Developing with web standards [link esterno] di Roger Johansson (traduzione italiana a cura di Franco Carcillo e Mirko Corli).
In relazione all'uso del linguaggio di marcatura il requisito n° 1 della legge 4/2004 [link esterno] afferma:
Realizzare le pagine e gli oggetti al loro interno utilizzando tecnologie definite da grammatiche formali pubblicate, nelle versioni più recenti disponibili quando sono supportate dai programmi utente. Utilizzare elementi ed attributi in modo conforme alle specifiche, rispettandone l'aspetto semantico. In particolare, per i linguaggi a marcatori [HTML ( HypertText Markup Language ) e XHTML ( eXtensible HyperText Markup Language ):
a) Per tutti i siti di nuova realizzazione, utilizzare almeno la versione 4.01 dell'HTML o preferibilmente la versione 1.0 dell'XHTML, in ogni caso con DTD ( Document Type Definition - Definizione del Tipo di Documento) di tipo Strict; ...
La legge consiglia quindi l'utilizzo dell'XHTML 1.0 Strict preferendolo all'HTML 4.01 Strict.
L'XHTML (acronimo di eXtensible HyperText
Markup Language, Linguaggio di marcatura di ipertesti
estensibile) associa alcune proprietà dell' XML con le
caratteristiche dell'HTML: un file XHTML è un pagina HTML scritta
in conformità con lo standard XML. La conversione dell'HTML
4.01 strict in XHTML 1.0 strict è una operazione veloce e di
facile realizzazione. Per un approfondimento sulle differenze fra
i due linguaggi consultare la guida di HTML.it.
Ma qual'è il vantaggio reale di utilizzare l'XHTML anzichè l'HTML? Ed esistono degli svantaggi?
Il vantaggio più ovvio è in prospettiva: ovvero una pagina XHTML risulta pronta per l'eventuale transizione all'XML. Ma è necessario approfondire la questione.
Nel caso in cui lo sviluppatore scelga l'utilizzo dell'XHTML, i browser come interpretano questo linguaggio?
La risposta è che la maggior parte dei browser interpreta comunque l'XHTML come se fosse HTML poichè:
text/html); I browser, intepretando la pagina XHTML come HTML, sono costretti addirittura a un lavoro aggiuntivo, per quanto impercettibile:
rilevano le modifiche XHTML e le correggono riportandole alle casistiche dell'HTML, come se
fossero presenti errori nella pagina. La pagina è visualizzata
quindi come un normale HTML ma i browser vengono costretti ad effettuare correzioni sul
linguaggio.
Nell'HTML, per esempio, il tag <br /> non dovrebbe contenere al suo interno la propria chiusura; la chiusura viene intrerpretata dal browser come un errore da correggere.
Da notare che queste considerazioni hanno persuaso alcuni esperti a tornare ad utilizzare o a mantenere l'HTML 4.01 per lo sviluppo dei siti web. Si veda per esempio il sito web di Eric Meyer e 456BereaStreet.
Per ovviare al problema appena esposto, gli sviluppatori potrebbero tentare di fornire al
browser la tipologia del contenuto propria dell'XHTML (application/xhtml+xml)
e salvare il file con l'estensione ".xhtml". Ma questa azioni
determinerebbe i seguenti svantaggi:
application/xhtml+xml",
Internet Explorer non li riconosce come una pagina web e quindi
mostra all'utente la finestra di download. Questo problema persiste
ancora su Internet Explorer 7;document.write()"
non funziona nei documenti XHTML trattati come XML;Alcune tecniche in linguaggio PHP e ASP permettono la negoziazione
del contenuto (content negotiation) cioè la possibilità
di fornire contenuti diversi a seconda di quello che i browser supportano.
Per esempio, è possibile inviare ad Internet Explorer l'XHTML
come HTML (text/html) mentre a Firefox l'XHTML come XML (application/xhtml+xml).
La negoziazione del contenuto però non risolve il problema che un minimo errore nel codice XHTML inviato come XML determina la mancata visualizzazione dell'intera pagina.
Immagine del messaggio di errore di XML:

I vantaggi di far interpretare il codice XHTML con il content type adeguato sono i seguenti:
Il W3C ha creato due gruppi di lavoro che si occupano di sviluppare
i due linguaggi del futuro: l'XHTML
2 [link esterno] e l'X/HTML
5. Un gruppo di lavoro esterno denominato
WHATWG
(Web Hypertext Application Technology Working group)
[link esterno] collabora con il W3C alla relizzazione dell'X/HTML
5, il cui rilascio
allo stadio di raccomandazione è previsto entro al fine del 2010.
L'XHTML 2 è giunto allo stato di bozza pubblica ma è
ancora lontano dallo stadio di raccomandazione.
Fino ad oggi l'HTML ha avuto un gran successo proprio per la sua semplicità e per la capacità dei browser di correggere gli errori presenti nel codice mentre l'XHTML non ha ottenuto il successo sperato.
Oggi, però, esistono due importanti necessità:
Queste due necessità richiedono che lo sviluppo delle pagine web rispetti gli standard e le regole di accessibilità.
I due nuovi standard in fase di sviluppo rispondono a queste richieste in modo diverso:
text/html) sia come XHTML (application/xhtml+xml). L'X/HTML 5 è una via di mezzo fra il vecchio HTML e il rigido XHTML 2. Le novità che emergono dalle bozze pubblicate dal W3C rispetto all'XHTML 1.0 sono in continua evoluzione e di conseguenza possono essere soggette a modifiche.
Alcune novità sono le seguenti:
<nl></nl>, con un elemento <label></label> che contiene il titolo della lista:<nl> <label>Ti trovi in:</label> <li href="http://lau.csi.it/realizzare/"> Realizzare</li> <li href=" http://lau.csi.it/ realizzare/accessibilita">Accessibilità</li> <li>Sottotitolazione</li> </nl>
href può essere aggiunto ad ogni elemento per trasformarlo in un collegamento:
<q href="http:lau.csi.it">Il laboratorio di Accessibilità ed Usabilità del CSI-Piemonte</q>
<di></di> che permette di raggruppare termini e definizioni:<dl> <di> <dt>parabola</dt> <dd>particolare figura contenuta nel piano</dd> <dd>racconto breve il cui scopo è spiegare un concetto difficile con uno più semplice o dare un insegnamento morale</dd> </di> </dl>
<iframe></iframe>;<h></h> viene utilizzato con l'elemento di raggruppamento <section></section>. In questo modo è possibile comprendere più facilmente le relazioni gerarchiche: <h>...</h>
<p>...</p>
<section>
<h>...</h>
<p>...</p>
<h>...</h>
<p>...</p>
<section>
<h>...</h>
<p>...</p>
<section>
<h>...</h>
<p>...</p>
</section>
<h>...</h>
<p>...</p>
</section>
<h>...</h>
<p>...</p>
</section>
<blockcode></blockcode> può essere usato al posto degli elementi <pre> e <code> per scrivere blocchi di codice:<blockcode class="Perl">
sub squareFn { my $var = shift; return $var * $var ; }
</blockcode>
<separator/> sostituisce l'elemento <hr />. Il nome dell'elemento <hr /> (riga orizzontale) indica l'esistenza di una linea orizzontale mentre in realtà fu ideato per separare una parte del documento dall'altra. Il nome <separator> è invece più chiaro; edit sostituisce gli elementi <del> e <ins> per indicare le parti di contenuto che sono state modificate:<p>This is <span edit="deleted">cool</span> <span edit="inserted">way cool</span>!</p>
role che permette di aggiungere informazioni sulle caratteristiche di ogni elemento aiutando sia motori di ricerca che le tecnologie assistive ad interpretare meglio le pagine web. Per esempio l'attributo role può indicare che una lista di navigazione è utilizzata come briciole di pane:
<nl role="breadcrumbs">
<label>Ti trovi in:</label>
<li href="http://lau.csi.it/index.shtml">Home</li>
<li href="http://lau.csi.it/realizzare/">Realizzare</li>
<li href="http://lau.csi.it/realizzare/accessibilita">Accessibilità</li>
<li>Sottotitolazione</li>
</nl>
<object></object> ha le stesse funzioni di <img>. Il testo contenuto nei tag di apertura e chiusura ha la stessa funzione svolta dall'attributo alt; Nella specifica permangono gli elementi <img>,<a></a> e gli h numerati che possono generare confusione con i nuovi elementi introdotti.
Da notare che XHTML 2 supporterà un nuovo meccanismo per i form denominato "Xforms" che fornirà più funzionalità: la possibilità, per esempio, che alcuni valori siano calcolati partendo da altri oppure precaricare i dati in un form come valori d'inizio e poi aggiornarli, in stile Ajax, senza però bisogno di utilizzare script.
Lo sviluppo dell'X/HTML 5 ha come obiettivo:
Il successo del web viene attribuito da molti studiosi del web proprio alla flessibilità del codice HTML e alla correzione degli errori da parte dei browser; ancora oggi infatti la maggior parte dei documenti HTML contiene errori nel codice.
Le novità che emergono dalle bozze pubblicate dal W3C rispetto all'X/HTML 5 sono in continua evoluzione e di conseguenza possono essere soggette a modifiche.
Html 5 introduce nuovi elementi che rendono più semplice creare la struttura di una pagina. In particolare i nuovi elementi introdotti (header, nav, section, article, aside, footer) rappresentano le varie sezioni che prima erano definite tramite <div>:
<header></header> rappresenta l'intestazione di una sezione e può contenere diversi sotto-header:<header> <h1>Il LAU</h1> <p>Laboratorio di Accessibilità ed Usabilità</p> </header>
<nav></nav> rappresenta una sezione di link di navigazione:<nav> <ul> <li><a href="/">Home</a></li> <li><a href="/accessibilita">Accessibilità</a></li> <li><a href="/usabilita">Usabilità</a></li> <li><a href="/about">About</a></li> </ul> </nav>
<article></article> rappresenta una parte indipendente della pagina che, per esempio, può essere utilizzata per contenere le notizie, articoli dei blog o commenti :<article id="commento2"> <header> <h4><a href="#commento2" rel="bookmark">Commento2</a> del <a href="http://lau.csi.it">LAU</a></h4> <p><time datetime="2008-05-30T14:00Z">May 30th, 2008 at 14:00</time> </header> <p>Buon articolo</p> </article>
<section></section> rappresenta una sezione generica del documento per esempio un capitolo: <section> <h1>Capitolo 1:</h1> <p>L'accessibilità e l'usabilità del web ...</p> </section>
<aside></aside> include contenuti relativi alle informazioni vicine (spesso usato per definire le barre laterali):<aside> <h1>Archivio</h1> <ul> <li><a href="dic07/">Dicembre 2007</a></li> <li><a href="nov07/">Novembre 2007</a></li> <li><a href="ott07/">Ottobre 2007</a></li> </ul> </aside>
<footer></footer> contiene i contenuti inseriti infondo alla pagina (autore del sito, copyrights, etc.):<footer>2008 LAU</footer>
L'X/HTML 5 cerca di migliorare i controlli della riproduzione dei contenuti multimediali:
<video></video> permette di incorporare un video. L'elemento contiene anche un attributo chiamato poster che permette anche di impostare un'immagine che verrà visualizzata durante il caricamento del video :<video src="video.ogv" controls poster="poster.jpg" width="320" height="240"> <a href="video.ogv">Download movie</a> </video>
<audio></audio> permette di incorporare un file audio:<audio src="music.oga" controls> <a href="music.oga">Download song</a> </audio>
<source> specifica i file video o audio alternativi che il browser può scegliere in base alle impostazioni del PC dell'utente che ne richiede la visione o l'ascolto :<video poster="poster.jpg"> <source src="video.3gp" type="video/3gpp" media="handheld"> <source src="video.ogv" type="video/ogg; codecs=theora, vorbis"> <source src="video.mp4" type="video/mp4"> </video> <audio> <source src="music.oga" type="audio/ogg"> <source src="music.mp3" type="audio/mpeg"> </audio>
Inoltre, riportiamo i seguenti ulteriori nuovi elementi:
<dialog></dialog> rappresenta una conversazione. Contiene l'elemento <dt></dt> che identifica chi parla e gli elementi interni <dd></dd> che rappresentano cosa dice:<dialog> <dt>Socrate</dt> <dd>Dunque, neppure chi diviene ricco sfugge all'infelicità, ma solo chi diviene saggio</dd> <dt>Alcibiade</dt> <dd>Evidentemente</dd> <dt>Socrate</dt> <dd>Non hanno dunque bisogno di mura, di triremi e di arsenali gli stati, caro Alcibiade, se avranno a prosperare in felicità, nè hanno bisogno di masse e di grandezza prive di virtù</dd> <dt>Alcibiade</dt> <dd>Veramente no</dd> <dt>Socrate</dt> <dd> Così se t'appresti a metter mano agli affari dello stato, correttamente e nobilmente, tu devi far parte ai cittadini della tua virtù.</dd> <dt>Alcibiade</dt> <dd>Sicuro.</dd> </dialog>
<figure></figure> con l'elemento figlio <legend></legend> sono utili per l'inserimento delle didascalie alle immagini:<figure> <img src="convegno.jpg" alt="I relatori del convegno" /><legend>Video del convegno il "Web per tutti"</legend> </figure>
<input> è migliorato per supportare email, url, dati numerici e tipi di dati relativi a date e al tempo; <canvas></canvas> permette di includere in una pagina web oggetti grafici gestiti per mezzo di javascript. Per ulteriori informazioni su questo elemento visionare il tutorial Mozilla [link esterno]Le specifiche XHTML 2 ed X/HTML 5 sono ancora in evoluzione e sono possibili ulteriori modifiche e miglioramenti. Il loro sviluppo evidenzierà problematiche e potenzialità.
In un futuro di coesistenza dei due linguaggi, l'XHTML 2.0 sarà utilizzato per le sue caratteristiche di rigidità per esempio in ambito aziendale quando è necessario scambiare molti dati favorendo l'interoperabilità.
Con la sua semantica sofisticata e le stringenti regole di XML, l'XHTML è un linguaggio adatto per le imprese e le attività che richiedono pesanti scambi di dati e massima interoperabilità.
Il futuro HTML potrà essere, invece, scelto da chi ha bisogno della massima compatibilità.
Il codice HTML 5 sarà utilizzato da chi preferisce la retro-compatibilità con i programmi utente basati sul tipo di media "text/html".
In questo momento, potremmo chiederci se conviene sviluppare le pagine utilizzando l'HTML 4.01 o l'XHTML 1.0 trattato come HTML. Per le ragioni fin qui elencate, non vediamo grandi differenze reali.
Incontro con il team di XHTML 2 [link esterno]
su xhtml.com
Incontro con il team di X/HTML 5 [link esterno]
su xhtml.com
X/HTML 5 contro XHTML 2 [link esterno]
su xhtml.com
Serving XHTML as HTML [link esterno]
su xhtml.com
Serving XHTML as XML [link esterno]
su xhtml.com
A Preview of HTML 5 [link esterno]
a cura di Lachlun Hunt su alistapart.com.
Un'anteprima di HTML 5 [link esterno]
su HTML.it (traduzione dell'articolo di Lachlun Hunt)
Il futuro di HTML e di XHTML [link esterno]
a cura di Michele Diodati su diodati.org
Domande e risposte sull'HTML 5 [link esterno]
a cura di Maurizio Boscarol su ecologiadeisitiweb.net
Domande frequenti su HTML e XHMTL [link esterno]
a cura del W3C (traduzione italiana a cura di Pasquale Popolizio)
Html 5 differences from HTML 4 [link esterno]
a cura del W3C
HTML 5 [link esterno]
a cura del W3C
XHTML 2 [link esterno]
a cura del W3C
Xhtml autentico [link esterno]
su wazzubi.com
Il futuro del web
su wazzubi.com
Sending XHTML as text/html Considered Harmful
a cura di Ian Hickson (traduzione italiana a cura di Gabriele Romanato su csszibaldone.com)
Beware of XHTML
su webdevout.net (traduzione italiana a cura di Ezio Melotti e Roberto Mereu)
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
[ Torna all’inizio della pagina ]
Sito realizzato dal Laboratorio di Accessibilità e Usabilità del CSI-Piemonte - Dichiarazione di accessibilità