back to top

Graceful degradation e Progressive enhancement

Quando ci si appresta ad affrontare un nuovo lavoro di web design, considerando tutto quello che abbiamo appena detto in merito allo sviluppo cross-browser e cross-device, dobbiamo prima di tutto scegliere quale "scuola di pensiero" vogliamo seguire. A seconda di questa scelta "filosofica", infatti, approcceremo il nostro nuovo lavoro in un modo piuttosto che in un altro.

Le due scuole di pensiero a cui faccio riferimento, infatti, fanno capo a due modi diametralmente opposti di affrontare il problema di un web design realmente multipiattaforma e possono essere riassunte coi temini anglosassoni Graceful degradation e Progressive enhancement.

Il problema, ancora una volta, è quello di garantire una piena accessibilità dei contenuti a prescindere dallo strumento (software e hardware) utilizzato per fruirli. Ciò che cambia, come vedremo, è la prospettiva da cui affrontare il lavoro.

Graceful degradation

L’approccio proposto dai sostenitori della scuola della Graceful degradation consiste nell’affrontare il lavoro di web design (o, più in generale, di sviluppo web) immaginando una platea di utilizzatori dotati dei più potenti hardware e dei più moderni software di navigazione. L’idea di base consiste nello sfruttare al massimo le possibilità offerte dalle tecnologie di ultima generazione al fine di sviluppare "prodotti perfetti per l’utente perfetto" affrontando solo in un secondo momento (talvolta addirittura nella fase di test) il problema del supporto delle tecnologie obsolete.

Verso queste ultime, di fatto, verrà gestito una forma di "impoverimento controllato" del servizio al fine di renderlo compatibile con hardware e software meno performanti rinunciando, di fatto, a talune features. In quest’ottica si parla, appunto, di "graceful degradation" ("decadimento grazioso").

I designer e gli sviluppatori che seguono questa scuola, solitamente, suddividono l’utenza per livelli sulla base dell’hardware e del software utilizzato: gli utenti di prima fascia (che potranno godere di un’esperienza di navigazione completa) saranno quelli dotati di un computer e browser di ultima generazione. Gli utenti, invece, dotati di hardware ridotto (ad esempio uno smartphone) e/o di browser obsoleti saranno considerati di seconda fascia e potranno utilizzare solo una versione impoverita del sito compatibile con la loro limitata dotazione tecnica.

Progressive enhancement

I sostenitori della scuola della Progressive enhancement hanno una visione diametralmente opposta: il lavoro di web design (o, più in generale, di sviluppo web) dovrebbe partire dalle basi al fine di offrire la migliore user-experience già agli utenti dotati di una dotazione hardware e software di basso profilo per poi, via via, arricchire il prodotto all’aumentare delle capacità del sistema e del software utilizzati dal visitatore.

La differenza, come avrete capito, è sostanziosa: entrambe le filosofie puntano a realizzare una soluzione cross-browser ma mentre nella graceful degradation "si toglie" qualcosa, nella visione del progressive enhancement ("miglioramento progressivo") "si aggiunge" qualcosa.

Un esempio concreto

Per meglio comprendere la differenza tra queste due scuole di pensiero ed i risultati che consentono di raggiungere, cerchiamo di fare un esempio chiarificatore.

Come sappiamo il formato PNG non è universalmente supportato: alcuni browser piuttosto datati (come ad esempio IE6), ad esempio, non sono in grado di gestire la trasparenza, altri browser ancora più vecchi (come ad esempio IE5) addirittura non sono in grado di effettuare il rendering di queste immagini restituendo un errore.

Ragionando nell’ottica della graceful degradation le immagini del sito verrebbero inserite normalmente in PNG accettando l’idea che in browser obsoleti la visualizzazione del sito risulti imperfetta e l’imagine priva della trasparenza o peggio non visibile; nell’ottica del progressive enhancement, viceversa, le immagini verrebbero inserite direttamente in formato GIF e poi dinamicamente sostituite con il formato PNG qualora il browser dell’utente fosse in grado di supportarlo.

L’esempio proposto oggi può sembrare puramente scolastico (fortunatamente dal diffusione di IE5 e IE6 è quasi nulla) tuttavia credo renda l’idea sulla diversità di prospettiva delle due scuole di pensiero.

Quale approccio scegliere?

Iniziamo col dire che, dal mio punto di vista, l’approccio dei sostenitori della graceful degradation non può che essere considerto errato. Pensare ad un "mondo ideale" per poi ritrovarsi a dover fare i conti con la realtà rischia sempre di essere un atteggiamento rischioso. L’approccio del progressive enhancement, infatti, appare più logico e concreto, perchè:

  • costringe a sviluppare partendo da solide fondamenta comuni;
  • consente di implementare, via via, nuove funzionalità al sito al crescere delle potenzialità di hardware e software disponibili sul mercato senza intaccarne le fondamenta;
  • gli "arricchimenti" (si pensi, ad esempio, a complessi script AJAX o Javascript) assumono un ruolo secondario: migliorano la user experience ma non sono centrali per il funzionamento del sito stesso il quale funzionerà alla perfezione anche sui sistemi più datati che non sono in grado di supportarli.

Se questa serie di considerazioni mi fa propendere, personalmente, per l’orientamento del progressive enhancement è anche giusto sottolineare come la scelta di utilizzare la scuola della graceful degradation non sia sempre una scelta deprecabile. In taluni contesti (lo dico per esperienza personale), anzi, è l’unica via percorribile.

Si pensi, per fare un esempio, ad uno sviluppatore chiamato a progettare e realizzare un sistema visuale simile alle Google Maps: potrebbe lavorare nell’ottica del progressive enhancement? No, certamente no. Talune tipologie di applicazioni web hanno un "bisogno viscerale di tecnologia di ultima generazione" per esistere… ed in tutti questi casi la logica della graceful degradation appare l’unica scelta possibile.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).