Repository: nvaccess/nvda

Issue:
NVDA only reads one page at a time in Say all in Kindle App
<!-- Please read the text in this edit field before filling it in.
Please thoroughly read NVDA's wiki article on how to fill in this template, including how to provide the required files.
Issues may be closed if the required information is not present.
https://github.com/nvaccess/nvda/blob/master/devDocs/githubIssueTemplateExplanationAndExamples.md
Please also note that the NVDA project has a Citizen and Contributor Code of Conduct which can be found at https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access expects that all contributors and other community members read and abide by the rules set out in this document while participating or contributing to this project. This includes creating or commenting on issues and pull requests. 

Each of the questions and sections below start with multiple hash symbols (#). Place your answers and information on the blank line below each question.
-->

### Steps to reproduce:

### Actual behavior:
<!--
Use "Speak command keys" (NVDA+4) and speech viewer to copy and paste here. 
Use braille viewer to copy and paste here.
You may additionally include an explanation.
-->

When I try to read a Kindle book using Say All mode, NVDA only reads one page of a book and then stops talking.

When I shift the focus to the start of the nexet page and start Say All again, NVDA will read until it gets to the end of the page and then it stops talking again.

Here is a link to a book you can try.

https://www.amazon.com/Great-Britain-American-Civil-War-ebook/dp/B0082VDZY2/ref=sr_1_3?keywords=Great+Britain+and+the+American+Civil+War&qid=1669126627&s=digital-text&sr=1-3

### Expected behavior:
<!--
Use "Speak command keys" (NVDA+4) and speech viewer to copy and paste here. 
Use braille viewer to copy and paste here.
You may additionally include an explanation.
-->

Say all should read to the end of the book if not stopped.

### NVDA logs, crash dumps and other attachments:

### System configuration
#### NVDA installed/portable/running from source:

#### NVDA version:
 NVDA V2022.4 beta 3

#### Windows version:
Windows 11 latest insider build
#### Name and version of other software in use when reproducing the issue:
Kindle
#### Other information about your system:

### Other questions
#### Does the issue still occur after restarting your computer?

#### Have you tried any other versions of NVDA? If so, please report their behaviors.

#### If NVDA add-ons are disabled, is your problem still occurring?

#### Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?



Discussion:
I am running NVDA V2022.4 beta 3 and Windows 11 latest build.

When I try to read a Kindle book using Say All mode, NVDA only reads one page of a book and then stops talking.




When I shift the focus to the start of the nexet page and start Say All again, NVDA will read until it gets to the end of the page and then it stops talking again.

Here is a link to a book you can try.

https://www.amazon.com/Great-Britain-American-Civil-War-ebook/dp/B0082VDZY2/ref=sr_1_3?keywords=Great+Britain+and+the+American+Civil+War&qid=1669126627&s=digital-text&sr=1-3



(Closed by mistake - I updated the original template with answers from the second message and from an email from the OP.  @mikebayus, could you please confirm program versions (for NVDA, Windows and Kindle) and whether this replicates with add-ons disabled).
My Kindle app is:  Version: 1.39.1 (65323)    Last Updated: 12/2/2022 1:31
AM

I have removed all add-ons and not disabled them.

I tried reading the book that I sent the link fore, and tried SAPI5
including Microsoft voices, and I have tried Espeak, and the
windows oneCore voices, and NVDA won't turn the page when in "say all" mode.

This behavior first sstarted with my Acapela voices when it updated to v1.8
in June of 2021, and now NVDA won't read but one page at a time no matter
which voice I am using.

Also, now when I launch the TTS utility in the Kindle App with control+ T
while NVDA is running, the app closes and re-initializes.

This last behavior started when I installed NVDA 2022.3.2.



On Fri, Dec 9, 2022 at 12:51 AM Quentin Christensen <
***@***.***> wrote:

> (Closed by mistake - I updated the original template with answers from the
> second message and from an email from the OP. @mikebayus
> <https://github.com/mikebayus>, could you please confirm program versions
> (for NVDA, Windows and Kindle) and whether this replicates with add-ons
> disabled).
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/nvaccess/nvda/issues/14390#issuecomment-1343882593>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKJ77NQ7L5SBWDVZ6NSVYW3WMLCEVANCNFSM6AAAAAASH4OM4Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

This seems to be an issue introduced with NVDA 2022.4. Spanish-speaking users have reported through Twitter that, with any Kindle for PC version, say all works as expected in NVDA 2022.3 and stops at the bottom of each page in NVDA 2022.4. It seems to happen in windows 10 as well.
From NVDA 2019.3 My Acapela voices for NVDA add-on would stop talking at
the end of the page, and you are right, as of NVDA 2022.3 all of my voices
stop at the end of each page and I have to turn the pages myself.

I have just recently found out that in Kindel for PC latest update,
automatic scrolling was discontinued and you can't enable it any more.

So I would guess that NVDA can't turn the pages in say all mode any more.

BAD AMAZON!


On Tue, Jan 3, 2023 at 4:58 PM Iván Novegil ***@***.***>
wrote:

> This seems to be an issue introduced with NVDA 2022.4. Spanish-speaking
> user have reported through Twitter that, with any Kindle for PC version,
> say all works as expected in NVDA 2022.3 and stops at the bottom of each
> page in NVDA 2022.4.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/nvaccess/nvda/issues/14390#issuecomment-1370266239>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKJ77NRCZ2SG2LH2NX6CKLTWQSOIDANCNFSM6AAAAAASH4OM4Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

I'm facing the same problem here, very annoying. My versions are:
NVDA 2022.4;
Kindle 1.39.2 (65383);
Windows 11 Pro 22H2.
O.K?

So the question is:

How do we fix it.

The agents at Kindle don't know the difference between the TTS Utility, and
the NVDA Screen reader.

Kindle won't let me talk to the Devs.

The NVDA user guide says that the pages of a Kindle book will turn on their
own, they don't any more.

What do we do.

The TTS utility is alright if you like the SAPI5 voices you have on your
computer, but I like the Ella voice from acapela.

She once was able to read to me while I sat back and listened, now she can
only read if I turn the pages for her.

I don't like that.

Hmmm!


On Thu, Jan 5, 2023 at 12:16 PM Cleverson ***@***.***> wrote:

> I'm facing the same problem here, very annoying. My versions are:
> NVDA 2022.4;
> Kindle 1.39.2 (65383);
> Windows 11 Pro 22H2.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/nvaccess/nvda/issues/14390#issuecomment-1372499982>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKJ77NXB2B3ICP333MT5K4DWQ36W5ANCNFSM6AAAAAASH4OM4Q>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

I can also confirm this as happening to me even on a fresh portable NVDA 2022.4 using default settings (including Sapi as the synth though I did raise the rate and switch it to Mark for minimal usability). Kindle is 1.39.2.  I'll be downgrading for now, and I imagine this issue may become high priority as the scope of the problem becomes known.  If not, cc @michaelDCurran because this is Camlorn if you aren't aware I changed my GH username.  This being blocked doesn't make sense based on what I see here in the thread; I think that the label got applied and never got de-applied and I don't have enough familiarity with the modern NVDA workflows to know if there's something appropriate to do in the incredibly rare case that I both come over here to check on a bug and notice that it may be triaged incorrectly.

Notably this was working yesterday and my kindle hasn't updated since 11/30.

To the rest of you looking for a response, note that the NVDA version changing when the Kindle version doesn't makes this highly unlikely to be Amazon's fault.  NVDA is not relying on automatic scrolling features.
Hi, before we do additional things such as Git bisect, can you try with latest alpha build and see if that makes a difference? If not, we might as well run some diangnostics (Git bisect being one of them). Thanks.


I can look in the next few days. Someone poke me if I forget.  This morning isn't a good time.
>This being blocked doesn't make sense based on what I see here in the thread; I think that the label got applied and never got de-applied and I don't have enough familiarity with the modern NVDA workflows to know if there's something appropriate to do in the incredibly rare case that I both come over here to check on a bug and notice that it may be triaged incorrectly.

"Blocked, needs technical investigation" means that a technical investigation is required to solve this problem. The cause of it is unknown, so any work on it requires understanding the problem still. "triaged" means the issue is clear enough for work/investigations to begin. You can gain this information from hovering/visiting the label. "p3" is appropriate. "p1" and "p2" involve content being inaccessible, however this is just an annoying ux issue.

I've just confirmed that the latest alpha has this problem too. the alpha is named nvda_snapshot_alpha-27487,f62986e9.
Ping @ahicks92 - I'm looking at Git diff between 2022.3.3 and 2022.4. Turns out this problem existed in 2022.4 beta 1, making it slightly easier to run a Git bisect. CC @tsiegel

Thanks.
Hi,

Further testing indicates that this is not a Kindle app module problem, as 2022.3.3 can read books via say all whereas 2022.4 beta 1 does not (besides, Kindle app module hasn't been updated since 2021, so that rules it out); my guess is something is going on with page turns helper from soewhere other than Kindle app module.

Thanks.
Hi,

Maybe bookworm page turning fix was the culprit?

The page turning for bookworm has been recently fixed.

 

From: Joseph Lee ***@***.***> 
Sent: Thursday, January 19, 2023 9:28 AM
To: nvaccess/nvda ***@***.***>
Cc: Subscribed ***@***.***>
Subject: Re: [nvaccess/nvda] NVDA only reads one page at a time in Say all in Kindle App (Issue #14390)

 

Hi,

Further testing indicates that this is not a Kindle app module problem, as 2022.3.3 can read books via say all whereas 2022.4 beta 1 does not (besides, Kindle app module hasn't been updated since 2021, so that rules it out); my guess is something is going on with page turns helper from soewhere other than Kindle app module.

Thanks.

—
Reply to this email directly, view it on GitHub <https://github.com/nvaccess/nvda/issues/14390#issuecomment-1396606331> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/ACVCDEZ4J5JLDKPUIKTQQY3WTD3IFANCNFSM6AAAAAASH4OM4Q> .
You are receiving this because you are subscribed to this thread.  <https://github.com/notifications/beacon/ACVCDEYJAROD5E3F3NYHT4LWTD3IFA5CNFSM6AAAAAASH4OM4SWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSTH2CXW.gif> Message ID: ***@***.*** ***@***.***> >


Hi,

Nope - turns out reintroduction of table say all (#14070) introduced this regression. CC @mltony 

Thanks.
Sorry I'm not super responsive.  I've spent the last couple weeks under the weather enough that I've had to take time from work.  Do we still need a bisect?  It looks like not.  If we do I'll maybe need some help: for some reason my system is holding an NVDA DLL open that stops me from even deleting portable copies until a reboot even on a clean portable without add-ons.
Just mentioning here that it has been also [reported](https://groups.io/g/nvda-it/topics) on the Italian mailing list.
Hi,

Could we perhaps raise this to P2 and get something in for 2023.2 at least? I can think of two possible solutions:

1. Tweak table say all so it won't mess with say all in Kindle, which may introduce bugs in other parts of NVDA that rely on this feature.
2. Revert table say all, which may resolve Kindle issue but can introduce regressions somewhere else.

The reason for P2 request is that NVDA users list members are reporting issues with this one, with some say they won't upgrade unless Kindle say all is resolved.

Thanks.
For reference, on the international (English-speaking) mailing list, this is also reported in [this thread](https://nvda.groups.io/g/nvda/topic/kindle_app_not_working/96233540?p=,,,100,0,0,0::recentpostdate/sticky,,,100,2,0,96233540,previd%3D1677488846301005598,nextid%3D1675121794658747624&previd=1677488846301005598&nextid=1675121794658747624), [this thread](https://nvda.groups.io/g/nvda/topic/new_version_of_kindle_for_pc/97219210?p=,,,100,0,0,0::recentpostdate/sticky,,,100,2,0,97219210,previd%3D1677488846301005598,nextid%3D1675121794658747624&previd=1677488846301005598&nextid=1675121794658747624) and in [this thread](https://nvda.groups.io/g/nvda/topic/nvda_2023_1_beta_2_now/97259982?p=,,,100,0,0,0::recentpostdate/sticky,,,100,2,0,97259982,previd%3D1677487916782952720,nextid%3D1675121794658747624&previd=1677487916782952720&nextid=1675121794658747624) (message [#103932](https://nvda.groups.io/g/nvda/message/103932)).

Since say all is quite a key feature for an eBook reading software, I expect this issue to be reported again and again.

As expected, [reported](https://nvda.groups.io/g/nvda/topic/2023_1_rc1_continuous/97487172?p=,,,100,0,0,0::recentpostdate/sticky,,,100,2,0,97487172,previd%3D1678338518402201905,nextid%3D1676056568900803961&previd=1678338518402201905&nextid=1676056568900803961) again on international mailing list.
For what it's worth I'm not upgrading because of this myself, at least on the home machine.  I read a lot of books.  The ergonomics hit isn't worth it unless NVDA does something else I need.
I've been spending a bit of time on this and am struggling to find the 
exact cause.
Most likely we will have to revert pr #14070 sayAll commands for tables, 
as that pr refactored a few things and I did not follow that pr that 
closely at the time.

I'm fine if you guys want to roll back my PR. I am overwhelmed by work and won't be able enough time to look into this anytime soon. Apologize for causing trouble.
Most likely the problem here is that Kindle must be relying on exact sequence of API calls and my refactoring changed it slightly. I already fixed one similar problem a couple of months ago with another reader. But there is no good way to debug it, we'd need to carefully trace sequence of calls in the old code and make sure new code does it in exactly same fashion. Tedious work.
And also this is a lesson for me: I shouldn't have tried to refactor old code.
If anyone is relying on table sayall - this feature will still be available in my add-on Tony's enhancements.

Resolving patch:
diff --git a/source/speech/sayAll.py b/source/speech/sayAll.py
--- a/source/speech/sayAll.py
+++ b/source/speech/sayAll.py
@@ -267,7 +267,6 @@ def nextLine(self):
 
 		if not self.initialIteration or not self.shouldReadInitialPosition():
 			if not self.nextLineImpl():
-				self.finish()
 				return
 		self.initialIteration = False
 		bookmark = self.reader.bookmark
@@ -408,6 +407,7 @@ def nextLineImpl(self) -> bool:
 			self.reader = self.nextLineFunc(self.reader)
 			return True
 		except StopIteration:
+			self.finish()
 			return False
 
 	def collapseLineImpl(self) -> bool:


Test patch: