HTML5 Developer’s Cookbook – Book Review

Whilst I’ve already reviewed a number of HTML5 books, this is the first of the “cookbook” style and indeed the first technical cookbook that I’ve laid my eyes on. Written by Chuck Hudson and Tom Leadbetter (of HTML5 Doctor fame), the book aims to teach developers HTML5 through examples of differing complexity.

Chapter overview

As one would expect, the book starts off with an introduction to HTML5, how it came about and the thinking behind it. It then moves on to talking about the new structural elements in HTML5 and their semantics (covered in chapters 1 and 2). All pretty standard stuff which you’d expect to find in an introductory book on HTML5.

Chapter 3 focuses on browser handling with HTML5, which one might argue doesn’t need a chapter to itself, but since it’s a book for beginners I think that it’s something of immediate interest to them and having it stand out is beneficial.

The fourth chapter is dedicated to CSS3 and styling HTML elements with it. Including such a chapter is fine, but I feel it could be further down the book rather than giving it such prominence.

Chapter 5 talks about HTML5 web forms in some detail, and chapter 6 also deals with the HTML5 canvas element and its corresponding JavaScript API in great detail (even though it, understandably, only scratches the surface of this huge API).

The next two chapters, 6 and 7, discuss HTML5 multimedia, the video and audio elements and the corresponding JavaScript Media API. Oddly this is the first HTML5 book I’ve come across that doesn’t give credit of the Flash fallback method to Kroc Camen (from whom this idea originated), seemingly crediting it to YouTube. It also incorrectly refers to the muted attribute on the video element as the audio attribute.

Chapter 9 is a good, thorough introduction to the history API. The following chapter focuses on the Geolocation API which it erroneously refers to as the “HTML5 Geolocation API” which it is not, it is a W3C API. Such details might seem minor to some, but it is important to use the correct terminology.

The last few chapters then deal with many of the HTML5 JavaScript APIs, some of which are new and not so well supported and others that are, e.g. Storage API and File API, and it provides a good introduction to each of them.

A word on the code

The book provides many examples of the topics talked about throughout the book. The examples are provided in beginner, intermediate and advanced recipes, with their difficulty increasing as appropriate.

The examples themselves are thorough but I must admit that I thought that the way they’re presented was difficult to read sometimes. The CSS definitions are all in one line, and the indentation could be improved to make things more readable. There is a lot of code to display however, and this has probably restricted how it’s presented. All the examples are also provided on the accompanying website.

Conclusion

Overall this is a good book on HTML5 and ideal for someone looking to learn what HTML5 can do and to try it for themselves. With good explanations and thorough examples, it will bring any developer new to HTML5 up to speed.