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

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jcsteh
Copy link
Owner

@jcsteh jcsteh commented May 21, 2022

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.

…rator.

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.
@jcsteh
Copy link
Owner Author

jcsteh commented May 21, 2022

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
Copy link
Owner Author

jcsteh commented May 21, 2022

CC @pitermach.

@pitermach
Copy link

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

@ScottChesworth ScottChesworth added the needsJawsScript Forward test builds to Snowman via email, typically handled by Pete or Scott label May 22, 2022
@ScottChesworth
Copy link
Collaborator

I've emailed the test build to Jim.

@jcsteh
Copy link
Owner Author

jcsteh commented May 23, 2022

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.

@pitermach
Copy link

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

@jcsteh
Copy link
Owner Author

jcsteh commented May 24, 2022 via email

@LeonarddeR
Copy link
Collaborator

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

@@ -21,6 +21,7 @@ BEGIN
LTEXT "Value:", IDC_STATIC, 10, 30, 23, 10
// SWELL doesn't have the TRACKBAR_CLASS constant.
CONTROL "", ID_PARAM_VAL_SLIDER, "msctls_trackbar32", WS_TABSTOP, 40, 30, 60, 10
CONTROL "", ID_PARAM_VAL_FAKE_SLIDER, "Static", WS_TABSTOP, 40, 30, 60, 10
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonder what this will do with JAWS.

Suggested change
CONTROL "", ID_PARAM_VAL_FAKE_SLIDER, "Static", WS_TABSTOP, 40, 30, 60, 10
CONTROL "", ID_PARAM_VAL_FAKE_SLIDER, "Button", WS_TABSTOP, 40, 30, 60, 10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needsJawsScript Forward test builds to Snowman via email, typically handled by Pete or Scott
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Parameters dialog: Narrator always reads value slider as 0%
5 participants