Screen Reader

Foundations / Interaction / Screen Reader

Intro

Every application and UI component should be designed to allow blind and visually impaired users to utilize screen reader announcements for all relevant content.

This foundation concept provides an overview of what is needed to make a UI component accessible to screen readers.

Key Terms

Basic Requirements

The following information must be provided for any focusable element:

Reading Order

On the currently focused element, screen readers usually provide available information in the following order:

  1. Label
  2. Role
  3. State
  4. Description
  5. Properties

Examples

<div> <div data-valign="middle"><strong>Label</strong></div> <div data-valign="middle"><strong>Role</strong></div> <div data-valign="middle"><strong>State</strong></div> <div data-valign="middle"><strong>Description</strong></div> <div data-valign="middle"><strong>Properties</strong></div> </div> <div> <div><strong>Never Show Me Again</strong></div> <div>Checkbox</div> <div>Checked</div> <div>-</div> <div>-</div> </div> <div> <div><strong>Price</strong></div> <div>Input</div> <div>Read-only</div> <div>EUR / kg</div> <div>EUR / kg</div> </div>

Additional Features

Screen readers usually provide additional features for a better overview or fast navigation:

Reading Mode

In this mode, screen reader users can access non-focusable elements. Make sure that these elements also provide the necessary information (role, state, label, properties, description).

For specific roles (such as form, table, or link), some screen readers can display a list of all instances on the current page. Users can navigate to these items or trigger them directly.

Items are listed by their label.

guideline
Make sure labels on a page are unique.

Example

A page contains five links, each labeled "Details."

Roles

Roles are available for:

A role implies which states and properties can be used.

guideline
Choose the role based on the semantics, functionality and the anticipated keyboard support for the control, not on the visuals.

For a list of available roles, see Roles in the screen reader design specification.

States

States are ARIA attributes that define the current condition of a particular UI element, which can change due to user interaction or automated processes.

guideline
Assign the states that reflect the current control state according to the state concept.

For a list of available states, see States in the screen reader design specification.

Properties

ARIA properties are static attributes that define the inherent characteristics or behaviors of an HTML element, making these more accessible. For example, aria-keyshortcuts indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.

For a list of available properties, see Properties in the screen reader design specification.

Labels

ARIA is used to label and describe purposes, as recommended by the Web Content Accessibility Guidelines. For more information, see ARIA-6 in the ARIA Techniques for WCAG 2.2.

A label is a specific identifier or name (= accessible name) given to a particular individual element within a certain role. It provides unique information about the individual element to distinguish it from other elements in the same role.

For more information, see Labels in the screen reader design specification.

Descriptions

Descriptions are used to provide additional information on an element (such as instructions, format requirements for an input field, tooltips, units of measurement, and custom attributes).

For information on adding descriptions, see Descriptions in the screen reader design specification.

Building Blocks and Example Patterns

Building Blocks

Building blocks provide the essential structure needed to define accessible, user-friendly, and efficient components.

Example Patterns

Example patterns are fundamental, well-defined components that serve as a basic setup, designed to be reusable and adaptable across various use case scenarios.

More Patterns

Primitives

Complex Components

Structure