Quando si propone una nuova tecnologia è fatale sollevare dubbi e obiezioni. Consideriamo il quadro d'insieme degli attuali linguaggi web.
Milioni di pagine sono scritte in HTML. Una gran parte di esse non è valida rispetto alle raccomandazioni del W3C, ma funziona. L'adozione di un nuovo linguaggio (XHTML) non è obbligatoria nè forzata: tutti i browser in commercio sono in grado di interpretare HTML 4. XHTML non introduce nuove features rispetto al suo predecessore. "Perchè allora imparare un nuovo linguaggio?". "Perchè dovrei riscrivere tutto il mio sito?". Sono domande scontate, ma legittime. Ecco alcune possibili risposte ed un semplice elenco dei vantaggi di XHTML.
Codice pulito e ben strutturato
Il passaggio ad XHTML può essere visto come un ritorno alle origini. HTML è nato come linguaggio per definire la struttura di un documento. Non ha nulla a che vedere con la presentazione. Eppure, è stato stiracchiato da tutte le parti, costretto a svolgere compiti per cui non è stato creato. Il caso delle tabelle è quello macroscopico. Sono nate per la presentazione di dati tabulari. Sono state impiegate come l'unico mezzo per costruire il layout della pagina.
E ancora: quando si sentì la necessità di gestire la tipografia dei documenti, venne introdotto il tag <font> con i relativi attributi. La conseguenza è quella di pagine cariche di elementi inutili, più pesanti, difficili da modificare.
La responsabilità principale per questo uso improprio di HTML non ricade sugli sviluppatori. Nel 1996 (le date sono importanti!) il W3C ha rilasciato la versione definitiva di CSS1. Era questa la tecnologia destinata a definire la presentazione dei documenti. L'idea era chiara: HTML per la struttura, CSS per lo stile e il layout. Eppure, per avere browser che supportano decentemente questi standard si è dovuto attendere il 2000-2001. Quattro anni, tre generazioni di browser, milioni di siti costruiti tentando di risolvere incompatibilità e bug.
Con XHTML, almeno nella sua versione Strict, si torna ad un linguaggio che definisce solo la struttura. Semplicemente, se inserite elementi non supportati (font, larghezza per le celle di tabelle o margini per il body, per citare solo alcuni esempi) il documento non è valido. Quindi: la formattazione si fa con i CSS. Mai più tag <font>, mai più gif di un pixel. Tra poco, forse, niente più tabelle per il layout. Risultato: codice più pulito, più logico, più gestibile.
Esempio: due pagine realizzate secondo le due impostazioni, diciamo "old style" e "new style". Attenzione al codice riportato in fondo. Nel secondo caso tutta la formattazione è definita in un CSS e si vede! Peso delle due pagine: "old style" 3 kb, "new style" 1 kb.
Portabilità
Portabilità è la capacità/possibilità di un documento di essere visualizzato e implementato efficacemente su diversi sistemi: PC, PDA, cellulari WAP/GPRS, WebTV. Ora, se pensate alle limitazioni in termini di memoria, ampiezza dello schermo e usabilità di un terminale mobile, capirete perchè è importante un linguaggio essenziale, centrato sulla struttura del documento, privo di orpelli inutili. Ciò che ha senso è avere un titolo della pagina, un'intestazione, un paragrafo, una lista per scandire gli argomenti.
Sulla portabilità poggia l'enfasi con cui aziende del calibro di Nokia, Motorola, Ericsson o Siemens guardano ad XHTML. Dopo l'accettazione da parte del Wap Forum si può affermare con certezza che la piattaforma WAP 2 e tutta l'evoluzione dei servizi mobili sarà fondata sull'integrazione tra XHTML e CSS, con il supporto delle necessarie tecnologie sul lato server.
Nelle immagini, tratte da un documento di Nokia, è chiarissimo lo schema di distribuzione delle informazioni fondato su questa interazione. In breve:
- nella pagina XHTML incorporiamo diversi CSS per ciascun supporto
- il browser viene identificato
- su un PC vedremo il layout standard
- su un cellulare visualizziamo un layout "ridotto" e adatto alle caratteristiche del mezzo
- ciò che non cambia sono i contenuti
È solo uno degli scenari possibili. Se al quadro si aggiungono le enormi potenzialità del linguaggio XSL, si comprende come l'epoca delle tante versioni di uno stesso sito sia davvero al termine.
Estensibilità
Dal momento che XHTML è XML diventa estensibile. Significa che sarà facilissimo incorporare in un documento parti scritte in uno dei tanti linguaggi della famiglia XML.
Esempio. Dovete inserire in una pagina delle formule matematiche complesse. Basterà dichiarare il namespace relativo al linguaggio MathML e inserire nella pagina i tag specifici di quest'ultimo (il codice è tratto dal
sito del W3C).
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>A Math Example</title>
</head>
<body>
<p>The following is MathML markup:</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply> <log/>
<logbase>
<cn> 3 </cn>
</logbase>
<ci> x </ci>
</apply>
</math>
</body>
</html>
I frutti di questo approccio, che è il più semplice dei tanti possibili, sono ancora lontani dalla maturità. L'implementazione da parte dei browser è infatti carente, ma non mancano esempi funzionanti e di grande potenza. Parleremo in un'altra lezione di FML (Form Markup Language), un linguaggio che estende in maniera impressionante l'uso dei classici form di HTML.
Accessibilità
Una altro punto fondamentale. I documenti scritti in XHTML e validati sono naturalmente più accessibili. Da una parte la validazione richiede l'uso obbligatorio di funzionalità come il testo alternativo per le immagini. Dall'altra, una pagina che evita elementi non standard, ben definita nella struttura è di gran lunga meglio gestibile da browser alternativi come quelli vocali o testuali. Per questi aspetti è obbligatoria la lettura delle linee guida per l'accessibilità del contenuto Web rilasciate dal W3C e tradotte anche in italiano.
Riferimenti
The fear of X: Molly Holzschlag è una delle personalità più influenti del web design americano. In questo articolo (tradotto sul numero di Novembre 2001 di PC Professionale) espone la sua visione su XHTML e sui vantaggi di questo linguaggio. Da leggere altri suoi articoli sull'argomento.