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

In cases where UIA element both has ValuePattern and RangeValuePattern, NVDA uses the latter whereas this might be incorrect #12724

Closed
LeonarddeR opened this issue Aug 10, 2021 · 3 comments · Fixed by #12727
Milestone

Comments

@LeonarddeR
Copy link
Collaborator

Steps to reproduce:

  1. Download Surge XT nightly and install it.
  2. Start the standalone version
  3. With object nav, find a slider, e.g. inside global controls, the split point slider.

Actual behavior:

@pitermach wrote in surge-synthesizer/surge#4616 (comment)

On Windows, NVDA seems to ignore the real value and use a different scale, but as this doesn't happen with the other windows readers I tried (Narrator, JAWS, ZDSR) I suspect this is an NVDA issue especially because it also happens in at least one other Juce plugin

NVDA reads numerical values, e.g. 49.

Expected behavior:

NVDA reads the actual value, e.g. C4

Additional details

It looks like the sliders implement both the ValuePattern and RangeValuePattern. The RangeValuePattern exposes a numerical value whereas the ValuePattern exposes the real value. From what I can see, it looks like code in NVDA needs to be swapped in order for this to work correctly. I have to take a look at whether this is an authoring error in Juce or NVDA.

Originally posted by me in surge-synthesizer/surge#4616 (comment)

@LeonarddeR LeonarddeR changed the title IN cases where UIA element both has ValuePattern and RangeValuePattern, NVDA uses the latter whereas this might be incorrect In cases where UIA element both has ValuePattern and RangeValuePattern, NVDA uses the latter whereas this might be incorrect Aug 10, 2021
@LeonarddeR
Copy link
Collaborator Author

I think there are several reasons to give presedence to Value over RangeValue.

  1. It is what JAWS and Narrator do
  2. It is what the LegacyIAccessiblePattern exposes as the value.

I'm also puzzled about why NVDA insists on hard correcting the range value to a range from 0 to 100. The possibility that UIA offers to specify a range minimum and maximum is there for a reason. IN the example above, the slider ranges from 0 to 127. Therefore I decided to remove that behaviour in the pr I intend to create.

@michaelDCurran any thougths about this?

@josephsl
Copy link
Collaborator

josephsl commented Aug 11, 2021 via email

@LeonarddeR
Copy link
Collaborator Author

Hi, I think the value range property was used for progress bar output. Thanks.

Good catch, I'll have a look.

@nvaccessAuto nvaccessAuto added this to the 2021.3 milestone Aug 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants