nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.12k stars 637 forks source link

Inconsistent symbol pronunciation for words with only symbols when reading by word #11779

Open Qchristensen opened 4 years ago

Qchristensen commented 4 years ago

Steps to reproduce:

  1. Using Notepad++ or Word sample: He said (quietly), "Hello, Jim".

    • Note: There are parenthesis either side of quietly, followed by a comma, and the quotes either side of Hello Jim followed by a full stop.
    • Notepad has different behavior, notes on this below.
  2. Press NVDA+P until the symbol level is set to "none".

  3. Press HOME to move to the start of the line, then use NVDA+right arrow to move through the sentence by word.

Actual behavior:

NVDA sends different information to the synthesizer, depending on the context of a symbol. This can result in, for instance "left paren" being read, but not its right counterpart. Or in the case of the quote, it is read once (where it is followed by a word), but not the second time (where it is followed by a full stop). When moving by word, NVDA sends the following to the synthesizer (copied from the speech viewer:

He
said 
left paren
quietly
), 
quote
Hello
comma
Jim
".
blank

Because NVDA encounters the left paren and first quote as a single symbol on their own, the text left paren and the first quote are sent as words, and they are read. Because ), and ". are sent as symbols (which are not set to be read at symbol level none) they are not read.

Note this also applies to selecting text.

Expected behavior:

NVDA should consistently read symbols (and either read them or not - but not read some and not others at the same symbol level). Left and right paren are both symbol level "most" by default, as is quote.

System configuration

NVDA installed/portable/running from source:

NVDA version:

NVDA 2020.3

Windows version:

Windows 10 (64-bit) Version: 2004 Build 19041

Name and version of other software in use when reproducing the issue:

Office 365 (64-bit) Version: 16.0.13231.20372 Notepad++ v7.9

Other information about your system:

Possible solution: Ignore symbol level when moving by word.

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

I don't think this behaviour has changed recently. I tried NVDA 2019.2.1 portable and it behaves the same.

If addons are disabled, is your problem still occurring?

Yes

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

No

michaelDCurran commented 4 years ago

I agree this is confusing. My feeling is that we should hardcode symbol level to all for word and character. This would be in contrast to pr #11167

JulienCochuyt commented 3 years ago

@michaelDCurran wrote:

My feeling is that we should hardcode symbol level to all for word and character.

We agree here at Accessolutions that this sounds like the most suitable behavior.

JulienCochuyt commented 3 years ago

Please find an implementation proposal as PR #11856. Next step in this scope would be, IMHO, to ensure NVDA never remains silent at all when the caret moves, eg. when moving by line and landing on a line with only unspoken symbols. ("blank" would be a plus, the actual symbols a best, silence is always unwanted)

amirsol81 commented 3 years ago

@Qchristensen @JulienCochuyt @michaelDCurran Why not extend this great change to selecting text via Control+SHIFT+Left, Control+SHIFT+Right, SHIFT+Home and SHIFT+End? Text selection also suffers from the very same issues described here.

feerrenrut commented 3 years ago

12695 reverts #11856 thus re-opens this issue.

Adriani90 commented 1 year ago

cc: @jcsteh here is an interesting discussion with some referenced PRs regarding hardcoding of reporting of symbols and punctuation when using character and word navigation.