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

NVDA does not provide any way to read a disabled option in a listbox #14190

Open
zarend opened this issue Sep 26, 2022 · 4 comments
Open

NVDA does not provide any way to read a disabled option in a listbox #14190

zarend opened this issue Sep 26, 2022 · 4 comments
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@zarend
Copy link

zarend commented Sep 26, 2022

Steps to reproduce:

  1. Navigate to https://output.jsbin.com/zijumor
  2. (Demo opens and page says "Select a color. 'Blue' is deliberately disabled.")
  3. Tab to the select element and press space
  4. (select options "red", "Green" and "Blue appear")
  5. Press Down arrow
  6. ("Green" option is browser and screen reader focused. NVDA announced "Green 2 of 3")
    7 Press down arrow again

Actual behavior:

Nothing happens

Expected behavior:

I would expect there to be some way to read the third option in the listbox. I tried looking for another way to do this, and there is no way to read the third option. The "Blue" option is only communicated visually and there is no communication to screen reader that the third option is Blue.

NVDA logs, crash dumps and other attachments:

N/A

System configuration

NVDA installed/portable/running from source:

installed

NVDA version:

2021.3.1

Windows version:

Windows 10 Enterprise 20H2

Name and version of other software in use when reproducing the issue:

Chrome Version 105.0.5195.127 (Official Build) (64-bit)

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

no

If NVDA add-ons are disabled, is your problem still occurring?

yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

yes

Additional Information

I'm running into this problem when implementing listbox components for the Angular Material component library. https://github.com/angular/components.

Source code of example:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>

  <form>
    <p>Select a color. 'Blue' is deliberately disabled.</p>

    <select>
      <option>Red</option>
      <option>Green</option>
      <option disabled>Blue</option>
    </select>
  </form>
</body>
</html>
@rperez030
Copy link

I think blue not receiving focus is a browser behavior related to the use of the HTML disabled attribute. That I would expect. the real issue here is that NVDA is not exposing the disabled option even through object navigation.

  1. Move the browse cursor to the combo box and press space bar to activate. NVDA will switch to focus mode.
  2. Press the space bar again or Alt +Down arrow to expand.
  3. Use the command to move to next object (Desktop Insert +Numpad 6) to review the content of the combo box. NVDA will announce Green not selected 2 of 3, followed by no next even though blue is available in the accessibility tree. I would expect NVDA to announce something like blue disabled 3 of 3.

The same issue can be observed in the new Windows 11 notepad, for example.

  1. In Notepad, activate the Edit menu by pressing Alt +E.
  2. Try reading the list of options with object navigation.

NVDA skips all the disabled items in the list rather than exposing them with the disabled state.

@seanbudd seanbudd added p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. labels Sep 27, 2022
@JAWS-test
Copy link

@Brian1Gaff
Copy link

Brian1Gaff commented Sep 27, 2022 via email

@rperez030
Copy link

rperez030 commented Sep 27, 2022

@Brian1Gaff we could spent time debating design considerations around disabled elements or whether they should or should not receive keyboard focus. All of that is very controversial. The fact is that disabled elements are often part of the UI, and although not actionable, they convey information. In fact, they are exposed by NVDA in browse mode as well as when they receive focus directly. In the example provided, we know there is a third option because NVDA announces position information. The third option is visible on the screen but not accessible to the NVDA user. I wouldn't expect keyboard focus to go there because that is controlled by the browser, not NVDA, but NVDA's object navigator should go there. As an NVDA user, I expect to be able to access information about disabled controls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

No branches or pull requests

5 participants