Skip to content

NVDA shouldn't rely on the CWD #6491

Closed

Description

@tspivey

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.

Activity

  1. added
    p4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority
    on Oct 25, 2016
  2. feerrenrut commented on Oct 25, 2016

    @feerrenrut
    Contributor

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

  3. derekriemer commented on Oct 25, 2016

    @derekriemer
    Collaborator

    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.

  4. lukaszgo1 commented on Dec 18, 2018

    @lukaszgo1
    Contributor

    It is still reproducible with the following STR:

    1. Download and install demo of any of the voices from https://harposoftware.com/en/2-all-speech-synthesis-products/s-1/brand-nuance
    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.

  5. lukaszgo1 commented on Jan 21, 2019

    @lukaszgo1
    Contributor

    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.

  6. added this to the 2020.4 milestone on Sep 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    p4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions