Skip to content
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

bug(MatSelect): NVDA announce 'table' when select options opened #21480

Closed
exlnik opened this issue Dec 30, 2020 · 4 comments · Fixed by #23446
Closed

bug(MatSelect): NVDA announce 'table' when select options opened #21480

exlnik opened this issue Dec 30, 2020 · 4 comments · Fixed by #23446
Assignees
Labels
Accessibility This issue is related to accessibility (a11y) area: material/select P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent

Comments

@exlnik
Copy link

exlnik commented Dec 30, 2020

When opening mat-select element NVDA screen reader announce table before announcing the list.

Reproduction

See the official example from material documentation.

Steps to reproduce:

  1. Click on the mat-select
  2. When the options opened NVDA announce table and then list.

Expected Behavior

table should not be announced.

More details

  • This is a new issue. In Material V10 it's Ok. (checked also in the documentation of v10)
  • Faced it with NVDA
  • Happened in Chrome, not in Firefox.

Environment

  • Angular: V11
  • CDK/Material: V11
  • Browser(s): Chrome
  • Screen reader: NVDA
@exlnik exlnik added the needs triage This issue needs to be triaged by the team label Dec 30, 2020
@nirkai
Copy link

nirkai commented Dec 30, 2020

Form what I can see it cause by the addition of the aria-owns mentioned here and implemented there.

@crisbeto
Copy link
Member

crisbeto commented Jan 4, 2021

I can reproduce it as well. I think that @nirkai is correct, because I get the following structure in the "Accessibility" panel in the dev tools:

Angular_Material_-_Google_Chrome_2021-01-04_14-31-32

The LayoutTable from the screenshot points to .mat-select-trigger. While the element is a div, it has some CSS that is display: inline-table. I wonder whether that's not throwing the browser off?

@crisbeto crisbeto added Accessibility This issue is related to accessibility (a11y) area: material/select P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent and removed needs triage This issue needs to be triaged by the team labels Jan 4, 2021
@nirkai
Copy link

nirkai commented Jan 4, 2021

@crisbeto it is indeed.
If you remove that style it's gone from the Accessibility panel

crisbeto added a commit to crisbeto/material2 that referenced this issue Jan 5, 2021
…hrome

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and
`display: inline-table` in its CSS. The combination of these two causes Chrome to infer
the element as a `table` which results in NVDA reading out "table" any time a select is
opened.

These changes resolve the issue by setting the element to `role="presentation"`. I've
tested out the change against NVDA and VoiceOver and it doesn't seem to affect
the accessibility of the select, apart from the "table" not being read out anymore.

Fixes angular#21480.
@crisbeto crisbeto self-assigned this Jan 5, 2021
@crisbeto crisbeto added the has pr label Jan 5, 2021
crisbeto added a commit to crisbeto/material2 that referenced this issue Aug 25, 2021
…hrome

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and `display: inline-table` in its CSS. The combination of these two causes Chrome to infer the element as a `table` which results in NVDA reading out "table" any time a select is opened.

These changes resolve the issue by using flexbox to lay out the select trigger instead.

Fixes angular#21480.
crisbeto added a commit to crisbeto/material2 that referenced this issue Aug 25, 2021
…hrome

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and `display: inline-table` in its CSS. The combination of these two causes Chrome to infer the element as a `table` which results in NVDA reading out "table" any time a select is opened.

These changes resolve the issue by using flexbox to lay out the select trigger instead.

Fixes angular#21480.
andrewseguin pushed a commit that referenced this issue Mar 16, 2022
…hrome (#23446)

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and `display: inline-table` in its CSS. The combination of these two causes Chrome to infer the element as a `table` which results in NVDA reading out "table" any time a select is opened.

These changes resolve the issue by using flexbox to lay out the select trigger instead.

Fixes #21480.
andrewseguin pushed a commit that referenced this issue Mar 16, 2022
…hrome (#23446)

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and `display: inline-table` in its CSS. The combination of these two causes Chrome to infer the element as a `table` which results in NVDA reading out "table" any time a select is opened.

These changes resolve the issue by using flexbox to lay out the select trigger instead.

Fixes #21480.

(cherry picked from commit 0276784)
forsti0506 pushed a commit to forsti0506/components that referenced this issue Apr 3, 2022
…hrome (angular#23446)

The `mat-select` trigger element has an `aria-owns` pointing to the overlay and `display: inline-table` in its CSS. The combination of these two causes Chrome to infer the element as a `table` which results in NVDA reading out "table" any time a select is opened.

These changes resolve the issue by using flexbox to lay out the select trigger instead.

Fixes angular#21480.
@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 Apr 16, 2022
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) area: material/select P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent
Projects
None yet
3 participants