Graceful Degradation vs Progressive Enhancement
Graceful degradation and progressive enhancement are two often confused concepts. Many people (developers, designers, other web professionals and not so savvy people) either fail to understand or decline to acknowledge the difference between the two.
Both concepts are useful. Both are good practice. But: I believe that the subtle differences that people often ignore between these two concepts are also the reasons why progressive enhancement is a superior concept and a superior practice.
Graceful degradation states that we should implement our new tricky features and then provide a graceful degradation for less sophisticated browsers/clients. The concept comes from computer science originally and states that a system or network should be able to remain functional even when a large portion of it is destroyed.
Progressive enhancement is a concept that essentially works as the reverse of graceful degradation. Rather than modifying our system to degrade for older browsers, we build it initially for those older browsers and then progressively enhance the experience to make use of newer technology.
I believe this approach encourages designers and devopers to produce a product that functions well in older technology, where there is a tendency with graceful degradation to compromise on the solution for older browsers.
Why bring this discussion up again?
I’ve been teaching the web course at Shillington College the past few weeks and the discussion of students topics comes up on numerous occasions due to the nature of the HTML5 and CSS3 technologies that we are now teaching.
The advent of these new technologies has seen the topic of continuing support become more important than ever before. The accepted norm is to adopt new technologies much earlier and provide an alternative or limited support for older browsers.
Coupled with the advent of so many technologies that are intended to enhance visual design or user experience, this makes for a playing field where progressive enhancement or graceful degradation are extremely important.
All in all. the concepts of both graceful degradation and progressive enhancement have been around for years, but their importance to the modern designer / developer have never been more acutely clear.