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
Punctuation read in symbol description when moving by character #12653
Comments
And another much more important STR with French NVDA and TTS:
Actual Expected: Asking translators to remove punctuations from their translated strings is clearly not the solution. |
I realise that the 2020.4 behaviour would have been:
But I believe the intended change of behaviour was to make this consistent. Maybe instead it should be:
Reverting to the old behaviour is simple but doing the latter seems more tricky. |
Sorry, the expected result in the initial description of this issue was erroneous. I have just updated it. |
This seems to be caused by the text being processed twice, I raised an assertion within processText when certain text is read: '👕' for the first example and "t-shirt" for the second example. First time stack trace IO - speech.speech.speak (16:35:03.201) - MainThread (21088):
Speaking [LangChangeCommand ('en_US'), 'Text Editor', 'edit', 'multi line', CancellableSpeech (still valid), '👕']
ERROR - eventHandler.executeEvent (16:35:03.216) - MainThread (21088):
error executing event: gainFocus on <NVDAObjects.Dynamic_IAccessibleEditWindowNVDAObject object at 0x10985AB0> with extra args of {}
Traceback (most recent call last):
File "eventHandler.py", line 246, in executeEvent
_EventExecuter(eventName,obj,kwargs)
File "eventHandler.py", line 96, in __init__
self.next()
File "eventHandler.py", line 105, in next
return func(*args, **self.kwargs)
File "NVDAObjects\behaviors.py", line 187, in event_gainFocus
super().event_gainFocus()
File "NVDAObjects\__init__.py", line 1137, in event_gainFocus
self.reportFocus()
File "NVDAObjects\__init__.py", line 1005, in reportFocus
speech.speakObject(self, reason=controlTypes.OutputReason.FOCUS)
File "speech\speech.py", line 542, in speakObject
speak(sequence, priority=priority)
File "speech\speech.py", line 842, in speak
speechSequence[index]=processText(curLanguage,item,symbolLevel)
File "speech\speech.py", line 131, in processText
text = characterProcessing.processSpeechSymbols(locale, text, symbolLevel)
File "characterProcessing.py", line 698, in processSpeechSymbols
return ss.processText(text, level) Second time stack trace Speaking [LangChangeCommand ('en_US'), 't-shirt', EndUtteranceCommand()]
ERROR - scriptHandler.executeScript (16:37:16.593) - MainThread (1780):
error executing script: <bound method EditableText.script_caret_moveByCharacter of <NVDAObjects.Dynamic_IAccessibleEditWindowNVDAObject object at 0x141ACE70>> with gesture 'right arrow'
Traceback (most recent call last):
File "scriptHandler.py", line 208, in executeScript
script(gesture)
File "editableText.py", line 228, in script_caret_moveByCharacter
self._caretMovementScriptHelper(gesture, textInfos.UNIT_CHARACTER)
File "editableText.py", line 163, in _caretMovementScriptHelper
self._caretScriptPostMovedHelper(unit,gesture,newInfo)
File "NVDAObjects\behaviors.py", line 177, in _caretScriptPostMovedHelper
super()._caretScriptPostMovedHelper(speakUnit, gesture, info)
File "editableText.py", line 149, in _caretScriptPostMovedHelper
speech.speakTextInfo(info, unit=speakUnit, reason=controlTypes.OutputReason.CARET)
File "speech\speech.py", line 1134, in speakTextInfo
speak(seq, symbolLevel=symbolLevel, priority=priority)
File "speech\speech.py", line 842, in speak
speechSequence[index]=processText(curLanguage,item,symbolLevel)
File "speech\speech.py", line 131, in processText
text = characterProcessing.processSpeechSymbols(locale, text, symbolLevel)
File "characterProcessing.py", line 698, in processSpeechSymbols
return ss.processText(text, level) |
Fixes #12653 # Summary: PR #11856 introduced speaking symbols when navigating by word. The changes produced an unintended side effect of double processing symbols. The text replacement for symbols gets spoken at symbol level all. # Description of fix: There isn't enough time before release to be confident in a fix for this behavior, instead the feature is reverted. Reverting is in commit 619e5f7 Some changes have been kept: - Symbol level enum: used in other aspects of the code and isn't a cause of this issue - System test for notepad: Useful to confirm behavior for reading by word is not changed when this feature is re-introduced. # Testing strategy: Notepad system test Generated and checked output of changes doc and userGuide Ran NVDA with symbolLevelWordAll = True remaining in config (a problem here would only affect alpha users anyway).
I did not follow carefully the details of this PR. However the following test shows that the hyphen should be passed to the synth:
|
The symbol description of the symbols in
symbols.dic
andcldr.dic
is not read correctly when the description contains punctuation such as dash or apostrophe.Below are two examples, one from each file.
Steps to reproduce:
Actual behavior:
➔ is read "right dash pointing arrow"
👕 is read "T dash shirt"
Expected behavior:
➔ should be read "right pointing arrow"
👕 should be read "T shirt"
System configuration
NVDA installed/portable/running from source:
NVDA version:
Last alpha
Version : source-master-0dbab4d
Windows version:
Windows 10 1809 (64-bit) build 17763.1935
Name and version of other software in use when reproducing the issue:
N/A
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
Not tested but surely yes.
Have you tried any other versions of NVDA? If so, please report their behaviors.
NVDA 2021.1 doesn't have this issue.
If add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Not tested; but should not be related.
Notes
The text was updated successfully, but these errors were encountered: