Skip to content
This repository was archived by the owner on Sep 5, 2024. It is now read-only.
This repository was archived by the owner on Sep 5, 2024. It is now read-only.

select(multiple): aria-checked and aria-selected broken #10748

Closed
@npbenjohnson

Description

@npbenjohnson

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, adding aria-checked to md-option with a correct binding will prevent the ng-aria behavior. Ideally md-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

Metadata

Metadata

Assignees

Labels

P1: urgentUrgent issues that should be addressed in the next minor or patch release.a11yThis issue is related to accessibilityfor: internal contributorThe team will address this issue and community PRs are not requested.g3: reportedThe issue was reported by an internal or external product team.has: Pull RequestA PR has been created to address this issueresolution: fixedtype: bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions