Skip to content

Map the selectable state for Java Access Bridge#14351

Merged
seanbudd merged 7 commits into
nvaccess:masterfrom
aphtech:jabSelectableState
Nov 11, 2022
Merged

Map the selectable state for Java Access Bridge#14351
seanbudd merged 7 commits into
nvaccess:masterfrom
aphtech:jabSelectableState

Conversation

@mwhapples

@mwhapples mwhapples commented Nov 8, 2022

Copy link
Copy Markdown
Contributor

Link to issue number:

Fixes #14336

Summary of the issue:

In Java applications NVDA always announces selected for items which are selected. This can be quite annoying in certain controls such as menus. In these cases it is preferred to announce when something is not selected. The issue is that NVDA was not mapping the selectable state for Java Access Bridge. With this fix Java controls which have the selectable state will now only announce when something is not selected.

Description of user facing changes

For selectable controls in Java applications using the Java Access Bridge the user will now notice NVDA does not announce if something is selected, rather it will only announce when something is not selected.

Description of development approach

After discussing how to reduce the selected announcement verbosity in the associated issue, I decided to check what states were being exposed in other applications where it would announce items as "not selected". When reviewing the logs it appeared that the common factor is these controls had the selectable state. I am aware that Java Access Bridge exposes a selectable state. Upon inspecting the NVDA code for mapping Java Access Bridge objects to NVDA objects, I could not find any mapping for the selectable state. So I added the mapping and tested whether this fixed the issue.

Testing strategy:

Manual testing using the Java demo application swingset2. Checked both controls which have the selectable state and those which can be selected but do not expose the selectable state through the Java Access Bridge.

Known issues with pull request:

None.

Change log entries:

New features
Changes
Bug fixes
Java applications with controls using the selectable state will now announce when an item is not selected rather than when the item is selected.
For Developers

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests N/A
    • 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
  • Security precautions taken.

@mwhapples mwhapples requested a review from a team as a code owner November 8, 2022 18:06
@mwhapples mwhapples requested a review from seanbudd November 8, 2022 18:06
Comment thread source/NVDAObjects/JAB/__init__.py
Comment thread source/NVDAObjects/JAB/__init__.py Outdated
Comment thread source/NVDAObjects/JAB/__init__.py Outdated
@seanbudd

seanbudd commented Nov 9, 2022

Copy link
Copy Markdown
Member

@michaelDCurran what do you think of this change of behaviour?

@seanbudd seanbudd merged commit 0a97d20 into nvaccess:master Nov 11, 2022
@nvaccessAuto nvaccessAuto added this to the 2023.1 milestone Nov 11, 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.

Needless state announcement on JMenu and JMenuItem (Java Access Bridge)

4 participants