select(multiple): aria-checked and aria-selected broken #10748
Description
Actual Behavior:
-
What is the issue? *
md-select
multiple values are always "checked" because of ngAria, and selected states don't clearly denote the control's intended usage. -
What is the expected behavior?
Only checked values should be checked. There is a workaround, addingaria-checked
tomd-option
with a correct binding will prevent the ng-aria behavior. Ideallymd-select
would fix the ngAria behavior internally.
The distinction between selected and checked needs to be more clearly defined and expressed. According to specs, selection should be managed with aria-activedescendant
unless the multiple select actually supports selecting (not checking) multiple values. aria-selected
would be appropriate for a control where holding ctrl highlights (selects) multiple values, and hitting space checks them.
The issue is ambiguous because best practices for multiselects follow a pattern that is completely incompatible with md-select
(md-select
is actually more of a persistent-selectable tree-view than a multiselect based on examples I've seen). Expected behavior is a best-guess based on how I interpret selected and checked when both are present while using a screen reader.
Example of the confusion in actual vs expected read values by NVDA for an unchecked item:
Actual:
Foo item 1 of 3 checked not-selected
Expected:
Foo item 1 of 3 not checked