From: <nor...@nv...> - 2014-06-30 03:00:58
|
The branch master has been updated From edc4eab to fbd1988 New revisions: - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: source/NVDAObjects/IAccessible/__init__.py | 3 +++ source/NVDAObjects/IAccessible/msOffice.py | 18 ++++++++++++++++++ source/appModules/outlook.py | 27 +-------------------------- user_docs/en/changes.t2t | 1 + 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/source/NVDAObjects/IAccessible/__init__.py b/source/NVDAObjects/IAccessible/__init__.py index 2e47a8c..b1e0b37 100644 --- a/source/NVDAObjects/IAccessible/__init__.py +++ b/source/NVDAObjects/IAccessible/__init__.py @@ -463,6 +463,9 @@ the NVDAObject for IAccessible from .msOffice import BrokenMsoCommandBar if BrokenMsoCommandBar.appliesTo(self): clsList.append(BrokenMsoCommandBar) + if role==oleacc.ROLE_SYSTEM_TOOLBAR: + from .msOffice import MsoCommandBarToolBar + clsList.append(MsoCommandBarToolBar) if windowClassName.startswith("Internet Explorer_"): from . import MSHTML MSHTML.findExtraIAccessibleOverlayClasses(self, clsList) diff --git a/source/NVDAObjects/IAccessible/msOffice.py b/source/NVDAObjects/IAccessible/msOffice.py index 696a451..1dc6c24 100755 --- a/source/NVDAObjects/IAccessible/msOffice.py +++ b/source/NVDAObjects/IAccessible/msOffice.py @@ -51,6 +51,24 @@ class MSOUNISTAT(IAccessible): def _get_role(self): return controlTypes.ROLE_STATICTEXT +class MsoCommandBarToolBar(IAccessible): + + def _get_isPresentableFocusAncestor(self): + # #4096: Many single controls are wrapped in their own SmoCommandBar toolbar. + # Therefore suppress reporting of these toolbars in focus ancestry if they only have one child. + if self.childCount==1: + return False + return super(MsoCommandBarToolBar,self).isPresentableFocusAncestor + + def _get_name(self): + name=super(MsoCommandBarToolBar,self).name + # #3407: overly verbose and programmatic toolbar label + if name and name.startswith('MSO Generic Control Container'): + name=u"" + return name + + description=None + class BrokenMsoCommandBar(IAccessible): """Work around broken IAccessible implementation for Microsoft Office XP-2003 toolbars. For these IAccessibles, accNavigate is rather broken diff --git a/source/appModules/outlook.py b/source/appModules/outlook.py index 5daaa57..4e3efeb 100644 --- a/source/appModules/outlook.py +++ b/source/appModules/outlook.py @@ -132,9 +132,7 @@ class AppModule(appModuleHandler.AppModule): windowClassName=obj.windowClassName states=obj.states controlID=obj.windowControlID - if windowClassName=="MsoCommandBar" and role==controlTypes.ROLE_TOOLBAR: - clsList.insert(0,MsoCommandBarToolBar) - elif windowClassName=="REListBox20W" and role==controlTypes.ROLE_CHECKBOX: + if windowClassName=="REListBox20W" and role==controlTypes.ROLE_CHECKBOX: clsList.insert(0,REListBox20W_CheckBox) elif role==controlTypes.ROLE_LISTITEM and (windowClassName.startswith("REListBox") or windowClassName.startswith("NetUIHWND")): clsList.insert(0,AutoCompleteListItem) @@ -300,29 +298,6 @@ class AutoCompleteListItem(IAccessible): speech.cancelSpeech() ui.message(self.name) -class MsoCommandBarToolBar(IAccessible): - - def _get_isPresentableFocusAncestor(self): - # #4096: Many single controls in Signature dialog wrapped in their own SmoCommandBar toolbar. - # Therefore suppress reporting of these toolbars in focus ancestry if they only have one child. - if self.childCount==1: - return False - return super(MsoCommandBarToolBar,self).isPresentableFocusAncestor - - def _get_name(self): - name=super(MsoCommandBarToolBar,self).name - # #3407: overly verbose and programmatic toolbar label - if name and name.startswith('MSO Generic Control Container'): - name=u"" - return name - - def _get_description(self): - description=super(MsoCommandBarToolBar,self).description - # #3407: overly verbose and programmatic toolbar description - if description and description.startswith('MSO Generic Control Container'): - description=u"" - return description - class CalendarView(IAccessible): """Support for announcing time slots and appointments in Outlook Calendar. """ diff --git a/user_docs/en/changes.t2t b/user_docs/en/changes.t2t index c3f6703..f2670e3 100644 --- a/user_docs/en/changes.t2t +++ b/user_docs/en/changes.t2t @@ -51,6 +51,7 @@ - Microsoft Word 2010 spell check dialog: Report the real mis-spelt word rather than inappropriately just reporting the first bold word. (#3431) - In browse mode in Internet Explorer and other MSHTML controls, using single letter navigation to move to editable text fields again reports the label in many cases where it didn't (specifically, where HTML label elements are used). (#4170) - Microsoft Word: Reporting the existance and placement of comments is more accurate. (#3528) +- Improve navigation of certain dialogs in MS Office products such as Word, Excel and Outlook by no longer reporting particular control container toolbars which are not useful to the user. (#4198) == Changes for Developers == |