[orca] Web: When caret context search fails in document return the document itself



commit 97ba3f89f0bda5a847682a79f73e83a6b9629a9a
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Fri Mar 19 14:03:09 2021 +0100

    Web: When caret context search fails in document return the document itself
    
    When trying to locate the caret location in a newly-loaded page, we rely
    on the accessible text interface being implemented on the document. If
    for some reason (e.g. a Firefox regression) that isn't the case, it's
    better to return the document itself. Other logic should then make it
    possible to determine what to present.

 src/orca/scripts/web/script_utilities.py | 6 ++++++
 1 file changed, 6 insertions(+)
---
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 59646a8ff..55c930891 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -4623,11 +4623,14 @@ class Utilities(script_utilities.Utilities):
         return False
 
     def searchForCaretContext(self, obj):
+        container = obj
         contextObj, contextOffset = None, -1
         while obj:
             try:
                 offset = obj.queryText().caretOffset
             except:
+                msg = "WEB: Exception getting caret offset of %s" % obj
+                debug.println(debug.LEVEL_INFO, msg, True)
                 obj = None
             else:
                 contextObj, contextOffset = obj, offset
@@ -4640,6 +4643,9 @@ class Utilities(script_utilities.Utilities):
         if contextObj:
             return self.findNextCaretInOrder(contextObj, max(-1, contextOffset - 1))
 
+        if self.isDocument(container):
+            return container, 0
+
         return None, -1
 
     def _getCaretContextViaLocusOfFocus(self):


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