Hello all!
I hope you’re enjoying Web Browser Engineering and maybe even considering gifting a copy to a friend for the coming holidays. We have a new Korean edition out in case you’d like one, and there’s more translations in the works.
Meanwhile, I did want to mention a few changes we made to the book to keep up with some of our dependencies changing or going obsolete.
First, Skia. Chapter 11 (on visual effects) and every later chapter uses the Skia 2D graphics library for drawing page content and the browser UI. Until now, we’ve specifically required Skia version 87, which is very, very old; the most recent release is milestone 144. So we’ve updated the text to work with more recent versions.
The main change is in Chapter 15 in the implementation of the CSS image-rendering property. Basically, in Skia 87, this used an API called FilterQuality, but more recent Skia versions instead use an API called SamplingOptions. It’s not a big change, and we have porting notes in case you want to keep using Skia 87, but the big benefit is that while FilterQuality was an unstable API, SamplingOptions is stable so it’s guaranteed to work in future Skia versions as well. This means we can now recommend readers install the current Skia version instead of asking you to install an old, obsolete version.
Second, playsound. This was a simple Python library to play audio, which we used in Chapter 14 (on accessibility) to implement a really simple screen reader. But unfortunately, it looks like playsound doesn’t work on some combination of recent Python versions and recent macOS releases, and we’ve heard some complaints from users on other OSes as well.
Since browsers don’t typically include their own screen readers, and since playing audio is actually totally secondary to the main point of the chapter, we’ve decided to remove playsound from the main chapter text, and just recommend users print the screen reader text to the console. There’s a new exercise that describes how to build a somewhat more sophisticated screen reader, including support for polite and assertive interruptions for live content.
As always, thank you all for reading, and do consider gifting Web Browser Engineering this holiday season. The book should be available on all of the typical sites like Bookshop.org, Barnes & Noble, and Amazon (referral link). And if you’ve got some free time over the holidays, consider hacking a bit on your favorite open source web browser!

