Inclusive Components Review

In early December, I found out Smashing Magazine was offering copies of a new book through the accessibility channel of a local Slack team.

During a meetup a few months prior I realised I was unsure of the best practices for building or testing components for accessibility, and wanted an excuse to work on my JavaScript - so I sent a message requesting a copy.

To make a long review short, this is an amazing book, and I recommend you get it no matter what level of experience you might have. I read through it from the perspective of someone who tries to code with accessibility in mind, but is largely self taught. The author, Heydon Pickering, completely changed my perspective on how most common interactive elements on websites should be coded.

For a multitude of reasons I’ve always felt allergic to JavaScript due to my split time doing front and back-end development - I’ve tried to do as much as possible in HTML & CSS alone and genuinely hadn’t realised the possibilities JavaScript opened up to make a website more accessible until I read this book.

Heydon explains things with authority and simplicity I have rarely seen for any technical subject in or outside of formal education. I err on the side of skepticism when most people try to give imperative advice; it is rarely self evident or is as broad as throwing dynamite in a bucket.

This book broke down every example of an interactive component I could think of on a web page, and even made important distinctions I had never considered (Such as in the “Menus and Menu Buttons” chapter).

A side angle picture of the book, open on a page discussing buttons.

Heydon introduces a component on a conceptual level, then gives an example of how it’s commonly implemented. He then explains the pros and the cons, and offers an alternative, progressively building upon each component for edge cases.

The explanations are thorough, but they themselves never become inaccessible; everything is told through plain English.

Every component examined is accompanied by juxtaposed illustrations and code blocks, with footnotes providing shortlinks to working examples of the aforementioned components implemented with accessibility considerations.

The book itself feels nice to hold, and is well designed. The typography makes it easy to read, with comfortable text size, generous spacing and short paragraphs. I never felt like I was experiencing visual fatigue as I read it; I only stopped to reflect or write notes.

I have only two criticisms, and both may be literal mistakes fixed in a later edition. In summary, it’s a really good book and I will be deferring to it for a long time until its lessons have been internalised in my mind and in my code.