Skip to content

fix(datepicker): add role to date range input #19717

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 1 commit into from
Jun 29, 2020

Conversation

crisbeto
Copy link
Member

Adds a group role to the date range input since it groups two inputs.

@crisbeto crisbeto added P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent target: patch This PR is targeted for the next patch release labels Jun 22, 2020
@crisbeto crisbeto requested a review from mmalerba as a code owner June 22, 2020 16:19
@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Jun 22, 2020
Copy link
Contributor

@mmalerba mmalerba left a comment

Choose a reason for hiding this comment

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

LGTM

@mmalerba mmalerba added lgtm action: merge The PR is ready for merge by the caretaker labels Jun 23, 2020
Adds a `group` role to the date range input since it groups two inputs.
@crisbeto crisbeto added Accessibility This issue is related to accessibility (a11y) P2 The issue is important to a large percentage of users, with a workaround and removed P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent labels Jun 23, 2020
@crisbeto
Copy link
Member Author

Bumping to a P2 since it now includes some changes that should improve accessibility even more.

Copy link
Member

@devversion devversion left a comment

Choose a reason for hiding this comment

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

Nice! thanks for making the changes! One small comment

@@ -187,8 +185,6 @@ const _MatDateRangeInputBase:
'(change)': '_onChange()',
'(keydown)': '_onKeydown($event)',
'[attr.id]': '_rangeInput.id',
Copy link
Member

Choose a reason for hiding this comment

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

I think we need also remove that from here and add the id to the actual range input. In the current state it will announce (for ChromeVox) the label, and then mention edit text group w/ label again.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think that associating a label with a non-input element is invalid. Also the idea here was to allow for clicking on the label to move focus automatically to the start input.

Copy link
Member

Choose a reason for hiding this comment

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

I think you're right that the label for would not work for a role="group". Might be a general issue in our form-field as we always set the label for while we support custom controls that don't necessarily use a labelable element.

The focus for the start input should still work through the form-field onContainerClick, so that might not be an issue here. I think we should be good with the latest changes, but we might need to revisit this when we think more about how we want to handle the <label for> attribute in form fields.

Copy link
Member

Choose a reason for hiding this comment

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

@crisbeto we do the same already for the select where label points to a custom control. That is a noop for screenreaders, but definitely not 100% valid markup. Also the select might not be the best candidate for accessibility comparisons. I'll leave that up to you. I don't feel too strongly about it, but would definitely prefer label not being announced twice.

Copy link
Member

@devversion devversion left a comment

Choose a reason for hiding this comment

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

LGTM. My previous comment is optional and I'll leave that up to you

@jelbourn jelbourn merged commit cfe37d1 into angular:master Jun 29, 2020
jelbourn pushed a commit that referenced this pull request Jun 29, 2020
Adds a `group` role to the date range input since it groups two inputs.
@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 Jul 30, 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) action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement P2 The issue is important to a large percentage of users, with a workaround target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants