[orca] Web: Don't search for caret context in a hidden element



commit 1eccf6fc0066387eada3721970c487d4bf1637ce
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Mon Apr 19 15:22:00 2021 +0200

    Web: Don't search for caret context in a hidden element
    
    If an element is hidden, it and all of its descendants cannot have
    the caret context. So there's no point in searching there.
    
    In addition, this *may* fix an instance of infinite recursion in
    which we try to recover from the focused accessible element being
    removed as a side effect of its parent becoming hidden.

 src/orca/scripts/web/script_utilities.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 0d2133da4..d159ff373 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -4688,6 +4688,9 @@ class Utilities(script_utilities.Utilities):
         return False
 
     def searchForCaretContext(self, obj):
+        msg = "WEB: Searching for caret context in %s" % obj
+        debug.println(debug.LEVEL_INFO, msg, True)
+
         container = obj
         contextObj, contextOffset = None, -1
         while obj:
@@ -4705,7 +4708,7 @@ class Utilities(script_utilities.Utilities):
                 else:
                     break
 
-        if contextObj:
+        if contextObj and not self.isHidden(contextObj):
             return self.findNextCaretInOrder(contextObj, max(-1, contextOffset - 1))
 
         if self.isDocument(container):
@@ -4896,6 +4899,8 @@ class Utilities(script_utilities.Utilities):
             self.setCaretContext(obj, offset)
             return True
 
+        msg = "WEB: Unable to find context for child removed from %s" % event.source
+        debug.println(debug.LEVEL_INFO, msg, True)
         return False
 
     def findContextReplicant(self, documentFrame=None, matchRole=True, matchName=True):


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