A blog about web development, HTML, CSS, JavaScript, and web accessibility.

Better defaults for popovers

I recently added a rule to my reset style sheet UA+ that I wanted to share with you.

Workshop: Deep Dive on Accessibility Testing

Once again, I’ve teamed up with my friends at Smashing Magazine 😻 to share with you everything I know about web accessibility testing! In this smashing workshop we’ll talk about automatic and manual testing, screen reader basics, Single Page Applications, Dev Tools, and more.

I’m speaking at Web Day Out 2026

The first Web Day Out conference is taking place next year on March 12, my birthday, in Brighton, and I'm one of eight speakers.

Dealbreaker bugs in native popovers

One of my clients decided to write a custom popover component that uses native popovers under the hood. We built the component and were happy with it. They were about to ship it until we realised there was an accessibility bug so severe that it was a dealbreaker for us.

What's an interactive element?

Two years ago, I wrote an article about the dialog element. I tested where focus goes when you open a modal dialog via the showModal() method. I tried different combinations of elements and attributes to see what happens because back in 2023, the behaviour was very inconsistent.

Never lose a z-index battle again

Recently, I learned about numeric keywords. Since I was terrible in school, I didn't know what to do with them, but when I saw infinity, I immediately thought of a great use case.

Breaking up with my X

About 2.5 years ago, I was banned from Twitter for no apparent reason. I wrote about it on this blog and described the events and personal consequences.

Close requests, close watchers, and the dialog element

The latest version of Chrome (134) comes with a new light-dismiss behavior for the dialog element, which enables a native click-outside feature. That's fantastic! Reading the announcement, I wondered how many ways there are to close a dialog element.

How to make LibreWolf your default browser on macOS

I recently switched to LibreWolf as my default browser, and I also wanted links to open by default inside it, but there isn't an option in LibreWolf like in other browsers.

Maybe don't use custom properties in shorthand properties

I've already written about how the fact that the initial value of a custom property is a guaranteed-invalid value can lead to unexpected results. Today, I realized how that can be problematic when you use custom properties in shorthand properties.