Dylan Sheffer

Everyday Accessibility

Overview

  1. What accessibility is and why it is important
  2. Foundational knowledge
  3. How assistive tech interprets a website
  4. Strategies for creating accessible page elements
  5. Basic Testing Methods

What is Accessibility?

Making your site usable by everybody regardless of ability.

Increase
Customer Pool

No Lawsuits

Better UX

Real Talk

It is critical we do this right

WCAG

Web Content Accessibility Guidelines

The official guidelines published by the W3C on how to make the web accessible.

P.O.U.R

Perceivable

Operable

Understandable

Robust

Perceivable

Available to the senses either through the browser or through assistive technologies.

Operable

Users can interact with all controls and interactive elements using either the mouse, keyboard, or an assistive device.

Understandable

Content is clear and limits confusion and ambiguity.

Robust

A wide range of technologies and devices can access the content.

Types of Disabilities

Motor

Visual

Auditory



Cognitive

Neurological

Temporary

How does assistive tech work with websites?

The browser scans the HTML code and creates both the DOM and the Accessibility Tree.

Accessibility Tree

A tree representation of the webpage that contains all meta-data about every page element.

Accessibility Tree of a form

What Assistive Tech Sees from the Tree

Name

State

Role

Value

WAI-ARIA

Web Accessibility Initiative - Accessible Rich Internet Applications

Powerful tool that allows the developer to directly modify the accessibility tree.

Number 1 Rule for using ARIA

No ARIA is better than Bad ARIA

ARIA can modify an element's state, role, and properties, so using ARIA incorrectly misrepresents an element on a page.


Example: Imagine a paragraph tag was styled to look like an input.

Strategies for Building Accessible Page Elements

Use native HTML elements whenever possible

HTML is accessible by default and will have the proper semantics.

Code Example - Custom Button vs Native Button

Consult the WAI-ARIA Authoring Practices first when you need to create a custom element


W3C's guide on ARIA authoring

Use Property Selectors Over Classes In CSS

It eliminates bloat from your HTML and clarifies your CSS.


// Semantic Selectors
input:invalid,
[aria-invalid] {
	border: 4px dotted #f64100;
}
								

// BEM Styled Class Selectors
input.input__invalid {
	border: 4px dotted #f64100;
}
							

Add Visually Hidden Markup

A lot of information is understood visually via context.

Additional markup can be used to bridge that gap

Code Example - Hidden Headings

Testing for Accessibility

Types of Testing

Automatic

Manual

Accessibility Insights By Microsoft

Demo

Thank You!


Questions⁉

Tools and Resources