This repository has been archived by the owner on Sep 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
fix(select): overhaul screen reader support #11761
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Splaktar
added
type: bug
a11y
This issue is related to accessibility
g3: reported
The issue was reported by an internal or external product team.
P1: urgent
Urgent issues that should be addressed in the next minor or patch release.
g3: sync
labels
Jul 15, 2019
googlebot
added
the
cla: yes
PR author has signed Google's CLA: https://opensource.google.com/docs/cla/
label
Jul 15, 2019
Splaktar
force-pushed
the
select-improveA11y
branch
from
July 24, 2019 04:56
afd9170
to
2d863a7
Compare
Splaktar
changed the title
fix(select): improve screen reader support
fix(select): overhaul screen reader support
Jul 24, 2019
This was referenced Jul 24, 2019
Splaktar
force-pushed
the
select-improveA11y
branch
2 times, most recently
from
July 29, 2019 03:23
b7f481c
to
0e1691e
Compare
Splaktar
added
the
in progress
Mainly for in progress PRs, but may be used for issues that require multiple PRs
label
Jul 29, 2019
Splaktar
force-pushed
the
select-improveA11y
branch
4 times, most recently
from
August 5, 2019 05:46
521261d
to
4694e08
Compare
Splaktar
added
pr: merge ready
This PR is ready for a caretaker to review
and removed
in progress
Mainly for in progress PRs, but may be used for issues that require multiple PRs
labels
Aug 7, 2019
3 tasks
Splaktar
force-pushed
the
select-improveA11y
branch
from
August 12, 2019 22:31
4694e08
to
178a040
Compare
mmalerba
added
P2: required
Issues that must be fixed.
and removed
P1: urgent
Urgent issues that should be addressed in the next minor or patch release.
labels
Aug 13, 2019
This has ~50 targets failing in g3, will need to look into it more when I get a chance |
Splaktar
force-pushed
the
select-improveA11y
branch
from
September 7, 2019 19:00
178a040
to
7584fe8
Compare
Rebased. |
Splaktar
force-pushed
the
select-improveA11y
branch
from
March 6, 2020 00:51
7584fe8
to
b10b7fe
Compare
- move to [WAI-ARIA's Collapsible Dropdown Listbox practice](https://www.w3.org/TR/2019/NOTE-wai-aria-practices-1.1-20190207/examples/listbox/listbox-collapsible.html) - don't apply aria-required to md-select - as it isn't compatible with the button role - the md-content element is now the listbox - has the appropriate attributes and a unique id - and receives focus when the pop-up panel opens - aria-owns now points to this listbox so that indexes work - option focus is handled via `aria-activedescendant` - remove `aria-expanded` when collapsed - remove `aria-disabled` attribute when not disabled - manually remove `aria-checked` set by ngAria due to ngValue usage - apply `md-focused` class to the option with focus - improve `ng-multiple` implementation - account for `multiple` attribute on `md-select-menu` - remove unused `deregisterCollectionWatch()` - fix overloaded variable names - don't set aria-selected="false" on options in single selection mode - stop labels and values from being announced multiple times - add JSDoc/Closure Compiler details and types - refinements for VoiceOver users - clean up watchers, observers, and event handlers on $destroy - fix a case where the initial selection model could contain two values - for the empty option, i.e. "" and "None" - deselection was only clearing the first one in single selection mode - reduce duplicated code for focusing option nodes - improve keyboard option scrolling behavior - eliminate duplicate call to `autoFocus()` - fix docs css to not interfere with autocomplete suggestion styling Fixes #10748. Fixes #10967.
Splaktar
force-pushed
the
select-improveA11y
branch
from
March 6, 2020 10:15
b10b7fe
to
bb3f9f5
Compare
Rebased. |
jelbourn
approved these changes
Mar 9, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
a11y
This issue is related to accessibility
cla: yes
PR author has signed Google's CLA: https://opensource.google.com/docs/cla/
g3: reported
The issue was reported by an internal or external product team.
P2: required
Issues that must be fixed.
pr: merge ready
This PR is ready for a caretaker to review
type: bug
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
Please check that your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
md-select
does not work well with VoiceOver on iOS or macOSmd-select
with themultiple
attribute, options are always "checked" because of ngAria.Issue Number:
Fixes #10748. Fixes #10967.
What is the new behavior?
aria-activedescendant
aria-expanded
when collapsedaria-disabled
attribute when not disabledaria-checked
set by ngAria due to ngValue usagemd-focused
class to the option with focusng-multiple
implementationmultiple
attribute onmd-select-menu
deregisterCollectionWatch()
autoFocus()
Does this PR introduce a breaking change?
Other information
Completed Testing and Issues Identified
aria-labelledby
gets overwrittenaria-hidden
onmd-select-value
is cleared when pop-up is closed, resulting in label being read twice when themd-select
has no selectionmd-select
elements show up under the Buttons Rotor instead of Form Controls. This seems to be working as intended.md-select-menu-container
torole="dialog"
and adding"aria-haspopup="dialog"
to themd-select
, but that didn't help and the Z (two finger scrub) always went back to the previous page. This is being tracked in select(multiple): bad UX for exiting pop-up panel on iOS #11791.aria-lablelledby
well and reads themd-select-value
first and then thearia-label
followed by themd-select-value
again. Ideally, the label should be read and then the value. This will need to be handled in separate issue after consulting with the a11y team and possibly opening a bug against ChromeVox.md-select
on Android (back at least to1.1.5
). This is being tracked in select: options in multiple selection cannot be selected when using TalkBack #11770. This is likely a bug with TalkBack. Need to try to reproduce with a WAI-ARIA example and then find out where to submit the defect against TalkBack or Chrome for Android.