Jeffrey Zeldman non è certo una persona qualunque: egli è stato uno dei primi Web designer e da sempre condivide le proprie esperienze pubblicando
how to di elevato spessore. Nel 1998 è stato co-fondatore del
Web Standard Project, movimento a favore del rispetto degli standard col nobile obiettivo di porre fine alla guerra dei browser, e nello stesso anno ha cominciato le pubblicazioni di
A List Apart, magazine on line di fama mondiale.
Con
questo libro l’autore persegue una volta ancora il suo originario intento, quello della promozione e dell’uso corretto degli standard Web. Nonostante il
W3C abbia fatto molto, anzi moltissimo, per rendere omogenee le tecniche di sviluppo, sono troppi ancora i player — fra Web designer e sviluppatori di browser ed interpreti — che non prestano la necessaria attenzione agli standard; le raccomandazioni del
W3C, insomma, molte volte rimangono tali, mentre dovrebbero rappresentare a pieno titolo un obbligo morale per coloro che ricoprono un ruolo attivo nel settore.
Leggendo l’introduzione, abbiamo chiari fin da subito i punti cardine dell’opera: scrivere codice di markup chiaro e pulito, progettare fogli di stile a regola d’arte ed imparare a fondere in completa sinergia questi elementi con il
DOM, seguendo pedissequamente le raccomandazioni del
W3C. A fronte di questo sforzo, l’autore promette ottimi risultati, sia in termini di qualità del prodotto finale che di personale soddisfazione. Vogliamo vedere se tutto questo è veramente possibile?
Il
primo capitolo è l’anello di congiunzione fra la nuova e la passata edizione; il titolo — “Il 99% dei siti è ancora obsoleto” — riprende infatti quello del precedente volume, che esordiva proprio gridando al mondo l’obsolescenza della maggior parte dei siti Web del pianeta. Il fulcro delle argomentazioni risiede nella mancata compatibilità in avanti dei layout, che cadono miseramente ad ogni nuova versione dei browser maggiormente diffusi. Vero è che molti browser non sempre si comportano come ci si aspetterebbe, ma altrettanto vero è che se non implementassero al loro interno sofisticati metodi di correzione degli errori, molti siti non avrebbero scampo. Pensando a tutti quei siti con codice proprietario, farciti di
ActiveX e script di mutuabile foggia e provenienza, ci si stupisce ancor oggi nel vederli funzionare su diversi browser in varie versioni, nonostante gli standard vengano volutamente ignorati. Purtroppo la prassi di sviluppare codice
ad hoc per ogni browser, assecondando di volta in volta svariati capricci, è ancora molto diffusa; la guerra delle soluzioni proprietarie, spinta dalla volontà di predominio sui concorrenti, è un morbo che ha lasciato ferite evidenti, ma il cambiamento è alle porte, e non possiamo farci cogliere impreparati. In questa parte del libro, ma anche nei capitoli successivi, l’autore riporta sempre esempi concreti a suffragio delle sue teorie, cosicché il lettore possa toccare con mano quanto riportato.
Oltrepassata questa prima fase, per certi versi scioccante (vedere com’era il codice dell’home page di
Yahoo! nel 2000 mi ha fatto drizzare i capelli), ci accingiamo ad entrare nel merito della progettazione attraverso l’utilizzo degli standard. Nel
secondo capitolo vengono analizzati e discussi diversi siti di particolare interesse pedagogico; sezionandoli con cura,
Jeffrey Zeldman ne evidenzia pregi e difetti, non mancando di elogiare chi, come
The Gilmore, dopo la prima edizione — e la prima critica dell’autore — ha posto rimedio agli errori commessi. Largo spazio viene dato alla
trinità degli standard Web, così come l’autore ha voluto efficacemente definire la separazione fra struttura, presentazione e comportamento di una pagina Web; viene inoltre introdotto il concetto del
Web Semantico, spiegato in termini talmente chiari che sembra un delitto non prestare la meritata attenzione. Nei vari esempi di portabilità del codice l’autore si sbizzarrisce proponendo gli
screenshot di pagine
renderizzate da un vasto assortimento di browser, tra i quali spicca l’insolita predilezione per
Netscape 4, il nonno di
Mozilla Firefox da tempo in pensione, che a detta dell’autore rappresenta l’esempio perfetto di browser non aderente agli standard. A fine capitolo vengono riassunte la
compatibilità in avanti di tipo transizionale (design ibrido) e quella di tipo
strict come se fossero medicine, con uno stile tanto ironico quanto efficace, fatto di ingredienti, raccomandazioni d’uso, benefici e controindicazioni: illuminante!
Il
terzo capitolo, con nobilissima franchezza, ci parla invece dei problemi che affliggono gli standard. L’onestà intellettuale è una virtù pregiata, che molto spesso viene meno proprio nelle menti in cui ce ne sarebbe più bisogno; fortunatamente
Jeffrey Zeldman ne è sufficientemente dotato, e grazie a questo possiamo apprendere cosa c’è che non va nei così tanto osannati standard del Web. E quali saranno mai i problemi degli standard web? — vi starete chiedendo — La risposta è semplice: i problemi degli standard Web sono le persone che non li applicano, i browser che non li supportano e più in generale le solite cattive abitudini. In queste pagine non manca l’indispensabile menzione per il male peggiore,
Flash. Non me ne vogliano gli appassionati di questa rivoluzionaria tecnologia, perché non v’è nessun attacco esplicito nei loro confronti; come nella più classica delle storie, il problema non è tanto nella tecnologia stessa, ma nell’uso che se fa. Se è vero che i Cinesi inventarono ed usarono la polvere da sparo solo per deliziare la popolazione con spettacolari fuochi d’artificio, dobbiamo ricordare quali orribili applicazioni invece questa miscela di componenti chimici ha conosciuto; allo stesso modo l’autore descrive l’uso e l’abuso di questa creatura di
Macromedia (o dovrei dire
Adobe?), con sottile nota critica verso i designer, che negli effetti speciali di
Flash malcelano a volte una latente mancanza di vera ispirazione.
Il
quarto capitolo è una sfilata d’onore, che vede fra le star tutte quelle tecnologie vincenti, che hanno fatto degli standard il loro punto di forza. Si inizia dal linguaggio universale:
XML. Concetti come quello della
findability e del mercato
long-tail, anche se appena abbozzati, rappresentano stimoli sufficienti e necessari per scatenare nel lettore la sensazione di impellente necessità di
XML e di tutti i formati da esso derivati. A ben guardare, in effetti, senza
XML non staremmo vivendo questo
Rinascimento del Web, con le sue interfacce pulite, interattive e dannatamente affascinanti; lo stesso potremmo dire dei
feed, dei
podcast, e di tutti i
Web services che affollano la Rete. Doverosa menzione va fatta anche degli elementi che hanno permesso questa capillare diffusione, a partire da quelli sviluppati in seno a
Microsoft come
XMLHttpRequest e
SOAP, oramai diffusi su tutte le piattaforme esistenti. Proseguendo nella lettura vengono spese alcune pagine anche parlando di strumenti di authoring e di editor WYSIWYG, illustrando gli sforzi compiuti dai giganti del settore per aderire il più possibile agli standard che il
W3C confeziona con tanto amore. Si parla di
Dreamweaver e del suo ex rivale
GoLive, giusto per menzionare i due maggiori attori sulla scena.
Jeffrey Zeldman parla — e male — anche di
FrontPage, nonostante ci siano delle speranze:
FrontPage è morto, lasciando spazio al
Microsoft Expression Web Designer; questo progetto, supportato da
Molly Holzschlag, leader non ufficiale del
WaSP, promette molto bene, e fa altrettanto piacere apprendere che di questo contributo ne beneficia anche la suite
Visual Studio.
E così, fra un aneddoto ed una
parabola di conversione come nel caso di
Wired News, giungiamo al
quinto capitolo, dedicato al markup moderno. A questo punto dell’opera si chiudono i battenti sulle metodologie della
vecchia scuola, passando dal generico ai dettagli implementativi, citando le tecnologie server side come ad esempio
PHP,
Ruby e
.NET, con annessi framework, arrivando infine a parlare del nuovo HTML, ovvero
XHTML.
Dopo aver cercato di spiegare quel che di buono porta
XHTML nella quotidiana pratica di sviluppo, l’autore si appresta a descriverne nei dettagli le sue peculiarità dedicandogli l’intero
sesto capitolo. Oltre alle consuete regole sintattiche,
Jeffrey Zeldman non manca di suggerire le
best practices che la sua vastissima esperienza gli ha permesso di maturare, rendendoci fin da subito abbastanza indipendenti per iniziare a prendere confidenza con questa evoluzione dell’
HyperText Markup Language.
Leggendo il
settimo capitolo potrete imparare a scrivere pagine più solide e stabili; l’autore infatti spende numerosi paragrafi illustrando, con la solita e scanzonata semplicità, gli elementi strutturali di una buona pagina Web, riprendendo concetti relativi al markup semantico ed a quello
strict in rapporto a quello
transitional. Viene affrontato di petto il problema della
ridondante verbosità delle tabelle ridondantemente verbose, proponendo il codice e le nozioni in grado di farci abbandonare questa deplorevole pratica in favore delle tecniche messe a disposizione dai
CSS e dai contenitori, il tag
div, per intenderci. Un ultima critica chiama invece in causa le mappe, ed il brutto vizio di
affettare le immagini nella speranza che le cose possano migliorare;
il taglio passa di moda — recita il titolo di uno dei tanti paragrafi — e non possiamo che convenire.
L’
ottavo capitolo, primo di una trilogia, ci propone esempi concreti di layout ibridi, seguendo il rodato metodo dell’
imparare facendo. Ogni pezzo di codice viene adeguatamente documentato e discusso, affinché l’esercizio non rimanga un mero sgranchirsi di nocche sulla tastiera. A proposito di tastiera, troviamo qui analizzato l’attributo
acceskey, in grado, teoricamente, di permetterci l’accesso ad un elemento, per esempio un link, utilizzando la tastiera anziché il mouse. Già se n’era parlato in precedenza, ma in queste pagine l’attributo
id viene mostrato all’opera in tutta la sua vasta gamma di applicazioni.
Il
nono capitolo continua la fase lavorativa dell’esercizio descrivendo vita, morte e miracoli dei
CSS; ovviamente, presupponendo che i lettori abbiano già fatto proprie le nozioni alla base di questa tecnologia,
Jeffrey Zeldman propone tutte quelle tecniche poco conosciute, documentate e utilizzate, permettendoci di dare una marcia i più ai nostri fogli di stile.
Il
decimo capitolo chiude questa tripletta riprendendo il discorso del layout ibrido introdotto nell’ottavo capitolo, riaffrontando le medesime problematiche armato di
CSS e delle nozioni appena descritte. Degne di nota sono le disquisizioni in merito ai font ed alla loro corretta implementazione di modo che si possa trovare il giusto compromesso fra necessità tecniche e grado di libertà concedibile all’utente in fatto di dimensioni. Terminata anche questa tappa, possiamo già ritenerci dei fieri utilizzatori degli standard Web, pronti per affrontare impavidi gran parte degli ostacoli che i browser ed i nostri utenti non mancheranno di metterci innanzi.
L’
undicesimo capitolo tende amichevolmente la mano al nemico numero uno, il browser per l’appunto. Si inizia con
la saga del DOCTYPE switching, epopea fatta di continue lotte fra interpreti standard e non. Questa tecnica, che permette idealmente di
accendere o
spegnere gli standard nelle proprie pagine a seconda che il browser li supporti o meno, è stata per molto tempo l’ancora di salvezza di noi poveri Web designer. Testati ed elencati i test sul supporto a questa direttiva, l’autore li mette sul banco di prova dandocene poi fedele rapporto, dimostrando una pazienza degna di un monaco buddista. Nonostante le differenze fra browser, e fra software in generale, ci permettano in qualche modo di avere delle alternative e di stimolare la concorrenza, l’autore si sforza di separare queste peculiarità dai bug, che invece palesemente albergano nei diversi motori di rendering, sottoponendo i malcapitati a doversi orientare in layout tortuosi e mal interpretati.
Questa distinzione è rafforzata nel
dodicesimo capitolo, naturale continuazione del precedente, che l’autore dedica per intero alle soluzioni per ovviare ai bug più diffusi. Il
box modeling è forse il tipo di layout maggiormente diffuso, in quanto la rappresentazione grafica di contenitori indipendenti consente ai visitatori di metabolizzare quasi istantaneamente la suddivisione gerarchica dei contenuti a video. Proprio per la sua larga diffusione però capita spesso di vedere rotte le nostre scatole, ed il doppio senso in questa occasione capita proprio a pennello. Come fare per porre rimedio è argomento dei paragrafi successivi, che a titolo d’esempio mostrano proprio il lavoro di
redesign affrontato per uno dei siti di
Jeffrey Zeldman, il già citato
A List Apart. Altro problema è quello relativo agli spazi bianchi, che nei miei primi approcci al design mi ha letteralmente sfinito (e portato inoltre ad odiare Netscape); nonostante apparentemente sembri solo un brutto ricordo, ci sono ancora alcuni casi in cui questo si può ripresentare, per la serie
a volte ritornano. Ma d’ora in poi non dovremo più preoccuparci, il rimedio è argomento dei paragrafi successivi, che a titolo d’esempio mostrano proprio il lavoro di
redesign affrontato per uno dei siti di
Jeffrey Zeldman e che sarà sempre pronto a venirci in aiuto! E che dire del tag
object, e dei preziosi gioielli multimediali che tutti noi vorremmo incastonare nelle nostre pagine? Beh, se proprio non sappiamo farne a meno, abbiamo qui il modo di imparare a farlo rispettando tutti gli standard adibiti al compito.
Il
tredicesimo capitolo, terza parte di questa fase dedicata all’interazione proficua con i browser, esordisce in maniera lapidaria:
la dimensione conta. Questo capitolo si assume il compito di fugare ogni nostro dubbio circa il modo migliore di definire font e dimensioni, e a dire il vero sembra proprio riuscirci. Vengono proposte diverse soluzioni, tra cui un
trick noto anche come
metodo Fahrner, dal nome del suo autore,
celebre Web designer e stimatissimo autore di articoli ed approfondimenti.
Il
quattordicesimo capitolo affronta invece il tema dell’accessibilità sfatando il mito che essa sia prerogativa dei soli designer sensibili al pubblico ipovedente o diversamente abile. Navigare con un cellulare, o con un semplice palmare, consente di rendersi conto di quanto l’accessibilità possa essere importante per tutti i visitatori. Il capitolo espone, a ritmo serrato, idee e suggerimenti a riguardo, senza dei quali molto probabilmente non ci saremmo mai sognati di badare a certi elementi delle nostre pagine Web. Sembrerà scontato, ma questo diverso punto di vista non fa altro che innalzare la nostra consapevolezza, maturando in noi una coscienza che difficilmente ci abbandonerà nel proseguo del nostro lavoro.
Il
quindicesimo capitolo si esaurisce nel giro di una manciata di pagine, dense però di suggerimenti su come utilizzare al meglio il DOM nei nostri script. AJAX?
Of course!
Questo libro termina dove tutti i manuali sugli standard Web iniziano: con un layout CSS. Questo è l’incipit del
sedicesimo capitolo, ultimo della serie, che come avrete capito ci guida nel processo di definizione di un buon layout basato su
CSS, come ad invitarci a metterci subito all’opera non appena terminata la lettura dell’ultima pagina. Ed in effetti è proprio questa la sensazione che lascia questo libro; inebriati da cotanta gioia di sviluppare, il primo pensiero volge subito al nostro attuale lavoro, al miglioramento dell’interfaccia che ora sapremmo efficacemente implementare, in barba ai browser ed a tutti i loro difetti.
Leggendo questo testo sono stato favorevolmente impressionato dal taglio pratico ed informale che
Jeffrey Zeldman ha saputo mantenere in ogni singola pagina; gli argomenti, abilmente suddivisi in piccoli paragrafi dal titolo quasi sempre allegorico, sono spesso pillole di saggezza, addolcite quanto basta dallo stile piacevolmente amichevole. A differenza di altri autori dal tono spesso accademico,
Zeldman ha saputo mantenere la schiettezza e l’immediatezza che siamo soliti trovare nei suoi articoli sul Web, senza depauperarne il valore intrinseco; personalmente me l’aspettavo, visti anche i buoni ricordi che la prima versione di questo volume mi ha lasciato, ma ora che ne ho avuto la conferma e che ho potuto rendere partecipe l’affezionato pubblico di
Programmazione.it posso finalmente ritenermi soddisfatto.