Il primo passo verso la realizzazione di pagine web facilmente fruibili attraverso dispositivi mobili riguarda l'ottimizzazione del codice strutturale della pagina. Si fa riferimento al linguaggio di marcatura adottato per definire la funzione di una porzione di testo all'interno del documento.
WAP 1.0 e WML
Inizialmente, il linguaggio che doveva assolvere tale compito relativamente ai servizi mobili era il WML (Wireless Markup Language), un formato nato dall'accordo di un folto gruppo di aziende attive nello sviluppo di hardware e software. Sebbene non sia più la soluzione ottimale per siti web per cellulari, crediamo valga la pena prendere rapidamente in considerazione le sue caratteristiche al fine di evidenziarne pregi e limiti. Inoltre costituisce l'unico formato di marcatura interpretato dalla maggior parte dei dispositivi mobili.
WML è un linguaggio basato su XML che mirava ad imporsi come standard quando ancora le caratteristiche dei dispositivi e delle reti di trasmissione non erano ancora così efficienti da permettere il supporto di tecnologie web più evolute. La comunicazione tra server e dispositivi è basata sulle specifiche WAP 1.0.
WML organizza l'informazione in modo differente da HTML. Se nel secondo l'unità informativa base è la pagina (che solitamente coincide con un file), in WML i contenuti sono strutturati in "deck". Ognuno di essi si presenta come una collezione pagine / schermate ("card"). Mediante l'utilizzo di ancore e collegamenti ipertestuali l'utente ha la possibilità di spostarsi all'interno dei contenuti.
I tag previsti da questo linguaggio sono piuttosto pochi ed elementari e riguardano, soprattutto, la suddivisione e l'organizzazione del testo. Esiste la possibilità di creare collegamenti ipertestuali e di applicare alcuni semplici stili di formattazione. WML consente l'inserimento di immagini (in formato wbmp, di qualità bassa) e di script in linguaggio WMLScript. Non è possibile inserire istruzioni di stile mediante linguaggi come CSS.
Un semplice sito WML, quindi, potrebbe essere costituito da un unico file al cui interno l'utente si sposta di card in card. Per maggiori informazioni si veda la guida WML pubblicata nelle pagine di questo sito ( http://wapitalia.html.it/wml/ ).
Le caratteristiche di questo linguaggio erano dovute alla necessità di ottimizzare il più possibile il trasferimento di dati tra il server e il dispositivo mobile che avveniva - al momento della sua nascita - su reti solitamente a banda molto stretta. Dato che ogni file richiede una richiesta e un invio separato da parte del server, l'idea di inserire tutta l'informazione di un sito all'intero di un unico file era molto funzionale.
Per molte ragioni WML non si è tuttavia imposto come standard. Si può dire che WML sia stata una tecnologia nata in un momento di transizione quando ancora i dispositivi mobili e le reti di connessione non erano in grado di offrire contenuti e servizi appetibili per gli utenti. I siti WAP - inoltre - si distinguono spesso per la loro scarsa ricchezza di informazione, per la loro difficoltà d'uso e per un basso grado di personalizzazione grafica.
Portare un sito web per PC su WAP 1.0 non è operazione semplice, dal momento che richiede interventi strutturali.
- Innanzitutto è necessario configurare il web server in modo che sia in grado di gestire richieste per file wml, wmlscript e wbmp.
- Successivamente è necessario tradurre le pagine da HTML a WML, operazione che può essere condotta in due modi:
- Applicando ai file originari delle trasformazioni XSL: sia HTML che WML sono linguaggi che seguono le regole di XML ed è dunque possibile applicare ai primi dei fogli di stile di trasformazione (si veda la Guida XSLT) per ottenere documenti WML; considerando le attuali scarse capacità dei browser per dispositivi mobili, simili trasformazioni dovrebbero essere a carico del server di origine (o di un server proxy intermedio);
- Se il sito web si appoggia una repository di informazione indipendente dalle pagine HTML (per esempio un database) dovrebbe essere semplice richiamare da essa i contenuti da impaginare direttamente con WML
Come è semplice notare, l'operazione di rendere disponibile un sito HTML anche per dispositivi WAP 1.0 può essere onerosa. Dal momento che la seconda versione di questa piattaforma permette la visualizzazione di contenuti direttamente in una versione compatta di HTML, potrebbe essere uno sforzo che va in direzione contraria rispetto alle attuali tendenze tecnologiche. Non si può tuttavia dimenticare che questa tecnologia è universalmente supportata da tutti i dispositivi mobili in grado di connettersi alla Rete. In attesa che gli utenti aggiornino i loro telefoni, potrebbe convenire mantenere un canale di accesso anche per coloro che non dispongono degli strumenti più aggiornati.
WAP 2.0 e XHTML MP
Abbiamo potuto considerare, nelle pagine precedenti, come inizialmente i telefoni mobili abbiano adottato la tecnologia WAP 1.0 per garantire agli utenti l'accesso alla Rete e a un insieme di contenuti web relativamente ristretto. Aumentando le capacità tecnologiche dei dispositivi e delle reti di trasmissione, trainate a loro volta dalla crescita delle richieste in termini di quantità e qualità da parte degli utenti, sono stati condotti ulteriori passi nel miglioramento di questa famiglia di tecnologie.
Una vera e propria pietra miliare è stata, in tal senso, depositata nel gennaio 2002 con il rilascio delle specifiche della versione 2.0 dell'architettura di protocolli WAP, che diventano così una versione dei protocolli TCP/IP ottimizzata per il mondo wireless. Per gli utenti finali l'innovazione principale consiste nella possibilità, finalmente, di fruire di contenuti ricchi e accattivanti. WAP 2.0, infatti, consente la trasmissione e la visualizzazione di documenti redatti in formato XHMTL. Grazie a questa opportunità anche i dispositivi di telefonia mobile possono accedere all'intero Web e non più a quel sotto-insieme rappresentato dai siti WML.
È tuttavia importante notare che il supporto per diverse versioni di HTML era già possibile da alcuni anni su altri classi di dispositivi. I-Mode, infatti, sin dal 1999 supporta una versione ristretta di HTML denominata c-HTML o I-HTML, mentre su PDA PocketPC e palmOS sono presenti fin dal 2000 browser in grado di interpretare HTML 3.2.
Per identificare un minimo comune denominatore tra le varie versioni di questo linguaggio supportato dalle tecnologie mobili, è stata definita una specifica volta ad assicurare la massima compatibilità tra dispositivi dalle capacità così diverse. Si tratta del formato XHTML Mobile Profile, la cui definizione è stata pubblicata nel 2001 dalla OpenMobile Alliance ( http://www.openmobilealliance.org ) a partire dalle specifiche di XHTML basic definite, a loro volta dal W3C ( http://www.w3.org/TR/xhtml-basic/ ).
In estrema semplicità, XHTML MP non è che un HTML più rigoroso e depurato da tutte quelle caratteristiche che non riescono ad essere interpretate dalle attuali ridotte capacità dei dispositivi mobili. Dal momento che si tratta di un formato figlio di XHTML esso ne eredita le caratteristiche formali e la filosofia. In particolare è stata eliminata la gran parte di elementi e attributi dedicati alla gestione dello stile di presentazione, a vantaggio di un codice più leggero, pulito e orientato al significato delle informazioni.
Nello specifico, i tag ammessi da XHTML MP sono:
- Per la struttura del documento: body, head, html, title;
- Per la struttura del testo: dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p (cui è stato aggiunto l'attributo mode="nowrap" ), pre, q, samp, span, strong, var;
- Per i collegamenti: a (con supporto per le accesskeys);
- Per le liste: dl, dt, dd, ol (con l'attributo "start"), ul, li (con l'attributo "value", creato appositamente);
- Per le form: form, input, label, select, option, textarea, fieldset, optgroup;
- Per le tabelle: caption, table, td, th, tr;
- Per le immagini: img;
- Per gli oggetti incorporati: object, param;
- Per la presentazione: b, big, hr, i, small;
- Per le meta-informazioni: meta, link, base;
- Per lo stile: style e il supporto per gli stili in linea mediante gli attributi "style" e "class" applicabili agli altri elementi.
- Per la programmazione lato client : script, noscript (a partire dalla versione 1.1 del linguaggio, in via di definizione).
Si può notare che restano presenti alcuni tag dedicati alla mera visualizzazione del testo (b, big, i, small), il che parrebbe una contraddizione con le premesse di questo linguaggio. Tuttavia sono da considerare come elementi sopravvissuti per consentire una minima formattazione del testo anche all'interno di browser dalle ridotte performance e che non godono del supporto per i fogli di stile CSS.