As of December 2024, you should prefer using for icons and the like, but for non-interactive decorative contexts that don’t need auto-translation, then alternative text on CSS generated content can get the job done. Even if Safari does some interesting things with it. Relying on images that come from…| Adrian Roselli
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…| Adrian Roselli
Nine years ago I had become fed up with trying to explain to clients, users, friends, co-workers, and strangers that screen resolution, browser chrome, and browser size combine to create some unique viewport sizes. What this meant was that whether a user had a display at 640×480 or at 1,024×768…| Adrian Roselli
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…| Adrian Roselli
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 you, an intelligent and thoughtful and empathetic reader, figure out where you should set focus. The scenarios are non-exhaustive. Messages I’m artificially breaking these into three…| Adrian Roselli
Since the early days of the web, when images could be floated and text would wrap around them, designers have wanted to bring drop caps onto the web. Then we learned how terrible a pattern like atthew is for users, and CSS introduced :first-letter, letting us believe all…| Adrian Roselli
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…| Adrian Roselli
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 useful content…| Adrian Roselli
Susan Weinschenk, Ph.D. wanted to write an article about why it’s harder to read text set in all-caps than text set as mixed case. The argument for this has centered around how people read words — recognizing a word shape from its letters, whereas an all-caps word has no unique…| Adrian Roselli
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…| Adrian Roselli
This article was originally posted on evolt.org, an online resource for web developers, maintained by web developers. I have granted evolt.org the right to use this article on their web site, and they are the only entity with the right to reproduce it. Instead of going through the usefulness of…| Adrian Roselli
This article was originally posted on evolt.org, an online resource for web developers, maintained by web developers. I have granted evolt.org the right to use this article on their web site, and they are the only entity with the right to reproduce it. The proliferation of splash pages on web…| Adrian Roselli
LLM-powered chatbots are here to stay. As a result, I am playing around with a disclaimer to recommend for clients. After all, if the LLM says that it’s fine to mix chlorine and ammonia to clean the sink, then that chatbot user needs to be told to probably confirm it…| Adrian Roselli
There is a very good article over at A List Apart today titled “The Myth of Usability Testing.” The article starts off with an example of how multiple usability evaluation teams, given the same task and allowed to run at it as they saw fit, had far less overlap in…| Adrian Roselli
Usually. I originally titled this InacCSS-onlyible. I even made this typographically, er, distinct image. Then I realized it was silly and will instead use the neologism in a talk so I can hear the groans IRL. Interactive widgets powered with only CSS are relatively common as people are playing with…| Adrian Roselli
TL;DR: This post does not assert the correct way to code blockquotes, it will only demonstrate how screen readers announce some existing patterns. Test Details The first four examples are lifted from WHATWG HTML’s entry. The next three are from W3C HTML’s 2019 guidance (the W3C HTML spec…| Adrian Roselli
The required set of radio buttons. The white whale to many a developer who is trying their darnedest to ensure they are conveyed accessibly while not also making it sound like every individual radio button must be toggled. 1961 Cadillac Wonderbar dashboard radio by Nicholas Lucien (cropped). CC BY 2.0.…| Adrian Roselli
Others in this sorta-series: Under-Engineered Custom Radio Buttons and Checkboxen Under-Engineered Toggles Under-Engineered Toggles Too Under-Engineered Text Boxen Under-Engineered Select Menus A common interface pattern allows users to choose one item from a pre-defined set of choices, while still allowing them to add a custom selection if nothing else fits.…| Adrian Roselli
Whether you call them sentence forms, narrative forms, fill-in-the-blank forms, or Mad Libs forms, you are probably describing a form where the fields are interspersed within words in a sentence. Unlike more traditional forms, laid out with simple pairings of labels and fields, these forms are meant to be read…| Adrian Roselli
Others in this sorta-series: Under-Engineered Custom Radio Buttons and Checkboxen Under-Engineered Toggles Under-Engineered Toggles Too Under-Engineered Text Boxen I am still confounded how many developers and designers see a| Adrian Roselli
This article was originally posted on evolt.org, an online resource for web developers, maintained by web developers. I have granted evolt.org the right to use this article on their web site, and they are the only entity with the right to reproduce it. WebAIM is a non-profit organization within the…| Adrian Roselli
It’s been three months since evolt.org rolled out its new design. People have been asking what we did, why we did it, and how we did it. I’ll try to address these questions in the context of the HTML, the CSS, and the overall site design. (Nobody seems to care…| Adrian Roselli
This post is about exposing field errors programmatically. I have already shared some opinions (such as a caution about displaying messages below fields or avoiding default browser field validation), but this post dives into using ARIA to convey them to screen reader users. With fields that produce error messages on…| Adrian Roselli
Using ARIA instead of HTML is generally fine for content, layout, structure, and other static bits of a page. A is the same as as far users and accessibility APIs are concerned. It is unlikely a user will ever notice the difference unless you use both…| Adrian Roselli
All Posts Tagged: usability| adrianroselli.com
Does what it says on the tin. Uses and with a bit of ARIA to create an accordion that works without JavaScript while working better with JavaScript. Mostly. See the Pen Progressively Enhanced HTML Accordion by Adrian Roselli (@aardrian) on CodePen. Visit the standalone version for testing or…| Adrian Roselli
When I wrote Under-Engineered Text Boxen in 2019 I mentioned (WHATWG, MDN) but did not dwell on it. Partly because support was poor at the time. Once Can I Use’s entry listed Firefox on Android supporting it in version 110, I got excited and started testing to write…| Adrian Roselli
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 part of the…| Adrian Roselli
Here is the priority I follow when assigning an accessible name to a control: Native HTML techniques, aria-labelledby pointing at existing visible text, Visibly-hidden content that is still in the page, aria-label. Too often folks will grab ARIA first to provide an accessible name for a thing. Or they may…| Adrian Roselli
Remy Sharp asked on the Mastodon about pagination as he found it in the W3C Design System:| Adrian Roselli
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 Removes empty trigger link…| Adrian Roselli
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…| Adrian Roselli
This is not a comparison between popovers and dialogs, nor is it a discussion of support. This is me trying to get ahead of a potential issue for users when developers mix and match the patterns. I will let this 32 second video explain: Sorry, your browser doesn’t support embedded…| Adrian Roselli
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).…| Adrian Roselli
I have spent a few years banging on about ensuring scrolling areas on a page are accessible to keyboard-only users. This is partly because the term “keyboard” maps to other input types that we distill to “keyboard” for ease of reference (speech input, sip-and-puff, on-screen keyboards, scanning software, etc.). When…| Adrian Roselli
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 commentary:…| Adrian Roselli
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…| Adrian Roselli
Others in this sorta-series: Under-Engineered Custom Radio Buttons and Checkboxen Under-Engineered Toggles Under-Engineered Toggles Too This is the latest, and not last, in my informal series of posts on under-engineered controls. Generally I am looking at the minimum amount of CSS necessary to style native HTML controls while also retaining…| Adrian Roselli
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 browsers’ default…| Adrian Roselli
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…| Adrian Roselli
Table of Contents Example The HTML Live Region Button Decoration Accessible Name The Styles Hide the Live Region Color and Contrast Active Animations Text Resize and Reflow Windows High Contrast Mode The Script The Click Event Manipulate Outcomes Screen Reader Output WCAG Success Criteria What This Does Not Do Wrap-up…| Adrian Roselli
Once major browsers started supporting & developers immediately started to play with them to see what sorts of patterns they could enhance or replace. This is a good thing. Experimentation pushes boundaries, improves understanding. However, we need to be careful of christening this new-to-us interaction as the solution…| Adrian Roselli
Underlines, the standard, built-in signifier of hyperlinks, the core feature of the web, are beautiful. This is objectively true. They are aesthetically one of the most delightful visual design elements ever created. They represent the ideal of a democratized information system. They are a frail monument to the worldwide reach…| Adrian Roselli