Skip to main content
A random collection of accessibility-focused tools that you might find at least partially useful

Blog

Celebrating with The Perfect Toast

A client’s messy “toast” notifications got me thinking about what actually counts as a toast versus something dressed up as one. I break down the difference between quick auto-dismissing messages and ones with buttons or interactivity, and dig into the accessibility traps (timing, visibility, live regions) that trip these up.

Context is king: long live the king!

This article originally appeared on the TPGi blog but was removed in a cull of technical articles in August 2026. The content is mostly as the original was, but the presentation may have changed slightly in the migration to this site. In a recent post on the TPGi blog, Doug Abrams wrote an article titled […]

A Whole Lot of Bovver Over Hover

After two posts untangling colour contrast, I look into whether a hover style need the same 3:1 contrast as a focus indicator? Short answer, no. Using some button examples, I explain why hover effects are a nice bonus, not a WCAG requirement, and never fail SC 1.4.11.

What’s wrong with this picture: Does it fail 1.4.5 Images of Text? [Quiz]

Another round of my quiz format, this time aimed at SC 1.4.5 Images of Text. I throw up (I mean *together*) a bunch of scenarios for you — buttons, logos, tables rendered as images — so you can practice spotting real violations versus legitimate exceptions.

Assume the Position—A Labeling Story

An hour-long chat about where a checkbox label should sit (before or after the box) sent me down a rabbit hole into WCAG’s actual guidance on label positioning. I dig through common conventions, the classic “terms and conditions” exception, and what SC 3.3.2 really say, landing at “it depends, but pay attention.”

What Makes a Good Screenshot?

A colleague’s question about logging bugs turned into a full brain dump on screenshots. I share the habits that have served me well over the years (naming files by success criterion, cropping and annotation techniques) with the reminder that screenshots should support your write-up, not replace it.

When I Get That Low Contrast Feeling, I Need Non-Textual Healing [Quiz]

The companion piece to my “Use of Color” quiz, this time tackling SC 1.4.11 Non-text Contrast. Lots of tricky (borderline evil) examples to get your teeth into on this one!

Well Colour Us Surprised—This SC Can Be a Tricky Customer [Quiz]

My colleagues and I argue about SC 1.4.1 Use of Color more than any other criterion, so I turned it into a game-show-style quiz. I throw a bunch of tricky, real-world-flavoured examples at you (links, buttons, form fields) and ask you to call ‘pass’ or ‘fail’.

Enough with the role-play—let’s get back to the basics

Inspired by Steve Faulkner’s critique of misused ARIA roles, this post explains why native HTML elements beat recreating them with styled div and role attributes. It introduces a user stylesheet tool for spotting misused roles and argues developers save themselves effort by using what browsers already provide for free.

Seeing the wood for the trees: demystifying markup in 2021

Frustrated by the bloated, div-heavy markup produced by modern frameworks, I created a tool, the “De-crapulator”, which strips away clutter to reveal a page’s real underlying structure. Here’s what drove me to do it …