Skip to content
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 keeps announcing "list item" when using say all #10706

Closed
chojiro opened this issue Jan 20, 2020 · 20 comments · Fixed by #10878
Closed

NVDA keeps announcing "list item" when using say all #10706

chojiro opened this issue Jan 20, 2020 · 20 comments · Fixed by #10878
Milestone

Comments

@chojiro
Copy link
Contributor

chojiro commented Jan 20, 2020

Steps to reproduce:

  1. Open up for instance this https://forum.audiogames.net/forum/6/general-game-discussion/
  2. Using NVDA+A, go to a list with L, then use NVDA+A once the list has focus.
  3. Try moving to different lists as NVDA+A is active,and use arrow keys to navigate as well.

Actual behavior:

NVDA keeps announcing "list with x items" or "out of list", even if the cursor is not at all on a list item every time you arrow through, even when the cursor is past the beginning of the list or outside it.

Expected behavior:

NVDA should only speak these messages when you get to boundaries of lists, not inside them.

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

2019.3 beta 2

Windows version:

Windows 10 version 1909

Name and version of other software in use when reproducing the issue:

Google Chrome Version 79.0.3945.117 (Official Build) (64-bit) and Mozilla Firefox 72.0.1.

Other information about your system:

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.

NVDA 2019.2.1 works as expected.

@Adriani90
Copy link
Collaborator

cc: @LeonarddeR

@CyrilleB79
Copy link
Collaborator

I can also reproduce this issue on my side. Moreover, as one could expect, the issue occurs also when exiting from a table instead of a list.

@feerrenrut
Copy link
Contributor

Could you give a snippet from speech viewer to highlight the problem please? Looking at the HTML for the page there are quite a few lists for each item in (what visually looks like a table, but isn't marked up as one).

@chojiro
Copy link
Contributor Author

chojiro commented Jan 29, 2020

It actually happens everywhere. That was just as an example.

If you go to the first heading of this issue for instance, then use NVDA+A and down arrow from there repeatedly, it should repeat list item as you go down when already in the list.

Happens with landmarks too.

I can't copy it from the speech viewer, since it weirdly doesn't show up there. All the extra "list with three items" and "out of list" verbiage doesn't show, apparently.

I should add that you need to be right before the list starts when you invoke NVDA+A. So, in this case, on the first heading before the list.

@CyrilleB79

This comment has been minimized.

1 similar comment
@CyrilleB79
Copy link
Collaborator

Here is the snippet from log viewer doing what @chojiro suggests in last message on this page:

Speech viewer snippet

main landmark    nvaccess  visited  link    /  nvda  heading    level 1
heading    level 1  visited  link    nvaccess
heading    level 1  /
heading    level 1  visited  link    nvda
list  with 3 items  clickable  button  collapsed  subMenu     Watch 
link    141 users are watching this repository
button    Unstar this repository
link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
heading    level 1  /
heading    level 1  visited  link    nvda
list  with 3 items  clickable  button  collapsed  subMenu     Watch 
link    141 users are watching this repository
button    Unstar this repository
link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
heading    level 1  visited  link    nvda
list  with 3 items  clickable  button  collapsed  subMenu     Watch 
link    141 users are watching this repository
button    Unstar this repository
link    802 users starred this repository
list  with 3 items  clickable  button  collapsed  subMenu     Watch 
link    141 users are watching this repository
button    Unstar this repository
link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
list  with 3 items  link    141 users are watching this repository
button    Unstar this repository
link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
list  with 3 items  button    Unstar this repository
link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
list  with 3 items  link    802 users starred this repository
button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
visited  link     Pull requests   85   
link     Actions 
link     Projects   4
list  with 3 items  button    Fork your own copy of nvaccess/nvda to your account
link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
visited  link     Pull requests   85   
link     Actions 
link     Projects   4
list  with 3 items  link    346 users forked this repository  out of list
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
visited  link     Pull requests   85   
link     Actions 
link     Projects   4
visited  link     Wiki 
link     Security 
Repository  navigation landmark    visited  link     Code 
visited  link    current page   Issues   2,266   
visited  link     Pull requests   85   
link     Actions 
link     Projects   4
visited  link     Wiki 
link     Security 
visited  link     Insights 
clickable  visited  link    New issue 
heading    level 1  NVDA keeps announcing "list item" when using say all #10706
 Open 

@chojiro
Copy link
Contributor Author

chojiro commented Jan 30, 2020 via email

@CyrilleB79
Copy link
Collaborator

Yes, I have encountered the issue during the speech viewer snippet and this snippet proves that the issue is present.
Indeed, during the snippet registration, I have only pressed NVDA+DownArrow and then repeatedly DownArrow.
We should have expected the "list with 3 items" announcement only one time whereas we can see it is spoken 18 times. And we are clearly in the same list, not in another list of the page.
In realty I cannot hear these 18 announcements but only 5 of them because all happens in 3-4 seconds and probably some speech is skipped when pressing the DownArrow many times.

@chojiro
Copy link
Contributor Author

chojiro commented Jan 30, 2020

Indeed.

Seems to generally happen when NVDA is inside any kind of element, like tables, landmarks, etc, with the same result that the beginning announcement is spoken repeatedly as you arrow down.

@feerrenrut
Copy link
Contributor

@chojiro I'm not able to reproduce what you are describing in either Firefox or Chrome. Which browser are you using? Can you please restart your computer, and restart NVDA with addons disabled and test again?

@Adriani90
Copy link
Collaborator

I cannot reproduce this with NVDA 2019.3 Beta 3 on all browsers either. I tested in Firefox, Chrome, IE and Edge.

@Adriani90
Copy link
Collaborator

@chojiro this might be related to the synthesizer you are using. Which one are you using?

@Adriani90
Copy link
Collaborator

Ok after further testing I managed to reproduce it.
@feerrenrut while in say all, you have to press down arrow before NVDA passes the first line of the container. Steps I took:

  1. Open NVDA with lists enabled in document formating settings
  2. In browse mode in any browser, navigate to a list, place the virtual cursor just one line before the list begins
  3. Press nvda+a (laptop keyboard layout)
  4. Press down arrow before NVDA passes the first line or paragraph of the container

Actual behavior: NVDA repeats list with x elements

expected behavior: NVDA should report the first line of the container.

My guess is that the focus is not moving as fast as the read all speech buffer, so NVDA still assumes you are out of the list although the virtual cursor is on the first line of the list item.
If lists or tables are nested, then you will hear ofcourse "list with x items" multiple times.

When NVDA passes the first paragraph or line of the container and you press down arrow, the issue is not reproducible anymore.
So you have to be quite fast :-)

@Adriani90
Copy link
Collaborator

and I just noticed that github automatically created a list out of the steps to reprocue, so you can reproduce it with this list in my comment above.
It might be possible that reproducing this issue depends also on the number of characters that you set up for a line in browse mode settings of NVDA.
I set it to 250 character for example.

@CyrilleB79
Copy link
Collaborator

To reproduce this issue, you should also ensure that the "Allow skim reading in Say All" checkbox is checked.

@CyrilleB79
Copy link
Collaborator

And the issue is not linked to a specific synthesizer. I have reproduced it with eSpeak, OneCore, SAPI5 and IBMTTS.

@michaelDCurran
Copy link
Member

I am having trouble reproducing this. Could you please set your log to input/output, reproduce the issue and attach the log?

@CyrilleB79
Copy link
Collaborator

@michaelDCurran:
Did you check skim reading option? It is required to reproduce this issue (info in comments but not in original STR)
An easy way to reproduce it:

  • Ensure you have skim reading option activated in keyboard parameters.
  • On this issue page, press L tow times so that browse mode cursor lands ont the first item of the STR list.
  • Press NVDA+DownArrow to start SayAll
  • Immediately after, press quickly UpArrow many times, say 20 times at a frequency of 5 times by second or more.

Here is the log.txt

@CyrilleB79
Copy link
Collaborator

@michaelDCurran
Another idea why you succeed in reproducing this issue: Probably you have rate boost on and a very high voice speed. Try to reproduce with OneCore without rate boost and with low voice speed (i.e. 50). With this voice speed it is very easy to reproduce.

@michaelDCurran
Copy link
Member

I am able to reproduce this now. Am investigating further.

michaelDCurran added a commit that referenced this issue Mar 16, 2020
…ol fields when arrowing out and away from them.

* no longer have speech.getTextInfoSpeech handle speakWithoutPauses for sayAll, rather this is done in speakTextInfo. This means that gettextInfoSpeech is now more predictable in its output.
* sayAllHandler's nextLine method  ensures the _lineReached callback can see the TextInfoState after state for the line being spoken has been applied. Previously it was one line behind.
* sayAllHandler's nextLine method manually inserts the _reached callback at the very beginning of the speech sequence, as previously using _prefix on speakTextInfo would place it after initial controlFields were spoken.
michaelDCurran added a commit that referenced this issue Mar 17, 2020
…l fields (#10878)

* Fix #10706: SayAll with skim reading keeps repeting the initial control fields when arrowing out and away from them.

* no longer have speech.getTextInfoSpeech handle speakWithoutPauses for sayAll, rather this is done in speakTextInfo. This means that gettextInfoSpeech is now more predictable in its output.
* sayAllHandler's nextLine method  ensures the _lineReached callback can see the TextInfoState after state for the line being spoken has been applied. Previously it was one line behind.
* sayAllHandler's nextLine method manually inserts the _reached callback at the very beginning of the speech sequence, as previously using _prefix on speakTextInfo would place it after initial controlFields were spoken.

* Fix linting issues.

* Add deprecation comment.
@nvaccessAuto nvaccessAuto added this to the 2020.1 milestone Mar 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants