Progressive enhancement is an approach to web development that builds accessible web pages by starting with basic content and functionality that work for all users and then is enhanced for users with more advanced browsers and devices. The core principles are to provide basic content accessible to all browsers, basic functionality to all browsers, and then enhance layout with CSS and behavior with JavaScript while respecting user preferences. The benefits are greater accessibility, better search engine optimization, and a usable site for more browsers and devices, though it requires upfront planning and can be difficult to execute.
Who has Heard of progressive enhancement? Heard of graceful degradation? Remembers the browsers wars and building for IE first and then making it look ok on other browsers? Knows what a turducken is?
First a look at how things used to be done.
Sounds kind of nice but believe it is wasn't! Build your site to work in the most popular browser (IE) then make it work in other browsers
Created a finished product then retro fit to work in other browsers
Ask users to upgrage their browser Best viewed in IE5 Text only alternative site
The term Progressive enhancement was coined Steven Champeon in 2003 Attempts to create websites that "work" on the widest number of browser platforms older browsers mobile devices
Reverse of GD Start simple and add complexity
Content is marked up with good semantic (x)HTML
Add presentation with CSS
Add behavior with JavaScript
The base layer is the xHTML (chicken) Add the presentation using CSS (duck) Add and behaviors/interaction using JavaScript (turkey)
There are 6 core principles of PE
End user browser preferences are respected
Say we want external links to be indicated as such and open in a new window when clicked.
Linked into the HTML There are CSS selectors now that