[orca] Prevent double-speaking of link ancestor of image during SayAll
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [orca] Prevent double-speaking of link ancestor of image during SayAll
- Date: Wed,  3 Jul 2019 17:41:49 +0000 (UTC)
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]