[orca] Fall back on gridcell name when generating name for nameless checkboxes
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Fall back on gridcell name when generating name for nameless checkboxes
- Date: Mon, 30 Nov 2020 14:00:44 +0000 (UTC)
commit 57c96a7c3eb04d7fc0a8fb1ee6150e892e8513b6
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Mon Nov 30 14:59:57 2020 +0100
Fall back on gridcell name when generating name for nameless checkboxes
According to the ARIA spec, checkboxes are supposed to have a name.
But if the author fails to provide a name, and we're in a gridcell,
that gridcell might have presentable content. This is needed, for
example, in the Chromium history list where focus goes to descendants
of the gridcells and the checkbox for multi-selection lacks a name.
src/orca/scripts/web/braille_generator.py | 3 +++
src/orca/scripts/web/speech_generator.py | 4 ++++
2 files changed, 7 insertions(+)
---
diff --git a/src/orca/scripts/web/braille_generator.py b/src/orca/scripts/web/braille_generator.py
index 11cef3156..de5bdf243 100644
--- a/src/orca/scripts/web/braille_generator.py
+++ b/src/orca/scripts/web/braille_generator.py
@@ -172,6 +172,9 @@ class BrailleGenerator(braille_generator.BrailleGenerator):
result = super()._generateName(obj, **args)
if result and result[0] and not self._script.utilities.hasExplicitName(obj):
result[0] = result[0].strip()
+ elif not result and obj.getRole() == pyatspi.ROLE_CHECK_BOX:
+ gridCell = pyatspi.findAncestor(obj, self._script.utilities.isGridCell)
+ return super()._generateName(gridCell, **args)
return result
diff --git a/src/orca/scripts/web/speech_generator.py b/src/orca/scripts/web/speech_generator.py
index b8543b9da..b7f3f0434 100644
--- a/src/orca/scripts/web/speech_generator.py
+++ b/src/orca/scripts/web/speech_generator.py
@@ -341,6 +341,10 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
result.extend(self.voice(speech_generator.DEFAULT))
return result
+ if obj.getRole() == pyatspi.ROLE_CHECK_BOX:
+ gridCell = pyatspi.findAncestor(obj, self._script.utilities.isGridCell)
+ return super()._generateLabelOrName(gridCell, **args)
+
return super()._generateLabelOrName(obj, **args)
def _generateName(self, obj, **args):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]