Enable the Java Access Bridge for the user at startup.#10525
Conversation
|
PR introduces Flake8 errors 😲 See test results for Failed build of commit 0ec6e0c72b |
michaelDCurran
left a comment
There was a problem hiding this comment.
There is apparently also a screen_reader_present property, according to https://docs.oracle.com/javase/7/docs/technotes/guides/access/properties.html
Might be worth adding and testing that one as well? Though I guess jabSwitch never added that one?
|
How about disabling the bridge from Ease of Access and then start NVDA to enable the bridge? Will EOA reflect this? I assume not, which might be slightly confusing. |
|
The jabswitch EoA integration is weird at best. The documentation
explicitly notes that you actually can't disable JAB using EoA.
|
Installed JREs allow users to do this from Ease of Access. However, given that some apps now bundle their own Java VM and given that many JREs don't provide an installer (official OpenJDK is just a zip file, for example), doing this from Ease of Access isn't possible for many users. It's also an extra hoop a user really shouldn't have to jump through. Therefore, if this is an installed copy of NVDA and the JAB isn't already enabled for the user, we just do this quietly when initialising JABHandler.
|
jabswitch doesn't seem to set screen_reader_present. We could experiment with that, but I'd suggest we go with what jabswitch does for now and experiment separately. |
|
Would it be possible to add additional option to the tools menu which would allow users of portable copies to enable JAB? I understand why you do not want do to that for portable copies automatically, however portable copies are often used in environments in which it cannot be done from EOA, so having an option to do that from NVDA would be useful. |
|
I agree that adding the screenReader variable, and perhaps something in the Tools menu for portables, can be done separately if needed. this solves the main use case. |
Link to issue number:
Fixes #7952.
Summary of the issue:
The Java Access Bridge has to be enabled within Java VMs and it isn't enabled by default. Installed JREs allow users to do this from Ease of Access. However, given that some apps now bundle their own Java VM and given that many JREs don't provide an installer (official OpenJDK is just a zip file, for example), doing this from Ease of Access isn't possible for many users. It's also an extra hoop a user really shouldn't have to jump through.
Description of how this pull request fixes the issue:
If this is an installed copy of NVDA and the JAB isn't already enabled for the user, we just do this quietly when initialising JABHandler. We do this the same way jabswitch does; i.e. writing a specific file into the user's home dir with specific content.
Testing performed:
Known issues with pull request:
None.
Change log entry:
Changes:
- If the Java Access Bridge is not enabled for the user, NVDA automatically enables it at startup. (#7952)