[orca] Chromium: Suppress rolename for child of collapsed select element
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Chromium: Suppress rolename for child of collapsed select element
- Date: Tue, 30 Jul 2019 20:18:13 +0000 (UTC)
commit 7c81e89007c57bb4f64e617146a8dc8e866bf38e
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Jul 30 16:17:19 2019 -0400
Chromium: Suppress rolename for child of collapsed select element
.../scripts/toolkits/Chromium/script_utilities.py | 29 ++++++++++++++++------
src/orca/scripts/web/script_utilities.py | 3 +++
src/orca/scripts/web/speech_generator.py | 2 ++
3 files changed, 26 insertions(+), 8 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Chromium/script_utilities.py
b/src/orca/scripts/toolkits/Chromium/script_utilities.py
index 72964e516..d8fd8b8f3 100644
--- a/src/orca/scripts/toolkits/Chromium/script_utilities.py
+++ b/src/orca/scripts/toolkits/Chromium/script_utilities.py
@@ -174,6 +174,26 @@ class Utilities(web.Utilities):
return not self.selectedChildCount(obj)
+ def isMenuInCollapsedSelectElement(self, obj):
+ try:
+ role = obj.getRole()
+ except:
+ msg = "CHROMIUM: Exception getting role for %s" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return False
+
+ if role != pyatspi.ROLE_MENU or self._getTag(obj.parent) != 'select':
+ return False
+
+ try:
+ parentState = obj.parent.getState()
+ except:
+ msg = "CHROMIUM: Exception getting state for %s" % obj.parent
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return False
+
+ return not parentState.contains(pyatspi.STATE_EXPANDED)
+
def treatAsMenu(self, obj):
if not obj:
return False
@@ -375,14 +395,7 @@ class Utilities(web.Utilities):
if not super().isHidden(obj):
return False
- try:
- role = obj.getRole()
- except:
- msg = "CHROMIUM: Exception getting role for %s" % obj
- debug.println(debug.LEVEL_INFO, msg, True)
- return True
-
- if role == pyatspi.ROLE_MENU and self._getTag(obj.parent) == 'select':
+ if self.isMenuInCollapsedSelectElement(obj):
return False
return True
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 99dfa813a..a8551b0c0 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -2563,6 +2563,9 @@ class Utilities(script_utilities.Utilities):
self._isLabelDescendant[hash(obj)] = rv
return rv
+ def isMenuInCollapsedSelectElement(self, obj):
+ return False
+
def isMenuDescendant(self, obj):
if not obj:
return False
diff --git a/src/orca/scripts/web/speech_generator.py b/src/orca/scripts/web/speech_generator.py
index 83548b213..5bb9c3f60 100644
--- a/src/orca/scripts/web/speech_generator.py
+++ b/src/orca/scripts/web/speech_generator.py
@@ -357,6 +357,8 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
doNotSpeak.append(obj.getRole())
if total > 1:
doNotSpeak.append(pyatspi.ROLE_ROW_HEADER)
+ if self._script.utilities.isMenuInCollapsedSelectElement(obj):
+ doNotSpeak.append(pyatspi.ROLE_MENU)
if obj.getState().contains(pyatspi.STATE_EDITABLE):
lastKey, mods = self._script.utilities.lastKeyAndModifiers()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]