[orca] Chromium: Work around unexpected roles for ARIA combo box descendants



commit 66bef40934baf3e88ddc5e9448c88973ad385088
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Mon Jul 1 17:27:49 2019 -0400

    Chromium: Work around unexpected roles for ARIA combo box descendants

 src/orca/scripts/toolkits/Chromium/speech_generator.py | 10 ++++++++++
 1 file changed, 10 insertions(+)
---
diff --git a/src/orca/scripts/toolkits/Chromium/speech_generator.py 
b/src/orca/scripts/toolkits/Chromium/speech_generator.py
index ded1b689c..3de1e6496 100644
--- a/src/orca/scripts/toolkits/Chromium/speech_generator.py
+++ b/src/orca/scripts/toolkits/Chromium/speech_generator.py
@@ -54,6 +54,16 @@ class SpeechGenerator(web.SpeechGenerator):
 
         return super()._generateNewAncestors(obj, **args)
 
+    def _generateListBoxItemWidgets(self, obj, **args):
+        # The the list which descends from a combobox should be a menu, and its children
+        # menuitems. We can remove this once that change is made in Chromium.
+        if pyatspi.findAncestor(obj, lambda x: x and x.getRole() == pyatspi.ROLE_COMBO_BOX):
+            msg = "CHROMIUM: Not generating listbox item widgets for combobox child %s" % obj
+            debug.println(debug.LEVEL_INFO, msg, True)
+            return []
+
+        return super()._generateListBoxItemWidgets(obj, **args)
+
     def generateSpeech(self, obj, **args):
         if self._script.utilities.inDocumentContent(obj):
             return super().generateSpeech(obj, **args)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]