Skip to content

Change date picker cells to buttons #16402

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

Merged
merged 6 commits into from
Jul 19, 2019
Merged

Change date picker cells to buttons #16402

merged 6 commits into from
Jul 19, 2019

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