Archive | a11y

RSS feed for this section

Solved With CSS! Dropdown Menus

A common UI pattern that we see on the web are dropdown menus. They’re used to display related information in pieces, without overwhelming the user with buttons, text, and options. Somewhere that we see these a lot is inside of headers or navigation areas on websites.

Let’s see if we can make one of these menus with CSS alone.

The post Solved With CSS! Dropdown Menus appeared first on CSS-Tricks.

Managing Heading Levels In Design Systems

Heydon Pickering looks into how to give a React component a certain heading (like <h1>, <h2>, etc.) depending on its context and thereby ensure that the DOM is still perfectly accessible for screen readers. Why is using the right heading important though? Heydon writes in the intro:

One thing that keeps coming back to me, in research, testing, and everyday conversation with colleagues and friends, is just how important headings are. For screen reader users, headings describe the …

The post Managing Heading Levels In Design Systems appeared first on CSS-Tricks.

Focusing on Focus Styles

Not everyone uses a mouse to browse the internet. If you’re reading this post on a smartphone, this is obvious! What’s also worth pointing out is that there are other forms of input that people use to get things done. With these forms of input comes the need for focus styles.


People are complicated. We don’t necessarily perform the same behaviors consistently, nor do we always make decisions that make sense from an outsider’s perspective. Sometimes we even do …

The post Focusing on Focus Styles appeared first on CSS-Tricks.

A Browser-Based, Open Source Tool for Alternative Communication

Have you ever lost your voice? How did you handle that? Perhaps you carried a notebook and pen to scribble notes. Or jotted quick texts on your phone.

Have you ever traveled somewhere that you didn’t speak or understand the language everyone around you was speaking? How did you order food, or buy a train ticket? Perhaps you used a translation phrasebook, or Google translate. Perhaps you relied mostly on physical gestures.

All of these solutions are examples of communication methods — tools and strategies — that you may have used before to solve everyday communicative challenges. The preceding examples are temporary solutions to temporary challenges. Your laryngitis cleared up. You returned home, where accomplishing daily tasks in your native tongue is almost effortless. Now imagine that these situational obstacles were somehow permanent.

The post A Browser-Based, Open Source Tool for Alternative Communication appeared first on CSS-Tricks.

Some Things About `alt` Text

I’m sure you know about alt text. It’s the attribute on the image tag that has the important task of describing what that image is for someone who can’t see it for any reason. Please use them.

I don’t want to dimish the please use them message, but some interesting alt-text-related things have come up in my day-to-day lately that are related.

When you don’t

Hidde de Vries wrote You don’t always need alternative text recently:

But when an icon …

The post Some Things About `alt` Text appeared first on CSS-Tricks.

Vox Accessibility Guidelines

I remember seeing these accessibility guidelines from Vox a while ago but it’s still interesting to go over them again today and see if there’s anything missing from my own process when it comes to improving accessibility.

And there’s an awful lot to remember! Color contrast, alt-text, keyboard navigation, focus states, and ARIA attributes are only a small snippet of the total number of things we ought to be mindful of when designing websites and so this checklist is certainly …

The post Vox Accessibility Guidelines appeared first on CSS-Tricks.

Keeping Parent Visible While Child in :focus

Say we have a <div>.

We only want this div to be visible when it’s hovered, so:

div:hover {
opacity: 1;

We need focus styles as well, for accessibility, so:

div:focus {
opacity: 1;

But div’s can’t be focused on their own, so we’ll need:

<div tabindex="0">

There is content in this div. Not just text, but links as well.

<div tabindex="0">
<p>This little piggy went to market.</p>
<a href="#market">Go to market</a>

This is …

Keeping Parent Visible While Child in :focus is a post from CSS-Tricks

Accessibility Testing Tools

There is a sentiment that accessibility isn’t a checklist, meaning that if you’re really trying to make a site accessible, you don’t just get to check some things off a list and call it perfect. The list may be imperfect and worse, it takes the user out of the equation, so it is said.

Karl Groves once argued against this:

I’d argue that a well-documented process which includes checklist-based evaluations are better at ensuring that all users’ …

Accessibility Testing Tools is a post from CSS-Tricks

Advocating for Accessible UI Design

Accessibility is a hot topic these days, and the older we web-makers get, the hotter it’s going to become! That might be a snarky outlook, but what I’m trying to say is that it’s about time we start designing the web for everyone because the web was meant to be for everyone, and less and less are we able to predict where, when, and how our work will be consumed.

Accessibility is not just up to developers

As developers, we …

Advocating for Accessible UI Design is a post from CSS-Tricks