La differenza tra graceful degradation e progressive enhancement

Si tratta di due diversi approcci per lo sviluppo lato front-end di siti e applicazioni web.

Con così tanti diversi browser web disponibili per gli utenti, l’interfaccia e l’esperienza di un sito web difficilmente sono identiche su tutti i browser. Affinchè si tenga conto di queste differenze gli sviluppatori devono utilizzare tecniche di graceful degradation o progressive enhancement per consentire al sito web di essere usabile sia su browser moderni che su quelli datati.

Si tratta di due diversi approcci per lo sviluppo lato front-end di siti e applicazioni web.

Con così tanti diversi browser web disponibili per gli utenti, l’interfaccia e l’esperienza di un sito web difficilmente sono identiche su tutti i browser. Affinchè si tenga conto di queste differenze gli sviluppatori devono utilizzare tecniche di graceful degradation o progressive enhancement per consentire al sito web di essere usabile sia su browser moderni che su quelli datati.

Graceful degradation, letteralmente “degradazione graduale”, è una metodologia di sviluppo che prevede di fornire le funzionalità di un sito web in modo che il livello di user experience nei browser moderni sia di un certo livello (solitamente alto), ma allo stesso tempo le funzionalità degradano in maniera graduale ad un livello inferiore di user experience sui browser più vecchi. Questo livello più basso non è sicuramente bello per i visitatori del sito, ma per lo meno ne fornisce loro le funzionalità basi, in modo tale da non interrompere o alterare il flusso di navigazione e d’utilizzo dello stesso.

Progressive enhancement, letteralmente “aumento progressivo”, è una metodologia similare. Si inizia stabilendo un livello base di esperienza dell’utente che tutti i browser possono fornire nella fase di rendering di un sito web, ma allo stesso tempo permette di fornire funzionalità avanzate che automaticamente saranno disponibili per i browser che possono implementarle.

Features detection

Utilizzando librerie javascript come Modernizr si possono rilevare le caratteristiche di un browser. Questo costituisce un passo importante nello sviluppo front-end nella battaglia contro i browser obsoleti.
Modernizer riesce a rilevare quali caratteristiche Html5 e Css3 sono supportate dai browser. Nella fase di rilevamento consente agli sviluppatori di testare le nuove tecnologie (css3) e di fornire dei fallbacks per i browser che non le supportano. Questo approccio risulta molto efficiente.