-
-
Notifications
You must be signed in to change notification settings - Fork 655
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
NVDA does not explicitly announce the "leaf" information #13892
Comments
I don't think I have had these announcements for any treeview with NVDA, so do we want to broaden this to cover treeviews in general rather than just Java's JTree? Also I would question if leaf item is most useful, I would follow how menus are done (I.E. non-leaf nodes would be announced as having subitems or child items, may be even with a count of the child items). I personally feel to state leaf is unnecessarily verbose, where as giving child information is at least providing some information for the additional words. |
Considering your comment I think it makes more sense to rely on the announcement of child items than to check the announced state set to find out whether or not an item is a leaf. If child items were announced I would not see a need for announcing "leaf" as leaf property any more. |
@anOolamr Can you expand on why this would help? Before we can consider this I'd like to be sure we understand the problem you want to solve. |
A tree control consists of three different kind of items: Current announcement by NVDA regarding these kind of items: Open the "JTree demo" of SwingSet2.jar and test the following:
Which type of announcement and which announcement order would help to make these user actions faster?
As a further example, I discuss a file explorer displayed as a tree. A folder can be empty or can have a number of children. You may need to know how many child items a folder is containing (without first navigating to the first item to get the number from the position announcement). If a folder has for example three child items, you may check each item, but you will not do this if a folder has 1000 child items. Or you may check the number of child items to validate the count of items, for example after an copy-and-paste action. Even if a folder is empty, you want to get the information quickly. Hope this helps. |
Thanks for the extra information @anOolamr, just to reassure you, we are developers who understand tree structures.
Your primary concern is improving the efficiency of communicating the structure of a menu, am I interpreting correctly?
I think you are trying to illustrate the problem, however, we don't necessarily share a common vocabulary for describing the components of speech output it is much clearer if you copy paste in the exact speech from the speech viewer, then paste again and apply modifications to show what you would prefer. The two examples next to each other allows to be certain what you are suggesting for that precise case. I previously edited the description of this issue with my best guess, it would be very helpful if you could confirm or correct it. |
@feerrenrut Sorry, I didn't realize that you have edited my issue description (didn't even know that this is possible), so I was confused and completely missed the intention of your question. :-( I would prefer the following announcement:
"no child items" should be used for empty nodes, but not for leaves to avoid misinterpretation. |
I checked the NVDA announcement for JRadioButton(s) and got the following announcement order: As "leaf item" is like a role, I think that the following order would be more equivalent: |
Again, please provide the exact actual speech and the expected speech you would prefer. Both are required to ensure we are thinking about the same example as you, and we can easily see the difference you would prefer. |
Initial situation: Root node has the keyboard focus, but is not selected.
Press arrow down key
Press arrow down key
Press arrow down key
Press arrow down key
|
@feerrenrut I would not use "leaf" for the announcement of menu items. The announcement for menu structures should be different from the announcement of tree structures. I initially created this bug report related to tree structures. Example of a File menu structure where F of File is underlined:
Press Alt+F to open File menu
Press arrow down key
Press arrow down key
Press arrow right key
For the menu items I would even prefer a concise announcement and leave out "menu item", except for checkbox menu items ("checkbox, checked" / "checkbox, not checked") and radiobutton menu items ("radio button ..."). |
This is extra verbosity which is not needed. In tree views you can use the object navigation (nvda+shift+arrow keys and nvda+enter in laptop keyboard layout to navigate and interact with tree view items in a very efficient way. Using object navigation, you get already the level reported before the item name, so this should already solve the problem. Closing as works for me. |
By the way, when using object navigation, you know that it is a leaf item when there is no more child object after pressing nvda+shift+down arrow. |
NVDA does not explicitly announce the leaf information when the keyboard focus navigates to a leaf item.
See also bug report #13623.
See also #13891
Steps to reproduce:
If not available, download the SwingSet2 Demonstration Program from: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#swingset2
Start NVDA.
Launch SwingSet2.jar with an up-to-date Java JRE.
-> The SwingSet2 application window appears.
Navigate with arrow right key to the "JTree demo" radio button and press spacebar to select it.
Press Tab key twice to navigate to the JTree control.
-> NVDA announces the "Tree" role of the JTree control.
Press arrow down key once to select the root node.
-> NVDA announces the name "Music", some state information ("selected, expanded, editable") and the position ("1 of 1, level 1") of the root node.
Press arrow down key once to select the first child item of the root node.
-> NVDA announces the level ("level 2"), the name "Classical", some state information ("selected, collapsed, editable") and the position ("1 of 3") of the node.
Press three times alternating arrow right and arrow down.
-> NVDA announces the level ("level 5"), the name "No. 1 - C", some state information ("selected, editable") and the position ("1 of 5") of the leaf item.
-> Missing announcement: leaf information ("leaf item")
Although the collapsed/expanded state information is missing, I would prefer to get an explicit information regarding the leaf property.
Actual behavior:
NVDA does not explicitly announce the leaf property.
Expected behavior:
NVDA announces the leaf property explicitly.
or
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
Version: 2022.1
Windows version:
Version 10.0.19043 Build 19043
Name and version of other software in use when reproducing the issue:
java version "18.0.1" 2022-04-19
Java(TM) SE Runtime Environment (build 18.0.1+10-24)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1+10-24, mixed mode, sharing)
Other information about your system:
Java Access Bridge is enabled.
Other questions
Does the issue still occur after restarting your computer?
Yws.
Have you tried any other versions of NVDA? If so, please report their behaviors.
Yes. Same behavior.
If NVDA add-ons are disabled, is your problem still occurring?
Not applicable.
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Not applicable.
The text was updated successfully, but these errors were encountered: