OSDN Git Service

NVDAObjects.IAccessible.MSHTML.MSHTML object's findOverlayClasses: handle case, when...
authorAleksey Sadovoy <lex@onm.su>
Wed, 2 Feb 2011 19:20:56 +0000 (21:20 +0200)
committerAleksey Sadovoy <lex@onm.su>
Wed, 2 Feb 2011 19:20:56 +0000 (21:20 +0200)
Fixes #974.

Fixes #974.

source/NVDAObjects/IAccessible/MSHTML.py

index 9eb3615..4980c7b 100644 (file)
@@ -324,12 +324,17 @@ class MSHTML(IAccessible):
        def findOverlayClasses(self,clsList):\r
                if self.TextInfo == MSHTMLTextInfo:\r
                        clsList.append(EditableTextWithoutAutoSelectDetection)\r
-               nodeName = self.HTMLNode.nodeName\r
-               if nodeNamesToNVDARoles.get(nodeName) == controlTypes.ROLE_DOCUMENT:\r
-                       clsList.append(Body)\r
-               elif nodeName == "OBJECT":\r
-                       clsList.append(Object)\r
-\r
+               #fix for #974\r
+               #this fails on some control in vs2008 new project wizard\r
+               try:\r
+                       nodeName = self.HTMLNode.nodeName\r
+               except COMError:\r
+                       pass\r
+               else:\r
+                       if nodeNamesToNVDARoles.get(nodeName) == controlTypes.ROLE_DOCUMENT:\r
+                               clsList.append(Body)\r
+                       elif nodeName == "OBJECT":\r
+                               clsList.append(Object)\r
                clsList.append(MSHTML)\r
                if not self.HTMLNodeHasAncestorIAccessible:\r
                        # The IAccessibleObject is for this node (not an ancestor), so IAccessible overlay classes are relevant.\r