Search
Popover API or Dialog API: Which to Choose?
2.3.2026
Choosing between Popover API and Dialog API is difficult because they seem to do the same job, but they don’t! After a bit lots of research, I discovered that the Popover API and Dialog API are wildly different in terms of accessibility and we'll go over that in this article.
Popover API or Dialog...
Approximating contrast-color() With Other CSS Features
11.2.2026
The new contrast-color() function is not fully supported yet. But can we still implement it in a cross-browser friendly way using other new CSS features?
Approximating contrast-color() With Other CSS Features originally published on CSS-Tricks, which is part of the DigitalOcean family. You should...
There is No Need to Trap Focus on a Dialog Element
26.1.2026
Accessibility advice around modals have commonly taught us to trap focus within the modal. Upon further research, it seems like we no longer need to trap focus within the (even in modal mode).
There is No Need to Trap Focus on a Dialog Element originally published on CSS-Tricks, which is part...
I Learned The First Rule of ARIA the Hard Way
21.1.2026
Semantic HTML does a lot more accessibility work than we usually give it credit for already — and ARIA is simple to abuse when we use it both as a shortcut and as a supplement.
I Learned The First Rule of ARIA the Hard Way originally published on CSS-Tricks, which is part of the DigitalOcean...
Explaining the Accessible Benefits of Using Semantic HTML Elements
6.11.2025
Why should you use a semantic <button> instead of a generic <div>? Accessibility, right? By how exactly does it help accessibility?
Explaining the Accessible Benefits of Using Semantic HTML Elements originally published on CSS-Tricks, which is part of the DigitalOcean family....
On inclusive personas and inclusive user research
19.9.2025
A set of notes taken from Eric Bailey's article about the use of inclusive personas and user research.
On inclusive personas and inclusive user research originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter
Covering hidden=until-found
15.8.2025
Short story: Slapping hidden=until-found on an element in HTML enables any hidden content within the element to be findable in the browser with in-page search.
Covering hidden=until-found originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter
On Accessibility Conformance, Design Systems, and CSS “Base” Units
14.8.2025
My brain can’t help but try to make connections between seemingly disparate ideas. And that’s what happened yesterday when I read:
Hidde’s “Can components conform to WCAG?”
Joas’s “Automating Design Systems”
Zell’s “We Might Need...
A Primer on Focus Trapping
21.7.2025
Focus trapping is about managing focus within an element, such that focus always stays within it. The whole process sounds simple in theory, but it can quite difficult to build in practice, mostly because of the numerous parts to you got to manage.
A Primer on Focus Trapping originally published...
Exploring the CSS contrast-color() Function… a Second Time
5.6.2025
The contrast-color() function doesn’t check color contrast, but rather it outright resolves to either black or white (whichever one contrasts the most with your chosen color). Safari Technology Preview recently implemented it and we explore its possible uses in this article.
Exploring...
How to Create Responsive and SEO-friendly WebGL Text
5.6.2025
Learn how to combine responsive HTML text with WebGL rendering, enabling scroll-driven animations and custom shader effects
What We Know (So Far) About CSS Reading Order
27.5.2025
The reading-flow and reading-order proposed CSS properties are designed to specify the source order of HTML elements in the DOM tree, or in simpler terms, how accessibility tools deduce the order of elements. You’d use them to make the focus order of focusable elements match the visual order,...
You can style alt text like any other text
22.5.2025
Clever, clever that Andy Bell. He shares a technique for displaying image alt text when the image fails to load. Well, more precisely, it's a technique to apply styles to the alt when the image doesn't load, offering a nice UI fallback for what would otherwise be a busted-looking error.
You...
HTML Email Accessibility Report 2025
16.5.2025
Some weekend reading on the heels of Global Accessibility Awareness Day (GAADM), which took place yesterday. The Email Markup Consortium (EMC) released its 2025 study on the accessibility in HTML emails, and the TL;DR is …
HTML Email Accessibility Report 2025 originally published...
Smashing Meets Accessibility
10.3.2025
The videos from Smashing Magazine's recent event on accessibility were just posted the other day. I was invited to host the panel discussion with the speakers, including a couple of personal heroes of mine, Stéphanie Walter and Sarah Fossheim. But I was just as stoked to meet Kardo Ayoub who shared...
Alt Text: Not Always Needed
25.11.2024
Most images require description for clarity, there are exceptions. This set of notes looks at different situations and contexts where alt text may not be needed and what to do in those cases.
Alt Text: Not Always Needed originally published on CSS-Tricks, which is part of the DigitalOcean family....
Clarifying the Relationship Between Popovers and Dialogs
23.10.2024
The difference between Popovers (i.e., the popover attribute) and Dialogs (i.e., both the <dialog element and the dialog accessible role) is incredibly confusing — so much that many articles (like this, this, and this) have tried to …
Clarifying the Relationship Between Popovers...
Recipes for Detecting Support for CSS At-Rules
7.10.2024
The @supports at-rule has been extended several times since its initial release. Once only capable of checking support for property/value pairs, it can now check for a selector using the selector() wrapper function and different font formats and techs using …
Recipes for Detecting Support...
Anchor Positioning Quirks
10.9.2024
I am thrilled to say, that from this week onwards, the CSS-tricks Almanac has an entry for each property, function, and at-rule related to the new Anchor Positioning API! For the last month, I have tried to fully understand this …
Anchor Positioning Quirks originally published on CSS-Tricks...
Quick Hit #17
9.9.2024
“Wrapping the <labelaround the <inputis fine, and is sufficient for conformance on its own, however adding explicit association with for and id is still necessary in practice.” —James Edwards…
Quick Hit #17 originally published on CSS-Tricks, which is part of...