Getting Started with Web Accessibility

There are lots of different ways to get started with accessibility, and honestly, looking at a list like what I've compiled here might be more overwhelming than it needs to be.

Getting started with web accessibility can be boiled down into four simple principles, but depending on how you like to learn you may find one or more of these resources helpful. I've certainly consulted them over the years!

The A11y Project

The A11Y Project is a community-driven effort to make digital accessibility easier.

It features articles on accessibility, a checklist based on WCAG, and other resources.

A11y Coffee

Amberley Romo wanted a single place to be able to point people to answer the question, "what is web accessibility and how do I get started?". She built a11y.coffee to answer it, and answers it quite well!

How to use a screen reader

The Paciello Group has a really helpful quick start guide for screen readers including JAWS, Narrator, NVDA and VoiceOver.

When people ask me how to get started using a screen reader on macOS, I send them this guide from Bocoup: Getting Started with VoiceOver & Accessibility.

Keep up to date with A11y Weekly

The A11y Weekly newsletter, curated by David A. Kennedy, is a great resource for staying connected on what's happening on a weekly basis in the web accessibility community.

The format is usually:

  • a featured article on accessibility
  • a roundup of some of the best new accessibility writing, tools, resources, and tutorials
  • another featured article

Books

Sometimes I find books a helpful way to focus on a topic and cut out a lot of noise. Reading one person's longer perspective on a topic can often be more efficient than reading a bunch of isolated blog posts and cobbling them together.

Here are some great books about web accessibility.

Accessibility for Everyone by Laura Kalbag

If you want a one book intro to the field, I suggest this one.

This is a great overview of the web accessibility landscape. You'll learn about disabilities and impairments, how to plan for accessibility, content and design considerations, HTML and accessibility, testing, and relevant laws and guidelines.

Inclusive Design Patterns by Heydon Pickering

This book aims to show how to build accessible web interfaces without extra effort and provides front-end patterns as examples

Inclusive Components by Heydon Pickering

This book looks at common web design patterns through the lens of inclusion and shows more accessible, robust solutions for these common patterns. Some of the components are available for free at inclusivecomponents.design.

Resilient Web Design by Jeremy Keith

This is more of a history book of the web than a set of tutorials, but in it Jeremy Keith provides so much helpful context for understanding why websites are built in certain ways and not in others, and longer term ideas to follow to build websites that are resilient.

You won’t find any code in here to help you build better websites. But you will find ideas and approaches. Ideas are more resilient than code. I’ve tried to combine the most resilient ideas from the history of web design into an approach for building the websites of the future.

This book explains how we can craft accessible interfaces without extra effort — and what front-end design patterns we can use to create inclusive experiences.


Libraries

As in most areas of web development, smart, helpful people have built robust open-source libraries to help solve common accessibility problems. If you're looking to build a new component or are having trouble implementing a pattern they way you think it should be, you may find some help here

I've grouped these here into general JavaScript libraries, React libraries, and more fully featured style guides / pattern libraries.

General JavaScript Libraries

These libraries are generally framework agnostic, or may depend on jQuery.

Accessible Autocomplete

A JavaScript autocomplete built from the ground up to be accessible.

Adobe Accessible Mega Menu

A demonstration of how to implement a keyboard and screen reader accessible mega menu as a jQuery plugin.

Accessible Dropdown Navigation

A more accessible multi-level dropdown navigation, with an explainer blog post here.

a11y Dialog

A11y dialog is a lightweight (1.3Kb) yet flexible script to create accessible dialog windows.

Micromodal

Micromodal.js is a lightweight, configurable and a11y-enabled modal library written in pure JavaScript

React Libraries

React libraries to help with common accessibility patterns.

React Modal

An accessible modal dialog component for React, built and maintained by the core React team.

React Menu Button

react-menu-button is a React component for inclusive-menu-button meant to ease the use of accessible menu buttons in React applications.

React Clickable Box

React component to add onClick to HTML elements without sacrificing accessibility.

React ARIA Accordion

This accordion component aims to follow the guidelines set out in the WAI-ARIA Authoring Practices 1.1 and uses the render props pattern to be as flexible as possible.

Reach UI

Reach UI seeks to become the accessible foundation of your React-based design system. Each component is tested with Safari + VoiceOver, Firefox + NVDA, and Edge + JAWS.

Style Guides / Pattern Libraries

Rocketbelt

Rocketbelt is a UX-focused, responsive, and mobile-first pattern library collaboratively assembled at Pier 1 Imports.

A11y Style Guide

This application is a living style guide or pattern library, generated from KSS documented styles, with an accessibility twist.

It comes with pre-populated accessible components that include helpful links to related tools, articles, and WCAG guidelines to make your site more inclusive.

eBay MIND Patterns

A book with corresponding examples, from the team at eBay.

United State Web Design System

A design system for the federal government

Design and build fast, accessible, mobile-friendly government websites backed by user research.

Paragon, the Open edX React Pattern Library

Paragon is a pattern library containing accessible React components and a SCSS foundation built on Twitter Bootstrap. Paragon is developed for the Open edX platform.

Styled Form Controls

A repository of styled and “styled” form control elements and markup patterns, and how they are announced by screen readers.

Web Experience Toolkit (WET)

  • An award-winning front-end framework for building websites that are accessible, usable, interoperable, mobile friendly and multilingual
  • A collection of flexible and themeable templates and reusable components
  • A collaborative open source project led by the Government of Canada

Léonie Watson's Accessible Design Patterns

A11y Nutrition Cards

A11Y Nutrition Cards from Dave Rupert are an attempt to simplify the accessibility expectations when it comes to component authoring. Based on the WAI ARIA Authoring Practices Guide.

There are examples for:

  • Accordion
  • Button
  • Disclosure (Show/Hide)
  • Menu & Menu Button
  • Tabs
  • Tooltip

Automated Testing

Automated testing is really helpful both for learning about accessibility and making sure the sites you build are accessibile. Automated testing won't catch all issues, but is well-worth the effort to set up! For more info on different kinds of accessibility testing, check out Madalyn Parker's article, Accessibility Testing is Like Making Coffee.

ESLint & Accessibility

An ESLint plugin for checking common accessibility errors.

Pa11y

Pa11y is your automated accessibility testing pal. It runs accessibility tests on your pages via the command line or Node.js, so you can automate your testing process.

AccessLint

AccessLint is a GitHub App that finds accessibility issues in your pull requests.

aXe: The Accessibility Engine

Axe is an accessibility testing engine for websites and other HTML-based user interfaces. It's fast, secure, lightweight, and was built to seamlessly integrate with any existing test environment so you can automate accessibility testing alongside your regular functional testing.


Sites

HTML5 Accessibility

Get the current accessibility support status of HTML5 features across major browsers.

https://axesslab.com/

https://www.accessibility-developer-guide.com/

Accessibility for Teams

https://accessibility.digital.gov/

Four Principles of Accessibility

https://www.w3.org/TR/UNDERSTANDING-WCAG20/intro.html#introduction-fourprincs-head

https://developers.google.com/web/tools/chrome-devtools/accessibility/reference

CSS Tricks Accessibility Posts

Inclusive Components - Heydon Pickering


Tools

Accessibility Auditing Tools

SortSite

WAVE: Website Accessibility Evaluation Tool

18F list of tools

WAI List of Tools

SiteImprove

Koa11y

Tenon

tota11y

https://github.com/liip/TheA11yMachine

https://github.com/ffoodd/a11y.css

https://achecker.ca/checker/index.php

Browser Extensions / Bookmarklets

Construct.css (formerly Trashy.css)

Trashy is a bookmarklet that removes the CSS on your page, reveals the structure of your HTML and displays possible errors. All with just a few CSS files.

ANDI

ANDI (Accessible Name & Description Inspector) is a bookmarklet that:

  • Provides automated detection of accessibility issues
  • Reveals what a screen reader should say for interactive elements
  • Gives practical suggestions to improve accessibility and check 508 compliance


Communities

Web A11y Slack

I hang out in here quite a bit :) My handle is @ben if you want to get in touch! Get an invite here: https://www.reddit.com/r/accessibility/