Friday, 13 June 2008

Progressive Enhancement and Graceful degradation

For any developer the browsers are considered as the most hostile development environment. Different browsers behave in different ways; there are text only browsers which will not render your MIME types like images and videos. There are browsers which will render only a specific sub set of HTML and JavaScript and so on.

When you develop a public web site or a web based application; developing a compatible application is very important. More often compatibility is equated to support.

According to Yahoo; the support is not providing the same user experience to all, but it is to support the tool the end user has. It is to present content the end user can understand.

The providers cannot ignore the users which are using an inferior tool to read the provided information. For example; no TV broadcasting agency can say they will support only color TV transmissions; they should make sure that the programs they broadcast will be received by the Black & White TV users as well.

The two concepts highlighted by Yahoo for the above context are; Progressive EnhancementGraceful degradation.

Progressive Enhancement - This concepts puts the Content at the center and allows the user to receive more.

Graceful degradation - This prioritize Presentation and and permits less widely used browsers to receive less, and give less to the user.

And there are 5 rules to Progressive Enhancement they are,

1. enrich Content with through , explicit markup.
2. Test core functionality with HTML only.
3. Enhance layout by externally linked CSS.
4. Enhance behavior by externally linked Javascript.
5. Respect end user browser preferences.

A related article is available in Yahoo UI Library on Graded Browser Support (GBS).