Adaptive Web Design book review

02 Feb 2012

If you are a passionate web professional, who cares about Web Standards and best practices, and you have heard of the term "progressive enhancement", but want to know all about it, than this book "Adaptive Web Design", by Aaron Gustafson, published by Easy Readers, is definitely for you. This book will tell you what it means, how it works, and how it can fit into your workflow. Writing a review of this great little book has long been on my "todo" list. Finally I found some time, and here it is…

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 4: Progressive Enhancement With JavaScript
  • 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.

"Adaptive Web Design", by Aaron Gustafson, published by Easy Readers

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 4: Progressive Enhancement with JavaScript

In this chapter Aaron show us how we can use JavaScript in an unobstructive way so that when JavaScript is turned off, the site and its content is still accessible. As a designer, I found this chapter a bit daunting, as I didn't always completely understand everything if I'm honest. Especially the part about the event capturing and bubbling I found very hard. It reminded me that I'm way more a designer than a coder :) Still, because I understand some of the basics of JavaScript, I was able to follow most of the (jQuery) examples Aaron demonstrates in his book, as he explains them in much detail, line by line. One of the interesting examples he demonstrates is a solution that converts the contents of a nav element into a select element when the browser shrinks below a particular size. He also talks about how you can use CSS (classes) in JavaScript to makes sure the content of the site is still accessible in case JavaScript is not enabled.

Chapter 1 "Think Of The User Not The browser", from "Adaptive Web Design" book.

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.

Conclusion

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.

Disclosure

You might already know that I designed the cover of the book. Just in case you've missed it, here is an article about the design process I've written about it a while ago.

Comments

  1. 1 Aaron Gustafson 04 Feb 2012

    Thanks so much for the awesome review Veerle!

  2. 2 Azedine 15 Feb 2012

    That`s right think about the user first.
    Friendly browsing;-)
    Thanks Veerle for sharing.

  3. 3 Elke Hinze 24 Feb 2012

    This book looks fantastic and I will likely purchase it this weekend. I love that the first chapter focuses on the user and not the browser, because when it comes down to it, we are developing FOR THE USER. Everything else is just an aside to that.

    Properly developed sites done with care, thinking, and valid code will usually conquer the rest of the issues we experience when developing a site.