nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.07k stars 624 forks source link

NVDA doesn't read the updated value for a div or button element when using arrows #15252

Open MariaBulboaca opened 1 year ago

MariaBulboaca commented 1 year ago

Steps to reproduce:

  1. Go to: https://stackblitz.com/edit/rxgbft?file=src%2Fapp%2Fselect-form-example.html,src%2Fapp%2Fselect-form-example.ts
  2. Focus the 'Update value button' button with tab key
  3. Press enter to update the values for next elements
  4. Using down arrows, focus the next elements

NOTE: This behavior works if the tab key is used instead of arrows.

Actual behavior:

The NVDA read the initial value for the div and button elements.

Expected behavior:

The NVDA should read the new value for the div and button elements.

NVDA logs, crash dumps and other attachments:

Speech viewer text: "Update value button
blank blank blank blank combo box Initial value blank blank combo box Initial value" button Note: The attached gif contains the speech viewer text and the visual behavior bug.

System configuration

NVDA installed/portable/running from source:

NVDA installed

NVDA version:

2023.1

Windows version:

Windows 10

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

N/A

Other information about your system:

N/A

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?

N/A

seanbudd commented 1 year ago

Welcome @MariaBulboaca ,

We are unable to process this issue as it stands. We need a sample in plain HTML/JS to be able to investigate this. We are not in position to debug the Angular framework.

Kind Regards, NV Access Software Developers

Adriani90 commented 7 months ago

Ok so it seems NVDA reports "combo box initial value" in browse mode after pressing the "update value button" which is wrong. In focus mode, NVDA reports as expected "combo box new value", and also when using object navigation "new value" is rendered properly. So the virtual document doesn't get updated.

@jcsteh or @LeonarddeR any suggestions on this?

jcsteh commented 7 months ago

This is specific to role="combobox", not div or button. In addition, this works as expected in Firefox, but not in Chromium. It most likely doesn't work in Chromium because Chromium isn't firing a value change event (so NVDA's browse mode buffer isn't aware of the change), but I haven't verified that.

Adriani90 commented 7 months ago

Created https://bugs.chromium.org/p/chromium/issues/detail?id=1524522

I also noticed that Jaws gets the new value when the system focus lands on the combo box. Afterwards its virtual document is updated with the new value in Chrome and Edge. I don't know which heuristics Jaws uses to detect the value change in its virtual document but it seems it depends on the system focus if there is no value change event fired by the browser.