Table of contents
The book has about 135 pages and consists of seven chapters:
- Chapter 1: Think Of The User, Not The browser
- Chapter 2: Progressive Enhancement With Markup
- Chapter 3: Progressive Enhancement With CSS
- Chapter 5: Progressive Enhancement For Accessibility
- Chapter 6: Take It Away
Chapter 1: Think Of The User, Not The browser
In this first chapter Aaron explains to us that progressive enhancement isn't about browsers, or which HTML or CSS you can use. It's a philosophy aimed at crafting experiences, by giving the user access to content without any technological restrictions. This chapter is an introduction to what progressive enhancement is all about, and how it relies on a principle of "fault tolerance". Aaron explains in detail how this fault tolerance works, and how it allows for evolution. Understanding this is key for understanding progressive enhancement. Aaron also talks about the difference with graceful degradation, and its missteps. Then he concludes that progressive enhancement is about accessibility, but in a less traditional sense than how we are familiar with this term, but in way that we all have our special needs, and that our core focus is the content. It is a layered approach where everything is built upon content, adapting the user experience accordingly to the user's needs.
Chapter 2: Progressive Enhancement With Markup
Aaron states "if content were soil, semantic markup would be the compost", which is a perfect analogy of what this chapter is all about. The markup is the foundation of each design and experience. Aaron also teaches us how we can enrich our HTML markup by showing how to use the right attributes. Microformats takes up a big part of this chapter, which I find a good thing, because Aaron has a good way in explaining things simple and clear. Not sure how you feel about this topic, but I feel I can never learn enough about it, as I'm quickly confused about how to apply it correctly, let alone memorize everything.
Chapter 3: Progressive Enhancement With CSS
In this chapter, Aaron explains how CSS get parsed by the browser, and how CSS rules that are simply ignored by the browser can work to our advantage. In other words, we can use CSS' fault-tolerance to enhance the experience in capable browsers. He also talks briefly about specificity, the selectors, and the importance of the "cascade", but the book assumes you are already familiar with this. Aaron explains the concept of layering styles, starting by the bare essential layer of when no style is applied, but where the content is completely accessible, and then gradually building up starting with the typographical styles, layout, then color, ending with the full experience, providing a tailored experience for every user. With this technique you also learn on how you can organize your styles so you're able to keep things as flexible as possible. The chapter spends only a little bit on the topic of media queries. You'll find out how you can use them to adjust your CSS to match the layout for different devices. If you want to learn more about media queries, they get plenty of attention in the book "Responsive Web Design" by Ethan Marcotte, which I reviewed here.
Chapter 5: Progressive Enhancement for Accessibility
In this chapter I learned a lot of new things. If you know the basics of accessibility already, you'll find out that there is still more we can do to make our site as accessible as possible, all in service of the content. One of the examples Aaron talks about is how you can hide content in your layout (e.g. collapsible elements, tabbed interfaces, and accordion widgets), but still have it fully accessible for screen readers. He also talks about how you can use the ARIA attributes in your code to improve the accessibility of your web pages even more. Aaron's finishing topic is about keyboard access and controls where you'll learn how to use the "tabindex" attribute.
Chapter 6: Take It Away
The last chapter gives you a "progressive enhancement" checklist that you can use for your projects, and a list of other good resources for you to read.
I love books that are practical and so well to the point. This book is definitely one of those. Considering the fact that this book is on the thin side, I really learned quite a lot. For me it's one of the books about the topic of web design and accessibility, that reads easily because it's written in such clear language. It's a must read for people who are willing to cross the "t's" and dot the "i's"in their markup. It's for people who really care to use markup that is most accessible, and and are not afraid to go the extra mile to do so. It's a book I will consult a lot during the coding phase.