alert-circle An exclamation point inside of a circle. alert-triangle An exclamation point inside of a triangle shape. arrow-down-left An arrow pointing down and to the left. arrow-down-right An arrow pointing down and to the right. arrow-down An arrow pointing down. arrow-left An arrow pointing left. arrow-right-thick A thick arrow pointing right arrow-right An arrow pointing right. arrow-up-left An arrow pointing up and to the left. arrow-up-right-thick A thick arrow pointing up and to the right arrow-up-right An arrow pointing up and to the right. arrow-up-thick A thick arrow pointing up arrow-up An arrow pointing up. award A award bell A bell. calendar A calendar icon. camera-off A camera that is deactivated. camera A camera. check-circle A checkmark in a circle. checkmark A checkmark. chevron-down A chevron arrow pointing down. chevron-up A chevron arrow pointing up. chevron A chevron arrow pointing down. chevron A chevron arrow pointing down. chrome Chrome browser logo. close-circle An x in a circle. close A x shape. door A car door. edge Edge browser logo. ellipses An ellipses shape. engine A car engine. envelope A closed envelope. explorer Internet explorer logo. eye-off An eye that is deactivated. eye An eye. facebook Facebook logo. file-text A piece of paper with lines on it. file A blank piece of paper. firefox Firefox browser logo icon-flame A flame. fwd A car drivetrain. gear A gear with multiple teeth. grid A 2x2 grid. heart An empty heart. height-width Arrows indicating height and width measurement. home A home icon. info THe letter i in a circle. instagram Instagram logo. link A chain link. linkedin Linkedin logo. map-marker A map marker pin. maximize Four corners containing a plus sign. menu Three lines signifying a menu. message-circle A speech bubble. minus A minus dash. mpg A car dashboard gauge. opera Opera browser logo. pause A pause symbol. pencil A pencil. phone A phone handset. pinteest-disc Pinterest logo in a disc. pinterest Pinterest logo. play A play button. plus A plus symbol. safari Safari browser logo. search A magnifying glass. seat A car seat. shield A shield sliders A group of control sliders. square A square with rounded corners star A star. tag A shopping tag. thumbs-down A hand with the thumb pointing down. thumbs-up A hand with the thumb pointing up. trash A trash can. trophy A trophy. truck A truck icon. twitter Twitter logo. user-circle An outline of a person in a circle. user An outline of a person. video A video camera. youtube Youtube logo. zoom-in A magnifying glass with a plus in the center
Spark logo Spark Design System
Accessibility

Accessibility Checklist

Use this checklist to help build accessibility standards into your process, to check and record progress.

Global code

Keyboard navigation

  • Focus state Keyboard focus around interactive elements should always be visible as you tab through the elements.
  • Keyboard interaction All focusable interactive elements are operable with a keyboard and can be navigated to and from using the Tab key
  • Logical Tab order Interactive elements need to receive keyboard focus in a logical reading order when navigating with the Tab key.

Minimum contrast ratio

  • Text contrast Ensure a contrast ratio of at least 4.5:1 between text (and images of text) and the background behind the text, and at least 3:1 for large text (18 point or 14 point bold)

Multi device responsive design

  • Text resizing Except for captions and images of text, text can be resized without assistive technology up to 200% without any loss of content or functionality and without overlapping with other content.
  • Touch targets Touch targets are large enough (48x48dp) for reliable interaction of interface controls through click and touch.

Moving, flashing, or blinking content

  • Content flash No page content flashes/flickers more than 3 times per second
  • Stop motion For any moving, blinking, scrolling or auto-updating information (e.g., a ticker) that starts automatically, lasts more than five seconds, and is presented in parallel with other content, there is a mechanism for the user to pause, stop, or hide it.

Headings

  • Clear headings If headings are provided, they need to be clear and descriptive.
  • Sequential headings Heading tags (h1, h2, etc.) appear in descending, sequential order within the web page/DOM tree.

Forms, labels, and errors

Written material (copy)

Image text alternatives

  • Image alt text Images have text alternatives that describe the image or the function of the image

Semantics and ARIA

The Web Accessibility Initiative’s Accessible Rich Internet Applications specification (WAI-ARIA, or ARIA) defines a way to make web content and web applications more accessible to people with disabilities. It especially helps with dynamic content and advanced user interface controls developed with Ajax, HTML, JavaScript, and related technologies. Dynamic error messages and live content updates can be called out to screen readers, buttons can be linked to the content they affect and many other helpful states can be expressed on a code level.

When to use ARIA

  • Use native HTML elements or attributes first. In the case that the semantics you are looking for is not available in HTML, then use ARIA to communicate the semantics. For example, a complex tabbed-interface has no semantic equivalent with HTML, but an ARIA role="tablist" and its related attributes can be added to provide this detail to screen readers.
  • When it is not possible to style the native HTML element (exceptional cases), then it is okay to construct the custom element and style and provide the semantics to the element by using ARIA.

How ARIA works

It works by allowing you to specify attributes that modify the way an element is translated into the accessibility tree. One of the core aspects of the ARIA system is its collection of roles, states and properties. A role in accessibility terms amounts to a shorthand indicator for a particular UI pattern. ARIA provides a vocabulary of patterns we can use via the role attribute on any HTML element. ARIA does not add new functionality and is meant to act only as an extra descriptive layer for screen readers. ARIA is also beholden to its host language and must adhere to the rules of what elements it can, and cannot, be used on.

Resources

  • Native HTML Use native HTML elements or attributes first before using ARIA