WCAG3 Contrast as of April 2026

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 7 days ago

Accessibility Law of Headlines

Betteridge’s law of headlines states that any headline that ends in a question mark can be answered by the word no. For at least the digital accessibility landscape, I would like to amend it, fork it, whatever it: Any headline that asserts a thing is accessible is wrong. Yes, tha … | Continue reading


@adrianroselli.com | 23 days ago

Your Browser Can Already Speak a Page

Users can customize the features built into the browser, something not often available from third-party approaches. Is an “AI” company offering to provide spoken versions of your pages for users? Is an overlay company promising to make your content more accessible by its overlay … | Continue reading


@adrianroselli.com | 1 month ago

Honoring Mobile OS Text Size

If your users scale the text size in Android or iDeviceOS, that doesn’t always affect the size of text on a web page. It’s a function of browser and authored code, as opposed to a standardized approach. That may be changing. Support The current state of affairs in the three… | Continue reading


@adrianroselli.com | 2 months ago

You Know What? Just Don’t Split Words into Letters

This is an unplanned part two for Barriers from Links with ARIA. The title reflects my exasperation because this isn’t new, I’ve simply failed to be explicit about it over the last decade or so. In 2012 I vented about TypeButter using for each letter. In 2020… | Continue reading


@adrianroselli.com | 2 months ago

Barriers from Links with ARIA

Today Temani Afif asked a question: Are the below codes equivalent if we consider all the aspects? (a11y, semantic, something else maybe?) If not, what is missing (or should be changed) in the second code CSS by T. Afif (@css@front-end.social) 22 January 2026, 2:52pm I have my ca … | Continue reading


@adrianroselli.com | 2 months ago

Live Region Support

This post does not discuss whether live regions are good, nor is it a post about the best way to use them. This post only covers how they are exposed to the audience who experiences them — screen reader users. Written by a non-screen-reader user. If you’re here because your… | Continue reading


@adrianroselli.com | 3 months ago

Brief Note on Application Keyboard Shortcuts

Identifying keyboard shortcuts for an application is mostly an internationalization problem. It’s also not a new problem. A recent (to me) example is the WordPress Gutenberg team starting to discuss keyboard shortcuts in 2017, addressing what will and won’t work across keyboards … | Continue reading


@adrianroselli.com | 3 months ago

How I Evaluate an ACR (VPAT®)

ACRs are Accessibility Conformance Reports, which are the output of a VPAT, or Voluntary Product Accessibility Template maintained by ITIC, or the Information Technology Industry Council (which is why VPAT often has a ® symbol hanging off it). An organization may fill out the tem … | Continue reading


@adrianroselli.com | 3 months ago

My Use of ‘AI’ on this Site

I’m using this post to acknowledge my past practices and establish future ones on this site related to ‘AI’. I have not, and will not, use LLMs to write, draft, review, or otherwise participate in content creation — outside of clearly-identified contexts to critique it. I have us … | Continue reading


@adrianroselli.com | 3 months ago

Typefaces for Dyslexia

I dare say this post from Adrian Roselli — first published in 2015 and updated 16 times (and counting) since — is the definitive debunking of the pseudoscience claims regarding deliberately ugly fonts being somehow beneficial to readers with dyslexia.  ★ | Continue reading


@adrianroselli.com | 4 months ago

You Can’t Make Something Accessible to Everyone

This post’s title is unpleasant, but it’s important to acknowledge the reality of the human condition and limitations in technologies. Even purpose-built assistive tech. Broadly, when someone says something is “accessible” that’s a hopeful statement that is based on some best eff … | Continue reading


@adrianroselli.com | 4 months ago

Web Design / Dev Advent Calendars for 2025

The advent calendar I wanted to use for the photo hasn’t arrived yet, so enjoy this box of tree. Web developers around the world have for years given a nod to Saturnalia solstice Isaac Newton’s birthday Yule wassailing mummering end of Gregorian calendar year Christmas with adven … | Continue reading


@adrianroselli.com | 4 months ago

The Value of Selecting Selects by Value

This is meant to use voice control to test select menus (and other fields, but the title would be less weird) by their value because their accessible names are hidden. I’m sharing results of that testing. This was partially driven by: WCAG issue #3808 SC 3.3.2: Labels or Instruct … | Continue reading


@adrianroselli.com | 4 months ago

Pre-order “Digital Accessibility Ethics”

Lainey Feingold, Reginé Gilbert, and Chancey Fleet gathered 36 authors across 10 countries and a commonwealth to write 32 chapters about ethics in digital accessibility. I am one of those 36 authors. The painting on the cover was created by Ana Maria Vidalon, a Spanish-speaking a … | Continue reading


@adrianroselli.com | 5 months ago

Shopify Needs a Mirrorfy

Shopify is legitimately angry at drive-by ADA lawsuits, as outlined in its recent post The small business shakedown: Why thousands of entrepreneurs are getting buried in lawsuits. Like thousands of small business owners across the United States, Clay*, an online store owner, was … | Continue reading


@adrianroselli.com | 5 months ago

OpenAI, ARIA, and SEO: Making the Web Worse

OpenAI has announced it’s launched a new browser, Atlas, with ChatGPT built in. For those familiar with ARIA, OpenAI outlines what to expect (I left the code as I found it, other than removing the target): We’ll continue to make Atlas better, and our roadmap includes multi-profil … | Continue reading


@adrianroselli.com | 5 months ago

Talkin’ Tables at A11yTO Conf

Abstract for my session Talkin’ Tables, which I presented in place of another speaker who had to back out the day before: This session will walk through the basics of how to construct an HTML table. More than basic structure, it will talk about support and how it is exposed… | Continue reading


@adrianroselli.com | 6 months ago

Custom Carets and Users: When The Caret Is No Longer a Stick (Yes, That’s a Poor Attempt at a Pun)

Animated example First, let’s define caret. For the scope of this post, I am not talking about the ^ symbol, which evolved from the circumflex. I’m also not talking about the proofreader mark, sometimes rendered as ‸, ⁁, or ⎀. I am talking about the navigation symbol (or insertio … | Continue reading


@adrianroselli.com | 6 months ago

My Thoughts on the State of Surveys

Every few months there’s another State of Something survey. As of this week, the State of CSS 2025 survey results have just become available and the State of HTML 2025 survey is wrapping up. This post is skewed to those, touches on more, and is rather disjointed. “2012 Oregon Cit … | Continue reading


@adrianroselli.com | 8 months ago

1.2.5: Adversarial Conformance

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 8 months ago

Horizontal Scrolling Containers Are Not a Content Strategy

I should clarify that I am not talking about carousels. That said, because users often consider horizontal scrolling containers to be carousels, I will be talking about carousels. Also, this post is written by a monolingual American. While I discuss localization issues, there’s n … | Continue reading


@adrianroselli.com | 8 months ago

#ARTY Could Get You Sued

I can’t actually assert the ARTY overlay will result in a lawsuit, though there is a trend of overlays attracting lawsuits. Attorneys say overlays don’t protect from lawsuits, either. Regardless of the company making it, if you wonder if you should use an accessibility overlay, t … | Continue reading


@adrianroselli.com | 9 months ago

#Accesstive Will Get You Sued

I can’t actually assert the Accesstive overlay will result in a lawsuit, though there is a trend of overlays attracting lawsuits. Attorneys say overlays don’t protect from lawsuits, either. Regardless of the company making it, if you wonder if you should use an accessibility over … | Continue reading


@adrianroselli.com | 9 months ago

Check / Uncheck all in a Table

TL;DR: Unless you have user testing results saying otherwise, maybe put a check-all checkbox outside the table. The rest of this post is an awkward mash-up of my posts Don’t Turn a Table into an ARIA Grid Just for a Clickable Row and Check-All / Expand-All Controls with a little… | Continue reading


@adrianroselli.com | 9 months ago

Where to Put Focus When Opening a Modal Dialog

TL;DR: blanket statements about where to put focus when opening a modal dialog are wrong, including this one. This post is meant to help guide you, an intelligent and thoughtful and empathetic reader, figure out where you should set focus. The scenarios are non-exhaustive. Messag … | Continue reading


@adrianroselli.com | 10 months ago

My Request to Google on Accessibility

Hey, Alphabet or Google or Chrome or whomever in that illegal monopoly continues to release things to the web platform that are full of accessibility barriers, I have what I think is a straightforward request. My Request Please, if your team cannot explain how the thing satisfies … | Continue reading


@adrianroselli.com | 11 months ago

Talkin’ Tables @ AccessU

Abstract for my session Talkin’ Tables: This session will walk through the basics of how to construct an HTML table. More than basic structure, it will talk about support and how it is exposed to screen readers in particular. With that foundation it will walk through patterns for … | Continue reading


@adrianroselli.com | 11 months ago

Selfish Accessibility 2025 @ AccessU

Abstract for my talk Selfish Accessibility: 2025: More than 10 years ago I presented my talk “Selfish Accessibility,” a tongue-in-cheek discussion of how to quietly approach accessibility efforts by appealing to the bosses, clients, and vendors who otherwise might not care about … | Continue reading


@adrianroselli.com | 11 months ago

Do Not Publish Your Designs on the Web with Figma Sites…

…Unless you want to fail all the WCAGs, create litigation risk, close off opportunities in Europe, engage in reputational harm, and oh yeah, throw up barriers to your customers and users. What am I talking about? Figma announced Figma Sites, letting you publish your Figma designs … | Continue reading


@adrianroselli.com | 11 months ago

Automated WCAG Testing Is Grrreat!

I’m a big fan of using automation in WCAG testing. I use bookmarklets, dev tools, browser features & reporting, and a pile of third-party products from assorted vendors. These save me time and effort, letting me focus on more tricky cases. But… Unfortunately, the marketing machin … | Continue reading


@adrianroselli.com | 1 year ago

Tweaking Text Level Styles, Reprised

In 2017 I wrote Tweaking Text Level Styles (terrible name in retrospect) and I made regular updates over the years. Stop reading it. Remove it from your bookmarks. Unlink it from your posts. Print it onto paper and then burn it. Demo Wrap-up The conclusions and… | Continue reading


@adrianroselli.com | 1 year ago

Mainlining Mains

Sometimes you run into a main landmark where you don’t expect one. Like Main Street USA in Hong Kong Disney. So you grab a snack in a diner that serves no hot dogs. You can buy little American flags in the heart of Hong Kong and clothes telling Hong Kong… | Continue reading


@adrianroselli.com | 1 year ago

Tag, You’re It

Eric tagged me into this chain letter of a post. From what I can glean, you are supposed to steal the headings and treat them as questions. Why did you start blogging in the first place? Three key reasons: So I wouldn’t have to keep repeating myself; to act as… | Continue reading


@adrianroselli.com | 1 year ago

CSUNATC 2025 Recap

This post only covers my impressions and experiences from CSUNATC. Others probably had dramatically different experiences. Talk Types The talks seemed to fall into three broad categories this year: product pitches, vendor room sessions (which were product and service pitches), an … | Continue reading


@adrianroselli.com | 1 year ago

Don’t Use Fake Bold or Italic in Social Media

I posted something on Mastodon that uses Unicode math symbols to produce fake bold and fake italic text. I used YayText.com to generate it, but I am not linking it because you I don’t want you to use it. I embedded the post, but you can go to it directly… | Continue reading


@adrianroselli.com | 1 year ago

Be Wary of Accessibility Guarantees from Anyone

TL;DR: anyone promising you that a total solution to digital accessibility is coming, and they are the ones bringing it, may be lying. Background In 2016 I wrote Be Wary of Accessibility Guarantees from Vendors. At the time I was cautioning readers about libraries and frameworks … | Continue reading


@adrianroselli.com | 1 year ago

1.4.10: Adversarial Conformance

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 1 year ago

Generic LLM Chatbot Attestation

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 1 year ago

Which VoiceOver?

You may have seen this as a thread on Mastodon (my primary social short-form platform) or on BlueSky. Imagine these as the opening to a series of conversations between a vendor or client or boss or PO or whomever and me. Variations on Real Life Conversations “We like the way… | Continue reading


@adrianroselli.com | 1 year ago

Don’t Wrap Figure in a Link

In my post Brief Note on Figure and Figcaption Support I demonstrate how, when encountering a figure with a screen reader, you won’t hear everything announced at once: No screen reader combo treats the caption as the accessible name nor accessible description, not even for an ima … | Continue reading


@adrianroselli.com | 1 year ago

aria-description Does Not Translate

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 1 year ago

Brief Note on Figure and Figcaption Support

This post is part of RSS Club, rewarding those who still use RSS to read and/or share content. These posts are embargoed from my regular post feed and the socials for an arbitrary period of time. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your frie … | Continue reading


@adrianroselli.com | 1 year ago

FTC Catches up to #accessiBe

From the FTC on Friday: The Federal Trade Commission will require software provider accessiBe to pay $1 million to settle allegations that it misrepresented the ability of its AI-powered web accessibility tool to make any website compliant with the Web Content Accessibility Guide … | Continue reading


@adrianroselli.com | 1 year ago

Updated Brief Note on Description List Support

TL;DR: Description list support continues to be generally good (with VoiceOver still the outlier), even if you may not like how it is supported. For background, the has existed since HTML+, or 1993, when it was called definition list. In December 2022 I wrote Brief Note on Descr … | Continue reading


@adrianroselli.com | 1 year ago

Development Advent Calendars for 2024

I got myself a coffee advent calendar and I have to admit it was more aspirational than anything. I don’t drink enough coffee. But the packaging is nice. Web developers around the world have for years given a nod to Saturnalia solstice Isaac Newton’s birthday Yule wassailing mumm … | Continue reading


@adrianroselli.com | 1 year ago

Avoid Read-only Controls

It’s weird to me that after I urged everyone not to disable form controls, a bunch of them decided that making them read-only was somehow better. But here we are. What’s in the box? Photo by Michael Heiss, no edits, CC BY-NC-SA 2.0. HTML The readonly attribute is only allowed… | Continue reading


@adrianroselli.com | 1 year ago

A11y Camp: Keynote Slides

Download a 3.6MB tagged PDF of my slides or try the embedded view if your browser displays PDF inline. The text in the slides is set in Atkinson Hyperlegible. The PDF is exported from PowerPoint, after confirming reading order and alternative text. The PDF itself has had no editi … | Continue reading


@adrianroselli.com | 1 year ago