[orca] Chromium: Don't speak child position for popup menus
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Chromium: Don't speak child position for popup menus
- Date: Fri, 3 Apr 2020 17:04:25 +0000 (UTC)
commit 084ab43ecb31c8319ddcd29dffe181b6dffb160f
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri Apr 3 13:01:48 2020 -0400
Chromium: Don't speak child position for popup menus
Popup menus for some reason live in a menu bar. This was causing us to
speak "1 of 1" each time a popup menu was announced and speak child
position enabled.
src/orca/script_utilities.py | 6 ++++++
src/orca/scripts/toolkits/Chromium/script_utilities.py | 6 ++++++
src/orca/speech_generator.py | 3 +--
3 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index b719ddc66..056496cc5 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -3982,6 +3982,12 @@ class Utilities:
return obj.parent and obj.parent.getRole() in self._contextMenuParentRoles()
+ def isTopLevelMenu(self, obj):
+ if obj.getRole() == pyatspi.ROLE_MENU:
+ return obj.parent == self.topLevelObject(obj)
+
+ return False
+
def isEntryCompletionPopupItem(self, obj):
return False
diff --git a/src/orca/scripts/toolkits/Chromium/script_utilities.py
b/src/orca/scripts/toolkits/Chromium/script_utilities.py
index e7e3a364b..d82375004 100644
--- a/src/orca/scripts/toolkits/Chromium/script_utilities.py
+++ b/src/orca/scripts/toolkits/Chromium/script_utilities.py
@@ -241,6 +241,12 @@ class Utilities(web.Utilities):
return False
+ def isTopLevelMenu(self, obj):
+ if obj.getRole() == pyatspi.ROLE_MENU:
+ return self.isFrameForPopupMenu(self.topLevelObject(obj))
+
+ return False
+
def popupMenuForFrame(self, obj):
if not self.isFrameForPopupMenu(obj):
return None
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 25713200a..8e1f7ebd0 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -2199,8 +2199,7 @@ class SpeechGenerator(generator.Generator):
or args.get('forceList', False)):
return []
- if obj.getRole() == pyatspi.ROLE_MENU \
- and obj.parent == self._script.utilities.topLevelObject(obj):
+ if self._script.utilities.isTopLevelMenu(obj):
return []
if self._script.utilities.isEditableComboBox(obj):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]