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 shouldn't rely on the CWD #6491

tspivey opened this issue Oct 21, 2016 · 4 comments · Fixed by #11650

NVDA shouldn't rely on the CWD #6491

tspivey opened this issue Oct 21, 2016 · 4 comments · Fixed by #11650


Copy link

tspivey commented Oct 21, 2016

NVDA shouldn't rely on the CWD of the process, because this can be changed from under us.
Some examples I've seen of this are SAPI voices from Harpo and innoetics.

Effects I've seen:

  • eSpeak doesn't work if I switch to it.
  • Focus/Browse mode sounds don't play.
  • Phonetic character descriptions stop working.
@feerrenrut feerrenrut added the p4 label Oct 25, 2016
Copy link

P3 because there are a limited number of situations where this would manifest.

Copy link

derekriemer commented Oct 25, 2016

If an addon is doing this change directory, this is a misbehaving addon,
and should be reported, anhhow, os.path.abspath might be better to use.

Copy link

It is still reproducible with the following STR:

  1. Download and install demo of any of the voices from
  2. Switch to SAPI 5 and set the installed voice as the default.
  3. Try switching to eSpeak.

At this point NVDA is silent additionally when restarted it is still silent, and the following is written in the log:
error executing event: valueChange on <NVDAObjects.IAccessible.IAccessible object at 0x05364710> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyo", line 155, in executeEvent
File "eventHandler.pyo", line 92, in init
File "eventHandler.pyo", line 100, in next
File "NVDAObjects\IAccessible_init_.pyo", line 1394, in event_valueChange
File "NVDAObjects_init_.pyo", line 985, in event_valueChange
File "speech.pyo", line 337, in speakObjectProperties
File "speech.pyo", line 445, in speakText
File "speech.pyo", line 568, in speak
File "speech.pyo", line 80, in processText
File "characterProcessing.pyo", line 637, in processSpeechSymbols
File "characterProcessing.pyo", line 50, in fetchLocaleData
LookupError: en_US

The only way to restore NVDA to its working conditions is blinddly switch to eSpeak or OneCore, restart it, and hope for the best.
@feerrenrut For me it looks like a p1 eventually p2, but definitely something, which should be fixed sooner than later.

Copy link

When the trial of voices mentioned above expires it it even worse. It is no longer possible to switch to either eSpeak or OneCore so the only way to have working NVDA is to remove or reset its config. While it is definitely fault of those voices it should be improved on the NVDA side also no other screen reader suffers from this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

Successfully merging a pull request may close this issue.

5 participants