Spelchecker in ms Word XP and 2003 giving strange results #883

Closed
nvaccessAuto opened this Issue Sep 4, 2010 · 7 comments

Projects

None yet

2 participants

@nvaccessAuto

Reported by briang1 on 2010-09-04 18:25
There is a long history I know on this, but all previous tickets dating back to number 95 seem to be closed so, here we go.
In 2010.1, in Word XP and 2003, we had no reading of anything but the suggestions and actions on them. However in recent snaps we now have spelling errors reported as grammar errors and the whole contextual text read as a chunk without spaces as well.
I realise that its working better in 2007, but it seems quite a few still prefer 2002/3 versions and I feel this needs to be looked at again, and at least the misleading parts suppressed. Note I'm talking of manual spell checking on a document here.

Even if you turn off grammar checking it still thinks it has a grammar error.

@nvaccessAuto

Comment 1 by jteh on 2010-09-24 04:42
Can you please provide exact steps to reproduce here? I'm not really sure what you're getting at. :)

@nvaccessAuto

Comment 2 by briang1 on 2010-09-24 09:16
OK, lets try this again.
At present I only have access to xp, but others report similar in 2003...

Make a word xp or 2003 file with errors in it, ie spelling errors turned off in the prefs etc.
then go to tools and check the spelling there.
The dialogue says, Grammar error, and reads the contextual display of the error as one long word.

What should occur is it should say, spelling error and read that sentence as it would normally, maybe with spelling error at the word its querying, as it would in live checking.

If you tab, you do get to the suggestions list its true, but the above details are not at all helpful especially if you do have grammar checking on, as then you are not sure which error is present.

I understand that grammar errors appear in green in the context display, while spelling ones are in red.
Info obtained from Hal.

Does this help?

@nvaccessAuto

Comment 3 by jteh (in reply to comment 2) on 2010-09-24 09:22
Replying to briang1:

At present I only have access to xp, but others report similar in 2003...

2003 may have had problems a few months ago, but these should have been fixed in recent snapshots and 2010.2beta1. I need to verify this again, but it did work last time I checked. We don't officially support XP, so it very well may not work there.

@nvaccessAuto

Comment 4 by briang1 on 2010-09-24 10:50
Well one 2003 user has reported its still announcing all errors as grammar errors, but there seems to be some confusion on how the contextual text should be read. I'm awaiting some clarification before I say more about word 2003. However, I did note that Msoft is still supporting Office XP as they sent me a load of updates for it last week.
Out of interest in Wordxp the diagnostic nvda/f1 looks like.

IO - keyboardHandler.internal_keyDownEvent (11:18:38):
key press: f7
IO - speech.speakText (11:18:39):
Speaking u'Spelling and Grammar: English (U.K.) dialog Not in Dictionary:'
IO - speech.speakText (11:18:39):
Speaking u'Grammatical error: isateestofthespellcheckerofwwordittseld\ntoseewhathappens.\n\n'
IO - keyboardHandler.internal_keyDownEvent (11:18:50):
key press: nvda+f1
INFO - appModules._default.AppModule.script_navigatorObject_devInfo (11:18:50):
Developer info for navigator object:
name: u'Grammatical error:'
role: ROLE_UNKNOWN
states: STATE_FOCUSABLE, STATE_FOCUSED
Python object: <NVDAObjects.IAccessible.ContentGenericClient object at 0x02220E50>
Python class mro: (<class 'NVDAObjects.IAccessible.ContentGenericClient'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (295, 269, 310, 77)
value: u'isateestofthespellcheckerofwwordittseld\ntoseewhathappens.\n\n'
appModule: <winword (appName winword, process ID 2084) at address 2220bf0>
TextInfo: <class 'displayModel.DisplayModelTextInfo'>
windowHandle: 394012
windowClassName: u'_WwO'
windowControlID: 18
windowStyle: 1344274432
windowThreadID: 1380
windowText: u'\x00'
IAccessibleObject: <POINTER(IAccessible) ptr=0x1a2880 at 225d580>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=394012, objectID=-4, childID=0
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)

@nvaccessAuto

Comment 6 by mdcurran on 2010-12-05 03:46
Miss-announcement of 'grammar error' definitely fixed in cd94aac.

Possibly fixed the issues in Word XP Spell Check error field. The words were being run together because 1. it was resorting to displayModel and 2. the displayModel in-process code was not picking up the spaces between the words.
Hopefully now (as long as Word XP really supports this) NVDA will use the special Spell Check Error field NVDAObject class that Word 2003 and above use, plus it will no longer fall back to displayModel.
Please report if Word XP spell check now works better. As I do not have Word XP, I may have typoed and or there could be errors etc... we'll need to play with it to get it right.

@nvaccessAuto

Comment 7 by briang1 on 2010-12-05 10:34

Hi, well, I guess the answer to the question is no, its not obviously quite the same as 2003. I have a log fragment from 70, then the nvda/f1 output, then the same from the previous version, 2010.2.

I notice the watchdog is busy when you select the option, but i imagine this has notheing to do with much other than the slow display.

I hope this helps.

IO - speech.speakText (10:08:06):
Speaking u'Tools Tools Menu T'
IO - inputCore.InputManager.executeGesture (10:08:07):
Input: kb(desktop):downarrow
IO - speech.speakText (10:08:07):
Speaking u'Spelling and Grammar... Checks the proofing in the active document S'
IO - inputCore.InputManager.executeGesture (10:08:08):
Input: kb(desktop):enter
DEBUGWARNING - watchdog.watcher (10:08:08):
Trying to recover from freeze, core stack:
File "nvda.pyw", line 139, in
File "core.pyc", line 263, in main
File "wx_core.pyc", line 8007, in MainLoop
File "wx_core.pyc", line 7303, in MainLoop
File "core.pyc", line 248, in Notify
File "IAccessibleHandler.pyc", line 848, in pumpAll
File "IAccessibleHandler.pyc", line 653, in processFocusWinEvent
File "IAccessibleHandler.pyc", line 533, in winEventToNVDAEvent
File "NVDAObjects\IAccessible__init
_.pyc", line 37, in getNVDAObjectFromEvent
File "IAccessibleHandler.pyc", line 361, in accessibleObjectFromEvent

IO - speech.speakText (10:08:09):
Speaking u'Spelling and Grammar: English (U.K.) dialog Not in Dictionary:'
IO - speech.speakText (10:08:09):
Speaking u'edit'
ERROR - eventHandler.executeEvent (10:08:09):
error executing event: gainFocus on <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x01CBE830> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyc", line 135, in executeEvent
File "eventHandler.pyc", line 84, in init
File "eventHandler.pyc", line 90, in next
File "NVDAObjects__init__.pyc", line 769, in event_gainFocus
File "appModules\winword.pyc", line 54, in reportFocus
File "baseObject.pyc", line 21, in get
File "NVDAObjects\window\winword.pyc", line 285, in get_text
File "core.pyc", line 40, in new__getattr
_
File "comtypes\client\lazybind.pyc", line 149, in getattr
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (u'This method or property is not available because the proofing dialog box is active.', u'Microsoft Word', u'C:\Program Files\Microsoft Office\Office10\1033\wdmain10.chm', 37373, None))
IO - inputCore.InputManager.executeGesture (10:08:18):
Input: kb(desktop):downarrow
DEBUG - queueHandler.isPendingItems (10:08:18):
pending events in eventQueue: False
ERROR - scriptHandler.executeScript (10:08:18):
error executing script: <bound method Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject.script_caret_moveByLine of <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x01CBE830>> with gesture u'down arrow'
Traceback (most recent call last):
File "scriptHandler.pyc", line 131, in executeScript
File "editableText.pyc", line 82, in script_caret_moveByLine
File "editableText.pyc", line 79, in _caretMovementScriptHelper
File "editableText.pyc", line 67, in caretScriptPostMovedHelper
File "speech.pyc", line 498, in speakTextInfo
File "NVDAObjects\window\winword.pyc", line 207, in getTextWithFields
File "baseObject.pyc", line 21, in get
File "NVDAObjects\window\winword.pyc", line 285, in get_text
File "core.pyc", line 40, in new__getattr

File "comtypes\client\lazybind.pyc", line 149, in getattr
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (u'This method or property is not available because the proofing dialog box is active.', u'Microsoft Word', u'C:\Program Files\Microsoft Office\Office10\1033\wdmain10.chm', 37373, None))
IO - inputCore.InputManager.executeGesture (10:08:19):
Input: kb(desktop):uparrow
DEBUG - queueHandler.isPendingItems (10:08:19):
pending events in eventQueue: False
ERROR - scriptHandler.executeScript (10:08:19):
error executing script: <bound method Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject.script_caret_moveByLine of <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x01CBE830>> with gesture u'up arrow'
Traceback (most recent call last):
File "scriptHandler.pyc", line 131, in executeScript
File "editableText.pyc", line 82, in script_caret_moveByLine
File "editableText.pyc", line 79, in _caretMovementScriptHelper
File "editableText.pyc", line 67, in caretScriptPostMovedHelper
File "speech.pyc", line 498, in speakTextInfo
File "NVDAObjects\window\winword.pyc", line 207, in getTextWithFields
File "baseObject.pyc", line 21, in get
File "NVDAObjects\window\winword.pyc", line 285, in get_text
File "core.pyc", line 40, in new__getattr

File "comtypes\client\lazybind.pyc", line 149, in getattr
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (u'This method or property is not available because the proofing dialog box is active.', u'Microsoft Word', u'C:\Program Files\Microsoft Office\Office10\1033\wdmain10.chm', 37373, None))
IO - inputCore.InputManager.executeGesture (10:08:20):
Input: kb(desktop):rightarrow
DEBUG - queueHandler.isPendingItems (10:08:20):
pending events in eventQueue: False
ERROR - scriptHandler.executeScript (10:08:20):
error executing script: <bound method Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject.script_caret_moveByCharacter of <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x01CBE830>> with gesture u'right arrow'
Traceback (most recent call last):
File "scriptHandler.pyc", line 131, in executeScript
File "editableText.pyc", line 85, in script_caret_moveByCharacter
File "editableText.pyc", line 79, in _caretMovementScriptHelper
File "editableText.pyc", line 67, in caretScriptPostMovedHelper
File "speech.pyc", line 498, in speakTextInfo
File "NVDAObjects\window\winword.pyc", line 207, in getTextWithFields
File "baseObject.pyc", line 21, in get
File "NVDAObjects\window\winword.pyc", line 285, in get_text
File "core.pyc", line 40, in new__getattr

File "comtypes\client\lazybind.pyc", line 149, in getattr
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (u'This method or property is not available because the proofing dialog box is active.', u'Microsoft Word', u'C:\Program Files\Microsoft Office\Office10\1033\wdmain10.chm', 37373, None))
IO - inputCore.InputManager.executeGesture (10:08:21):
Input: kb(desktop):leftarrow
DEBUG - queueHandler.isPendingItems (10:08:21):
pending events in eventQueue: False
ERROR - scriptHandler.executeScript (10:08:21):
error executing script: <bound method Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject.script_caret_moveByCharacter of <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x01CBE830>> with gesture u'left arrow'
Traceback (most recent call last):
File "scriptHandler.pyc", line 131, in executeScript
File "editableText.pyc", line 85, in script_caret_moveByCharacter
File "editableText.pyc", line 79, in _caretMovementScriptHelper
File "editableText.pyc", line 67, in caretScriptPostMovedHelper
File "speech.pyc", line 498, in speakTextInfo
File "NVDAObjects\window\winword.pyc", line 207, in getTextWithFields
File "baseObject.pyc", line 21, in get
File "NVDAObjects\window\winword.pyc", line 285, in get_text
File "core.pyc", line 40, in new__getattr

File "comtypes\client\lazybind.pyc", line 149, in getattr
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (u'This method or property is not available because the proofing dialog box is active.', u'Microsoft Word', u'C:\Program Files\Microsoft Office\Office10\1033\wdmain10.chm', 37373, None))
IO - inputCore.InputManager.executeGesture (10:08:22):
Input: kb(desktop):tab
IO - speech.speakText (10:08:22):
Speaking u'Undo Edit button Alt+U'
IO - inputCore.InputManager.executeGesture (10:08:24):
Input: kb(desktop):tab
IO - speech.speakText (10:08:24):
Speaking u'Change button Alt+C'
IO - inputCore.InputManager.executeGesture (10:08:25):
Input: kb(desktop):tab
IO - speech.speakText (10:08:25):
Speaking u'Change All button Alt+l'
IO - inputCore.InputManager.executeGesture (10:08:27):
Input: kb(desktop):tab
IO - speech.speakText (10:08:27):
Speaking u'AutoCorrect button Alt+r'
IO - inputCore.InputManager.executeGesture (10:08:28):
Input: kb(desktop):tab
IO - speech.speakText (10:08:28):
Speaking u'Dictionary language: combo box English (U.K.) Alt+D'
IO - inputCore.InputManager.executeGesture (10:08:31):
Input: kb(desktop):tab
IO - speech.speakText (10:08:31):
Speaking u'Check grammar check box not checked Alt+k'
IO - inputCore.InputManager.executeGesture (10:08:34):
Input: kb(desktop):tab
IO - speech.speakText (10:08:34):
Speaking u'Cancel button'
IO - inputCore.InputManager.executeGesture (10:08:36):
Input: kb(desktop):space
IO - speech._speakSpellingGen (10:08:36):
Speaking character u'space'
IO - speech.speakText (10:08:36):
Speaking u'Document1 - Microsoft Word'
IO - speech.speakText (10:08:36):
Speaking u'Document1'
IO - speech.speakText (10:08:36):
Speaking u'edit'
IO - speech.speakText (10:08:36):
Speaking u'page 1 align left This is a very siily peice of typong to teest the spelllchucker\r'
IO - inputCore.InputManager.executeGesture (10:08:41):
Input: kb(desktop):control+alt+r
INFO - core.main (10:08:42):
Exiting
DEBUG - core.main (10:08:42):
Terminating watchdog
DEBUG - core.main (10:08:42):
Terminating GUI
INFO - config.save (10:08:42):
Configuration saved
DEBUG - core.main (10:08:42):
Cleaning up running treeInterceptors
DEBUG - core.main (10:08:42):
Terminating global plugin handler
DEBUG - core.main (10:08:42):
Terminating IAccessible support
DEBUG - core.main (10:08:42):
Terminating UIA support
DEBUG - core.main (10:08:42):
Terminating winConsole support
DEBUG - core.main (10:08:42):
Terminating Java Access Bridge support
DEBUG - core.main (10:08:42):
Terminating NVDAHelper
DEBUG - core.main (10:08:42):
Terminating keyboard handler
DEBUG - core.main (10:08:42):
Terminating mouse handler
DEBUG - core.main (10:08:42):
Terminating braille
DEBUG - core.main (10:08:42):
Terminating speech
DEBUG - core.main (10:08:43):
core done
INFO - nvda (10:08:43):
NVDA exit

Input: kb(desktop):nvda+f1
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (10:13:24):
Developer info for navigator object:
name: None
role: ROLE_EDITABLETEXT
states: STATE_FOCUSABLE, STATE_FOCUSED
Python object: <NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject object at 0x022D1170>
Python class mro: (<class 'NVDAObjects.Dynamic_SpellCheckErrorFieldIAccessibleWindowNVDAObject'>, <class 'appModules.winword.SpellCheckErrorField'>, <class 'NVDAObjects.window.winword.WordDocument'>, <class 'NVDAObjects.behaviors.EditableTextWithoutAutoSelectDetection'>, <class 'editableText.EditableTextWithoutAutoSelectDetection'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: ''
location: (295, 269, 310, 77)
value: None
appModule: <winword (appName winword, process ID 2312) at address 239eb90>
TextInfo: <class 'NVDAObjects.window.winword.WordDocumentTextInfo'>
windowHandle: 1180364
windowClassName: u'_WwO'
windowControlID: 18
windowStyle: 1344274432
windowThreadID: 3700
windowText: u'\x00'
IAccessibleObject: <POINTER(IAccessible) ptr=0x1af1c0 at 3e1a990>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=1180364, objectID=-4, childID=0
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
and from 2010.2 rc1

key press: nvda+f1
INFO - appModules._default.AppModule.script_navigatorObject_devInfo (10:16:29):
Developer info for navigator object:
name: u'Grammatical error:'
role: ROLE_UNKNOWN
states: STATE_FOCUSABLE, STATE_FOCUSED
Python object: <NVDAObjects.IAccessible.ContentGenericClient object at 0x022F2FF0>
Python class mro: (<class 'NVDAObjects.IAccessible.ContentGenericClient'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (295, 269, 310, 77)
value: u'Thisisaverysiilypeiceoftypongtoteestthe\nspelllchucker\n\n'
appModule: <winword (appName winword, process ID 2312) at address 22cfd90>
TextInfo: <class 'displayModel.DisplayModelTextInfo'>
windowHandle: 3015534
windowClassName: u'_WwO'
windowControlID: 18
windowStyle: 1344274432
windowThreadID: 3700
windowText: u'\x00'
IAccessibleObject: <POINTER(IAccessible) ptr=0x1ae648 at 2300530>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=3015534, objectID=-4, childID=0
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)

Any more info needed, let me know.

@nvaccessAuto

Comment 8 by mdcurran on 2010-12-14 00:45
As log fragment in previous comment clearly shows that Word XP spellCheck error field can't be supported the same way as future MS Word versions, that specific code has been removed in 9ac9f8f.
So, since that there is nothing we can really do to support the Word XP spellCheck error field, and because the bugs in future Word versions are now fixed, I am closing this ticket as fixed.
Changes:
State: closed

@nvaccessAuto nvaccessAuto added the bug label Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2011.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment