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
Disabled (unavailable) GUI items should not be skipped during object navigation #15477
Comments
as far as I can tell this is an unavoidable implementation issue with native Windows form components, which wxWidgets relies on. Windows prevents focus by force to disabled form controls. |
@seanbudd are we sure to understand each other? |
My mistake. We have code that intentionally skips over these items during object navigation. Does toggling "simple review mode" allow you to workaround this issue? |
No, for the examples given in the initial description these objects are unreachable. As already indicated in the initial description, it does not change anything if simple review mode is enabled or disabled. In the meantime, I have found that the disabled items of Notepad's context menu (Windows 10) are reachable through object navigation, but only when simple review mode is disabled. I think that all unavailable objects should be reachable by object navigation when simple review mode is off. The fact that some object are not reachable when simple review is off is a bug IMO. Additionally, I think that the simple review shouldn't skip unavailable object either, for the reasons I have described in my first comment: although greyed, an unavailable control still conveys meaning in a GUI and the user should be aware of it. |
@seanbudd, I can see that you have added the "triaged" label, which means that you accept disabled object to be reported during object navigation. Could you clarify the following questions:
|
Should disabled objects be reachable also in simple review mode or in both review mode? As written before, my opinion is that it should be reachable in
both modes, but I would like to know NV Access opinion.
For what it's worth, I think Cyrille is right. Simple mode is not intended, as
far as I understand it, to conceal or reveal more or less "real" screen
elements--it is only intended to compress the number of useless containers the
user has to walk through while accessing objects.
Unless I'm wrong about its purpose.
|
It should be reachable in both modes.
I'm not sure, I think so. I have not investigated the code. The information stated was provided by Mick.
I'm not sure, I think so. I have not investigated the code. |
Closes #15477 Summary of the issue: In a GUI, disabled (greyed) items are visible to sighted users. So unless there is a good reason, blind people should be able to see them too. Greyed items convey meaning in a GUI and not being able to see them causes people to miss information conveyed by the GUI. For example in the new audio panel, if you run NVDA from source (or probably portable), the audio ducking item is greyed out (disabled). Being allowed to find the disabled item informs the user that NVDA has an audio ducking options but that this options can not be enabled. Unfortunately, disabled controls are ignored during object navigation. This is also inconsistant with document review mode where disabled objects are not ignored. Description of user facing changes During object navigation (complete, simple or flattened), disabled object will not be ignored anymore. Description of development approach For presentation type, do not classify objects with state UNAVAILABLE to presType_unavailable. For windows isUsableWindow does not return False for windows that are not enabled
Steps to reproduce:
Actual behavior:
Nav object moves to "Show messages" checkbox which is the next GUI item that is not greyed out.
Expected behavior:
Nav object should move to the next GUI object ("Blinking cursor"), whether it is greyed out or not should not matter.
Greyed items are visible to sighted users. So unless there is a good reason, blind people should be able to see them too. Greyed items convey meaning in a GUI and not being able to see them causes people to miss information conveyed by the GUI.
Taking again the example of braille panel:
If a user has unchecked show cursor by mistake, he may not find "Blinking cursor" option while tabbing in the dialog. Using an object navigation that does not skip greyed items would allow to see the item and see that it is unavailable.
If however a good reason not to include unavailable GUI items in obj navigation is exhibited, at least they should be included in object navigation with when simple review mode is disabled.
Additional notes
NVDA logs, crash dumps and other attachments:
N/A
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
2023.3beta2
Windows version:
Windows 10 21H2 (AMD64) build 19044.3324
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.
NVDA 2023.2 and all many other older versions had the same behaviour; not retested it just now however.
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?
Not tested now but this issue has always been there in spite of NVDA updates.
The text was updated successfully, but these errors were encountered: