Skip to content
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

Text style navigation: Runtime error, NVDA cannot find desired offset in textInfo when using tables in MS Word with UIA disabled #16459

Closed
Adriani90 opened this issue Apr 28, 2024 · 22 comments
Labels
app/microsoft-office p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Milestone

Comments

@Adriani90
Copy link
Collaborator

Adriani90 commented Apr 28, 2024

Steps to reproduce:

  1. Open NVDA
  2. Assign [ and shift+[ for different style navigation
  3. Assign ] and shift+] for same style navigation
  4. Open an MS Word document with different text formats, where headings are indicated by text font size instead of heading levels, and tables are used to structure content, see attached document for a test case.
  5. Make sure UIA for MS Word is disabled in NVDA advanced settings
  6. Navigate to a heading (e.g. professional background), and Press the assigned commands for navigating to next and previous text styles

Actual behavior:

NVDA stops navigating, and the focus does not move. Following is written to the log:

IO - inputCore.InputManager.executeGesture (17:26:53.868) - winInputHook (18680):
Input: kb(laptop):plus
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (17:26:54.378) - watchdog (1936):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (17:26:55.140) - MainThread (22192):
Speaking ['Academic experience\n']
DEBUG - UIAHandler.shouldUseUIAInMSWord (17:26:55.167) - MainThread (22192):
User does not want UIA in MS Word unless necessary
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (17:26:55.380) - watchdog (1936):
Recovered from potential freeze after 1.502466700000241 seconds.
IO - inputCore.InputManager.executeGesture (17:26:55.663) - winInputHook (18680):
Input: kb(laptop):shift+ü
ERROR - scriptHandler.executeScript (17:26:55.780) - MainThread (22192):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0664D430>> with gesture 'Umschalt+ü'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2405, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 793, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
IO - inputCore.InputManager.executeGesture (17:26:56.484) - winInputHook (18680):
Input: kb(laptop):plus
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (17:26:56.991) - watchdog (1936):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (17:26:57.112) - MainThread (22192):
Speaking ['Seite 2', 'Projects and initiatives\n']
DEBUG - UIAHandler.shouldUseUIAInMSWord (17:26:57.128) - MainThread (22192):
User does not want UIA in MS Word unless necessary
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (17:26:57.492) - watchdog (1936):
Recovered from potential freeze after 1.0022185000002537 seconds.
IO - inputCore.InputManager.executeGesture (17:26:57.712) - winInputHook (18680):
Input: kb(laptop):shift+ü
ERROR - scriptHandler.executeScript (17:26:57.997) - MainThread (22192):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0664D430>> with gesture 'Umschalt+ü'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2461, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 793, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
IO - inputCore.InputManager.executeGesture (17:26:58.921) - winInputHook (18680):
Input: kb(laptop):shift+plus
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (17:26:59.422) - watchdog (1936):
Potential freeze, waiting up to 10 seconds.
ERROR - scriptHandler.executeScript (17:26:59.518) - MainThread (22192):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0664D430>> with gesture 'Umschalt+plus'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2461, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 793, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.

Expected behavior:

Navigation should continue, e.g. within the tables or skipping the tables.

NVDA logs, crash dumps and other attachments:

n/a

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

alpha-31645,bf96860d (2024.2.0.31645)

Windows version:

Windows 11 23 H2

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

MS Office Word 365 MSO (Version 2403 Build 16.0.17425.20176) 64 Bit

Other information about your system:

n/a

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.

n/a

If NVDA add-ons are disabled, is your problem still occurring?

No add-ons in use

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

yes
Summary-with-table-test-case.docx

@Adriani90
Copy link
Collaborator Author

cc: @mltony is this maybe related to #16448?

@Adriani90
Copy link
Collaborator Author

This ssems to work properly when UIA is enabled.

@mltony
Copy link
Contributor

mltony commented Apr 29, 2024

  1. Navigate to a heading (e.g. professional background)

There is no such text in the attached document. I assume you meant "Professional experience". But having said that, for some reason your issue doesn't repro on my computer. Just to clarify, when you say

Make sure UIA for MS Word is disabled in NVDA advanced settings

I only have this option:

Use UI Automation to access Microsoft Word document controls:
Only when necessary

@seanbudd seanbudd added app/microsoft-office p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. labels Apr 29, 2024
@seanbudd seanbudd added this to the 2024.2 milestone Apr 29, 2024
@Adriani90
Copy link
Collaborator Author

Adriani90 commented Apr 30, 2024 via email

@mltony
Copy link
Contributor

mltony commented Apr 30, 2024

Yes, I confirm I can navigate back and forth between headings with styleNav commands. Navigate to different style also works as expected.
I just tested on my other laptop running Windows 10 - same experience there.

@Adriani90
Copy link
Collaborator Author

Did you make sure UIA is set to "only necessary" for MS Word?
Which MS Word version are you using?

For what I can say, for me style navigation does not really work in this example document at ll. I get this in the log:

IO - inputCore.InputManager.executeGesture (11:59:36.181) - winInputHook (18700):
Input: kb(laptop):ü
ERROR - scriptHandler.executeScript (11:59:36.431) - MainThread (2304):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x06128390>> with gesture 'ü'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 558, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2447, in _iterTextStyle
  File "textInfos\__init__.pyc", line 793, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
IO - inputCore.InputManager.executeGesture (11:59:38.996) - winInputHook (18700):
Input: kb(laptop):shift+plus
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (11:59:39.496) - watchdog (24592):
Potential freeze, waiting up to 10 seconds.
ERROR - scriptHandler.executeScript (11:59:39.581) - MainThread (2304):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x06128390>> with gesture 'Umschalt+plus'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2461, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 793, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (11:59:39.997) - watchdog (24592):
Recovered from potential freeze after 1.000924300024053 seconds.

Note: if you restart NVDA while the document is focused the object model will not be available and UIA will be used although it is set to "only when necessary". Alt+tabbing away and back to the document makes sure you are using object model.

cc: @CyrilleB79 or @lukaszgo1 can you test as well?

@mltony
Copy link
Contributor

mltony commented May 1, 2024

Did you make sure UIA is set to "only necessary" for MS Word?>

Yes.

appModule.productName: 'Microsoft Office'
appModule.productVersion: '16.0.17425.20176'

I tried restarting NVDA and Alt-tabbing back and forth and still cannot reproduce this.

@Adriani90
Copy link
Collaborator Author

@burmancomp, @cary-rowen could you please test if you have this issue with UIA set to "only when necessary" for MS Word in NVDA advanced settings?
This would help allot. ON my end I cannot use this feature unfortunately.
@mltony any suggestions how I can solve this on my end?

@Adriani90
Copy link
Collaborator Author

@ivnc, @XLTechie could you please test if this issue occurs for you? It is really important to have some test results from other users in order to be sure whether this feature works properly or if this needs to be reverted.

@cary-rowen
Copy link
Contributor

I tested this and I could only reproduce it by trying "moves to the next different style text" in "Professional experience", The other commands "moves to the previous different style text, moves to the previous same style text, moves to the next same style text" all work as expected.

IO - speech.speech.speak (00:50:22.522) - MainThread (7192):
Speaking ['日志片段开始点已标记,再按一次复制到剪贴板']
IO - inputCore.executeGesture (00:50:22.976) - winInputHook (10148):
Input: kb(laptop):/
ERROR - scriptHandler.executeScript (00:50:23.378) - MainThread (7192):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x185D20F0>> with gesture '/'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 558, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2449, in _iterTextStyle
  File "textInfos\__init__.pyc", line 794, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
IO - inputCore.executeGesture (00:50:23.795) - winInputHook (10148):
Input: kb(laptop):NVDA+shift+control+f1

NVDA alpha-31858

focus.appModule.productName
'Microsoft Office'

focus.appModule.productVersion
'16.0.17531.20140'

But I don't agree that this should be reverted. If the exact reason is found, it can be noted that this is an exception.

@mltony
Copy link
Contributor

mltony commented May 12, 2024

I just tried again on my computer exactly what @cary-rowen described - and on my computer it works as expected without throwing any errors. Same thing for my other laptop. I am perplexed, not sure how to proceed here.

@cary-rowen
Copy link
Contributor

I haven't seen this part of the code, are there any easy steps I can take to help debug it?

@mltony
Copy link
Contributor

mltony commented May 12, 2024

That's the problem, there are no easy steps I can think of. If I could repro this, I would run this in a virtual machine and connect with a debugger to understand better what's going on.
Style navigation algorithm ended up pretty complex, and it internally uses textInfos.moveToCodepointOffset function, which is pretty complicated too.
I suspect this might be related to #16448. The other possibility would be the case when 1 textInfos.UNIT_CHARACTER corresponds to multiple pythonic characters; but we've seen that only in Word when UIA is enabled, which is not the case here.

@hwf1324
Copy link
Contributor

hwf1324 commented May 12, 2024

In my case, when the word document is a read-only document (i.e. not editable), the text style navigation is correct when following the steps above.
Additionally when I am at the end of the sample document, at this point word is only showing page 2, and navigating up to page 1 the same text style navigation results in an error but not an error report, changing from a bookmark style to a table style.
When I press still edit at the prompt, the performance of the text style navigation drops significantly. It takes a few seconds per navigation.
Navigating down is at least correct. But when I navigate up on page 2, when the content to be navigated to is on page 1 (probably not in the screen), the error is reported.

@mltony
Copy link
Contributor

mltony commented May 12, 2024

I managed to reproduce this when I unchecked protected view. I go to "Academic experience" and try navigating to previous same style - only in this case it raises that exception. Now debugging.

@Adriani90
Copy link
Collaborator Author

@mltony I attach a new document, in this document I definitely can reproduce this issue both with UIA enabled or disabled.
ONKYO.docx

@Adriani90
Copy link
Collaborator Author

@hwf1324 you seem to have UIA enabled, bookmark navigation is only when using UIA in MS Word.

@hwf1324
Copy link
Contributor

hwf1324 commented May 12, 2024

@hwf1324 you seem to have UIA enabled, bookmark navigation is only when using UIA in MS Word.

@Adriani90 No, I don't have UIA enabled, maybe my description is off.

IO - speech.speech.speak (03:48:44.068) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Log fragment start position marked, press again to copy to clipboard']
IO - inputCore.InputManager.executeGesture (03:48:46.683) - winInputHook (17480):
Input: kb(laptop):tab
IO - speech.speech.speak (03:48:46.700) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Advanced', 'property page', 'Warning!\nThe following settings are for advanced users. Changing them may cause NVDA to function incorrectly. Please only change these if you know what you are doing or have been specifically instructed by NVDA developers.', CancellableSpeech (still valid)]
IO - speech.speech.speak (03:48:46.704) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'I understand that changing these settings may cause NVDA to function incorrectly.', 'check box', 'not checked', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:48:47.280) - winInputHook (17480):
Input: kb(laptop):space
IO - speech.speech.speak (03:48:47.301) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '空格', EndUtteranceCommand()]
IO - speech.speech.speak (03:48:47.402) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'checked']
IO - inputCore.InputManager.executeGesture (03:48:47.810) - winInputHook (17480):
Input: kb(laptop):tab
IO - speech.speech.speak (03:48:47.824) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Restore defaults', 'button', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:48:48.042) - winInputHook (17480):
Input: kb(laptop):tab
IO - speech.speech.speak (03:48:48.100) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'NVDA Development', 'grouping', CancellableSpeech (still valid)]
IO - speech.speech.speak (03:48:48.102) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Enable loading custom code from Developer Scratchpad directory', 'check box', 'not checked', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:48:48.526) - winInputHook (17480):
Input: kb(laptop):tab
IO - speech.speech.speak (03:48:48.577) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Microsoft UI Automation', 'grouping', CancellableSpeech (still valid)]
IO - speech.speech.speak (03:48:48.577) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Registration for UI Automation events and property changes:', 'combo box', 'Automatic (prefer selective)', 'collapsed', 'Alt+', CharacterModeCommand(True), 's', CharacterModeCommand(False), CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:48:48.783) - winInputHook (17480):
Input: kb(laptop):tab
IO - speech.speech.speak (03:48:48.795) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Use UI Automation to access Microsoft Word document controls', 'combo box', 'Only when necessary', 'collapsed', 'Alt+', CharacterModeCommand(True), 'w', CharacterModeCommand(False), CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:48:54.447) - winInputHook (17480):
Input: kb(laptop):enter
DEBUG - autoSettingsUtils.autoSettings.AutoSettings._saveSpecificSettings (03:48:54.452) - MainThread (7664):
Saved settings for OneCoreSynthDriver
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.453) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: ReviewRoutingMovesSystemCaretFlag, behaviorOfDefault: NEVER
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.453) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.453) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - autoSettingsUtils.autoSettings.AutoSettings._saveSpecificSettings (03:48:54.457) - MainThread (7664):
Saved settings for NVDAHighlighterSettings
DEBUG - autoSettingsUtils.autoSettings.AutoSettings._saveSpecificSettings (03:48:54.458) - MainThread (7664):
Saved settings for ScreenCurtainSettings
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.458) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: ParagraphNavigationFlag, behaviorOfDefault: APPLICATION
DEBUG - gui.settingsDialogs.AdvancedPanelControls.onSave (03:48:54.458) - MainThread (7664):
Saving advanced config
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.459) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.459) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: WindowsTerminalStrategyFlag, behaviorOfDefault: DIFFING
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.459) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.459) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (03:48:54.459) - MainThread (7664):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
IO - speech.speech.speak (03:48:54.500) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Summary-with-table-test-case.docx  -  受保护的视图 - Word', CancellableSpeech (still valid)]
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:48:54.514) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - speech.speech.speak (03:48:54.582) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'document', CancellableSpeech (still valid), 'page 1', 'section 1', 'bookmark', LangChangeCommand ('en_US'), 'Summary\r']
DEBUG - gui.settingsDialogs.SettingsDialog._setInstanceDestroyedState (03:48:54.585) - MainThread (7664):
Setting state to destroyed for instance: NVDA Settings - NVDASettingsDialog - <gui.settingsDialogs.NVDASettingsDialog object at 0x0D76D4F0>
Current _instances ['NVDA Settings - CREATED']
IO - inputCore.InputManager.executeGesture (03:48:55.826) - winInputHook (17480):
Input: kb(laptop):NVDA+space
DEBUG - treeInterceptorHandler.update (03:48:55.831) - MainThread (7664):
Adding new treeInterceptor to runningTable: <NVDAObjects.UIA.wordDocument.WordBrowseModeDocument object at 0x0D82DED0>
IO - inputCore.InputManager.executeGesture (03:48:56.815) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:48:56.853) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'page 1', 'section 1', 'blank']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:48:56.900) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:48:58.862) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:48:58.883) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Professional experience\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:48:58.928) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:02.195) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:02.237) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:02.263) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:02.402) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:02.521) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:02.571) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:02.593) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Academic experience\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:02.649) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:04.266) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:04.310) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:04.337) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:04.469) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:04.494) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'page 2', 'bookmark', LangChangeCommand ('en_US'), 'Projects and initiatives\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:04.561) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:06.592) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:06.638) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:06.669) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:06.908) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:06.931) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Further knowledge\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:06.971) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:10.491) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:10.691) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:10.745) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Projects and initiatives\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:10.775) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:12.836) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:12.974) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:13.018) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:13.047) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'table', 'with 3 rows and 2 columns', 'page 1', 'out of table', 'bookmark', LangChangeCommand ('en_US'), 'Academic experience\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:13.106) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:16.535) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:16.583) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:16.614) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:16.735) - MainThread (7664):
Detected embedded child
DEBUG - NVDAObjects.UIA.UIATextInfo._getTextWithFieldsForUIARange (03:49:16.869) - MainThread (7664):
Detected embedded child
IO - speech.speech.speak (03:49:16.929) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'blank']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:16.975) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:18.151) - winInputHook (17480):
Input: kb(laptop):upArrow
IO - speech.speech.speak (03:49:18.186) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Summary\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:18.227) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - inputCore.InputManager.executeGesture (03:49:19.666) - winInputHook (17480):
Input: kb(laptop):upArrow
IO - speech.speech.speak (03:49:19.706) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'bookmark', LangChangeCommand ('en_US'), 'Summary\r']
IO - inputCore.InputManager.executeGesture (03:49:20.808) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:49:20.828) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'blank']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:20.876) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:30.555) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - speech.speech.speak (03:49:30.570) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Since 03/2023:']
IO - speech.speech.speak (03:49:30.797) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Since 03/2023:']
IO - speech.speech.speak (03:49:30.891) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '11/2021-3/2023:']
IO - speech.speech.speak (03:49:31.048) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Since 3/2021:']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:31.057) - MainThread (7664):
Using UIA in MS Word as no alternative object model available
IO - speech.speech.speak (03:49:31.145) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Professional experience\r']
IO - speech.speech.speak (03:49:31.502) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '启用编辑(E)']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:33.142) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:33.642) - watchdog (3456):
Recovered from potential freeze after 1.0010277000000087 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:33.790) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:33.790) - MainThread (7664):
User does not want UIA in MS Word unless necessary
DEBUGWARNING - UIAHandler.browseMode.UIABrowseModeDocument.__contains__ (03:49:34.026) - MainThread (7664):
Could not get runtimeID of document. Most likely document is dead.
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:34.197) - Dummy-1 (4108):
User does not want UIA in MS Word unless necessary
DEBUGWARNING - UIAHandler.browseMode.UIABrowseModeDocument.__contains__ (03:49:34.216) - MainThread (7664):
Could not get runtimeID of document. Most likely document is dead.
DEBUG - appModuleHandler.cleanup (03:49:34.217) - MainThread (7664):
application winword closed
DEBUG - treeInterceptorHandler.killTreeInterceptor (03:49:34.238) - MainThread (7664):
Killed treeInterceptor: <NVDAObjects.UIA.wordDocument.WordBrowseModeDocument object at 0x0D82DED0>
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:34.291) - watchdog (3456):
Recovered from potential freeze after 1.0007391999999982 seconds.
IO - speech.speech.speak (03:49:34.375) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'tool bar', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (03:49:34.621) - winInputHook (17480):
Input: kb(laptop):downArrow
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:34.898) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:35.400) - watchdog (3456):
Recovered from potential freeze after 1.0013210999999842 seconds.
IO - inputCore.InputManager.executeGesture (03:49:35.519) - winInputHook (17480):
Input: kb(laptop):upArrow
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:36.113) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:49:36.581) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '继续阅读', 'window', CancellableSpeech (still valid)]
IO - speech.speech.speak (03:49:36.741) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'pane', CancellableSpeech (still valid)]
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:36.981) - Dummy-1 (4108):
User does not want UIA in MS Word unless necessary
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:37.115) - watchdog (3456):
Recovered from potential freeze after 1.5039533000000347 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:38.055) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:38.556) - watchdog (3456):
Recovered from potential freeze after 1.6454396000000315 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:39.744) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:39.830) - Dummy-1 (4108):
User does not want UIA in MS Word unless necessary
IO - speech.speech.speak (03:49:39.877) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '继续阅读', 'button', '从上次停止阅读文档的位置继续', CancellableSpeech (still valid)]
DEBUG - speech.manager.SpeechManager._handleIndex (03:49:39.878) - MainThread (7664):
Unknown index 148, speech probably cancelled from main thread.
IO - speech.speech.speak (03:49:39.914) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Ribbon']
IO - speech.speech.speak (03:49:40.066) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Summary-with-table-test-case.docx - Word', CancellableSpeech (still valid)]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:40.245) - watchdog (3456):
Recovered from potential freeze after 2.1503346999999735 seconds.
IO - speech.speech.speak (03:49:40.290) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Microsoft Word 文档', 'edit', 'multi line', CancellableSpeech (still valid), 'page 1', 'section 1', LangChangeCommand ('en_US'), 'Summary']
IO - speech.speech.speak (03:49:40.631) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Ribbon']
IO - speech.speech.speak (03:49:40.876) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '“文件”选项卡']
IO - speech.speech.speak (03:49:40.898) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '快速访问工具栏']
IO - speech.speech.speak (03:49:40.925) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '保存 保存 (Ctrl+S)']
IO - speech.speech.speak (03:49:40.940) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '无法撤消 无法撤消 (Ctrl+Z)']
IO - speech.speech.speak (03:49:40.986) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '无法重复 无法重复 (Ctrl+Y)']
IO - speech.speech.speak (03:49:41.003) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '自定义快速访问工具栏']
IO - speech.speech.speak (03:49:41.032) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '\u202aSummary-with-table-test-case.docx\u202c  -  已保存到这台电脑 已保存到这台电脑']
IO - speech.speech.speak (03:49:41.052) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '引用']
IO - speech.speech.speak (03:49:41.095) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '字体']
IO - speech.speech.speak (03:49:41.112) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '缩小字体 缩小文字。']
IO - speech.speech.speak (03:49:41.129) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '字体']
IO - speech.speech.speak (03:49:41.138) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '更改大小写 将选定文本更改为大写、小写或其他常见的大写方式。']
IO - speech.speech.speak (03:49:41.178) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '字体']
IO - speech.speech.speak (03:49:41.204) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '更多选项 用亮色突出显示来让您的文本更加醒目。']
IO - speech.speech.speak (03:49:41.235) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '字体']
IO - speech.speech.speak (03:49:41.942) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Office 剪贴板... 查看已复制到剪贴板的所有项目。']
IO - speech.speech.speak (03:49:41.975) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '剪贴板']
IO - speech.speech.speak (03:49:42.007) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Ribbon']
IO - speech.speech.speak (03:49:42.114) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '“文件”选项卡']
IO - speech.speech.speak (03:49:42.144) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '剪切 删除所选内容并将其放到剪贴板上,以便您可以粘贴到其他地方。']
IO - speech.speech.speak (03:49:42.164) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '剪贴板']
IO - speech.speech.speak (03:49:42.189) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '下划线 为文字添加下划线。']
IO - speech.speech.speak (03:49:42.205) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), '字体']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:42.215) - MainThread (7664):
User does not want UIA in MS Word unless necessary
IO - speech.speech.speak (03:49:42.228) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Summary\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:42.728) - MainThread (7664):
User does not want UIA in MS Word unless necessary
IO - speech.speech.speak (03:49:42.955) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Summary\r']
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:43.296) - MainThread (7664):
User does not want UIA in MS Word unless necessary
DEBUG - UIAHandler.shouldUseUIAInMSWord (03:49:43.948) - MainThread (7664):
User does not want UIA in MS Word unless necessary
IO - inputCore.InputManager.executeGesture (03:49:44.479) - winInputHook (17480):
Input: kb(laptop):downArrow
DEBUG - editableText.EditableText._hasCaretMoved (03:49:44.506) - MainThread (7664):
Caret move detected using bookmarks. Elapsed 0 sec, retries 0
IO - speech.speech.speak (03:49:44.694) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'blank']
IO - inputCore.InputManager.executeGesture (03:49:45.144) - winInputHook (17480):
Input: kb(laptop):upArrow
DEBUG - editableText.EditableText._hasCaretMoved (03:49:45.164) - MainThread (7664):
Caret move detected using bookmarks. Elapsed 0 sec, retries 0
IO - speech.speech.speak (03:49:45.302) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Summary']
IO - inputCore.InputManager.executeGesture (03:49:46.462) - winInputHook (17480):
Input: kb(laptop):NVDA+space
DEBUG - treeInterceptorHandler.update (03:49:46.463) - MainThread (7664):
Adding new treeInterceptor to runningTable: <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0D82EFB0>
IO - inputCore.InputManager.executeGesture (03:49:47.476) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:49:47.733) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'page 1', 'section 1', 'blank']
IO - inputCore.InputManager.executeGesture (03:49:48.424) - winInputHook (17480):
Input: kb(laptop):upArrow
IO - speech.speech.speak (03:49:48.635) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Summary']
IO - inputCore.InputManager.executeGesture (03:49:50.943) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:51.449) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:49:55.018) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'No next same style text']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:55.452) - watchdog (3456):
Recovered from potential freeze after 4.502795000000049 seconds.
IO - inputCore.InputManager.executeGesture (03:49:57.722) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:49:58.208) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'blank']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:58.236) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:49:58.738) - watchdog (3456):
Recovered from potential freeze after 1.003313100000014 seconds.
IO - inputCore.InputManager.executeGesture (03:49:59.926) - winInputHook (17480):
Input: kb(laptop):downArrow
IO - speech.speech.speak (03:50:00.407) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Professional experience']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:00.428) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:00.929) - watchdog (3456):
Recovered from potential freeze after 1.0006435999999894 seconds.
IO - inputCore.InputManager.executeGesture (03:50:02.478) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:02.990) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:50:04.042) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Academic experience', LangChangeCommand ('zh_CN'), '\n']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:04.492) - watchdog (3456):
Recovered from potential freeze after 2.0016794000000004 seconds.
IO - inputCore.InputManager.executeGesture (03:50:06.478) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:06.992) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:50:07.350) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'page 2', LangChangeCommand ('en_US'), 'Projects and initiatives', LangChangeCommand ('zh_CN'), '\n']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:07.494) - watchdog (3456):
Recovered from potential freeze after 1.0009797999999819 seconds.
IO - inputCore.InputManager.executeGesture (03:50:09.281) - winInputHook (17480):
Input: kb(laptop):]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:09.790) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:50:10.806) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Further knowledge', LangChangeCommand ('zh_CN'), '\n']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:11.291) - watchdog (3456):
Recovered from potential freeze after 2.0011659000000463 seconds.
IO - inputCore.InputManager.executeGesture (03:50:12.561) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:13.076) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
IO - speech.speech.speak (03:50:13.710) - MainThread (7664):
Speaking [LangChangeCommand ('en_US'), 'Projects and initiatives', LangChangeCommand ('zh_CN'), '\n']
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:14.077) - watchdog (3456):
Recovered from potential freeze after 1.50129000000004 seconds.
IO - inputCore.InputManager.executeGesture (03:50:15.001) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:15.506) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
ERROR - scriptHandler.executeScript (03:50:15.711) - MainThread (7664):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0D82EFB0>> with gesture 'shift+]'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2463, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 794, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:16.007) - watchdog (3456):
Recovered from potential freeze after 1.0007425000000012 seconds.
IO - inputCore.InputManager.executeGesture (03:50:17.740) - winInputHook (17480):
Input: kb(laptop):shift+]
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:18.248) - watchdog (3456):
Potential freeze, waiting up to 10 seconds.
ERROR - scriptHandler.executeScript (03:50:18.623) - MainThread (7664):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.<locals>.<lambda> of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0D82EFB0>> with gesture 'shift+]'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 567, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2463, in _iterTextStyle
  File "browseMode.pyc", line 2326, in _expandStyle
  File "textInfos\__init__.pyc", line 794, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (03:50:18.749) - watchdog (3456):
Recovered from potential freeze after 1.0005365000000097 seconds.
IO - speech.speech.speak (03:50:20.616) - MainThread (7664):
Speaking [LangChangeCommand ('zh_CN'), 'Alpha numeric input']
IO - inputCore.InputManager.executeGesture (03:50:23.638) - winInputHook (17480):
Input: kb(laptop):NVDA+control+shift+f1

@burmancomp
Copy link
Contributor

I tested with onkyo.docx in browse mode running from source. When in start of file: third next different style text gesture resulted error: File "browseMode.py", line 2321, in _expandStyle
endIndex = startIndex + len(styles[i + 1])
~~~~~~^^^^^^^
IndexError: list index out of range

First next same style gesture press resulted:

DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (23:14:42.543) - watchdog (4184):
Potential freeze, waiting up to 10 seconds.
...
DEBUGWARNING - scriptHandler.executeScript (23:14:52.155) - MainThread (7732):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.. of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x03F6E4D0>> with gesture 'ä'
Traceback (most recent call last):
File "scriptHandler.py", line 295, in executeScript
script(gesture)
File "browseMode.py", line 558, in
script = lambda self,gesture: self._quickNavScript(gesture, itemType, "next", nextError, readUnit)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "browseMode.py", line 516, in _quickNavScript
item = next(iterFactory(direction, info))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "browseMode.py", line 2465, in _iterTextStyle
if not self._moveToNextParagraph(paragraph, direction):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "browseMode.py", line 2358, in _moveToNextParagraph
and paragraph.compareEndPoints(oldParagraph, "startToStart") <= 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "treeInterceptorHandler.py", line 225, in compareEndPoints
return self.innerTextInfo.compareEndPoints(other.innerTextInfo,which)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "NVDAObjects\window\winword.py", line 1009, in compareEndPoints
diff=self.rangeObj.Start-other.rangeObj.Start
^^^^^^^^^^^^^^^^^^^^
File "monkeyPatches\comtypesMonkeyPatches.py", line 86, in new__getattr

return comtypes.client.lazybind.Dispatch.__getattr__orig(self, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\src\nvda.venv\Lib\site-packages\comtypes\client\lazybind.py", line 168, in getattr
return self._comobj._invoke(descr.memid, descr.invkind, 0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\src\nvda.venv\Lib\site-packages\comtypes\automation.py", line 807, in _invoke
self.__com_Invoke(memid, riid_null, lcid, invkind,
File "monkeyPatches\comtypesMonkeyPatches.py", line 38, in call
raise exceptions.CallCancelled("COM call cancelled") from None
exceptions.CallCancelled: COM call cancelled

When in end of file: both next (same/different) style gestures resulted error:

File "browseMode.py", line 558, in
script = lambda self,gesture: self._quickNavScript(gesture, itemType, "next", nextError, readUnit)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "browseMode.py", line 516, in _quickNavScript
item = next(iterFactory(direction, info))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "browseMode.py", line 2401, in iterTextStyle
endInfo = paragraph.moveToCodepointOffset(len(styles[1]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "textInfos_init
.py", line 756, in moveToCodepointOffset
result.collapse(end=codepointOffset > 0)
File "treeInterceptorHandler.py", line 234, in collapse
return self.innerTextInfo.collapse(end=end)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "NVDAObjects\window\winword.py", line 1052, in collapse
raise RuntimeError
RuntimeError

@ivnc
Copy link
Contributor

ivnc commented May 12, 2024

@ivnc, @XLTechie could you please test if this issue occurs for you? It is really important to have some test results from other users in order to be sure whether this feature works properly or if this needs to be reverted.

Yes, this is reproducible for me, no matter the gestures you assign to same and different style navigation actions, with UIA disabled. From the test document you provided, if I navigate through the same style from the heading "Professional experience", I can reach the end of the document, heading "Further knowledge", and then NVDA says "No next same style text". But, if I cycle backwards to reach the top of the document, after saying "Projects and initiatives" it starts throwing that error message.
With regard to different style navigation, if I use it from an heading, I cannot reach the table below it (it throws the error message), but instead I can the blank line above in case of the first heading "Professional experience", in all other cases there are tables both above and below the heading and different style navigation apparently doesn't reach either of them, despite having a different style. From within any table, I can't reach the next heading, just after it, but I can the previous one, just before it.
NVDA alpha-31858,2d865027, no add-ons.
Windows 10 22H2 build 19045.4291
Microsoft® Word for Microsoft 365 MSO (version 2404 build 16.0.17531.20140)

Hope this helps.
Error message (looks like the same as yours):
ERROR - scriptHandler.executeScript (23:24:33.416) - MainThread (16012):
error executing script: <bound method BrowseModeTreeInterceptor.addQuickNav.. of <NVDAObjects.window.winword.WordDocumentTreeInterceptor object at 0x0583E6D0>> with gesture 'shift+s'
Traceback (most recent call last):
File "scriptHandler.pyc", line 295, in executeScript
File "browseMode.pyc", line 567, in
File "browseMode.pyc", line 516, in _quickNavScript
File "browseMode.pyc", line 2463, in _iterTextStyle
File "browseMode.pyc", line 2326, in expandStyle
File "textInfos_init
.pyc", line 794, in moveToCodepointOffset
RuntimeError: Unable to find desired offset in TextInfo.

@mltony
Copy link
Contributor

mltony commented May 12, 2024

@Adriani90,
I confirm it's related to #16448, so it's a problem of MSWord textInfo implementation.
@burmancomp,
Could you file a separate issue and tag me? This one I can fix.

@burmancomp
Copy link
Contributor

@burmancomp, Could you file a separate issue and tag me? This one I can fix.

To ensure: do you think I should open issue?

seanbudd pushed a commit that referenced this issue May 20, 2024
)

Closes #16459
Closes #16408
Closes #16458
Closes #16405

Summary of the issue:
We have discovered multiple problemds with non-UIA textInfo implementation in MS Word. Some examples are #16527, #16459, #16458. Also TextInfo implenetation in Outlook has proven to be too slow for style navigation. Therefore disabling both.

Description of user facing changes
"Not supported in this document" message is spoken.

Description of development approach
Raising an error when Outlook or non-UIA Word is detected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app/microsoft-office p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

No branches or pull requests

7 participants