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 group box role in Java Access Bridge #13962

Merged
merged 3 commits into from
Jul 29, 2022

Conversation

mwhapples
Copy link
Collaborator

Link to issue number:

#13836 partial fix.

Summary of the issue:

The group box containing radio buttons is not correctly identified in applications using the (java Access Bridge. This is due to a bug in the Java runtime. Most roles have their identifier string converted to something more readable through a resource bundle, however "groupbox" is not in the accessibility resource bundle, so the key "groupbox" is used. NVDA was previously expecting the groupbox role to be presented as "group box", which would be expected if it had been included in the accessibility resource bundle.
AccessibleRole source code: https://github.com/openjdk/jdk17u/blob/master/src/java.desktop/share/classes/javax/accessibility/AccessibleRole.java
Accessibility resource bundle: https://github.com/openjdk/jdk17u/blob/master/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility.properties

Description of user facing changes

NVDA previously was not identifying the group box for radio buttons in an application using Java Access Bridge. This change correctly maps the role exposed by Java Access Bridge to the grouping state.

Description of development approach

Comparing roles expected in NVDAobjects/JAB/init.py and those included in the accessibility resource bundle file and then the key used in the AccessibleRole class.

Testing strategy:

Manual testing with the application provided in the referenced issue.

Known issues with pull request:

As this seems to be a bug with the (java runtime, it may be fixed in the future, so I have kept both the work around and the original "expected" role name for mapping in NVDA. This does mean NVDA has more definitions than it really needs, but this is needed if we are to correctly support existing and future versions of the Java runtime correctly.

Change log entries:

New features
Changes
Bug fixes

  • Group boxes are now correctly identified in applications using Java Access Bridge.
    For Developers

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests Not sure how to test this.
    • System (end to end) tests N/A
    • Manual testing Done
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English

@mwhapples mwhapples requested a review from a team as a code owner July 28, 2022 15:25
@mwhapples mwhapples requested a review from seanbudd July 28, 2022 15:25
@AppVeyorBot
Copy link

See test results for failed build of commit bd2b174f54

@seanbudd seanbudd merged commit 0a704f0 into nvaccess:master Jul 29, 2022
@nvaccessAuto nvaccessAuto added this to the 2022.4 milestone Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants