nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 626 forks source link

Moving by word over some symbols reports nothing #10855

Open surfer0627 opened 4 years ago

surfer0627 commented 4 years ago

A regression since 2019.2.1

Steps to reproduce:

With Symbol level: None, or Some

  1. Open notepad.
  2. Paste text 0 | 1 || 2 ||| 3
  3. Press ctrl + right arrow until the end of the line is reached.

Actual behavior:

Symbol | or || are not reported as bar Speech viewer output (not the symbols not replaced with word "bar" are not spoken):

0
bar
1
|| 
2
||| 
3
blank

Expected behavior:

NVDA reports "bar" Expected speech viewer output:

0
bar
1
bar bar 
2
bar bar bar
3
blank

System configuration:

NVDA Installed/portable/running from source:

Installed / portable

NVDA version:

2019.3.1 2020.3.1

Windows version:

Windows version 10.0.18363

Other questions:

Does the issue still occur after restarting your PC?

Yes.

Have you tried any other versions of NVDA?

NVDA_2019.2.1 works as expected.

If addons are disabled, is your problem still occurring?

Yes.

Did you try to run the COM registry fixing tool in NVDA menu / tools?

Yes.

Workaround:

Quote from the NVDA User Guide (version: 2019.3), 12.2.2. Punctuation/symbol pronunciation:

  • Using the Level field, you can adjust the lowest symbol level at which this symbol should be spoken.
  • The Send actual symbol to synthesizer field specifies when the symbol itself (in contrast to its replacement) should be sent to the synthesizer. This is useful if the symbol causes the synthesizer to pause or change the inflection of the voice. For example, a comma causes the synthesizer to pause. There are three options:
    • never: Never send the actual symbol to the synthesizer.
    • always: Always send the actual symbol to the synthesizer.
    • only below symbols' level: Send the actual symbol only if the configured speech symbol level is lower than the level set for this symbol. For example, you might use this so that a symbol will have its replacement spoken at higher levels without pausing, while still being indicated with a pause at lower levels.
DrSooom commented 4 years ago

@surfer0627: Which TTS synthesizer is used? And please take a look at the chapter "12.2.2. Punctuation/symbol pronunciation" in the NVDA User Guide.

surfer0627 commented 4 years ago

@DrSooom

Which TTS synthesizer is used?

Windows OneCore / eSpeak

And please take a look at the chapter "12.2.2. Punctuation/symbol pronunciation" in the NVDA User Guide.

Yes . How to change pronunciation settings to solve this issue?

DrSooom commented 4 years ago

Quote from the NVDA User Guide (version: 2019.3):

  • Using the Level field, you can adjust the lowest symbol level at which this symbol should be spoken.
  • The Send actual symbol to synthesizer field specifies when the symbol itself (in contrast to its replacement) should be sent to the synthesizer. This is useful if the symbol causes the synthesizer to pause or change the inflection of the voice. For example, a comma causes the synthesizer to pause. There are three options:
    • never: Never send the actual symbol to the synthesizer.
    • always: Always send the actual symbol to the synthesizer.
    • only below symbols' level: Send the actual symbol only if the configured speech symbol level is lower than the level set for this symbol. For example, you might use this so that a symbol will have its replacement spoken at higher levels without pausing, while still being indicated with a pause at lower levels.

Filter for "|" in this dialog and change these parameters. Maybe it solves your issue.

feerrenrut commented 3 years ago

12695 reverts #11856 thus re-opens this issue.

CyrilleB79 commented 2 years ago

It is indicated that #12710 (not yet merged) should fix this issue. However, this issue as described in the "steps to reproduce" is fixed since NVDA2020.3 (probably by #11167). For clarity, it would be really better to close this issue and to open a new one describing exactly what #12710 fixes. Cc @feerrenrut

feerrenrut commented 2 years ago

It is indicated that https://github.com/nvaccess/nvda/pull/12710 (not yet merged) should fix this issue.

12710 was an alternative approach to fixing this issue. It intends to be a more generic fix for the same problem and several others.

While the initial described problem (a single bar character) has been fixed since NVDA2020.3 (probably by https://github.com/nvaccess/nvda/pull/11167). The more general problem remains, consider two bar characters. This issue probably needed some grooming, I have updated the description.

CyrilleB79 commented 2 years ago

Yes thanks for the updated description. All is clear now.