[orca] Prevent double-speaking of link ancestor of image during SayAll



commit 0a922f5b46e24ae110fe890218e73dc9f0491e81
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Jul 3 13:41:26 2019 -0400

    Prevent double-speaking of link ancestor of image during SayAll

 src/orca/scripts/web/script.py           |  3 +++
 src/orca/scripts/web/script_utilities.py | 12 ++++++++++++
 2 files changed, 15 insertions(+)
---
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index a3b0bfe40..2c6febae2 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -599,6 +599,9 @@ class Script(default.Script):
                 if self.utilities.isLabellingContents(obj):
                     continue
 
+                if self.utilities.isLinkAncestorOfImageInContents(obj, contents):
+                    continue
+
                 utterances = self.speechGenerator.generateContents(
                     [content], eliminatePauses=True, priorObj=priorObj)
                 priorObj = obj
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 280f9ac84..a60c6d6ac 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -2754,6 +2754,18 @@ class Utilities(script_utilities.Utilities):
         self._labelTargets[hash(obj)] = rv
         return rv
 
+    def isLinkAncestorOfImageInContents(self, link, contents):
+        if not self.isLink(link):
+            return False
+
+        for obj, start, end, string in contents:
+            if obj.getRole() != pyatspi.ROLE_IMAGE:
+                continue
+            if pyatspi.findAncestor(obj, lambda x: x == link):
+                return True
+
+        return False
+
     def isInferredLabelForContents(self, content, contents):
         obj, start, end, string = content
         objs = list(filter(self.shouldInferLabelFor, [x[0] for x in contents]))


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