[orca] Don't allow pseudo elements to have caret context
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Don't allow pseudo elements to have caret context
- Date: Fri, 10 May 2019 19:33:11 +0000 (UTC)
commit 086487be2a355170d9a18c35517ade179e9fb2b8
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri May 10 21:30:57 2019 +0200
Don't allow pseudo elements to have caret context
src/orca/scripts/toolkits/Chromium/script_utilities.py | 18 ++++++++++++++++++
src/orca/scripts/web/script_utilities.py | 7 +++++++
2 files changed, 25 insertions(+)
---
diff --git a/src/orca/scripts/toolkits/Chromium/script_utilities.py
b/src/orca/scripts/toolkits/Chromium/script_utilities.py
index 6a2b74b78..953d52ee4 100644
--- a/src/orca/scripts/toolkits/Chromium/script_utilities.py
+++ b/src/orca/scripts/toolkits/Chromium/script_utilities.py
@@ -44,10 +44,12 @@ class Utilities(web.Utilities):
def __init__(self, script):
super().__init__(script)
self._isStaticTextLeaf = {}
+ self._isPseudoElement = {}
def clearCachedObjects(self):
super().clearCachedObjects()
self._isStaticTextLeaf = {}
+ self._isPseudoElement = {}
def isStaticTextLeaf(self, obj):
if not (obj and self.inDocumentContent(obj)):
@@ -66,6 +68,22 @@ class Utilities(web.Utilities):
self._isStaticTextLeaf[hash(obj)] = rv
return rv
+ def isPseudoElement(self, obj):
+ if not (obj and self.inDocumentContent(obj)):
+ return super().isPseudoElement(obj)
+
+ rv = self._isPseudoElement.get(hash(obj))
+ if rv is not None:
+ return rv
+
+ rv = self._getTag(obj) in ["<pseudo:before>", "<pseudo:after>"]
+ if rv:
+ msg = "CHROMIUM: %s believed to be pseudo element" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
+
+ self._isPseudoElement[hash(obj)] = rv
+ return rv
+
def selectedChildCount(self, obj):
count = super().selectedChildCount(obj)
if count or "Selection" in pyatspi.listInterfaces(obj):
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index b00118f66..7a9eda345 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -3666,9 +3666,16 @@ class Utilities(script_utilities.Utilities):
msg = "WEB: Parent of null child cannot have caret context %s" % obj
debug.println(debug.LEVEL_INFO, msg, True)
return False
+ if self.isPseudoElement(obj):
+ msg = "WEB: Pseudo element cannot have caret context %s" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return False
return True
+ def isPseudoElement(self, obj):
+ return False
+
def searchForCaretContext(self, obj):
contextObj, contextOffset = None, -1
while obj:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]