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. In this book, you'll learn: Why common coding approaches leave users behind, and how progressive enhancement is a more inclusive and accessible alternative How to analyze complex interface designs, see the underlying semantic HTML experience that will work everywhere, and layer on advanced enhancements safely A unique browser capabilities testing suite that helps deliver enhancements only to devices that can handle them Real-world best practices for coding HTML, CSS, and JavaScript to work with progressive enhancement, and cases where forward-looking HTML5 and CSS3 techniques can be applied effectively today How to factor in accessibility features like WAI-ARIA and keyboard support to ensure universal access Detailed techniques to transform semantic HTML into interactive components like sliders, tabs, tree controls, and charts, along with downloadable jQuery-based widgets to apply directly in your projects