Fix reporting of the slider in the Parameters dialog with Windows Narrator.
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.
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.
Build succeeded! Build osara pr762-966,6c6536fd completed (commit https://github.com/jcsteh/osara/commit/6c6536fd58 by @jcsteh) Downloads:
CC @pitermach.
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
I've emailed the test build to Jim.
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.
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
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.
Have you considered changing the slieder to something else, e.g. a spinner?