-
-
Notifications
You must be signed in to change notification settings - Fork 638
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
Limit list item quick navigation to current list #8193
Comments
See: #5906, #6815, #7804, #8103 I was thinking about this quite a while and found no satisfied solution. We can change the behaviour for I and Shift+I in that case that you have to press it twice to move up/back into a parent list, but in the end this could confuse more than it helps. So, I'm asking me if it is possible to use tones (and speech) to present the level of the list similar to the line indentation (#5906). If the "lists"-checkbox in the document settings is enabled, "clst*" could be displayed on the braille display as well. "*" represents the level of the child list – to be exactly the distance between the current child list and the highest parent list. And if a list contains one or more child lists, "lst+" instead of "lst" could be shown – and of course spoken by NVDA as well.
Regarding to this tone feedback the user immediately knows on which list level the cursor currently is. So because of that changing the behaviours of I, L and Comma for lists isn't required anymore. |
As proposed in #9227 (comment) I'd propose to further extend this limitation to headers. This could even later be extended to radio buttons groups and tab headers lists, effectively turning "i" to "items", not only "list items": Eg. have "r" move to the radio buttons group (ideally to the selected element) and "i" to individual radio buttons within the group. @lukaszgo1 wrote in #9227 (comment)
What was their UX back then? (I'm apparently specialized in NVDA for too long) Also, this new behavior could be configurable, preferably IMHO active by default. |
These are lovely ideas!
|
@LeonarddeR wrote:
Thanks for your enthusiasm! The logic could be implemented either:
I'd go for the central approach, but what do you think? |
I Understand that you prefer the global approach, however especcially for UIA, i'm afraid the performance impact will be major if not done in the tree interceptor directly. UIA quicknav is still far from ideal.
|
@LeonarddeR wrote:
Having a look at The advantage of the central approach was that the new constraints could easily be expressed in new arguments to the Maybe a mixture of both approaches could do the trick. In
|
@JulienCochuyt: The hierarchies of headlines are different to lists. Therefore I would separate them from this issue. It could get too complex if we're putting all into one single PR. I also like your idea for headlines, but I want to have an option how the new "border" is announced by NVDA. I would prefer just a short beep tone and others could prefer speech output. Well, and it should be clear, that this new quick navigation behavior must be able to be enabled or disabled by the end user. Not all websites care about a useful and understandable headline hierarchy. |
@JulienCochuyt wrote:
While I understand doing it for list items I do not see What would it improve for an end user in case of headings.
My bad, I've completely missed the part about being able to jump to the next element outside of the region by pressing twice. No they do not, the only way in which it was possible to move to say the next h2 outside of the current h1, was to move first to the next 1 annd the to h2.
It has to be, mainly because they would be no other screen reader with such mode of navigation and for people migrating to NVDA it would be really confusing I think. |
@DrSooom wrote:
This feature is actually quite simple to implement and both lists and headings would share here a great portion of the needed code.
Furthermore, I guess both features will probably meet the same opponents and advocates, thus I guess that for once there is good reasons for grouping. |
@lukaszgo1 wrote:
Consider a very long document, with dozens of nested headings, in which you'd want to skip whole parts but could not tell which ones to skip until reading the first few paragraphs.
|
Just to make sure, are you suggesting that some implementations of _iterNodesByType would implement limit and others don't? I think that could be confusing for users.
I agree that there should be a fallback for generic checking, but thinking more and more about this, may be _quickNavScript isn't the best place for this. Could a base implementation of |
@LeonarddeR wrote:
Yes indeed. With a proper explanation in the docstring of
The UIA and Edge implementations are quite special in that they require the boundary check to be performed along with the regular search in order not to badly impact performance. Though, a base Would you prefer this approach? Maybe would it be clearer with a draft prototype… |
Yes, I really like that idea actually. Probably best to have @michaelDCurran's opinion before creating a draft, though. |
I agree with the implementation proposal, and I agree that headings and lists could share the same code. I totally agree we should do this by default for list items, but I'm not totally convinced yet for headings. How about for the initial pr, support for list items is implemented, but in an abstract way such that it is very easy and clear to then add headings at a later date. |
Based on @feerrenrut's comment in issue #11069 and after reading the whole issue comments here I currently have no idea which behavior in which situations is wanted. Therefore here some questions – some suggestions are already mentioned above by different users, but nothing is fixed: Headlines:H, Shift+H, 1 to 6 and Shift+1 to Shift+6 jump in NVDA 2019.2.1 between h1 and h6 headlines. The numbers skips headlines on other headline levels.
Lists:L, Shift+L, I and Shift+I are using in NVDA 2019.2.1 to jump between lists and list items. Shift+Comma and Comma are used to jump to the beginning of a container (in this case a list) and outside of the current container in top-bottom-order. General questions:
Notes:
|
@DrSooom I respectfully disagree with this approach. This makes things much too complicated. An enduser will know automatically when pressing 1, 2 or 3 or shift+1, +2or +3 between which heading levels NVDA will jump. We do not need extranious feedback here and it is clear that pressing 2 twice will skip all the other higher or lower heading levels as before. Regarding lists, I would recomment a similar approach like we already have for headings. Another alternative would be to assign ctrl+numbers and ctrl+shift+ numbers to list level navigation but the key strokes are not very confortable for people with motoric disabilities. To be honnest, I don't see a use case for which it would be useful to limit the navigation to current list. Lists are usually not that huge compared to tables for example. |
Sorry @DrSooom but this doesn't really help. This only makes this issue more uncertain, when it was basically all but agreed upon
@Adriani90 the reason this is important is that (good) lists and headings are often highly contextual and hierarchical. The information in sub-elements relate to the parent. In my opinion this should go further than just limiting to the list, it should limit to siblings at the current level. A good description of why is given by @JulienCochuyt in #8193 (comment) My preference is to make the UI very simple:
The goal: navigate hierarchical information structures where context is important. I would prefer to avoid another conversation about which shortcut to use, let's first agree on the behavior. A PR can introduce the command with no default gesture. If we can get agreement on a default gesture, then a subsequent PR can assign that. |
Another suggestion:
Notes:
|
Original idea by @bramd
Description of proposal
The current quick navigation command for list items jumps from list item to list item, thereby ignoring list boundaries. For example:
First level, 1
First level, 2
First level, 3
Piece of text
When using the quick navigation command for list items, every single list item will be navigated. I propose that the list item quicknav command doesn't pass list boundaries (i.e. when
First level, 3
has focus in the above example, pressing "i" should report "No next item in current list" rather than jump toNew list
Thoughts are welcome. Also, I'd like to invite @bramd to give more information about possible use cases.
The text was updated successfully, but these errors were encountered: