[orca] Improve presentation of Roundcube Mail's list of messages



commit a9fa27fa3f1b4933855e1c24d85f40e6b1eb5a3b
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Sat Aug 6 10:52:30 2016 -0400

    Improve presentation of Roundcube Mail's list of messages

 src/orca/scripts/web/braille_generator.py |   14 ++++++++++++++
 src/orca/scripts/web/speech_generator.py  |   14 ++++++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/web/braille_generator.py b/src/orca/scripts/web/braille_generator.py
index 4aab94a..bcdecea 100644
--- a/src/orca/scripts/web/braille_generator.py
+++ b/src/orca/scripts/web/braille_generator.py
@@ -139,6 +139,20 @@ class BrailleGenerator(braille_generator.BrailleGenerator):
 
         return result
 
+    def _generateTableCellRow(self, obj, **args):
+        if not self._script.utilities.inDocumentContent(obj):
+            return super()._generateTableCellRow(obj, **args)
+
+        if not self._script.utilities.shouldReadFullRow(obj):
+            return self._generateRealTableCell(obj, **args)
+
+        isRow = lambda x: x and x.getRole() == pyatspi.ROLE_TABLE_ROW
+        row = pyatspi.findAncestor(obj, isRow)
+        if row and row.name:
+            return self.generate(row, includeContext=False)
+
+        return super()._generateTableCellRow(obj, **args)
+
     def generateBraille(self, obj, **args):
         result = []
 
diff --git a/src/orca/scripts/web/speech_generator.py b/src/orca/scripts/web/speech_generator.py
index 49a2055..6d2ea4b 100644
--- a/src/orca/scripts/web/speech_generator.py
+++ b/src/orca/scripts/web/speech_generator.py
@@ -430,6 +430,20 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
         result.extend(self.voice(speech_generator.SYSTEM))
         return result
 
+    def _generateTableCellRow(self, obj, **args):
+        if not self._script.utilities.inDocumentContent(obj):
+            return super()._generateTableCellRow(obj, **args)
+
+        if not self._script.utilities.shouldReadFullRow(obj):
+            return self._generateRealTableCell(obj, **args)
+
+        isRow = lambda x: x and x.getRole() == pyatspi.ROLE_TABLE_ROW
+        row = pyatspi.findAncestor(obj, isRow)
+        if row and row.name:
+            return self.generate(row)
+
+        return super()._generateTableCellRow(obj, **args)
+
     def generateSpeech(self, obj, **args):
         if not self._script.utilities.inDocumentContent(obj):
             msg = "WEB: %s is not in document content. Calling default speech generator." % obj


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]