progressive enhancement

Progressive enhancement uses web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page (regardless of browser) and providing an enhanced experience to those with better bandwidth, more advanced browser features or more experience.

Accept that sometimes, or for some people, your JavaScript will not work. Put some thought into what that means. Err on the side of basing your work on existing HTML mechanisms whenever you can. Maybe one day a year, get your whole dev team to disable JavaScript and try using your site.

Progressive Enhancement is not a new technique; in fact, it’s built into the very fabric of the web’s original design, and ensures your website works everywhere — not just on Opera Mini and other proxy browsers.

When people talk about progressive enhancement it is often reduced to JavaScript. It involves much more – accessibility, performance, robustness… and also CSS. Badly written CSS can make a site as usable as a JavaScript error or using non-semantic HTML. Let’s see why CSS can fail, why fallbacks are important and how to progressively enhance CSS.