-
New Feb 23, 2026
aria-haspopup might not do what you think it does
To kick off my new article series, #WebAccessibilityFails, I decided to focus on a bad practice I often see in main navigations during accessibility audits.Developers like to put aria-hasp...
-
New Feb 27, 2026
Put aria-hidden=true on decorative SVGs
The title says it all: put aria-hidden="true" on decorative SVGs, or they'll be announced by some screen readers. <svg viewBox="0 0 39 44" aria-hidden="true"> <path d="M19.5 36.5 1.6 26...
-
New Feb 27, 2026
role=presentation is no alternative for aria-hidden=true
In the previous post, I explained how to hide presentational SVGs using aria-hidden="true". That's a reliable technique, but sometimes I see developers use role="presentation" instead, which may...
-
New Mar 4, 2026
Your skip link targets may not need tabindex=-1 to work properly
Recently, someone posted on LinkedIn that skip links are often broken because their target elements are missing a tabindex attribute. I was really surprised to see that because I thought that wa...
-
New Mar 11, 2026
The geolocation element is odd
Imagine the following scene: you're on a website, and there's a button. When you click the button, it shows some text, but the website's font size is really small. So, you change the default font si...
-
New Apr 15, 2026
box-shadow is no alternative to outline
People like to use the box-shadow property for styling focus outlines because it gives them more flexibility. button.demobad { outline: none; box-shadow: 0 0 0px 4px blue, 0 0 0px 8px red, 0 0...
-
New May 22, 2026
Don't put aria-label on generic elements like divs
The title already tells most of the story, but here's why you must avoid labeling generic elements like divs or spans using aria-label or aria-labelledby.Looking at the ARIA spec, you'll find section...
-
New Jun 3, 2026
Context-aware headings in HTML
A common issue that we've probably all faced at some point is having a component that includes a heading, which sometimes should be an H2 and sometimes maybe an H3, depending on where it's us...