Logo: DIAGRAM Center

DIAGRAM Center: Accessible Interactives Library

The Accessible Interactives Library is a curated collection of open source, and freely available, software components and tools which can be used to develop accessible, interactive Web applications. Included software components and tools were evaluated by members of the DIAGRAM Center community, and the information presented was accurate as of the publication date below.

Table of Contents

Audio and Video

Name GitHub Repository Type Demo / Download Contributor(s)
Able Player

Able Player

A fully accessible cross-browser HTML5 media player designed from the ground up to meet the diverse needs and preferences of all users.

Able Player Uses HTMLWorks with WordpressComponent Able Player Demos Terrill Thompson
CADET

Caption and Descriptive Editing Tool

CADET is free, downloadable caption-authoring software that enables anyone to produce high-quality caption files that are compatible with any media player that supports the display of captions. CADET can also be used to generate audio-description scripts.

Application CADET Information and Demo WBGH
OzPlayer

OzPlayer

OzPlayer is fully compliant with the W3C Web Content Accessibility Guidelines, Version 2.0, Level AA. We want video to be accessible to everyone and therefore offer it free for non-profit use.

Uses HTMLWorks with WordpressComponent OzPlayer Information and Demo AccessibilityOz

Name GitHub Repository Type Demo / Download Contributor(s)
Accessible Carousel

Accessible Non-Repeating Carousel

Fully accessible horizontal carousel showing multiple book jacket covers to scroll through and select.

Uses HTMLUses CSSUses Javascript Code Pen Demo - Carousel Evan Yamanishi
Slick Accessible Carousel

Slic Accessible Carousel

Fully accessible Fully responsive carousel that scales with its container.

Accessible Carousel Uses HTMLUses CSSUses Javascript Slick Carousel Demo Bryan Garaventa

Character Counters

Name GitHub Repository Type Demo / Download Contributor(s)
Characters Remaining Counter

Characters Remaining Counter

Using ARIA-live messaging to announce remaining character count in a fixed character count edit textbox.

Uses HTMLUses CSSUses Javascript character count demo & code deque University

Checkboxes and Radio Group

Name Information Type Demo / Download Contributor(s)
Simple Checkbox

Simple Two State Checkbox

Dual-state: The most common type of checkbox, it allows the user to toggle between two choices -- checked and not checked.

Checkbox Information Uses HTMLUses CSSUses Javascript Checkbox Example (Two State) W3C WAI-ARIA
Tri-state Checkbox

Tri-State Checkbox

Tri-state: This type of checkbox supports an additional third state known as partially checked.

Checkbox Information Uses HTMLUses CSSUses Javascript Checkbox Example (Multi-State) W3C WAI-ARIA
ARIA Radio Group - TabIndex

Radio Button Tab Index

Radio button group using roving tabindex for managing keyboard focus.

Radio Group Information Uses HTMLUses CSSUses Javascript Radio Group - Tab Indexed W3C WAI-ARIA
ARIA Radio Group - activedecendant

Radio Button Group (aria-activedescendant)

Radio button group using aria-activedescendant for managing keyboard focus.

Radio Group Information Uses HTMLUses CSSUses Javascript Radio Example Active Decendent W3C WAI-ARIA

Combo Box

Name GitHub Repository Type Demo / Download Contributor(s)
ARIA Grid Combobox

Combobox with Grid Popup

Implements the combobox design pattern using a grid for the suggested values popup.

Combobox Information Uses HTMLUses CSSUses Javascript Grid Combobox Example W3C WAI-ARIA
ARIA Combo Listbox

Combobox using Listbox

Implements the combobox design pattern using a listbox for the suggested values popup.

Combobox Information Uses HTMLUses CSSUses Javascript Listbox Combobox Example W3C WAI-ARIA

Color Contrast

Name Information Type Demo / Download Contributor(s)
ColorBox

Color Contrast

The visual presentation of text and images of text has a contrast ratio of at least 4.5:1. This utility makes it easy to choose an appropriate color forground / background in order to meet this minimum contrast ratio.

ARIA Use of Color Uses HTMLWeb Utility ColorBox Lyft Design
Color Safe - Accessible Web Color Combinations

Color Safe

Color Safe generates an acceptable range of foreground colors base on your choice of background color, styling of your text. Accessible text colors are generated with WCAG Guidelines recommend contrast ratio of 4.5 for small text or 3 for large text which is 24px or 18px bold.

ARIA Use of Color Uses HTMLWeb Utility Colorsafe Utility Colorsafe

Custom Form Controls

Name GitHub Repository Type Demo / Download Contributor(s)
Predictive Text

Predictive Text

The predictive text pattern allows users to type in values or to select values from a list of possible matches that appears after the user starts typing. Screen readers announce the availability of predictive text options, and users can select the options with keyboard, touch, or mouse.

Uses HTMLUses CSSUses Javascript predictive text demo & code deque University
ARIA Horizontal Multi-Thumb Slider

Horizontal Multi-Thumb Slider

A multi-thumb slider is a slider with two or more thumbs that each set a value in a group of related values. For example, in a product search, a two-thumb slider could be used to enable users to set the minimum and maximum price limits for the search.

Multi-Thumb Slider Uses HTMLUses CSSUses Javascript Horizontal Multi-Thumb Slider Example W3C WAI-ARIA
ARIA Horizontal Simple Slider

Slider

A slider is an input where the user selects a value from within a given range. Sliders typically have a slider thumb that can be moved along a bar or track to change the value of the slider.

Uses HTMLUses CSSUses Javascript Horizontal Slider Example W3C WAI-ARIA

Date Pickers

Name Design Pattern Type Demo / Download Contributor(s)
Date Picker

Date Picker

Accessible Date picker which brings up a calendar where you can pick a specific Day/Month/Year.

Uses HTMLUses CSSUses Javascript date picker demo & code deque University
Modal Date Picker

ARIA Modal Date Picker

The example includes a date input field and a button that opens a date picker that implements the ARIA dialog design pattern. The dialog contains a calendar that uses the grid pattern to present buttons that enable the user to choose a day from the calendar. Choosing a date from the calendar closes the dialog and populates the date input field. When the dialog is opened, if the input field is empty, or does not contain a valid date, then the current date is focused in the calendar. Otherwise, the focus is placed on the day in the calendar that matches the value of the date input field.

WAI-ARIA Modal Dialog / Date Picker Uses HTMLUses CSSUses Javascript Modal Date Picker Example W3C WAI-ARIA

Drag & Drop / Sortable

Name GitHub Repository / Information Type Demo / Download Contributor(s)
Drag and Drop 2017

Drag & Drop Overview

In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to invoke many kinds of actions, or create various types of associations between two abstract objects.

Interactions addressed

  • Categorization
  • Matching
  • Ordering
  • Sorting Lists
Drag and Drop GitHub 2017 Uses HTMLUses CSSUses Javascript Drag-and-Drop Demo 2017 Sina Bahram, Charles LaPierre, Jason White
Drag and Drop 2018

Drag & Drop Overview

In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to invoke many kinds of actions, or create various types of associations between two abstract objects.

Interactions addressed

  • Single Source List - Multiple Desinations
Drag and Drop GitHub 2018 Uses HTMLUses CSSUses Javascript Drag and Drop Demo 2018 Ifran Ali
Sortable Listbox

UX designed fully accessibvle ListBox

Implements a rearragable listbox baised on AIRA authoring practices

Uses HTMLUses CSSUses Javascript Code Pen Demo - Sortable Listbox Evan Yamanishi

EPUB

Name GitHub Repository Type Demo / Download Contributor(s)
Ace (Accessibility Checker for EPUB)

Ace Checker

Ace, the Accessibility Checker for EPUB, is a tool developed by the DAISY Consortium to assist with the evaluation of accessibility features of EPUB publications.

Ace GitHub EPUBApplicationValidates Code Download Ace DAISY Consortium
EPUB Check

EPUB Check

EPUBCheck is a tool to validate the conformance of EPUB publications against the EPUB specifications. EPUBCheck can be run as a standalone command-line tool or used as a Java library.

EPUB Check GitHub EPUBApplicationValidates Code Download EPUBCheck W3C & DAISY Consortium

Images

Name GitHub Repository Type Demo / Download Contributor(s)
Accessible SVG Info Box

Scale Vector Graphics Information Box

Open source example of accessible SVG Info Box on Github using colorful map of United States

InfoBox GitHub Uses SVGUses HTMLUses Javascript Accessible SVG InfoBox Demo Doug Schepers
Enhanced Extended Image Descriptions

Detailed Image Descriptions Show/Hide

Samples of alt text vs. longer use of descriptions for images, aria-details in the wild, and an ongoing project to make them more context-appropriate.

Enhanced Image Descriptions GitHub Uses HTMLUses CSSUses Javascript Enhanced Image Description Demo Evan Yamanishi, Sina Bahram, Jason White, Charles LaPierre, Clayton Lewis , Tammy Speed, Matt Nupen

Math

Name GitHub Repository Type Demo / Download Contributor(s)
Accessible Wikipedia Math

Accessible MathML

Accessible Wkipedia Math increases accessibility of math in Wikipedia pages.

Accessible Wikipedia Math GitHub Firefox Add-on Increases accessibility of math in Wikipedia pages Rory Soiffer and Jake Springer

Name GitHub Repository Type Demo / Download Contributor(s)
ARIA Navigation Menubar

Menubar

A menu is a widget that offers a list of choices to the user, such as a set of actions or functions. A menu is usually opened, or made visible, by activating a menu button, choosing an item in a menu that opens a sub menu, or by invoking a command, such as Shift + F10 in Windows, that opens a context specific menu. When a user activates a choice in a menu, the menu usually closes unless the choice opened a submenu.

ARIA Menubar Information Uses HTMLUses CSSUses Javascript Navigation Menubar Example W3C WAI-ARIA
ARIA Editor Menubar

ARIA Editor Menubar

A menu is a widget that offers a list of choices to the user, such as a set of actions or functions. A menu is usually opened, or made visible, by activating a menu button, choosing an item in a menu that opens a sub menu, or by invoking a command, such as Shift + F10 in Windows, that opens a context specific menu. When a user activates a choice in a menu, the menu usually closes unless the choice opened a submenu.

ARIA Menubar Information Uses HTMLUses CSSUses Javascript Editor Menubar Example W3C WAI-ARIA

Popups, Dialogs, and Disclosures

Name Design Pattern Type Demo / Download Contributor(s)
Alerts

ARIA Alert

An alert is an element that displays a brief, important message in a way that attracts the user's attention without interrupting the user's task. Dynamically rendered alerts are automatically announced by most screen readers, and in some operating systems, they may trigger an alert sound. It is important to note that, at this time, screen readers do not inform users of alerts that are present on the page before page load completes.

ARIA Alert Uses HTMLUses CSSUses Javascript Alert Example W3C WAI-ARIA
Alert and Message Dialogs

Alert Dialog

An alert dialog is a modal dialog that interrupts the user's workflow to communicate an important message and acquire a response. Examples include action confirmation prompts and error message confirmations. The alertdialog role enables assistive technologies and browsers to distinguish alert dialogs from other dialogs so they have the option of giving alert dialogs special treatment, such as playing a system alert sound.

ARIA Alert Dialog Uses HTMLUses CSSUses Javascript Alert Dialog Example W3C WAI-ARIA
Disclosure (Show/Hide)

Disclosures

A disclosure is a button that controls visibility of a section of content. When the controlled content is hidden, it is often styled as a typical push button with a right-pointing arrow or triangle to hint that activating the button will display additional content. When the content is visible, the arrow or triangle typically points down.

ARIA Disclosures Uses HTMLUses CSSUses Javascript Example Disclosure (Show/Hide) for Image Description W3C WAI-ARIA
Disclosure (Show/Hide)

Disclosures

A disclosure is a button that controls visibility of a section of content. When the controlled content is hidden, it is often styled as a typical push button with a right-pointing arrow or triangle to hint that activating the button will display additional content. When the content is visible, the arrow or triangle typically points down.

ARIA Disclosures Uses HTMLUses CSSUses Javascript Example Disclosure (Show/Hide) for Answers to Frequently Asked Questions W3C WAI-ARIA
Disclosure (Show/Hide)

Disclosures

A disclosure is a button that controls visibility of a section of content. When the controlled content is hidden, it is often styled as a typical push button with a right-pointing arrow or triangle to hint that activating the button will display additional content. When the content is visible, the arrow or triangle typically points down.

ARIA Disclosures Uses HTMLUses CSSUses Javascript Example Disclosure (Show/Hide) for Navigation Menu W3C WAI-ARIA
Summary / Details (Show/Hide)

HTML Summary / Details

The HTML Disclosure Summary element (<summary>) element specifies a summary, caption, or legend for a <details> element's disclosure box. Clicking the <summary> element toggles the state of the parent <details> element open and closed.

Disclosure Summary / Detailselement Uses HTMLUses CSSUses Javascript Example Disclosure (Show/Hide) for Navigation Menu Mozilla Developers Network
Modal Dialog

ARIA Modal Dialog

A dialog is a window overlaid on either the primary window or another dialog window. Windows under a modal dialog are inert. That is, users cannot interact with content outside an active dialog window. Inert content outside an active dialog is typically visually obscured or dimmed so it is difficult to discern, and in some implementations, attempts to interact with the inert content cause the dialog to close.

WAI-ARIA Modal Dialog Uses HTMLUses CSSUses Javascript Modal Dialog Example W3C WAI-ARIA

Tab Panels and Accordians

Name Information Type Demo / Download Contributor(s)
ARIA Accordian

Accordian

The Accordion example contains a simple personal information input form divided into 3 sections to demonstrate the design pattern for accordion. In this implementation, one panel of the accordion is always expanded, and only one panel may be expanded at a time.

Accordion Information Uses HTMLUses CSSUses Javascript Accordion Example W3C WAI-ARIA
ARIA Automatic Activated Tab Panels

Tab Panel

Tabs are a set of layered sections of content, known as tab panels, that display one panel of content at a time. Each tab panel has an associated tab element, that when activated, displays the panel. The list of tab elements is arranged along one edge of the currently displayed panel, most commonly the top edge.

Tab Panel Information Uses HTMLUses CSSUses Javascript Tab Panel (Automatic Activation) W3C WAI-ARIA
ARIA Manual Activated Tab Panels

Tab Panel

Tabs are a set of layered sections of content, known as tab panels, that display one panel of content at a time. Each tab panel has an associated tab element, that when activated, displays the panel. The list of tab elements is arranged along one edge of the currently displayed panel, most commonly the top edge.

Tab Panel Information Uses HTMLUses CSSUses Javascript Tab Panel (Manual Activation) W3C WAI-ARIA

Tables & Grids

Name GitHub Repository Type Demo / Download Contributor(s)
Multi-Check in Grid

Multi-Check Grid

To use the Multi-Check in Grid allows you to specify a "main" region using predefined WAI-ARIA role and reate a custom "Response" region using a WAI-ARIA "region" role and an "aria-label" attribute. If you are using a "table" element for layout purposes, give it a "role" attribute of presentation. A better alternative is to use CSS for layout. Prevent announcement of these column headings ahead of checkboxes by using "aria-hidden='true'."

Multi-check GitHub Uses HTMLUses CSSUses Javascript Multi-Check in Grid Demo Ifran Ali
TSV to Table

Converts Dataset into an Accessible Table

Converts a (TSV) Tab Separated Value data file into an HTML Table

Python ScriptUses HTML Converts a Tab Separated Value data file into an HTML Table Jason White, Sina Bahram

Toolbars

Name Information Type Demo / Download Contributor(s)
ARIA Toolbar

Toolbar

The Aria Toolbar example demonstrates the design pattern for toolbar that demonstrates how a toolbar can group a set of buttons into a single tab stop. It also illustrates the roving tabindex method for managing focus within a component.

Toolbar Information Uses HTMLUses CSSUses Javascript Toolbar Example W3C WAI-ARIA

TreeView

Name Information Type Demo / Download Contributor(s)
Computed File Directory Treeview

File Directory Tree View (Computed)

When users activate an item that represents a file name in the tree, the name of the selected file appears in the read-only edit field next to the tree. This example relies on the browser to compute values for aria-setsize, aria-posinset, and aria-level.

W3C ARIA Tree View Uses HTMLUses CSSUses Javascript File Directory Treeview Example Using Computed Properties W3C WAI-ARIA
Declarative File Directory Treeview

File Directory Tree View (Declarative)

When users activate an item that represents a file name in the tree, the name of the selected file appears in the read-only edit field next to the tree. The code in this example explicitly declares values for aria-setsize, aria-posinset and aria-level, which overrides browser computation of values for these properties.

W3C ARIA Tree View Uses HTMLUses CSSUses Javascript File Directory Treeview Example Using Declared Properties W3C WAI-ARIA
Computed Navigation Directory Treeview

Navigation Directory Tree View (Computed)

The user can browse a set of pages about items that is organized into categories. Activating an item in the tree will open a page about the chosen item. This example relies on the browser to compute values for aria-setsize, aria-posinset, and aria-level.

W3C ARIA Tree View Uses HTMLUses CSSUses Javascript Navigation Directory Treeview Example Using Computed Properties W3C WAI-ARIA
Declarative Navigation Directory Treeview

Navigation Directory Tree View (Declarative)

The user can browse a set of pages about items that is organized into categories. Activating an item in the tree will open a page about the chosen item. The code in this example explicitly declares values for aria-setsize, aria-posinset and aria-level, which overrides browser computation of values for these properties.

W3C ARIA Tree View Uses HTMLUses CSSUses Javascript File Directory Treeview Example Using Declared Properties W3C WAI-ARIA

Web Accessibility

Name Information Type Demo / Download Contributor(s)
HTML CodeSniffer

HTML CodeSniffer

HTML CodeSniffer is a validation tool that checks provided HTML against web accessibility standards. It can be run in javascript source, via a CLI, and as a Node.js module.

HTML_CodeSniffer Github Uses HTMLValidates CodeUses Javascript HTML_CodeSniffer Demo Squizlabs
aXe

aXe: accessibility engine for automated Web UI testing

aXe is a testing engine for testing accessibility for HTML. This Node.js module can be used to run tests on your code and report errors. There is also a chrome extension for browser-side testing.

axe-core Github Uses HTMLValidates CodeUses Javascript Getting Started Deque
Accessibility Insights for Web (Microsoft)

Accessibility Insights for Web (Microsoft)

This browser extension can be used to find and fix accessibility problems in websites and web apps. Accessibility Insights for Web can quickly determine the most important accessibilibty problems and provide steps and methods to fix them.

accessibility-insights-web Github Uses HTMLValidates CodeUses Javascript Download for your browser Microsoft
WAI-ARIA W3C Evalutation Tools

Web Accessibility Evaluation Tools List

This comprehensive list compiled by the W3C consists of over 140 tools, from browser extensions, to testing frameworks and HTML validators.

A complete list of HTML checking tools Uses HTMLValidates CodeUses Javascript WAI-ARIA W3C Evaluation tools W3C WAI-ARIA


Icon Descriptions

Application
Stand alone application or Web Utility
Uses HTML
The code is built with HTML5 and can be used within Web applications.
Uses CSS
The code uses CSS to control visual styling.
Uses Javascript
The code is built using Javascript.
Uses SVG
The code uses SVG for structured, visual presentation.
Python Script
The code uses the Python programming language.
Firefox Add-on
This is a Firefox Add-on.
Works with Wordpress
This code works as a WordPress plugin.
Component
This code is a component that can be embedded within web applications.
EPUB
EPUB specific
Validates Code
This tool/utility validates code to ensure best user experience.

Update: June 12, 2020

Ideas that Work LogoThe DIAGRAM Center is a Benetech initiative supported by the U.S. Department of Education, Office of Special Education Programs (Cooperative Agreement #H327B100001). Opinions expressed herein are those of the authors and do not necessarily represent the position of the U.S. Department of Education.

Benetech Logo