Wednesday, May 7th, 2008

The seven rules of pragmatic progressive enhancement

Category: JavaScript, Tutorial, Unobtrusive JS, Usability

I’ve been talking about progressive enhancement here before and got a lot of flak in comments about it. It seemed that there was a general misunderstanding of progressive enhancement and unobtrusive scripting as a “passing fad” or “backward facing rather than being innovative”.

I was asked by a design agency in London to go there and give a brown bag presentation (during lunch break) on the matter and took this as an opportunity to write up reasons and examples for progressive enhancement concentrating more on the why than on the how.

The gist would be to say: enhancing a product progressively means you’ll always deliver a working product – as you have no idea how your product can fail in certain environments, you plan for it to fail. This ties in nicely with the agile manifesto – you always deliver software that works.

In my talk I came up with seven “rules” of pragmatic progressive enhancement:

  1. Separate as much as possible
  2. Build on things that work
  3. Generate dependent markup
  4. Test for everything before you apply it
  5. Explore the environment
  6. Load on demand
  7. Modularize code

I’ve taken these ideas and backed them up with benefits you get by following them and code examples in a full article: Pragmatic Progressive Enhancement.

The article is licensed with Creative Commons and uses YUI in the example scripts, feel free to translate, remix and create examples using other libraries.

You can also read the slides on slideshare:

Pending the quality of the recording, there’ll also be a video available sooner or later.

Posted by Chris Heilmann at 5:58 pm

4 rating from 21 votes


Comments feed TrackBack URI

Very interesting read Chris!

Thanks for sharing :-)

Comment by MorganRoderick — May 8, 2008

I think that the most important thing is testing.

Comment by Snowcoredotnet — May 8, 2008

Top article. I’ve been pushing the progressive enhancement for the last few months at work, and it has really helped take us forward. Thanks for the post!

Comment by snowmeister — October 8, 2008

Leave a comment

You must be logged in to post a comment.