Wednesday, May 7th, 2008
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:
- Separate as much as possible
- Build on things that work
- Generate dependent markup
- Test for everything before you apply it
- Explore the environment
- Load on demand
- 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