angular / angular/components

Demo bug: expandable row table example is not keyboard or screen reader accessible

Open
#15,020 1 comment 0 reactions 0 assignees View on GitHub
Accessibility area: material/table docs help wanted P4
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

#### What is the expected behavior?
1. It must be possible to expand and collapse table rows in the example by using only a keyboard
2. Roles, states, and properties must be present so that users of screen reader software are aware that the rows can expand and collapse

#### What is the current behavior?
1. It is not possible to expand and collapse table rows in the example by using only a keyboard
2. Roles, states, and properties are not provided to convey the functionality to users of screen reader software

#### What are the steps to reproduce?
1. Using either of the following screen readers
- NVDA 2018.4.1 + Firefox 64
- VoiceOver for IOS (12.1.3) + Safari
2. Open the [table example page](https://material.angular.io/components/table/examples)
3. Use the screen reader to navigate to a table cell in the 'Table with expandable rows' example
4. Observe that the screen reader does not convey any semantics about the current expanded state, or that it is possible to interact with the row to expand the information
5. Press the 'enter' key or space bar and obverse that the row does not expand or collapse

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
- Angular Material Example 7.2.2 located at https://material.angular.io/components/
- NVDA 2018.4.1 + FireFox 64
- VoiceOver for IOS (12.1.3) + Safari (12.1.3)

#### Is there anything else we should know?

Since rows and cells already have roles, it would be best to add a separate control to expand/collapse each row.

Contributor guide

Open the contributing guide

Research direction

Start at the Material table example page and inspect the “Table with expandable rows” example, including how a row is currently activated. Verify the result with keyboard input and the listed NVDA/Firefox or VoiceOver/Safari combinations; it is done when rows expand and collapse by keyboard and screen readers announce the relevant roles, states, and properties.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.