osara icon indicating copy to clipboard operation
osara copied to clipboard

Fix reporting of the slider in the Parameters dialog with Windows Narrator.

Open jcsteh opened this issue 3 years ago • 9 comments

We can't annotate a real slider in the way we need for UIA. Since we don't really use the slider anyway, use a Static text control instead on Windows and annotate its role to fake a slider. Fixes #758.

I've tested this with NVDA and Narrator, but it will also need testing with JAWS. I know the JAWS scripts have special handling for this slider, so it's possible things will break without tweaks to the scripts.

jcsteh avatar May 21 '22 06:05 jcsteh

Note that I can't use the existing static text control added recently because whenever the value changes, a name change event gets fired by the control and I can't override that, so Narrator was speaking the name of the control every time the value changed.

jcsteh avatar May 21 '22 06:05 jcsteh

Build succeeded! Build osara pr762-966,6c6536fd completed (commit https://github.com/jcsteh/osara/commit/6c6536fd58 by @jcsteh) Downloads:

Windows
Mac

AppVeyorBot avatar May 21 '22 06:05 AppVeyorBot

CC @pitermach.

jcsteh avatar May 21 '22 23:05 jcsteh

Thanks for looking into this. I tried out the new version, and can confirm that Narrator works great now. NVDA, ZDSR and Mac OS are also still working correctly.

You were also right with your hunch re: JAWS, which with the latest version of the scripts now sees the slider just as a text element whose value is always 0 and this is what also gets reported when moving down the parameters list.

Since the number of JAWS users is almost certainly way higher than narrator users I think the best thing to do is let Jim know about this and wait for a script update before merging this

pitermach avatar May 22 '22 12:05 pitermach

I've emailed the test build to Jim.

ScottChesworth avatar May 22 '22 12:05 ScottChesworth

JAWS ignores the accessibility info exposed for this control and fixing the JAWS scripts to deal with this is apparently going to be painful. So this is probably a no-go. This is why we can't have nice things.

jcsteh avatar May 23 '22 22:05 jcsteh

THat's unfortunate. The last thing I can think of is contacting Microsoft since the main issue is on their end, I'll link the issue and maybe it'll eventually be adressed

pitermach avatar May 24 '22 06:05 pitermach

It's debatable as to whether it's a Microsoft issue. On one hand, it's annoying that I can't annotate the Value pattern. On the other hand, it's unclear whether you're supposed to be able to annotate pattern availability properties, since there are both pattern interfaces and pattern properties. My guess is that UIA tries pattern interfaces before it tries pattern availability properties and the UIA implementation for Win32 sliders probably reports that the IValueProvider interface isn't supported, so it never even looks at the annotated properties. I could probably get around this by having a fully custom UIA implementation, but the work involved in that exceeds the time I'm willing to put into this right now.

jcsteh avatar May 24 '22 07:05 jcsteh

Have you considered changing the slieder to something else, e.g. a spinner?

LeonarddeR avatar May 24 '22 07:05 LeonarddeR