views:

56

answers:

2

Is basically and practically Progressive enhancement and Graceful degradation same thing?

+5  A: 

Not quite. They tackle similar problems, but from different angles.

"Graceful degradation" implies you have spiffy functionality, and can deal with it being less spiffy (but still need it to work somehow) in browsers that don't support it. "alt" attributes on images, and the <noscript> tag, are examples of this.

"Progressive enhancement" implies you're starting out with just basic content, and want to add spiff for browsers that support it without breaking the site for those that don't. As an example of this, imagine you have a list of links that serves as your nav menu. It works fine, but if you add some javascript it can give you flyout menus, tooltips, and all that.

Basically, progressive enhancement says "start out with good content, and make it better when you can", and graceful degradation says "i assume you can do this cool stuff...but if you can't...well...here's some other crap you can do."

Guess which one's better.

cHao
so if client need **same** visuals and experiences in all browsers then should we not got for "Progressive enhancement"?
metal-gear-solid
If you need the same visuals and experiences in all browsers, make a PNG or PDF of the whole page or something, else you're screwed anyway. There will probably never be a day that every browser does everything the exact same way. (If they did, why have separate browsers?) The difference is whether you celebrate those differences (by giving the "better" browsers a cooler experience) or punish them (by inevitably breaking more and more on the not-your-favorite browser).
cHao
+2  A: 

Graceful degradation is one of the advantages or outcomes of progressive enhancement. If you do PE correctly, if any part of the system fails (like Javascript), the page will still work correctly (if not beautifully).

You might also hear "separation of concerns", which is a discipline that is part of the above. Eg, no CSS in your HTML, no HTML in your business logic. Each part can be maintained independently, and the failure of one part won't cause the failure of other parts.

Matt Sherman
+1 "Graceful degradation is one of the advantages or outcomes of progressive enhancement"
metal-gear-solid
@Matt Sherman - If my site loosing only visual if JavaScript not available but content is still accessible. What is this case ?
metal-gear-solid
Yes, the idea is that Javascript is an *enhancement*, but is not fundamental to the functioning of the page. It makes things nicer, but is not necessary for the page to function correctly.
Matt Sherman