-
-
Notifications
You must be signed in to change notification settings - Fork 633
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
Java SwingSet2 application with NVDA #9728
Comments
I have tried the above with NVDA 2022.1, Java 17 and the demos from JDK17. Here are my findings:
|
Thank you very much for looking at these issues and for fixing what you can. It sounds as if you have looked at these issues very thoroughly. Thank you. It would be great if you can fix the read window issue in items 14 and 15. With item 17, these tabs wrap. The tabs that you mention in the properties dialog box wrap when I use Ctrl+Tab and Ctrl+Shift+Tab but do not wrap when I use Left Arrow and Right Arrow. I think that the extra contextual information is more useful when the tabs wrap. When the tabs wrap, I find it much less obvious that I have worked my way through all the tabs. This is probably much less of an issue for people with good short-term memory who can more easily recognize when they have returned to the tab that they started on. The need for extra contextual information is less when the tabs do not wrap or when the number of tabs is smaller. A user who can see the screen can tell visually when the current tab has moved from one end of the tab list to the other. Perhaps you can ask some of the other users you know to get an idea of whether many people are interested in having this contextual information. With item 18, perhaps NVDA replaces an HTML tag with a space to avoid joining separate words. Would it be a lot of work to ignore the tags at the beginning and end of the control and before or after a space so as to avoid starting or ending with a space or inserting multiple spaces? Thank you. |
An update on this.
|
I have fixed the things I had identified as needing fixing in the JDK17 demos with NVDA 2022.1. There is now a pull request #13744 for this should you want to test my fixes. |
Thank you very much. That sounds great. |
… position information (#13744) Fixes #9184 and fixes #9728 Summary of the issue: A number of features in Java Access Bridge were not working optimally. 1. Various commands like read window and read window title were not working when Java applications have multiple windows. (#9184) 2. Toggle buttons were not read correctly. (#9728) 3. Unnecessary spaces when HTML tags removed from Java controls. (#9728) 4. Provide position information for Java tab controls. (#9728) Description of how this pull request fixes the issue: 1. According to Java documentation* when getAccessibleIndexInParent returns -1 there is no parent. So in NVDA if indexInParent is None we should treat it as if parent is not set. 2. Java toggle buttons use the checked state for pressed, correctly map this. The value should be ignored for a toggle button. 3. Updated the regular expression processing for HTML tags to check if the tags are at the start or end or have surrounding whitespace, in which case the tag is stripped. If there is only non-whitespace characters around the tag then replace the tag with a space to prevent words being joined. 4. For Java controls with Role.TAB use indexInParent and parent.childCount to find the position information. * https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/accessibility/AccessibleContext.html#getAccessibleIndexInParent()
I have encountered some issues with the SwingSet2 application, which is a Java Swing application that Oracle suggest is suitable for testing whether the Java Access Bridge is working correctly.
I have listed several issues. Some items might be due to my ignorance. Some items might be due to my high expectations. Some items might be due to inevitable behavior when using the Java Access Bridge or Java Swing applications. Some items might be due to the way the Java Swing application is written. Some items might be NVDA bugs or feature requests. I asked for help with this on the NVDA mailing list, but I did not receive a reply. I am sorry if my report is unconventional.
Steps to reproduce:
These instructions apply to 64-bit Microsoft Windows.
https://www.java.com/en/download/manual.jsp
https://docs.oracle.com/javase/8/docs/technotes/guides/access/enable_and_test.html
The 32-bit Java Access Bridge DLL (WindowsAccessBridge-32.dll) should be in the sysWOW64 folder (usually C:\Windows\sysWOW64). The 64-bit Java Access Bridge DLL (WindowsAccessBridge-64.dll) should be in the system32 folder (usually C:\Windows\system32).
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
java -jar SwingSet2.jar
.System configuration
NVDA installed/portable/running from source:
Installed
NVDA version:
2019.1.1
Windows version:
10.0.17763 Build 17763
Other questions
Does the issue still occur after restarting your PC?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
Same behavior with NVDA 2018.3 (with earlier versions of the Java runtime environment).
nvda-old2.log
nvda-old.log
nvda.log
The text was updated successfully, but these errors were encountered: