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
Speaking long string freezes NVDA #4669
Comments
Comment 1 by jteh on 2014-12-05 06:44 I'm wondering whether we should just truncate the string and send the first n characters. We could maybe announce that the text was truncated. That kinda sucks, but it's far better than freezing or speaking nothing. It's also perfectly reasonable: sighted users have to scroll to see the rest of the text. IMO, 10k really is quite insane. Even 1k is insane; a non-screen reader user can't read that much on one line. |
Comment 2 by camlorn on 2014-12-05 19:10 |
Hi, This was brought up last night when someone sent a long string over Remote Support session that resulted in clients crashing. Thanks. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Here is a test case. Wait 10 seconds or so and be prepared for your machine to become unusable. Tested with OneCore, Firefox and Chrome. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I notice this same issue with a long string of text or large content inserted into a div. |
Have been experiencing NVDA simply not reading long lines anymore, when using gvim via a plugin that interfaces with gvim via OLE automation. This worked perfectly before this most recent version of NVDA. Have also experienced NVDA hanging when say the Windows console outputs a lot of text - this did not happen before. Unfortunately, reverting to an older NVDA does not solve this problem, but I'm unable to determine why this is the case. Another issue with the latest NVDA is that the error tree in the DBeaver database IDE, which is based on Eclipse, does not voice anymore. So, really unsure why things have gotten so terrible. I've tried disabling all add ons, tried different synts: problems persist. |
`I'm having this same issue on NVDA 2021.3.3, I created some artificial test cases to reproduce but it occurs on real programs:
|
As a follow up, I think I found one of the problems. If you try to give the text to the speechDictHandler.processText function, it is taking a lot of time to complete. If this function is disabled (replacing it with a lambda for example), NVDA still lags, but returns in seconds. |
It seems there is a particular regexp on the builtin.dic NVDA dictionary file is causing the problem. I'm not sure of which one but I tested removing the file from my installation and it spoke the long string. |
Hi, I've just stumbled across this as well in #13432. I'd like to request a prioritization of this issue, because of how it is much more severe than a normal crash. I had to restart the entire computer to get speech back. Its also something that an end user can't really do anything about e.g, the only way you know the file has the potential to crash NVDA is by looking at it first, which then causes said crash. |
cc: @michaelDCurran |
I'm going to close this and re-open #13432, since that is newer, uses the issue template and based on a real world use case, rather than python console input. Reviewing the comments here I note #4669 (comment) which seems to have been overlooked. |
Reported by tspivey on 2014-12-05 06:32
Problem:
Long strings will freeze NVDA when spoken.
Normally this wouldn't occur, but sometimes when editing files (in scintilla-based editors with word wrap disabled),
they come up.
STR:
More details:
I admit, s2 is a corner case, and I'm probably not going to encounter it outside of testing.
S1 is pretty long, 25k. I've accidentally hit longer, though. HTML files with no newlines.
When NVDA freezes, it's difficult to get it back up again.
Possible solutions:
I don't like this one, because we have to define long line. Ignoring s2, 10k? That's nothing if I don't have a speech dictionary and just use builtin, and depends on its size.
I'm not even yet considering how long it takes the synth to start speaking.
Slightly better, if we can figure out what'll tipically work for not freezing things for too long, and what a long line is. We still have to define that
If done right, the line should speak quickly, albeit with a few extra pauses and possibly broken speech dictionary regexes. I don't think I'd bother listening to the entire thing;
tipically I'd realize "long line", and turn on word wrap to go through it properly.
The text was updated successfully, but these errors were encountered: