Skip to content

Conversation

@wnvko
Copy link
Contributor

@wnvko wnvko commented Jun 28, 2019

matDatePicker days, months and years was represented via divs. This did not allow to tab between them and the screen readers did not communicate them as actionable. Change them to buttons solves both these issues.

closes #16356

@wnvko wnvko requested a review from mmalerba as a code owner June 28, 2019 10:13
@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Jun 28, 2019
@mmalerba
Copy link
Contributor

I think we actually do not want each cell to act as a tab stop. We have intentionally set it up so that the calendar body is a tab stop and you then move between the cells using the arrow keys. I believe the issue you linked is more about what the screen-reader reads when you arrow to a cell.

I think we probably want to use plain <button> elements (not mat-button) and explicitly set the tabindex=-1. Another approach would be to just add role=button to the existing element. @jelbourn do you have a preference for which approach we use here?

@jelbourn
Copy link
Member

jelbourn commented Jun 28, 2019

Definitely not mat-button. If role="button" works well in screen-readers, I would go with that. Also agreed that they should not be tab stops.

Copy link
Member

@jelbourn jelbourn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jelbourn jelbourn added Accessibility This issue is related to accessibility (a11y) pr: lgtm action: merge The PR is ready for merge by the caretaker target: patch This PR is targeted for the next patch release labels Jul 3, 2019
@ngbot
Copy link

ngbot bot commented Jul 3, 2019

I see that you just added the pr: merge ready label, but the following checks are still failing:
    failure status "ci/circleci: tests_browserstack" is failing

If you want your PR to be merged, it has to pass all the CI checks.

If you can't get the PR to a green state due to flakes or broken master, please try rebasing to master and/or restarting the CI job. If that fails and you believe that the issue is not due to your change, please contact the caretaker and ask for help.

@jelbourn jelbourn merged commit ad09bb2 into angular:master Jul 19, 2019
andrewseguin pushed a commit that referenced this pull request Jul 29, 2019
* fix(matCalendar): make cell content button, #16356

* test(navDatePicker): fix failing tests, #16356

* chore(navDatePicker): change initial to 0 for IE, #16356

* feat(datepicker): remove mat-button and add only role button, #16406
@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 Sep 11, 2019
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) action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Datepicker year-view does not use button elements for clickable years

4 participants