Skip to content

bug(mat-select): The selection is repeated twice (+) in screen readers  #24899

@dario-piotrowicz

Description

@dario-piotrowicz

Is this a regression?

  • Yes, this behavior used to work in the previous version

(I have honestly no idea)

Description

The selection of a basic mat-select gets read multiple time by screen readers, for example this is how it is presented by the chrome accessibility tree (note the two "Pizza"s there):

Screenshot at 2022-05-09 21-52-28

In voiceOver the value is actually read once as the select value and twice as the label, so it actually gets read three times as you can see here:

vlc-record-2022-05-09-22h00m00s-Screen.Recording.2022-05-09.at.21.39.38.mov-.mp4

I believe that the issue is caused by assigning to the labelledby both the label and the first selected value, as you can see here:
Screenshot at 2022-05-09 21-55-13

(note from the video that this does not happen when using native selects)

Reproduction

Any basic mat-select seems to present this, for example the ones presented in the material docs: https://material.angular.io/components/select/overview

Expected Behavior

I would expect it to work precisely as the native select elements as that should in theory be the cleanest behavior, if not at the least I would expect the selections not to be read multiple times

Actual Behavior

the selection gets read multiple times, 2 or 3 times depending on the screen reader

Environment

  • Angular: 13.3.6
  • CDK/Material: 13.3.6
  • Browser(s): Chrome
  • Operating System (e.g. Windows, macOS, Ubuntu): Ubuntu and macOS

Extra

  • I tried looking for an issue describing the same bug, but I could not find any, sorry if there is one and I missed it
  • I am pretty sure this is not how it should work, sorry if I'm wrong

Metadata

Metadata

Assignees

No one assigned

    Labels

    AccessibilityThis issue is related to accessibility (a11y)P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgentarea: material/select

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions