Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

datepicker: keyboard accessibility with Screen Readers regression in 8.2.3 #17689

Closed
Dustman71 opened this issue Nov 13, 2019 · 5 comments
Closed
Labels
Accessibility This issue is related to accessibility (a11y) area: material/datepicker P2 The issue is important to a large percentage of users, with a workaround regression This issue is related to a regression

Comments

@Dustman71
Copy link

Dustman71 commented Nov 13, 2019

Reproduction

Use StackBlitz to reproduce your issue: https://stackblitz.com/angular/yrrmarxbmay?file=src%2Fapp%2Fdatepicker-overview-example.ts

Steps to reproduce:

  1. Open NVDA or JAWS
  2. Open the calendar and try to navigate with the arrow keys to select the day

Expected Behavior

navigate with the arrow keys and select another day

Actual Behavior

Keyboard accessible does not work in Material Datepicker version 8.2.3, but in Material 7.3.7 it worked.

Environment

  • Angular: 8.2.13
  • CDK/Material: 8.2.3
  • Browser(s): Google Chrome 78.0.3904.97
  • Operating System (e.g. Windows, macOS, Ubuntu): Windows 10
@Splaktar Splaktar added Accessibility This issue is related to accessibility (a11y) regression This issue is related to a regression labels Nov 14, 2019
@Splaktar Splaktar changed the title Keyboard accessibility with Screen Readers does not work correctly in Material Datepicker version 8.2.3 datepicker: keyboard accessibility with Screen Readers regression in 8.2.3 Nov 14, 2019
@Splaktar Splaktar added P1 Impacts a large percentage of users; if a workaround exists it is partial or overly painful and removed P1 Impacts a large percentage of users; if a workaround exists it is partial or overly painful labels Nov 14, 2019
@Splaktar
Copy link
Member

This appears to be related to #17280.

PR #16402 added a role="button" in addition to the existing role="gridcell", so we've got two roles on the td, which is invalid.

PR #17297 is considering removing the role="gridcell" but there are concerns that this will also result in an invalid structure.

That said, I tested in VoiceOver on macOS Catalina and the behavior was generally consistent across 7.x, 8.x, and 9.x. Though it was easiest for me to interact by using the Command+Shift+Arrow keys within the calendar rather than just the Arrow keys.

I need to do some testing on ChromeVox and NVDA.

@Splaktar
Copy link
Member

Testing on ChromeVox gives acceptable results on both 7.x and 8.x, but the behavior and visual focus indicators are better in 8.2.3.

Based on looking at the WAI-ARIA spec, it looks like we need a fairly significant change to align with the current recommendations. More details in #17297 (comment).

@Splaktar Splaktar added the P2 The issue is important to a large percentage of users, with a workaround label Nov 15, 2019
@Splaktar
Copy link
Member

With NVDA, in 7.x using the up/down/right/left arrow keys work great for moving around dates on the calendar.

With 8.x and NVDA, you can use the up/down arrow keys only to go forward/back one day in the calendar and you can't see the currently 'focused' day (but it is voiced) and selection works. The right/left arrow keys don't work and give some confusing messages (reading one character or space at a time). In the WAI-ARIA datepicker dialog example, focus decoration works fine, but I have similar issues with the arrow keys in NVDA.

The behavior in NVDA has certainly regressed with 8.2.x.

@jelbourn
Copy link
Member

I believe this was fixed in a past version of Angular when remove the double role definition on the cell.

@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Dec 25, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Accessibility This issue is related to accessibility (a11y) area: material/datepicker P2 The issue is important to a large percentage of users, with a workaround regression This issue is related to a regression
Projects
None yet
Development

No branches or pull requests

4 participants