NVDA should report Java controls which are disabled as unavailable#13711
Merged
Conversation
seanbudd
approved these changes
May 19, 2022
Member
|
Could you elaborate on manual testing? What are the steps to reproduce? |
Contributor
Author
|
I created a Java test application to move focus to unavailable controls which I attach. Since doing that I remembered the "Simple review mode" setting in "Review cursor" settings in NVDA, turning that off meant I could test the original test app in the referenced issue by finding the menu item with object review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Fixes #10993
Summary of the issue:
Controls in Java applications which do not have the enabled state are not being spoken as unavailable by NVDA.
Description of how this pull request fixes the issue:
Java accessibility API states that controls lacking the enabled state cannot be manipulated and normally are shown as greyed out. I understand lacking the enabled state to map to unavailable in NVDA and so this pull request checks if enabled is not present and sets the unavailable state accordingly.
In the (java documentation at https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/accessibility/AccessibleState.html it says the following for the enabled state:
public static final AccessibleState ENABLED
Indicates this object is enabled. The absence of this state from an object's state set indicates this object is not enabled. An object that is not enabled cannot be manipulated by the user. In a graphical display, it is usually grayed out.
Testing strategy:
Manual testing.
Known issues with pull request:
The original issue referenced describes this for menus. It appears that (java Swing applications do not set focus to unavailable menu items and object review filters out unavailable menu items. So the example in the referenced issue cannot be used for testing, other examples may be needed.
Change log entries:
New features
Changes
Bug fixes
Fix NVDA not reporting disabled/enabled state correctly for controls exposed through (java Access Bridge.
For Developers
Code Review Checklist: