diff --git a/source/NVDAObjects/UIA/wordDocument.py b/source/NVDAObjects/UIA/wordDocument.py index d5b04ec4191..3f0b197752a 100644 --- a/source/NVDAObjects/UIA/wordDocument.py +++ b/source/NVDAObjects/UIA/wordDocument.py @@ -6,6 +6,7 @@ from typing import ( Optional, Dict, + Generator, ) import enum @@ -38,6 +39,7 @@ from scriptHandler import script import eventHandler from globalCommands import SCRCAT_SYSTEMCARET +import documentBase """Support for Microsoft Word via UI Automation.""" @@ -514,6 +516,17 @@ def _iterNodesByType(self,nodeType,direction="next",pos=None): ElementsListDialog=ElementsListDialog + def _iterTextStyle( + self, + kind: str, + direction: documentBase._Movement = documentBase._Movement.NEXT, + pos: textInfos.TextInfo | None = None + ) -> Generator[browseMode.TextInfoQuickNavItem, None, None]: + raise NotImplementedError( + "word textInfos are not supported due to multiple issues with them - #16569" + ) + + class WordDocumentNode(UIA): TextInfo=WordDocumentTextInfo diff --git a/source/NVDAObjects/window/winword.py b/source/NVDAObjects/window/winword.py index 0b3fe6a105d..eefa33f5e09 100755 --- a/source/NVDAObjects/window/winword.py +++ b/source/NVDAObjects/window/winword.py @@ -9,6 +9,7 @@ from typing import ( Optional, Dict, + Generator, TYPE_CHECKING, ) @@ -44,6 +45,7 @@ from . import _msOfficeChart import locationHelper from enum import IntEnum +import documentBase if TYPE_CHECKING: import inputCore @@ -1253,6 +1255,16 @@ def script_previousColumn(self,gesture): self.rootNVDAObject._moveInTable(row=False,forward=False) braille.handler.handleCaretMove(self) + def _iterTextStyle( + self, + kind: str, + direction: documentBase._Movement = documentBase._Movement.NEXT, + pos: textInfos.TextInfo | None = None + ) -> Generator[browseMode.TextInfoQuickNavItem, None, None]: + raise NotImplementedError( + "word textInfos are not supported due to multiple issues with them - #16569" + ) + __gestures={ "kb:tab":"trapNonCommandGesture", "kb:shift+tab":"trapNonCommandGesture", diff --git a/source/appModules/outlook.py b/source/appModules/outlook.py index 155a7339783..e7b30c05aa1 100644 --- a/source/appModules/outlook.py +++ b/source/appModules/outlook.py @@ -44,6 +44,9 @@ from NVDAObjects.UIA import UIA from NVDAObjects.UIA.wordDocument import WordDocument as UIAWordDocument import languageHandler +from typing import Generator +import documentBase +import browseMode PR_LAST_VERB_EXECUTED=0x10810003 VERB_REPLYTOSENDER=102 @@ -605,6 +608,14 @@ def script_tab(self,gesture): speech.speakTextInfo(info, reason=controlTypes.OutputReason.FOCUS) braille.handler.handleCaretMove(self) + def _iterTextStyle( + self, + kind: str, + direction: documentBase._Movement = documentBase._Movement.NEXT, + pos: textInfos.TextInfo | None = None + ) -> Generator[browseMode.TextInfoQuickNavItem, None, None]: + raise NotImplementedError("Outlook is not supported due to performance - #16408") + __gestures={ "kb:tab":"tab", "kb:shift+tab":"tab", diff --git a/source/browseMode.py b/source/browseMode.py index bae511f0d4a..3f3582fd990 100644 --- a/source/browseMode.py +++ b/source/browseMode.py @@ -2370,14 +2370,6 @@ def _iterTextStyle( direction: documentBase._Movement = documentBase._Movement.NEXT, pos: textInfos.TextInfo | None = None ) -> Generator[TextInfoQuickNavItem, None, None]: - from NVDAObjects.window.winword import BrowseModeWordDocumentTextInfo - if isinstance(pos, BrowseModeWordDocumentTextInfo): - raise NotImplementedError( - "non-UIA word textInfos are not supported due to multiple issues with them - #16569" - ) - from appModules.outlook import OutlookUIAWordDocument - if isinstance(api.getFocusObject(), OutlookUIAWordDocument): - raise NotImplementedError("Outlook is not supported due to performance - #16408") if direction not in [ documentBase._Movement.NEXT, documentBase._Movement.PREVIOUS, diff --git a/source/locale/en/symbols.dic b/source/locale/en/symbols.dic index 0c0523f4267..8b0ad5cc3ee 100644 --- a/source/locale/en/symbols.dic +++ b/source/locale/en/symbols.dic @@ -12,7 +12,7 @@ complexSymbols: ; phrase ending (?<=[^\s;]);(?=\s|$) : phrase ending (?<=[^\s:]):(?=\s|$) # Series of dots used for visual presentation, e.g. in table of contents -padding . \.{4,} +multiple . \.{4,} # Others decimal point (?