[orca] Create 'ancestor' formatType for presentation of objects
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Create 'ancestor' formatType for presentation of objects
- Date: Thu, 30 Jun 2022 11:59:54 +0000 (UTC)
commit 78cba905509f07a359e40c49c18c97ba64ea2816
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Thu Jun 30 13:40:58 2022 +0200
Create 'ancestor' formatType for presentation of objects
The 'focused' formatType has been serving dual purposes, specifying
what to present when the object is already focused and something
changed and what to present about an ancestor of a newly focused
object. This approach was likely done because the information in
both cases is expected to be minimal, and the set of roles for
which we might want distinct already-focused info and as-ancestor
info small to non-existent.
It turns out that small may be true; non-existent isn't. Consider focus
changing among items (e.g. links) descending from ARIA gridcells. If the
column changes, we want to include some of the new cell/column info. And
that info will be different from what we present when some state
changes in the currently-focused Gtk table cell.
This commit merely adds the capability of an ancestor formatType
because having it makes sense in general. It falls back on the focused
formatType, so no end-user-observable behavior should result from this
commit. A subsequent commit will use this new formatType to solve the
aforementioned table cell problem. And as other such instances become
noticed, we can start decoupling "focused" from "ancestor."
See issue #253.
src/orca/formatting.py | 9 +++++++++
src/orca/speech_generator.py | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
---
diff --git a/src/orca/formatting.py b/src/orca/formatting.py
index c6a0935e2..428d61d6a 100644
--- a/src/orca/formatting.py
+++ b/src/orca/formatting.py
@@ -112,18 +112,21 @@ formatting = {
'speech': {
'prefix': {
+ 'ancestor': '[]',
'focused': 'detailsFor',
'unfocused': 'oldAncestors + newAncestors',
'basicWhereAmI': 'toolbar',
'detailedWhereAmI' : '[]'
},
'suffix': {
+ 'ancestor': '[]',
'focused': '[]',
'unfocused': 'newNodeLevel + unselectedCell + clickable + pause + hasLongDesc + hasDetails +
detailsFor +' + TUTORIAL + ' + description + pause + hasPopup',
'basicWhereAmI': TUTORIAL + ' + clickable + hasLongDesc + description + pause + hasPopup + pause
+ detailsFor + pause + allDetails',
'detailedWhereAmI': TUTORIAL + ' + clickable + hasLongDesc + description + pause + hasPopup +
detailsFor + pause + allDetails'
},
'default': {
+ 'ancestor': '[]',
'focused': '[]',
'unfocused': 'labelOrName + roleName + availability + ' + MNEMONIC + ' + accelerator +
childWidget',
'basicWhereAmI': 'labelOrName + roleName',
@@ -1072,6 +1075,12 @@ class Formatting(dict):
except:
pass
+ if args.get('formatType') == 'ancestor':
+ try:
+ return self[args['mode']][args['role']]['focused']
+ except:
+ pass
+
if args.get('formatType') == 'detailedWhereAmI':
try:
return self[args['mode']][args['role']]['basicWhereAmI']
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 40d116727..2eeeac999 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -2111,7 +2111,7 @@ class SpeechGenerator(generator.Generator):
presentedRoles.append(altRole)
count = ancestorRoles.count(altRole)
self._overrideRole(altRole, args)
- result.append(self.generate(x, formatType='focused', role=altRole, leaving=leaving, count=count,
+ result.append(self.generate(x, formatType='ancestor', role=altRole, leaving=leaving, count=count,
ancestorOf=obj, priorObj=priorObj))
self._restoreRole(altRole, args)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]