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

Brief Note on Disclosures in Fieldsets

TL;DR: Probably don’t use disclosure widgets in fieldsets. If you do it anyway, don’t put the trigger in the . Context With / , recent support for the popover attribute, and the never-ending belief that a “clean” page means hiding content, there is a resurgence in stuffing usefu … | Continue reading


@adrianroselli.com | 1 year ago

Under-Engineered Estimated Reading Time Feature

There are plenty of plug-ins, libraries, and tutorials that will add an “estimated reading time” visual cue to your site. There are also browser extensions for users. Most use JavaScript and CSS to calculate based on word count and viewport position. All require more work on the … | Continue reading


@adrianroselli.com | 1 year ago

Semi-Annual Reminder to Learn and Hire for Web Standards

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

Mountain Chicken!

I am mis-using closed captions for a gag. The following video has an audio track and four sets of captions (for now?). Each set of captions is in English. Only one set of captions represents the spoken dialog, the other two represent dialog not in the video. The tracks are… | Continue reading


@adrianroselli.com | 1 year ago

Talkin’ Tables — WebAIM Conference 2024

I spoke at the 2024 Web Accessibility in Mind Conference (in partnership with PopeTech). As soon as the video is available I will embed it. This post is a stub to hold the slides during my talk and will be updated sometime within a few days after my talk with… | Continue reading


@adrianroselli.com | 1 year ago

Before Filing that Keyboard Bug…

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

Things to Do Before Asking “Is This Accessible?”

It is not uncommon for someone to message, call, email, or carrier pigeon me to ask if something is accessible. They almost invariably want a “yes” or “no.” However, I need to understand what the heck they mean and what the other-heck prompted them to ask. Yes, I would be… | Continue reading


@adrianroselli.com | 1 year ago

AT Is More Than Screen Readers

A screen reader is a single element of the overall set of assistive technologies. In practice, however, each is often used as a metonym for the other. Well, hello there. It’s nice to see you. If you’re here because I sent you the link, it’s nothing personal. You’re a lovely… | Continue reading


@adrianroselli.com | 1 year ago

Don’t Use Web•dev for Accessibility Info

Web.dev is a site from Google Chrome developer relations that provides content both to evangelize Chrome and to more broadly support the web platform. Rachel Andrew’s monthly “new to the platform” posts are effectively required reading to try to stay abreast of the browser suppor … | Continue reading


@adrianroselli.com | 2 years ago

Feedback on a Pagination Pattern

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 | 2 years ago

Be Careful Using ‘Grid’

TL;DR: Be careful when using the word grid on its own. Be certain you have chosen the term that accurately describes the pattern you want. If this post looks familiar to you, that is because it is essentially a redress of my 2023 post Be Careful Using ‘Menu’. It is… | Continue reading


@adrianroselli.com | 2 years ago

Disability:IN 2024 Agenda Bookmarklet

I had some issues using the Disability:IN 2024 Conference Agenda so I made a bookmarklet: 🔗 Fix Disability:IN Agenda You may have seen this originally posted as a CodePen, but I opted to move it here since I can embed videos showing a before-and-after experience. Fixes Re … | Continue reading


@adrianroselli.com | 2 years ago

YouTube and Vimeo Web Component

If you want something done right, post it wrong. In the long history of the innertubes, if you ask for help with code you typically won’t get much of a response. But if you post code and assert it is ideal and perfect and an immutable reflection of your pristine… | Continue reading


@adrianroselli.com | 2 years ago

Maybe Don’t Name That Landmark

TL;DR: You probably don’t need to name that landmark. The Ngong Ping Village tourist trap on Hong Kong’s Lantau Island. All the pricey tourist spots have visible named landmarks on the map, but the ones people generally care about (bathrooms, food, that lovely tea house) are not. … | Continue reading


@adrianroselli.com | 2 years ago

My Approach to Alt Text

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 | 2 years ago

Level-Setting Heading Levels

TL;DR: Avoid setting heading levels greater than six (6). This applies whether using aria-level or the proposed headingstart HTML attribute. Use HTML elements whenever possible. ARIA The aria-level attribute, when applied to headings (or nodes with the heading role) lets authors … | Continue reading


@adrianroselli.com | 2 years ago

A Brief Note on Highlighted Text

TL;DR: If you plan to style text highlighted by the browser, you must give it sufficient contrast — 3:1 for the highlight block against its background and (probably) 4.5:1 for the text within that highlighted block against that background. CSS Context CSS provides methods to styl … | Continue reading


@adrianroselli.com | 2 years ago

What You Can Do as a Web Builder on Earth Day

One easy thing you can do for the earth is not use “AI” tools. Consider this as a programmer, web developer, web designer, copywriter, webmaster, etc. The tools include anything branded as generative AI, LLMs, computer vision tools, ChatGPT, Bard, Grok, Dall-e, Midjourney, and so … | Continue reading


@adrianroselli.com | 2 years ago

Long Alt

TL;DR: Keep your image alternative text brief, devoid of special characters, empty of URLs, and ideally in one language. Here We Go Sometimes you can have too much alternative text, particularly for an . I don’t mean there is a limit to what is allowed, I mean there is a… | Continue reading


@adrianroselli.com | 2 years ago

CSUNATC: WCAGmire

Download a 4.4MB 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 outdoor images are generated from Midjourney. The PDF is exported from PowerPoint, after confirming reading order and … | Continue reading


@adrianroselli.com | 2 years ago

The Ultimate Ideal Bestest Base Font Size That Everyone Is Keeping a Secret, Especially Chet

It’s none. Clarification Let me clarify: don’t set a base font size. body { /* font-size: yeah, no */ } Got a linter or code checker or boss-man hassling you that you need to set something? Ok, use this: body { font-size: 100%; } Because This approach has the advantage… | Continue reading


@adrianroselli.com | 2 years ago

Web Turns 35, Seems Popular

The world wide web has officially lasted 35 consecutive years, which means it’s catching up to its parent, the Internet, which itself is bearing down on 55. That’s an important distinction. The Internet is not the web; it is the foundation on which the web was born. Prior Years F … | Continue reading


@adrianroselli.com | 2 years ago

Jakob Has Jumped the Shark

Yes, that is the bear from Jakob’s clearly spurious alternative text example and yes, that is The Fonz after jumping the shark. If you have been following the saga of Jakob Nielsen, there a few quotes I could use here: Battle not with monsters, lest ye become a monster (Nietzsche … | Continue reading


@adrianroselli.com | 2 years ago

Check-All / Expand-All Controls

Controls that can operate other controls in bulk are not new. One common example is a single checkbox that allows you to check or uncheck a group of checkboxes. Another example is a single button that lets you expand or collapse a set of disclosure widgets. When the user operates … | Continue reading


@adrianroselli.com | 2 years ago

Techniques to Break Words

Photo by studio tdes. Used under CC BY 2.0 Deed. Image cropped and contrast enhanced. A few days ago Benjy Stanton asked about breaking long words in tables. I offered a suggestion, which may or may not have worked. I never asked. My failure to follow up aside, it reminded… | Continue reading


@adrianroselli.com | 2 years ago

My WebAIM 10th SR User Survey Takeaways

A rambling collection of thoughts from reading through the WebAIM Screen Reader User Survey #10 Results. Most of this was in a Masto thread, but I opted to post it here so I can laugh at myself later. Disability This opening nugget is important for understanding some of my commen … | Continue reading


@adrianroselli.com | 2 years ago

ARIA `note`

Trying Markdown code indicators in my post title, not because I want it to convert, but because I am curious if people will ping me to tell me it broke their RSS readers. Oh, and so it converts to code when pasted into your GitHub issues. ARIA note Role A… | Continue reading


@adrianroselli.com | 2 years ago

Don’t Disable Form Controls

Just another usability and accessibility pro telling authors not to do the thing they continue to do. It’s Ok to Disable Buttons There are plenty of cases where you want to disable a button until a user takes a conscious action to enable it, such as when launching nuclear missile … | Continue reading


@adrianroselli.com | 2 years ago

Under-supported and Underpaid

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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago

Using abbr Element with title Attribute

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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago

Embed Slides, YouTube Videos, and More

There are plenty of use cases for embedding third-party content on a site, as well as local content that may not be in HTML. Perhaps you gave a talk and want to share your slides. Sometimes you want to reference a video that exists only on YouTube. Maybe you have… | Continue reading


@adrianroselli.com | 2 years ago

#AudioEye Has Dropped Its Suit Against Me

AudioEye has dropped its lawsuit against me as part of a settlement agreement. The specific legal details are at the end of this post. Index for this post: Joint Statement Impact, Abridged SLAPP Everybody Lost Legal Details Wrap-up Related Joint Statement The Parties are AudioEye … | Continue reading


@adrianroselli.com | 2 years ago

2.5.8: 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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago

AD Support in HTML Video

This post supplements Browser Video Players Review. There I wade into the de facto accessibility of the element based on the default video players provided by browsers. The results of my testing here update the tables in that post. One of the primary challenges of using the brow … | Continue reading


@adrianroselli.com | 2 years ago

Baseline Does Not Really Cover Baseline Support

Yeah, that’s not exactly a helpful title. The relatively new Web Platform Baseline offering does not track browser support for accessibility features built into the web platform. If you need to understand whether browsers support accessibility features as your own base level set … | Continue reading


@adrianroselli.com | 2 years ago

Media Queries in HTML Video

Before you get too far into this post, maybe read Browser Video Players Review. There I wade into the accessibility of the element based on the video players browsers provide. Then maybe read Scott Jehl’s How to Use Responsive HTML Video (…and Audio!). I am leaning on support in … | Continue reading


@adrianroselli.com | 2 years ago

Web Development Advent Calendars for 2023

Generated by Midjourney using the prompt “a Pagan advent calendar for Christmas, made of natural wood.” It seemed more appropriate for the season than the neon synthwave version (which I want to hire someone to make). Web developers around the world have for years given a nod to … | Continue reading


@adrianroselli.com | 2 years ago

Øredev 2023: Under-Engineered Patterns

Download a 2.6MB tagged PDF of my slides or try the embedded view if your browser displays PDF inline. I was invited Malmö, Sweden to present two talks at Øredev. Well, they asked me to do one but then suggested that hey, since I’m already there and stuff, how about… | Continue reading


@adrianroselli.com | 2 years ago

Øredev 2023: WCAGmire

Download a 5.3MB tagged PDF of my slides or try the embedded view if your browser displays PDF inline. I was invited Malmö, Sweden to present two talks at Øredev. Well, they asked me to do one but then suggested that hey, since I’m already there and stuff, how about… | Continue reading


@adrianroselli.com | 2 years ago

Don’t Turn a Table into an ARIA Grid Just for a Clickable Row

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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago

Splitting within Selects

The native HTML is renowned for its styling limitations. Even with control over the closed state and trigger appearance, the options themselves are still defined primarily by the browser and the OS. While I think this is generally fine (preferred, even), the (nee ) hopes to cha … | Continue reading


@adrianroselli.com | 2 years ago

2.4.11: 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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago

Obligatory WCAG 2.2 Launch Post

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 number of weeks. You can see all the RSS-only posts at AdrianRoselli.com/category/RSS. Tell your fri … | Continue reading


@adrianroselli.com | 2 years ago