Improve scrolling experience in browse mode#9919
Conversation
|
@codeofdusk: It might be good to see what this scrolling code does in UIA consoles. Note that you will still have to trigger it manually though, as the review cursor commands do not yet scroll. |
|
Here is a try build. |
Trying to scroll a |
…to lack of implementation
|
@codeofdusk: Could you elaborate on what you mean with |
|
@JulienCochuyt: You might be interested in this pr, since it will drastically improve scrolling behavior in web browsers for sighted users. |
|
Using the About NV Access page (the address has changed from the original issue, but I think it's still the same page, and it does meet the criteria of having a large block of non-linked text): https://www.nvaccess.org/about-nv-access/ With NVDA 2019.2, both Firefox (68.0.2) and Chrome (76.0.3809.100), both scroll as I press the down arrow to move through text. Neither they, nor Edge scroll when using say all however. Using this PR build, Edge now scrolls when I down arrow through the document, where it doesn't with 2019.2. Neither of the other browsers scroll with down arrow now, and none of them scroll during say all. @feerrenrut can you confirm either my findings, or that I've gone mad? |
|
So in summary, in the current situation there is a regression for
firefox and Chrome? That's certainly not what should happen.
|
|
Ah, I found it. Will try to come up with an appropriate fix. It also seems that using NVDA+delete is appropriate to test this nonvisually. |
|
It turns out that IAccessibleTextObject.scrollSubStringTo fails in some cases, that is, it returns S_OK but still does not scroll. Pretty annoying, since it indeed causes a regression. This means that we could only scroll at the object level. |
|
Is this a bug in Firefox, or do you see this in Chrome as well? |
|
@Qchristensen Would you be able to retest this with the newest build? note that say all is expected not to work. This is covered in #9937. I could consider putting this in a separate pull request, but I had to change some logic as part of #9937, so it made sense to do that now. |
This would go beyond my imagination, as the current effect is already quite drastic, especially when you simultaneously attempt to circumvent it using the mouse scroll wheel. |
|
@LeonarddeR thanks for all the details. |
|
@JulienCochuyt: sorry for me taking some time to get back to this.
Exactly that.
Could you elaborate with an example? Hitting down arrow while the caret is at the bottom should idially scroll the new text into view, leaving the caret at the bottom of the view port. |
If you are browsing content presented in columns by any means, when moving down from the last line of a given column, your destination is the first line of the next column, thus alignToTop in this case. |
|
Ah, yes, of course. That's a very interesting one I hadn't considered.
|
|
I wrote this pull request on behalf of @BabbageCom. As I'm leaving @BabbageCom after the 29th of November, I can no longer afford maintaining this pr other than applying very basic review actions. If this pull request requires major changes, they will have to be applied by someone else, e.g. @JulienCochuyt, @sjfbol or whoever else is willing to take it. |
|
@LeonarddeR As promised, I'll take care of this one (unless of course if @sjfbol is willing to) |
|
It's unlikely that @sjfbol will jump on this pr in the near future, so it would probably best if you do as suggested. I will Finnish this off with fixing the merge conflicts and then I'll leave this open. |
|
As in the current Alphas fast browse mode became the default what effect would it have on this PR? Is it even possible to have working scrolling for partially sighted users and do not move focus in browse mode at the same time? |
|
@lukaszgo1 wrote:
As promised, I've started work on taking back this PR, but it requires a huge lot of testing for corner cases. |
|
@JulienCochuyt Any updates on the testing of this PR? |
|
As it seems that this pr hasn't gained much attention by potential takers. Furthermore, when one takes over a pr, it is a common pattern that the old pr is closed in favour of a new one. I'm closing this pull request to clean up the backlog, happy for anyone to reopen a pr based on this work if desired. |
|
I think it would be very beneficial to have this work done, especially for visually impaired people and when working together with sighted people. |
Link to issue number:
Fixes #7075
Closes #6382
Should fix #904
Summary of the issue:
There are several scrolling issues in browse mode, particularly in Edge, where the screen doesn't scroll along with browse mode.
Description of how this pull request fixes the issue:
This pr does the following:
Testing performed:
Many tests have been performed by @k-kolev1985 as part of #7075, but I have changed some stuff since then. In any case, this requires testing by sighted people.
Known issues with pull request:
In internet Explorer, we do not support the onlyWhenVisible parameter for scrollIntoView. This is because if we do, navigating with browse mode in Internet Explorer slows down significantly.
Change log entry: