Progressive enhancement is an approach to web development that aims to deliver the best possible experience to the widest possible audience, and simplifies coding and testing as well. Whether users are viewing your sites on an iPhone, the latest and greatest high-end system, or even hearing them on a screen-reader, their experience should be easy to understand and use, and as fully-featured and functional as possible.
Designing with Progressive Enhancement will show you how. It’s both a practical guide to understanding the principles and benefits of progressive enhancement, and a detailed exploration of examples that will teach you—whether you’re a designer or a developer—how, where, and when to implement the specific coding and scripting approaches that embody progressive enhancement.
Highly recommended for new web developers and those changing their workflow to a mobile-first process. The first part is a primer/refresher on good semantic HTML and CSS, with an explanation of how Filament handles their JavaScript. The second part is a collection of useful recipes for progressively-enhancing commonly used interactive widgets.
I disagree with a few of their points: please don't put titles on your anchor links. And I'm not sure why they prefer canvas or Flash to the really well-supported method of using images of text with alts, since they don't explain that one - maybe there's a good reason I should switch!
Although their all-or-nothing Javascript approach isn't suited to the work I do, I think it's a great solution for a web-app style site and would be happy to use it in the right situation. It seems similar to the BBC's "cut the mustard" approach, which is a good recommendation.
Apart from those nitpicks, overall I'm really glad I read this. I picked up some useful tips and will be using their recipes in future projects.