[orca] Updated regression tests based on FF 4 and current ARIA demos in Ubuntu Maverick.



commit fe6436d920645a8e5cba3cdce27141319498de7b
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Wed Jul 21 17:53:48 2010 -0400

    Updated regression tests based on FF 4 and current ARIA demos in Ubuntu Maverick.

 test/harness/orca-customizations.py.in             |    2 +-
 test/keystrokes/firefox/bug_512303.py              |    6 +-
 test/keystrokes/firefox/bug_552887a.py             |  195 ++++---
 test/keystrokes/firefox/bug_568631.py              |    6 +-
 test/keystrokes/firefox/bug_568768.py              |    4 +-
 test/keystrokes/firefox/bug_589455.py              |   24 +-
 test/keystrokes/firefox/codetalks_alert.py         |   29 +-
 test/keystrokes/firefox/codetalks_button.py        |   16 +-
 test/keystrokes/firefox/codetalks_panel_text.py    |   60 +-
 test/keystrokes/firefox/codetalks_tree.py          |   32 +-
 test/keystrokes/firefox/codetalks_treegrid.py      |   42 +-
 test/keystrokes/firefox/dojo_bug_570566.py         |   41 +-
 test/keystrokes/firefox/dojo_button.py             |  630 +++++++++++---------
 test/keystrokes/firefox/dojo_checkbox.py           |   37 +-
 .../keystrokes/firefox/flat_review_text_by_line.py |    6 +-
 test/keystrokes/firefox/html_role_combo_box.py     |   41 +-
 test/keystrokes/firefox/html_role_links.py         |    9 +-
 test/keystrokes/firefox/html_role_lists.py         |    2 +
 .../firefox/html_struct_nav_blockquote.py          |   10 +-
 .../firefox/html_struct_nav_bug_554616.py          |   58 +-
 .../firefox/html_struct_nav_bug_556470.py          |   22 +-
 .../firefox/html_struct_nav_bug_567984.py          |    7 +-
 .../firefox/html_struct_nav_bug_591592.py          |    4 +-
 .../firefox/html_struct_nav_large_obj.py           |  150 +++---
 .../firefox/html_struct_nav_list_item.py           |   10 +-
 test/keystrokes/firefox/html_struct_nav_lists.py   |   12 +-
 test/keystrokes/firefox/label_guess_bug_546815.py  |    4 +-
 test/keystrokes/firefox/line_nav_bug_555055.py     |   42 +-
 test/keystrokes/firefox/line_nav_bug_592383.py     |    6 +-
 .../keystrokes/firefox/line_nav_bugzilla_search.py |   31 +-
 test/keystrokes/firefox/line_nav_empty_anchor.py   |   38 +-
 .../keystrokes/firefox/line_nav_heading_section.py |    2 +
 test/keystrokes/firefox/line_nav_nested_tables.py  |   20 +-
 test/keystrokes/firefox/line_nav_simple_form.py    |    5 +-
 34 files changed, 891 insertions(+), 712 deletions(-)
---
diff --git a/test/harness/orca-customizations.py.in b/test/harness/orca-customizations.py.in
index ffa2d9a..f251981 100644
--- a/test/harness/orca-customizations.py.in
+++ b/test/harness/orca-customizations.py.in
@@ -19,4 +19,4 @@ orca.settings.commFailureAttemptLimit = 0
 
 import orca.scripts.toolkits.Gecko
 orca.scripts.toolkits.Gecko.sayAllOnLoad = False
-orca.scripts.toolkits.Gecko.script_settings.grabFocusOnAncestor = True
+orca.scripts.toolkits.Gecko.script_settings.grabFocusOnAncestor = False
diff --git a/test/keystrokes/firefox/bug_512303.py b/test/keystrokes/firefox/bug_512303.py
index 9688cde..93df8b7 100644
--- a/test/keystrokes/firefox/bug_512303.py
+++ b/test/keystrokes/firefox/bug_512303.py
@@ -33,6 +33,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BRAILLE LINE:  'Below is a table, with some sample table data'",
      "     VISIBLE:  'Below is a table, with some samp', cursor=1",
+     "BRAILLE LINE:  'Below is a table, with some sample table data'",
+     "     VISIBLE:  'Below is a table, with some samp', cursor=1",
      "SPEECH OUTPUT: 'Below is a table, with some sample table data'"]))
 
 ########################################################################
@@ -52,7 +54,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'col1 col2 col3'",
      "     VISIBLE:  'col1 col2 col3', cursor=1",
-     "SPEECH OUTPUT: 'col1 col2 col3'"]))
+     "SPEECH OUTPUT: 'col1 column header col2 column header col3 column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -119,7 +121,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'col1 col2 col3'",
      "     VISIBLE:  'col1 col2 col3', cursor=1",
-     "SPEECH OUTPUT: 'col1 col2 col3'"]))
+     "SPEECH OUTPUT: 'col1 column header col2 column header col3 column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/bug_552887a.py b/test/keystrokes/firefox/bug_552887a.py
index 9681b23..ec39c6f 100644
--- a/test/keystrokes/firefox/bug_552887a.py
+++ b/test/keystrokes/firefox/bug_552887a.py
@@ -32,25 +32,24 @@ sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BUG? - In this test, the text is extremely small and probably appears to be on the same line, so we're speaking more than we should be",
-     "BRAILLE LINE:  'Line 1'",
-     "     VISIBLE:  'Line 1', cursor=1",
-     "SPEECH OUTPUT: '",
-     " Line 1",
+     "BRAILLE LINE:  'Line 1 Line 2 h2'",
+     "     VISIBLE:  'Line 1 Line 2 h2', cursor=1",
+     "SPEECH OUTPUT: 'Line 1",
      " Line 2",
      " heading level 2'"]))
 
 ########################################################################
 # Down Arrow to the bottom.
 #
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "1. Line Down",
-    ["BRAILLE LINE:  'Line 1 Line 2 h2'",
-     "     VISIBLE:  'Line 1 Line 2 h2', cursor=14",
-     "SPEECH OUTPUT: 'Line 1",
-     " Line 2",
-     " heading level 2'"]))
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "1. Line Down",
+#    ["BRAILLE LINE:  'Line 1 Line 2 h2'",
+#     "     VISIBLE:  'Line 1 Line 2 h2', cursor=14",
+#     "SPEECH OUTPUT: 'Line 1",
+#     " Line 2",
+#     " heading level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -73,58 +72,73 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
-    ["BRAILLE LINE:  'The Orca logo Image'",
+    ["BUG? - Now we are treating what used to be several lines as one line/the image name. Why? Seems to be a Firefox 4.0 thing.",
+     "BRAILLE LINE:  'The Orca logo Image'",
      "     VISIBLE:  'The Orca logo Image', cursor=1",
-     "SPEECH OUTPUT: 'The Orca logo link image ",
-     " link image"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "5. Line Down",
-    ["BRAILLE LINE:  'Can an Orca really hold a'",
-     "     VISIBLE:  'Can an Orca really hold a', cursor=1",
-     "SPEECH OUTPUT: 'Can an Orca really hold a'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "6. Line Down",
-    ["BRAILLE LINE:  'white cane? (And why'",
-     "     VISIBLE:  'white cane? (And why', cursor=1",
-     "SPEECH OUTPUT: 'white cane? (And why'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "7. Line Down",
-    ["BRAILLE LINE:  'aren't we speaking this'",
-     "     VISIBLE:  'aren't we speaking this', cursor=1",
-     "SPEECH OUTPUT: 'aren't we speaking this'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "8. Line Down",
-    ["BRAILLE LINE:  'text?'",
-     "     VISIBLE:  'text?', cursor=1",
-     "SPEECH OUTPUT: 'text?",
-     "'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "9. Line Down",
-    ["BRAILLE LINE:  ''",
+     "BRAILLE LINE:  ''",
      "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: 'blank'"]))
+     "SPEECH OUTPUT: 'The Orca logo link image ",
+                     " link image'",
+     "SPEECH OUTPUT: 'The Orca logo Can an Orca really hold a white cane? (And why aren't we speaking this text? link image'"]))
+
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "4. Line Down",
+#    ["BRAILLE LINE:  'The Orca logo Image'",
+#     "     VISIBLE:  'The Orca logo Image', cursor=1",
+#     "BRAILLE LINE:  ''",
+#     "     VISIBLE:  '', cursor=0",
+#     "SPEECH OUTPUT: 'The Orca logo link image ",
+#     " link image'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "5. Line Down",
+#    ["BRAILLE LINE:  'Can an Orca really hold a'",
+#     "     VISIBLE:  'Can an Orca really hold a', cursor=1",
+#     "SPEECH OUTPUT: 'Can an Orca really hold a'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "6. Line Down",
+#    ["BRAILLE LINE:  'white cane? \(And why'",
+#     "     VISIBLE:  'white cane? \(And why', cursor=1",
+#     "SPEECH OUTPUT: 'white cane? \(And why'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "7. Line Down",
+#    ["BRAILLE LINE:  'aren't we speaking this'",
+#     "     VISIBLE:  'aren't we speaking this', cursor=1",
+#     "SPEECH OUTPUT: 'aren't we speaking this'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "8. Line Down",
+#    ["BRAILLE LINE:  'text?'",
+#     "     VISIBLE:  'text?', cursor=1",
+#     "SPEECH OUTPUT: 'text?",
+#     "'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(utils.AssertPresentationAction(
+#    "9. Line Down",
+#    ["BRAILLE LINE:  ''",
+#     "     VISIBLE:  '', cursor=0",
+#     "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
     ["BRAILLE LINE:  'This text comes before the box section'",
-     "     VISIBLE:  'xt comes before the box section', cursor=32",
+     "     VISIBLE:  'This text comes before the box s', cursor=1",
      "SPEECH OUTPUT: 'This text comes before the box section",
      "'"]))
 
@@ -164,17 +178,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "15. Line Down",
-    ["BRAILLE LINE:  'This text comes after the'",
-     "     VISIBLE:  'This text comes after the', cursor=1",
-     "SPEECH OUTPUT: 'This text comes after the'"]))
+    ["BRAILLE LINE:  'This text comes after'",
+     "     VISIBLE:  'This text comes after', cursor=1",
+     "SPEECH OUTPUT: 'This text comes after'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "16. Line Down",
-    ["BRAILLE LINE:  'box section.'",
-     "     VISIBLE:  'box section.', cursor=1",
-     "SPEECH OUTPUT: 'box section.",
+    ["BRAILLE LINE:  'the box section.'",
+     "     VISIBLE:  'the box section.', cursor=1",
+     "SPEECH OUTPUT: 'the box section.",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -198,18 +212,18 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Line Up",
-    ["BRAILLE LINE:  'box section.'",
-     "     VISIBLE:  'box section.', cursor=1",
-     "SPEECH OUTPUT: 'box section.",
+    ["BRAILLE LINE:  'the box section.'",
+     "     VISIBLE:  'the box section.', cursor=1",
+     "SPEECH OUTPUT: 'the box section.",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Up",
-    ["BRAILLE LINE:  'This text comes after the'",
-     "     VISIBLE:  'This text comes after the', cursor=1",
-     "SPEECH OUTPUT: 'This text comes after the'"]))
+    ["BRAILLE LINE:  'This text comes after'",
+     "     VISIBLE:  'This text comes after', cursor=1",
+     "SPEECH OUTPUT: 'This text comes after'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -256,34 +270,43 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
-    ["BRAILLE LINE:  'text?'",
-     "     VISIBLE:  'text?', cursor=1",
-     "SPEECH OUTPUT: 'text?",
-     "'"]))
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Up",
-    ["BRAILLE LINE:  'aren't we speaking this'",
-     "     VISIBLE:  'aren't we speaking this', cursor=1",
-     "SPEECH OUTPUT: 'aren't we speaking this'"]))
+    ["BRAILLE LINE:  'speaking this text?'",
+     "     VISIBLE:  'speaking this text?', cursor=1",
+     "SPEECH OUTPUT: 'speaking this text?",
+     " ",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "9a. Line Up",
+    ["BRAILLE LINE:  'why aren't we'",
+     "     VISIBLE:  'why aren't we', cursor=1",
+     "SPEECH OUTPUT: 'why aren't we'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Up",
-    ["BRAILLE LINE:  'white cane? (And why'",
-     "     VISIBLE:  'white cane? (And why', cursor=1",
-     "SPEECH OUTPUT: 'white cane? (And why'"]))
+    ["BRAILLE LINE:  'a white cane? (And'",
+     "     VISIBLE:  'a white cane? (And', cursor=1",
+     "SPEECH OUTPUT: 'a white cane? (And'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
-    ["BRAILLE LINE:  'Can an Orca really hold a'",
-     "     VISIBLE:  'Can an Orca really hold a', cursor=1",
-     "SPEECH OUTPUT: 'Can an Orca really hold a'"]))
+    ["BRAILLE LINE:  'Can an Orca really hold'",
+     "     VISIBLE:  'Can an Orca really hold', cursor=1",
+     "SPEECH OUTPUT: 'Can an Orca really hold'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -301,14 +324,14 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'The Orca logo Image'",
      "     VISIBLE:  'The Orca logo Image', cursor=1",
      "SPEECH OUTPUT: 'The Orca logo link image ",
-     " link image"]))
+     " link image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=1",
+     "     VISIBLE:  '', cursor=0",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -334,7 +357,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "17. Line Up",
-    [""]))
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
+     "SPEECH OUTPUT: 'blank'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/bug_568631.py b/test/keystrokes/firefox/bug_568631.py
index a37e4af..72712ff 100644
--- a/test/keystrokes/firefox/bug_568631.py
+++ b/test/keystrokes/firefox/bug_568631.py
@@ -45,7 +45,7 @@ sequence.append(utils.AssertPresentationAction(
 # This assertion isn't even necessary as we actually care about what
 # comes after we press Return.
 #
-for i in range(25):
+for i in range(24):
     sequence.append(KeyComboAction("Tab", 1000))
 
 # Just a little extra wait to let some events get through.
@@ -77,9 +77,9 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Orca is a free, open source, flexible, extensible, and powerful assistive'",
+    ["BRAILLE LINE:  'Orca is a free, open source, flexible, extensible, and powerful'",
      "     VISIBLE:  'Orca is a free, open source, fle', cursor=1",
-     "SPEECH OUTPUT: 'Orca is a free, open source, flexible, extensible, and powerful assistive'"]))
+     "SPEECH OUTPUT: 'Orca is a free, open source, flexible, extensible, and powerful'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/bug_568768.py b/test/keystrokes/firefox/bug_568768.py
index 2f35766..56c7ab6 100644
--- a/test/keystrokes/firefox/bug_568768.py
+++ b/test/keystrokes/firefox/bug_568768.py
@@ -32,9 +32,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Orca is a free, open source, flexible, extensible, and powerful assistive'",
+    ["BRAILLE LINE:  'Orca is a free, open source, flexible, extensible, and powerful'",
      "     VISIBLE:  'Orca is a free, open source, fle', cursor=1",
-     "SPEECH OUTPUT: 'Orca is a free, open source, flexible, extensible, and powerful assistive'"]))
+     "SPEECH OUTPUT: 'Orca is a free, open source, flexible, extensible, and powerful'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/bug_589455.py b/test/keystrokes/firefox/bug_589455.py
index ea44897..c0a4fed 100644
--- a/test/keystrokes/firefox/bug_589455.py
+++ b/test/keystrokes/firefox/bug_589455.py
@@ -33,6 +33,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BRAILLE LINE:  'Here is a result:'",
      "     VISIBLE:  'Here is a result:', cursor=1",
+     "BRAILLE LINE:  'Here is a result:'",
+     "     VISIBLE:  'Here is a result:', cursor=1",
      "SPEECH OUTPUT: 'Here is a result:'"]))
 
 ########################################################################
@@ -53,15 +55,23 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "Press Return to active the link",
-    ["BRAILLE LINE:  'Loading.  Please wait.'",
-     "     VISIBLE:  'Loading.  Please wait.', cursor=0",
-     "BRAILLE LINE:  'Finished loading Links to test files.'",
-     "     VISIBLE:  'Finished loading Links to test f', cursor=0",
+    ["BUG? - With Firefox 4 it seems we don't say 'Loading. Please wait.' Perhaps we're missing an event?? Also, we're presenting the first line multiple times.",
+#    "BRAILLE LINE:  'Loading.  Please wait.'",
+#    "     VISIBLE:  'Loading.  Please wait.', cursor=0",
+     "BRAILLE LINE:  'Here are some of our local test files:'",
+     "     VISIBLE:  'Here are some of our local test ', cursor=1",
+     "BRAILLE LINE:  'Links to test files'",
+     "     VISIBLE:  'Links to test files', cursor=0",
      "BRAILLE LINE:  'Here are some of our local test files:'",
      "     VISIBLE:  'Here are some of our local test ', cursor=1",
+     "BRAILLE LINE:  'Finished loading Links to test files.'",
+     "     VISIBLE:  'Finished loading Links to test f', cursor=0",
      "BRAILLE LINE:  'Here are some of our local test files:'",
      "     VISIBLE:  'Here are some of our local test ', cursor=1",
-     "SPEECH OUTPUT: 'Loading.  Please wait.'",
+#    "SPEECH OUTPUT: 'Loading.  Please wait.'",
+     "SPEECH OUTPUT: 'Here are some of our local test files:'",
+     "SPEECH OUTPUT: 'Links to test files page'",
+     "SPEECH OUTPUT: 'Here are some of our local test files:'",
      "SPEECH OUTPUT: 'Finished loading Links to test files.'",
      "SPEECH OUTPUT: 'Here are some of our local test files:'",
      "SPEECH OUTPUT: 'â?¢ anchors.html link'",
@@ -79,9 +89,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'â?¢ slash-test.html link'",
      "SPEECH OUTPUT: 'â?¢ status-bar.html link'",
      "SPEECH OUTPUT: 'â?¢ tables.html link'",
-     "SPEECH OUTPUT: 'â?¢ textattributes.html link'",
-     "SPEECH OUTPUT: 'Here are some of our local test files:'",
-     "SPEECH OUTPUT: '100 percent'"]))
+     "SPEECH OUTPUT: 'â?¢ textattributes.html link'"]))
 
 ########################################################################
 # Close the demo
diff --git a/test/keystrokes/firefox/codetalks_alert.py b/test/keystrokes/firefox/codetalks_alert.py
index 69c26d4..e23072f 100644
--- a/test/keystrokes/firefox/codetalks_alert.py
+++ b/test/keystrokes/firefox/codetalks_alert.py
@@ -58,10 +58,11 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "Press button", 
-    ["BRAILLE LINE:  'close'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'close'",
      "     VISIBLE:  'close', cursor=1",
      "SPEECH OUTPUT: 'close link'",
-     "SPEECH OUTPUT: 'This popup is created as a div in the HTML content, rather than being created in the DOM at the time of use. The display style is changed from \"none\" to \"block\" to hide and show it. close '"]))
+     "SPEECH OUTPUT: 'This popup is created as a div in the HTML content, rather than being created in the DOM at the time of use. The display style is changed from \"none\" to \"block\" to hide and show it. close'"]))
 
 ########################################################################
 # Up Arrow from the link at the bottom to review the text.
@@ -70,7 +71,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow", 
-    ["BRAILLE LINE:  '\"none\" to \"block\" to hide and show it.'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  '\"none\" to \"block\" to hide and show it.'",
      "     VISIBLE:  '\"none\" to \"block\" to hide and sh', cursor=1",
      "SPEECH OUTPUT: '\"none\" to \"block\" to hide and show it. alert'"]))
 
@@ -78,7 +80,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. Up Arrow", 
-    ["BRAILLE LINE:  'the time of use. The display style is changed from'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'the time of use. The display style is changed from'",
      "     VISIBLE:  'the time of use. The display sty', cursor=1",
      "SPEECH OUTPUT: 'the time of use. The display style is changed from alert'"]))
 
@@ -86,7 +89,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "3. Up Arrow", 
-    ["BRAILLE LINE:  'content, rather than being created in the DOM at'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'content, rather than being created in the DOM at'",
      "     VISIBLE:  'content, rather than being creat', cursor=1",
      "SPEECH OUTPUT: 'content, rather than being created in the DOM at alert'"]))
 
@@ -94,7 +98,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Up Arrow", 
-    ["BRAILLE LINE:  'This popup is created as a div in the HTML'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'This popup is created as a div in the HTML'",
      "     VISIBLE:  'This popup is created as a div i', cursor=1",
      "SPEECH OUTPUT: 'This popup is created as a div in the HTML alert'"]))
 
@@ -105,7 +110,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. Down Arrow", 
-    ["BRAILLE LINE:  'content, rather than being created in the DOM at'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'content, rather than being created in the DOM at'",
      "     VISIBLE:  'content, rather than being creat', cursor=1",
      "SPEECH OUTPUT: 'content, rather than being created in the DOM at alert'"]))
 
@@ -113,7 +119,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Down Arrow", 
-    ["BRAILLE LINE:  'the time of use. The display style is changed from'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'the time of use. The display style is changed from'",
      "     VISIBLE:  'the time of use. The display sty', cursor=1",
      "SPEECH OUTPUT: 'the time of use. The display style is changed from alert'"]))
 
@@ -121,7 +128,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Down Arrow", 
-    ["BRAILLE LINE:  '\"none\" to \"block\" to hide and show it.'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  '\"none\" to \"block\" to hide and show it.'",
      "     VISIBLE:  '\"none\" to \"block\" to hide and sh', cursor=1",
      "SPEECH OUTPUT: '\"none\" to \"block\" to hide and show it. alert'"]))
 
@@ -129,7 +137,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Down Arrow", 
-    ["BRAILLE LINE:  'close'",
+    ["KNOWN ISSUE - A focus event went missing: https://bugzilla.mozilla.org/show_bug.cgi?id=579964";,
+     "BRAILLE LINE:  'close'",
      "     VISIBLE:  'close', cursor=1",
      "SPEECH OUTPUT: 'close link'"]))
 
diff --git a/test/keystrokes/firefox/codetalks_button.py b/test/keystrokes/firefox/codetalks_button.py
index 1416992..ea954c0 100644
--- a/test/keystrokes/firefox/codetalks_button.py
+++ b/test/keystrokes/firefox/codetalks_button.py
@@ -50,8 +50,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("Check Now", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Check Now push button",
-    ["BRAILLE LINE:  'Check Now Button Check to see if your order has been shipped.  $l'",
-     "     VISIBLE:  'Check Now Button Check to see if', cursor=1",
+    ["BRAILLE LINE:  'Check Now Button $l'",
+     "     VISIBLE:  'Check Now Button $l', cursor=1",
      "SPEECH OUTPUT: 'Check Now button'"]))
 
 ########################################################################
@@ -63,8 +63,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereamI", 
-    ["BRAILLE LINE:  'Check Now Button Check to see if your order has been shipped.  $l'",
-     "     VISIBLE:  'Check Now Button Check to see if', cursor=1",
+    ["BRAILLE LINE:  'Check Now Button $l'",
+     "     VISIBLE:  'Check Now Button $l', cursor=1",
      "SPEECH OUTPUT: 'Check Now button Check to see if your order has been shipped.'"]))
 
 ########################################################################
@@ -91,11 +91,11 @@ sequence.append(WaitForFocus("Check Now", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Dismiss dialog", 
     ["BRAILLE LINE:  '" + utils.firefoxAppNames + " Application ARIA Button - " + utils.firefoxFrameNames + " Frame'",
-     "     VISIBLE:  'ARIA Button - [3.a-zA-Z ]+', cursor=1",
-     "BRAILLE LINE:  'Check Now Button Check to see if your order has been shipped.  $l'",
-     "     VISIBLE:  'Check Now Button Check to see if', cursor=1",
+     "     VISIBLE:  'ARIA Button - " + utils.firefoxFrameNames + " Frame', cursor=1",
+     "BRAILLE LINE:  'Check Now Button $l'",
+     "     VISIBLE:  'Check Now Button $l', cursor=1",
      "SPEECH OUTPUT: 'ARIA Button - " + utils.firefoxFrameNames + " frame'",
-     "SPEECH OUTPUT: 'Check Now button text Check to see if your order has been shipped.'"]))
+     "SPEECH OUTPUT: 'Order tracking panel Check Now button'"]))
 
 ########################################################################
 # Close the demo
diff --git a/test/keystrokes/firefox/codetalks_panel_text.py b/test/keystrokes/firefox/codetalks_panel_text.py
index 1825ee2..16781b3 100644
--- a/test/keystrokes/firefox/codetalks_panel_text.py
+++ b/test/keystrokes/firefox/codetalks_panel_text.py
@@ -29,23 +29,25 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. Down Arrow", 
-    ["BUG? - Not presenting anything for the initial arrow"]))
+    ["BRAILLE LINE:  'Tab Zero Page'",
+     "     VISIBLE:  'Tab Zero Page', cursor=1",
+     "SPEECH OUTPUT: 'Tab Zero scroll pane'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Down Arrow", 
-    ["BRAILLE LINE:  'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without namespaces, which is now'",
-     "     VISIBLE:  'This example requires Firefox 3 ', cursor=4",
-     "SPEECH OUTPUT: 'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without namespaces, which is now'"]))
+    ["BRAILLE LINE:  'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without'",
+     "     VISIBLE:  'This example requires Firefox 3 ', cursor=1",
+     "SPEECH OUTPUT: 'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Down Arrow", 
-    ["BRAILLE LINE:  'the correct markup.'",
-     "     VISIBLE:  'the correct markup.', cursor=1",
-     "SPEECH OUTPUT: 'the correct markup.'"]))
+    ["BRAILLE LINE:  'namespaces, which is now the correct markup.'",
+     "     VISIBLE:  'namespaces, which is now the cor', cursor=1",
+     "SPEECH OUTPUT: 'namespaces, which is now the correct markup.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -59,17 +61,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Down Arrow", 
-    ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'",
+    ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not'",
      "     VISIBLE:  'â?¢ left and right arrows to move ', cursor=1",
-     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
+     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Down Arrow", 
-    ["BRAILLE LINE:  'tabs'",
-     "     VISIBLE:  'tabs', cursor=1",
-     "SPEECH OUTPUT: 'tabs'"]))
+    ["BRAILLE LINE:  'cycle around the tabs'",
+     "     VISIBLE:  'cycle around the tabs', cursor=1",
+     "SPEECH OUTPUT: 'cycle around the tabs'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -83,17 +85,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Down Arrow", 
-    ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'",
+    ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab'",
      "     VISIBLE:  'â?¢ ctrl-shift-pageup / ctrl-shift', cursor=1",
-     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Down Arrow", 
-    ["BRAILLE LINE:  'as a modifier so as not to conflict with the Firefox tabbing keys\)'",
-     "     VISIBLE:  'as a modifier so as not to confl', cursor=1",
-     "SPEECH OUTPUT: 'as a modifier so as not to conflict with the Firefox tabbing keys\)'"]))
+    ["BRAILLE LINE:  'order \(shift was added as a modifier so as not to conflict with the Firefox tabbing keys\)'",
+     "     VISIBLE:  'order \(shift was added as a modi', cursor=1",
+     "SPEECH OUTPUT: 'order \(shift was added as a modifier so as not to conflict with the Firefox tabbing keys\)'"]))
 
 ########################################################################
 # Up Arrow through the panel text back to the page tab.
@@ -102,9 +104,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow", 
-    ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'",
+    ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab'",
      "     VISIBLE:  'â?¢ ctrl-shift-pageup / ctrl-shift', cursor=1",
-     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -118,17 +120,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "3. Up Arrow", 
-    ["BRAILLE LINE:  'tabs'",
-     "     VISIBLE:  'tabs', cursor=1",
-     "SPEECH OUTPUT: 'tabs'"]))
+    ["BRAILLE LINE:  'cycle around the tabs'",
+     "     VISIBLE:  'cycle around the tabs', cursor=1",
+     "SPEECH OUTPUT: 'cycle around the tabs'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Up Arrow", 
-    ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'",
+    ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not'",
      "     VISIBLE:  'â?¢ left and right arrows to move ', cursor=1",
-     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
+     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -142,17 +144,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "6. Up Arrow", 
-    ["BRAILLE LINE:  'the correct markup.'",
-     "     VISIBLE:  'the correct markup.', cursor=1",
-     "SPEECH OUTPUT: 'the correct markup.'"]))
+    ["BRAILLE LINE:  'namespaces, which is now the correct markup.'",
+     "     VISIBLE:  'namespaces, which is now the cor', cursor=1",
+     "SPEECH OUTPUT: 'namespaces, which is now the correct markup.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. Up Arrow", 
-    ["BRAILLE LINE:  'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without namespaces, which is now'",
+    ["BRAILLE LINE:  'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without'",
      "     VISIBLE:  'This example requires Firefox 3 ', cursor=1",
-     "SPEECH OUTPUT: 'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without namespaces, which is now'"]))
+     "SPEECH OUTPUT: 'This example requires Firefox 3 or later to work with screen readers -- it uses ARIA properties without'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/codetalks_tree.py b/test/keystrokes/firefox/codetalks_tree.py
index d282aa7..2d7fa2e 100644
--- a/test/keystrokes/firefox/codetalks_tree.py
+++ b/test/keystrokes/firefox/codetalks_tree.py
@@ -35,12 +35,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Navigate to the tree",
-    ["BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
-     "BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
-     "SPEECH OUTPUT: 'Foods tree'",
-     "SPEECH OUTPUT: 'Fruits expanded tree level 1'"]))
+    ["BUG? - Why the double braille? 4.0 issue??",
+     "BRAILLE LINE:  'Fruits Fruits expanded ListItem'",
+     "     VISIBLE:  'Fruits Fruits expanded ListItem', cursor=1",
+     "SPEECH OUTPUT: 'Foods tree Fruits expanded tree level 1'"]))
 
 ########################################################################
 # Left Arrow to collapse fruits.
@@ -49,10 +47,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "Left Arrow to collapse fruits", 
-    ["BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
-     "BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
+    ["BRAILLE LINE:  'Fruits Fruits collapsed ListItem'",
+     "     VISIBLE:  'Fruits Fruits collapsed ListItem', cursor=1",
      "SPEECH OUTPUT: 'collapsed'"]))
 
 ########################################################################
@@ -63,8 +59,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
+    ["BRAILLE LINE:  'Fruits Fruits collapsed ListItem'",
+     "     VISIBLE:  'Fruits Fruits collapsed ListItem', cursor=1",
      "SPEECH OUTPUT: 'Fruits list item Fruits 1 of 2 collapsed tree level 1'"]))
 
 ########################################################################
@@ -74,10 +70,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "Right Arrow to expand fruits", 
-    ["BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
-     "BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
+    ["BRAILLE LINE:  'Fruits Fruits expanded ListItem'",
+     "     VISIBLE:  'Fruits Fruits expanded ListItem', cursor=1",
+     "BRAILLE LINE:  'Fruits Fruits expanded ListItem'",
+     "     VISIBLE:  'Fruits Fruits expanded ListItem', cursor=1",
      "SPEECH OUTPUT: 'expanded'"]))
 
 ########################################################################
@@ -88,8 +84,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  ' Fruits'",
-     "     VISIBLE:  ' Fruits', cursor=1",
+    ["BRAILLE LINE:  'Fruits Fruits expanded ListItem'",
+     "     VISIBLE:  'Fruits Fruits expanded ListItem', cursor=1",
      "SPEECH OUTPUT: 'Fruits list item Fruits 1 of 2 expanded tree level 1'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/codetalks_treegrid.py b/test/keystrokes/firefox/codetalks_treegrid.py
index 090efa2..58acc53 100644
--- a/test/keystrokes/firefox/codetalks_treegrid.py
+++ b/test/keystrokes/firefox/codetalks_treegrid.py
@@ -30,15 +30,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Navigate to the treegrid",
     ["KNOWN ISSUE - This output and the output of all the assertions that follow are merely designed to illustrate the current state of affairs, namely that Orca's caret navigation is not stomping on the built-in navigation of this treegrid, and to ensure that subsequent changes to Orca do not change that. This output should NOT be seen as what we think is an ideal presentation of a treegrid. See http://bugzilla.gnome.org/show_bug.cgi?id=570556 for more information.",
-#     "BRAILLE LINE:  'Selectable Grid with Text with 9 Rows Selectable Grid with Text with 9 Rows TreeTable'",
-#     "     VISIBLE:  'Selectable Grid with Text with 9', cursor=1",
-     "BRAILLE LINE:  'Title Title TreeTable'",
-     "     VISIBLE:  'Title Title TreeTable', cursor=1",
-     "BRAILLE LINE:  '+A Question of Love'",
-     "     VISIBLE:  '+A Question of Love', cursor=0",
-#     "SPEECH OUTPUT: 'Selectable Grid with Text with 9 Rows tree table'",
-     "SPEECH OUTPUT: 'Title tree table'",
-     "SPEECH OUTPUT: '+A Question of Love'"]))
+     "BRAILLE LINE:  '+A Question of Love+A Question of Love collapsed +A Question of Love'",
+     "     VISIBLE:  '+A Question of Love collapsed +A', cursor=1",
+     "SPEECH OUTPUT: 'Title tree table +A Question of Love'"]))
 
 ########################################################################
 # Down Arrow to the next two items.
@@ -74,8 +68,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. Up Arrow", 
-    ["BRAILLE LINE:  '+A Question of Love'",
-     "     VISIBLE:  '+A Question of Love', cursor=0",
+    ["BUG? - What's with the repetition in the braille? Might be a 4.0 issue?",
+     "BRAILLE LINE:  '+A Question of Love+A Question of Love collapsed +A Question of Love'",
+     "     VISIBLE:  '+A Question of Love collapsed +A', cursor=1",
      "SPEECH OUTPUT: '+A Question of Love'"]))
 
 ########################################################################
@@ -86,9 +81,9 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  '+A Question of Love'",
-     "     VISIBLE:  '+A Question of Love', cursor=0",
-     "SPEECH OUTPUT: '+A Question of Love'"]))
+    ["BRAILLE LINE:  '+A Question of Love+A Question of Love collapsed +A Question of Love'",
+     "     VISIBLE:  '+A Question of Love collapsed +A', cursor=1",
+     "SPEECH OUTPUT: 'list item +A Question of Love'"]))
 
 ########################################################################
 # Space to expand the current item.
@@ -97,10 +92,11 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "Space to expand the current item", 
-    ["BRAILLE LINE:  '+A Question of Love'",
-     "     VISIBLE:  '+A Question of Love', cursor=0",
-     "BRAILLE LINE:  '-A Question of Love'",
-     "     VISIBLE:  '-A Question of Love', cursor=0"]))
+    ["BUG? - Why aren't we also speaking this?",
+     "BRAILLE LINE:  '-A Question of Love-A Question of Love expanded -A Question of Love'",
+     "     VISIBLE:  '-A Question of Love expanded -A ', cursor=1",
+     "BRAILLE LINE:  '-A Question of Love-A Question of Love expanded -A Question of Love'",
+     "     VISIBLE:  '-A Question of Love expanded -A ', cursor=1"]))
 
 ########################################################################
 # Do a basic "Where Am I" via KP_Enter.  
@@ -110,9 +106,9 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  '-A Question of Love'",
-     "     VISIBLE:  '-A Question of Love', cursor=0",
-     "SPEECH OUTPUT: '-A Question of Love'"]))
+    ["BRAILLE LINE:  '-A Question of Love-A Question of Love expanded -A Question of Love'",
+     "     VISIBLE:  '-A Question of Love expanded -A ', cursor=1",
+     "SPEECH OUTPUT: 'list item -A Question of Love'"]))
 
 ########################################################################
 # Down Arrow to the child item.
@@ -170,8 +166,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Up Arrow back to parent", 
-    ["BRAILLE LINE:  '-A Question of Love'",
-     "     VISIBLE:  '-A Question of Love', cursor=0",
+    ["BRAILLE LINE:  '-A Question of Love-A Question of Love expanded -A Question of Love'",
+     "     VISIBLE:  '-A Question of Love expanded -A ', cursor=1",
      "SPEECH OUTPUT: '-A Question of Love'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/dojo_bug_570566.py b/test/keystrokes/firefox/dojo_bug_570566.py
index b265d3e..e583c6b 100644
--- a/test/keystrokes/firefox/dojo_bug_570566.py
+++ b/test/keystrokes/firefox/dojo_bug_570566.py
@@ -33,16 +33,10 @@ sequence.append(PauseAction(10000))
 
 ########################################################################
 # Give focus to the toolbar. The buttons may vary based on what's in
-# the clipboard, so we won't have an assertion here. The Tab and Shift
-# Tab is to force the page to finish loading. It sometimes seems to 
-# stall.
+# the clipboard, so we won't have an assertion here. The Tabbing is
+# to force the page to finish loading. It sometimes seems to stall.
 #
 sequence.append(KeyComboAction("Tab"))
-sequence.append(PauseAction(5000))
-sequence.append(KeyComboAction("<Shift>Tab"))
-sequence.append(PauseAction(5000))
-sequence.append(KeyComboAction("Tab"))
-sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus(acc_role=pyatspi.ROLE_PUSH_BUTTON))
 
@@ -55,26 +49,29 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(PauseAction(2000))
 sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow", 
+    ["BUG? - We say the text is selected here, but it's not. Firefox is lying to us.",
+     "BRAILLE LINE:  'input before editor1 $l'",
+     "     VISIBLE:  'input before editor1 $l', cursor=0",
+     "SPEECH OUTPUT: 'input before editor1'",
+     "SPEECH OUTPUT: 'selected'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(PauseAction(2000))
+sequence.append(utils.AssertPresentationAction(
+    "2. Up Arrow", 
     ["BRAILLE LINE:  'Created from div h2'",
      "     VISIBLE:  'Created from div h2', cursor=1",
      "SPEECH OUTPUT: 'Created from div heading level 2'"]))
 
-#sequence.append(utils.StartRecordingAction())
-#sequence.append(KeyComboAction("Up"))
-#sequence.append(PauseAction(2000))
-#sequence.append(utils.AssertPresentationAction(
-#    "2. Up Arrow", 
-#    ["BRAILLE LINE:  'Created from div h2'",
-#     "     VISIBLE:  'Created from div h2', cursor=1",
-#     "SPEECH OUTPUT: 'Created from div heading level 2'"]))
-
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "3. Up Arrow", 
-    ["BRAILLE LINE:  ' '",
-     "     VISIBLE:  ' ', cursor=1",
-     "SPEECH OUTPUT: ' '"]))
+    ["BUG? - The speech output sucks here.",
+     "BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "SPEECH OUTPUT: 'javascript:parent.dijit.byId(\"editor0\")._iframeSrc text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -106,7 +103,7 @@ sequence.append(utils.AssertPresentationAction(
     "7. Up Arrow", 
     ["BUG? - The braille is not ideal, nor does it jive with the speech.",
      "BRAILLE LINE:  '<x> CheckBox<x> CheckBox<x> CheckBox<x> CheckBox<x> CheckBox'",
-     "     VISIBLE:  '', cursor=1",
+     "     VISIBLE:  'CheckBox<x> CheckBox<x> CheckBox', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -115,7 +112,7 @@ sequence.append(utils.AssertPresentationAction(
     "8. Up Arrow", 
     ["BRAILLE LINE:  'Focus:<x> CheckBox Value:<x> CheckBox Change:<x> CheckBox Blur:<x> CheckBox Disabled:<x> CheckBox'",
      "     VISIBLE:  'Focus:<x> CheckBox Value:<x> Che', cursor=1",
-     "SPEECH OUTPUT: 'Focus: check box checked grayed  Value: check box checked grayed  Change: check box checked grayed  Blur: check box checked grayed  Disabled: check box checked grayed  ",
+     "SPEECH OUTPUT: 'Focus: check box checked grayed  Value: check box checked grayed  Change: check box checked grayed  Blur: check box checked grayed  Disabled: check box checked grayed ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/dojo_button.py b/test/keystrokes/firefox/dojo_button.py
index 48bd242..6c2b748 100644
--- a/test/keystrokes/firefox/dojo_button.py
+++ b/test/keystrokes/firefox/dojo_button.py
@@ -31,11 +31,10 @@ sequence.append(PauseAction(3000))
 #
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("<button>", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the <button> button", 
-    ["BRAILLE LINE:  '<button> <input type='button'> Button       Create â?? Edit! â?? Color â?? Save â??   '",
-     "     VISIBLE:  '<button> <input type='button'> B', cursor=1",
+    ["BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  '<button> <input type='button'> C', cursor=1",
      "SPEECH OUTPUT: '<button> button'"]))
 
 ########################################################################
@@ -46,8 +45,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I on <button>", 
-    ["BRAILLE LINE:  '<button> <input type='button'> Button       Create â?? Edit! â?? Color â?? Save â??   '",
-     "     VISIBLE:  '<button> <input type='button'> B', cursor=1",
+    ["BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  '<button> <input type='button'> C', cursor=1",
      "SPEECH OUTPUT: '<button> button'"]))
 
 ########################################################################
@@ -55,11 +54,11 @@ sequence.append(utils.AssertPresentationAction(
 #
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("<input type='button'>", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to <input type='button'>",
-    ["BRAILLE LINE:  '<button> <input type='button'> Button       Create â?? Edit! â?? Color â?? Save â??   '",
-     "     VISIBLE:  '<input type='button'> Button    ', cursor=1",
+    ["BUG? - Missing a space between 'Create' and 'save'",
+     "BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  '<input type='button'> Create  Vi', cursor=1",
      "SPEECH OUTPUT: '<input type='button'> button'"]))
 
 ########################################################################
@@ -70,8 +69,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I on <input type='button'>", 
-    ["BRAILLE LINE:  '<button> <input type='button'> Button       Create â?? Edit! â?? Color â?? Save â??   '",
-     "     VISIBLE:  '<input type='button'> Button    ', cursor=1",
+    ["BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  '<input type='button'> Create  Vi', cursor=1",
      "SPEECH OUTPUT: '<input type='button'> button'"]))
 
 ########################################################################
@@ -79,12 +78,11 @@ sequence.append(utils.AssertPresentationAction(
 #
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Create", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Create",
-    ["BRAILLE LINE:  'Create Button'",
-     "     VISIBLE:  'Create Button', cursor=1",
+    ["BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  'Create  View  Createsave options', cursor=1",
      "SPEECH OUTPUT: 'Create button'",
      "SPEECH OUTPUT: 'tooltip on button'"]))
 
@@ -96,8 +94,8 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I on Create", 
-    ["BRAILLE LINE:  'Create Button'",
-     "     VISIBLE:  'Create Button', cursor=1",
+    ["BRAILLE LINE:  '<button> <input type='button'> Create  View  Createsave options Menu'",
+     "     VISIBLE:  'Create  View  Createsave options', cursor=1",
      "SPEECH OUTPUT: 'Create button'"]))
 
 # WDW - Tabbing to the Create button pops up a tooltip.  Should we present
@@ -107,19 +105,15 @@ sequence.append(utils.AssertPresentationAction(
 # Tab to "View", "Create", and then the drop down menu button.
 #
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("View", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Create", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
 sequence.append(utils.AssertPresentationAction(
     "Tab to drop down menu on Create", 
-    ["BUG? - Missing space between Button and Create, also Menu and Save",
-     "BRAILLE LINE:  '<button> Button <input type='button'> ButtonCreate Button â?? MenuSave Button â?? Menu'",
-     "     VISIBLE:  'â?? MenuSave Button â?? Menu', cursor=1",
-     "SPEECH OUTPUT: 'â?? menu'"]))
+    ["BRAILLE LINE:  '<button> Button <input type='button'> Button $lsave options Menu'",
+     "     VISIBLE:  'save options Menu', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 ########################################################################
 # Do a basic "Where Am I" via KP_Enter.  
@@ -129,9 +123,9 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I on drop down menu on Create", 
-    ["BRAILLE LINE:  '<button> Button <input type='button'> ButtonCreate Button â?? MenuSave Button â?? Menu'",
-     "     VISIBLE:  'â?? MenuSave Button â?? Menu', cursor=1",
-     "SPEECH OUTPUT: 'â?? menu'"]))
+    ["BRAILLE LINE:  '<button> Button <input type='button'> Button $lsave options Menu'",
+     "     VISIBLE:  'save options Menu', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 ########################################################################
 # Open the drop down menu.
@@ -141,329 +135,404 @@ sequence.append(TypeAction(" "))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Open drop down menu on Create", 
-    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
-     "BRAILLE LINE:  'Create blank'",
-     "     VISIBLE:  'Create blank', cursor=1",
-     "BRAILLE LINE:  'Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "SPEECH OUTPUT: 'Create blank'",
-     "SPEECH OUTPUT: 'menu'"]))
+    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345. In addition, the demo is broken at the moment."]))
+#     "BRAILLE LINE:  'Create blank'",
+#     "     VISIBLE:  'Create blank', cursor=1",
+#     "BRAILLE LINE:  'Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "SPEECH OUTPUT: 'Create blank'",
+#     "SPEECH OUTPUT: 'menu'"]))
 
 ########################################################################
 # Go down a menu item.
 #
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Create from template", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Down to Create from template", 
-    ["BRAILLE LINE:  'Create from template'",
-     "     VISIBLE:  'Create from template', cursor=1",
-     "SPEECH OUTPUT: 'Create from template'"]))
-
-########################################################################
-# Do a basic "Where Am I" via KP_Enter.  
-#
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("KP_Enter"))
-sequence.append(PauseAction(3000))
-sequence.append(utils.AssertPresentationAction(
-    "Basic Where Am I on Create from template", 
-    ["BRAILLE LINE:  'Create from template'",
-     "     VISIBLE:  'Create from template', cursor=1",
-     "SPEECH OUTPUT: 'Create from template 1 of 1'"]))
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Create from template", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Down to Create from template",
+#    ["KNOWN ISSUE -- demo is broken at the moment."]))
+#     "BRAILLE LINE:  'Create from template'",
+#     "     VISIBLE:  'Create from template', cursor=1",
+#     "SPEECH OUTPUT: 'Create from template'"]))
 
 ########################################################################
 # Close the menu and go to the Edit! button
 #
-sequence.append(KeyComboAction("Escape"))
-sequence.append(WaitForFocus("â?? â?¼", acc_role=pyatspi.ROLE_PUSH_BUTTON))
+#sequence.append(KeyComboAction("Escape"))
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Edit!", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Go to Edit!", 
-    ["BUG? - Why does it say Edit! twice?",
-     "BRAILLE LINE:  'Edit! Edit! Menu'",
-     "     VISIBLE:  'Edit! Edit! Menu', cursor=1",
+    ["BRAILLE LINE:  'Edit! Color Savesave options Menu Disabled '",
+     "     VISIBLE:  'Edit! Color Savesave options Men', cursor=1",
      "SPEECH OUTPUT: 'Edit! menu'"]))
 
 ########################################################################
 # Open the Edit! menu and navigate through it.
 #
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
-sequence.append(utils.AssertPresentationAction(
-    "Open the Edit! menu", 
-    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
-     "BRAILLE LINE:  'Cut'",
-     "     VISIBLE:  'Cut', cursor=1",
-     "BRAILLE LINE:  'Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "SPEECH OUTPUT: 'Cut'",
-     "SPEECH OUTPUT: 'menu'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Copy", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Go to Copy", 
-    ["BRAILLE LINE:  'Copy'",
-     "     VISIBLE:  'Copy', cursor=1",
-     "SPEECH OUTPUT: 'Copy'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Paste", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Go to Paste", 
-    ["BRAILLE LINE:  'Paste'",
-     "     VISIBLE:  'Paste', cursor=1",
-     "SPEECH OUTPUT: 'Paste'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Goto Submenu", 
-    ["BRAILLE LINE:  'Submenu'",
-     "     VISIBLE:  'Submenu', cursor=1",
-     "SPEECH OUTPUT: 'Submenu'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Right"))
-sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
-sequence.append(utils.AssertPresentationAction(
-    "Open Submenu", 
-    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
-     "BRAILLE LINE:  'Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "BRAILLE LINE:  'Submenu Item One'",
-     "     VISIBLE:  'Submenu Item One', cursor=1",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: 'Submenu Item One'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Submenu Item Two", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Down to Submenu Item Two", 
-    ["BRAILLE LINE:  'Submenu Item Two'",
-     "     VISIBLE:  'Submenu Item Two', cursor=1",
-     "SPEECH OUTPUT: 'Submenu Item Two'"]))
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
+#sequence.append(utils.AssertPresentationAction(
+#    "Open the Edit! menu", 
+#    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345. In addition, the demo is broken at the moment."]))
+#     "BRAILLE LINE:  'Cut'",
+#     "     VISIBLE:  'Cut', cursor=1",
+#     "BRAILLE LINE:  'Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "SPEECH OUTPUT: 'Cut'",
+#     "SPEECH OUTPUT: 'menu'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Copy", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to Copy", 
+#    ["BRAILLE LINE:  'Copy'",
+#     "     VISIBLE:  'Copy', cursor=1",
+#     "SPEECH OUTPUT: 'Copy'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Paste", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to Paste", 
+#    ["BRAILLE LINE:  'Paste'",
+#     "     VISIBLE:  'Paste', cursor=1",
+#     "SPEECH OUTPUT: 'Paste'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Goto Submenu", 
+#    ["BRAILLE LINE:  'Submenu'",
+#     "     VISIBLE:  'Submenu', cursor=1",
+#     "SPEECH OUTPUT: 'Submenu'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Right"))
+#sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
+#sequence.append(utils.AssertPresentationAction(
+#    "Open Submenu", 
+#    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
+#     "BRAILLE LINE:  'Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "BRAILLE LINE:  'Submenu Item One'",
+#     "     VISIBLE:  'Submenu Item One', cursor=1",
+#     "SPEECH OUTPUT: 'menu'",
+#     "SPEECH OUTPUT: 'Submenu Item One'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Submenu Item Two", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Down to Submenu Item Two", 
+#    ["BRAILLE LINE:  'Submenu Item Two'",
+#     "     VISIBLE:  'Submenu Item Two', cursor=1",
+#     "SPEECH OUTPUT: 'Submenu Item Two'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Deeper Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Down to Deeper Submenu", 
+#    ["BRAILLE LINE:  'Deeper Submenu'",
+#     "     VISIBLE:  'Deeper Submenu', cursor=1",
+#     "SPEECH OUTPUT: 'Deeper Submenu'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Right"))
+#sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
+#sequence.append(utils.AssertPresentationAction(
+#    "Right to open Deeper Submenu", 
+#    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
+#     "BRAILLE LINE:  'Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "BRAILLE LINE:  'Sub-sub-menu Item One'",
+#     "     VISIBLE:  'Sub-sub-menu Item One', cursor=1",
+#     "SPEECH OUTPUT: 'menu'",
+#     "SPEECH OUTPUT: 'Sub-sub-menu Item One'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("Sub-sub-menu Item Two", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Down to Sub-sub-menu Item Two", 
+#    ["BRAILLE LINE:  'Sub-sub-menu Item Two'",
+#     "     VISIBLE:  'Sub-sub-menu Item Two', cursor=1",
+#     "SPEECH OUTPUT: 'Sub-sub-menu Item Two'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Escape"))
+#sequence.append(WaitForFocus("Deeper Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Close the Deeper Submenu", 
+#    ["BRAILLE LINE:  'Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "BRAILLE LINE:  'Deeper Submenu'",
+#     "     VISIBLE:  'Deeper Submenu', cursor=1",
+#     "SPEECH OUTPUT: 'menu'",
+#     "SPEECH OUTPUT: 'Deeper Submenu'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Escape"))
+#sequence.append(WaitForFocus("Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+#sequence.append(utils.AssertPresentationAction(
+#    "Close the Submenu", 
+#    ["BRAILLE LINE:  'Menu Menu'",
+#     "     VISIBLE:  'Menu Menu', cursor=6",
+#     "BRAILLE LINE:  'Submenu'",
+#     "     VISIBLE:  'Submenu', cursor=1",
+#     "SPEECH OUTPUT: 'menu'",
+#     "SPEECH OUTPUT: 'Submenu'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Escape"))
+#sequence.append(WaitForFocus("Edit!", acc_role=pyatspi.ROLE_PUSH_BUTTON))
+#sequence.append(utils.AssertPresentationAction(
+#    "Close the Edit! menu", 
+#    ["BUG? - Why does it say Edit! twice?",
+#     "BRAILLE LINE:  'tooltip on buttonMenu Menu Menu Menu'",
+#     "     VISIBLE:  'Menu', cursor=1",
+#     "BRAILLE LINE:  'Edit! Edit! Menu'",
+#     "     VISIBLE:  'Edit! Edit! Menu', cursor=1",
+#     "SPEECH OUTPUT: 'menu'",
+#     "SPEECH OUTPUT: 'Edit! menu'"]))
 
+########################################################################
+# Open the Color menu and navigate through it.
+#
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Deeper Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Down to Deeper Submenu", 
-    ["BRAILLE LINE:  'Deeper Submenu'",
-     "     VISIBLE:  'Deeper Submenu', cursor=1",
-     "SPEECH OUTPUT: 'Deeper Submenu'"]))
+    "Tab to the Color button", 
+    ["BRAILLE LINE:  'Color Savesave options Menu Disabled '",
+     "     VISIBLE:  'Color Savesave options Menu Disa', cursor=1",
+     "SPEECH OUTPUT: 'Color menu'"]))
 
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Right"))
-sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
-sequence.append(utils.AssertPresentationAction(
-    "Right to open Deeper Submenu", 
-    ["KNOWN ISSUE -- http://bugzilla.gnome.org/show_bug.cgi?id=569345";,
-     "BRAILLE LINE:  'Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "BRAILLE LINE:  'Sub-sub-menu Item One'",
-     "     VISIBLE:  'Sub-sub-menu Item One', cursor=1",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: 'Sub-sub-menu Item One'"]))
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("white", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Open the Color menu", 
+#    ["BUG? - speaks 'not selected' apparently due to Down into a table cell",
+#     "BRAILLE LINE:  'white Image lime Image green Image blue Image'",
+#     "     VISIBLE:  'white Image lime Image green Ima', cursor=1",
+#     "SPEECH OUTPUT: 'white not selected'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Right"))
+#sequence.append(WaitForFocus("lime", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to lime", 
+#    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
+#     "     VISIBLE:  'lime Image green Image blue Imag', cursor=1",
+#     "SPEECH OUTPUT: 'lime'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Right"))
+#sequence.append(WaitForFocus("green", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to green", 
+#    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
+#     "     VISIBLE:  'green Image blue Image', cursor=1",
+#     "SPEECH OUTPUT: 'green'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Right"))
+#sequence.append(WaitForFocus("blue", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to blue", 
+#    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
+#     "     VISIBLE:  'blue Image', cursor=1",
+#     "SPEECH OUTPUT: 'blue'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Down"))
+#sequence.append(WaitForFocus("navy", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Go to navy", 
+#    ["BUG? - speaks 'not selected' apparently due to Down into a table cell",
+#     "BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
+#     "     VISIBLE:  'navy Image', cursor=1",
+#     "SPEECH OUTPUT: 'navy not selected'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Left"))
+#sequence.append(WaitForFocus("fuchsia", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Goto fuchsia", 
+#    ["BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
+#     "     VISIBLE:  'fuchsia Image navy Image', cursor=1",
+#     "SPEECH OUTPUT: 'fuchsia'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Left"))
+#sequence.append(WaitForFocus("yellow", acc_role=pyatspi.ROLE_TABLE_CELL))
+#sequence.append(utils.AssertPresentationAction(
+#    "Goto yellow", 
+#    ["BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
+#     "     VISIBLE:  'yellow Image fuchsia Image navy ', cursor=1",
+#     "SPEECH OUTPUT: 'yellow'"]))
+#
+#sequence.append(utils.StartRecordingAction())
+#sequence.append(KeyComboAction("Escape"))
+#sequence.append(WaitForFocus("Color", acc_role=pyatspi.ROLE_PUSH_BUTTON))
+#sequence.append(utils.AssertPresentationAction(
+#    "Close the Color menu", 
+#    ["BUG? - Why does it say Color twice?",
+#     "BRAILLE LINE:  'Color Color Menu'",
+#     "     VISIBLE:  'Color Color Menu', cursor=1",
+#     "SPEECH OUTPUT: 'Color menu'"]))
 
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("Sub-sub-menu Item Two", acc_role=pyatspi.ROLE_MENU_ITEM))
-sequence.append(utils.AssertPresentationAction(
-    "Down to Sub-sub-menu Item Two", 
-    ["BRAILLE LINE:  'Sub-sub-menu Item Two'",
-     "     VISIBLE:  'Sub-sub-menu Item Two', cursor=1",
-     "SPEECH OUTPUT: 'Sub-sub-menu Item Two'"]))
+########################################################################
+# Go to the unlabelled buttons
+#
+sequence.append(KeyComboAction("Tab"))
+sequence.append(KeyComboAction("Tab"))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Escape"))
-sequence.append(WaitForFocus("Deeper Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Close the Deeper Submenu", 
-    ["BRAILLE LINE:  'Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "BRAILLE LINE:  'Deeper Submenu'",
-     "     VISIBLE:  'Deeper Submenu', cursor=1",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: 'Deeper Submenu'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Default (below) Above Before After'",
+     "     VISIBLE:  'Default (below) Above Before Aft', cursor=1",
+     "SPEECH OUTPUT: 'Default (below) menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Escape"))
-sequence.append(WaitForFocus("Submenu", acc_role=pyatspi.ROLE_MENU_ITEM))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Close the Submenu", 
-    ["BRAILLE LINE:  'Menu Menu'",
-     "     VISIBLE:  'Menu Menu', cursor=6",
-     "BRAILLE LINE:  'Submenu'",
-     "     VISIBLE:  'Submenu', cursor=1",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: 'Submenu'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Above Before After'",
+     "     VISIBLE:  'Above Before After', cursor=1",
+     "SPEECH OUTPUT: 'Above menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Escape"))
-sequence.append(WaitForFocus("Edit!", acc_role=pyatspi.ROLE_PUSH_BUTTON))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Close the Edit! menu", 
-    ["BUG? - Why does it say Edit! twice?",
-     "BRAILLE LINE:  'tooltip on buttonMenu Menu Menu Menu'",
-     "     VISIBLE:  'Menu', cursor=1",
-     "BRAILLE LINE:  'Edit! Edit! Menu'",
-     "     VISIBLE:  'Edit! Edit! Menu', cursor=1",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: 'Edit! menu'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Before After'",
+     "     VISIBLE:  'Before After', cursor=1",
+     "SPEECH OUTPUT: 'Before menu'"]))
 
-########################################################################
-# Open the Color menu and navigate through it.
-#
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Color", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the Color button", 
-    ["BUG? - Why does it say Color twice?",
-     "BRAILLE LINE:  'Color Color Menu'",
-     "     VISIBLE:  'Color Color Menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'After'",
+     "     VISIBLE:  'After', cursor=1",
+     "SPEECH OUTPUT: 'After menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("white", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Open the Color menu", 
-    ["BUG? - speaks 'not selected' apparently due to Down into a table cell",
-     "BRAILLE LINE:  'white Image lime Image green Image blue Image'",
-     "     VISIBLE:  'white Image lime Image green Ima', cursor=1",
-     "SPEECH OUTPUT: 'white not selected'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Default (below) Button'",
+     "     VISIBLE:  'Default (below) Button', cursor=1",
+     "SPEECH OUTPUT: 'Default (below) button'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Right"))
-sequence.append(WaitForFocus("lime", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Go to lime", 
-    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
-     "     VISIBLE:  'lime Image green Image blue Imag', cursor=1",
-     "SPEECH OUTPUT: 'lime'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  ' $lsave options Menu $lsave options Menu $lsave options Menu $lsave options Menu'",
+     "     VISIBLE:  'save options Menu $lsave options', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Right"))
-sequence.append(WaitForFocus("green", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Go to green", 
-    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
-     "     VISIBLE:  'green Image blue Image', cursor=1",
-     "SPEECH OUTPUT: 'green'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Up Button'",
+     "     VISIBLE:  'Up Button', cursor=1",
+     "SPEECH OUTPUT: 'Up button'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Right"))
-sequence.append(WaitForFocus("blue", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Go to blue", 
-    ["BRAILLE LINE:  'white Image lime Image green Image blue Image'",
-     "     VISIBLE:  'blue Image', cursor=1",
-     "SPEECH OUTPUT: 'blue'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  ' $lsave options Menu $lsave options Menu $lsave options Menu $lsave options Menu'",
+     "     VISIBLE:  'save options Menu $lsave options', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(WaitForFocus("navy", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Go to navy", 
-    ["BUG? - speaks 'not selected' apparently due to Down into a table cell",
-     "BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
-     "     VISIBLE:  'navy Image', cursor=1",
-     "SPEECH OUTPUT: 'navy not selected'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'Before Button'",
+     "     VISIBLE:  'Before Button', cursor=1",
+     "SPEECH OUTPUT: 'Before button'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Left"))
-sequence.append(WaitForFocus("fuchsia", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Goto fuchsia", 
-    ["BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
-     "     VISIBLE:  'fuchsia Image navy Image', cursor=1",
-     "SPEECH OUTPUT: 'fuchsia'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  ' $lsave options Menu $lsave options Menu $lsave options Menu $lsave options Menu'",
+     "     VISIBLE:  'save options Menu $lsave options', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Left"))
-sequence.append(WaitForFocus("yellow", acc_role=pyatspi.ROLE_TABLE_CELL))
+sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "Goto yellow", 
-    ["BRAILLE LINE:  'silver Image yellow Image fuchsia Image navy Image'",
-     "     VISIBLE:  'yellow Image fuchsia Image navy ', cursor=1",
-     "SPEECH OUTPUT: 'yellow'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  'After Button'",
+     "     VISIBLE:  'After Button', cursor=1",
+     "SPEECH OUTPUT: 'After button'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Escape"))
-sequence.append(WaitForFocus("Color", acc_role=pyatspi.ROLE_PUSH_BUTTON))
-sequence.append(utils.AssertPresentationAction(
-    "Close the Color menu", 
-    ["BUG? - Why does it say Color twice?",
-     "BRAILLE LINE:  'Color Color Menu'",
-     "     VISIBLE:  'Color Color Menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
-
-########################################################################
-# Go to the unlabelled buttons
-#
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Save", acc_role=pyatspi.ROLE_PUSH_BUTTON))
-sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_MENU))
+sequence.append(utils.AssertPresentationAction(
+    "Tab to the next button", 
+    ["BRAILLE LINE:  ' $lsave options Menu $lsave options Menu $lsave options Menu $lsave options Menu'",
+     "     VISIBLE:  'save options Menu', cursor=1",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Rich Text Test!", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the first unlabelled button ('+')", 
-    ["BRAILLE LINE:  'Rich Text Test! Button'",
-     "     VISIBLE:  'Rich Text Test! Button', cursor=1",
+    "Tab to the next button", 
+    ["BRAILLE LINE:  '  Save Button save options Menu '",
+     "     VISIBLE:  '  Save Button save options Menu ', cursor=1",
      "SPEECH OUTPUT: 'Rich Text Test! button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Color", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the second unlabelled button ('Color')", 
-    ["BRAILLE LINE:  'Color Menu'",
-     "     VISIBLE:  'Color Menu', cursor=1",
+    "Tab to the next button", 
+    ["BRAILLE LINE:  '  Save Button save options Menu '",
+     "     VISIBLE:  '  Save Button save options Menu ', cursor=2",
      "SPEECH OUTPUT: 'Color menu'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Save", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the third unlabelled button ('Save')", 
+    "Tab to the next button", 
     ["BRAILLE LINE:  'Save Button'",
      "     VISIBLE:  'Save Button', cursor=1",
      "SPEECH OUTPUT: 'Save button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("â?? â?¼", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the down arrow button", 
-    ["BRAILLE LINE:  'Save Button â?? Menu'",
-     "     VISIBLE:  'Save Button â?? Menu', cursor=13",
-     "SPEECH OUTPUT: 'â?? menu'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  ' $lsave options Menu'",
+     "     VISIBLE:  ' $lsave options Menu', cursor=4",
+     "SPEECH OUTPUT: 'save options menu'"]))
 
 ########################################################################
 # Tab to the 1st "Toggle me" toggle button.
 #
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
-sequence.append(WaitForFocus("Toggle me", acc_role=pyatspi.ROLE_TOGGLE_BUTTON))
 sequence.append(utils.AssertPresentationAction(
-    "Tab to the 'Toggle me' toggle button", 
-    ["BRAILLE LINE:  '&=y Toggle me ToggleButton'",
-     "     VISIBLE:  '&=y Toggle me ToggleButton', cursor=1",
-     "SPEECH OUTPUT: 'Toggle me toggle button pressed'"]))
+    "Tab to the next button", 
+    ["BRAILLE LINE:  '&=y Toggle me off ToggleButton'",
+     "     VISIBLE:  '&=y Toggle me off ToggleButton', cursor=1",
+     "BRAILLE LINE:  ' Toggle me  '",
+     "     VISIBLE:  ' Toggle me  ', cursor=1",
+     "SPEECH OUTPUT: 'Toggle me off toggle button pressed'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
@@ -474,9 +543,8 @@ sequence.append(WaitAction("object:state-changed:pressed",
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "Change the 'Toggle me' toggle button", 
-    ["BRAILLE LINE:  '& y Toggle me ToggleButton'",
-     "     VISIBLE:  '& y Toggle me ToggleButton', cursor=1",
-     "SPEECH OUTPUT: 'not pressed'"]))
+    ["BUG? - Why no braille? Actually, there's a similar issue in OOo toggle buttons",
+     "SPEECH OUTPUT: 'toggle me on'"]))
 
 # Skip this toggle button - it isn't a toggle button.
 sequence.append(KeyComboAction("Tab"))
@@ -490,8 +558,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("big", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the big button", 
-    ["BRAILLE LINE:  'big Button'",
-     "     VISIBLE:  'big Button', cursor=1",
+    ["BRAILLE LINE:  'big Image small Image long  Image tall '",
+     "     VISIBLE:  'big Image small Image long  Imag', cursor=1",
      "SPEECH OUTPUT: 'big button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -499,8 +567,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("small", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the small button", 
-    ["BRAILLE LINE:  'small Button'",
-     "     VISIBLE:  'small Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'small button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -508,8 +577,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("long", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the long button", 
-    ["BRAILLE LINE:  'long Button'",
-     "     VISIBLE:  'long Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'long button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -517,8 +587,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("tall", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the tall button", 
-    ["BRAILLE LINE:  'tall Button'",
-     "     VISIBLE:  'tall Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  'tall'",
+     "     VISIBLE:  'tall', cursor=1",
      "SPEECH OUTPUT: 'tall button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -526,8 +597,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("short", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the short button", 
-    ["BRAILLE LINE:  'short Button'",
-     "     VISIBLE:  'short Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'short button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -535,8 +607,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("bit longer", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the bit longer button", 
-    ["BRAILLE LINE:  'bit longer Button'",
-     "     VISIBLE:  'bit longer Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'bit longer button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -544,8 +617,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("ridiculously long", acc_role=pyatspi.ROLE_PUSH_BUTTON))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the ridiculously long button", 
-    ["BRAILLE LINE:  'ridiculously long Button'",
-     "     VISIBLE:  'ridiculously long Button', cursor=1",
+    ["BUG? - Why no braille here?",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'ridiculously long button'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/dojo_checkbox.py b/test/keystrokes/firefox/dojo_checkbox.py
index e0eef80..2243613 100644
--- a/test/keystrokes/firefox/dojo_checkbox.py
+++ b/test/keystrokes/firefox/dojo_checkbox.py
@@ -37,9 +37,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb0 checkbox", 
-    ["BRAILLE LINE:  '< > CheckBox cb0: Vanilla (non-dojo) checkbox (for comparison purposes)'",
-     "     VISIBLE:  '< > CheckBox cb0: Vanilla (non-d', cursor=1",
-     "SPEECH OUTPUT: 'cb0: Vanilla (non-dojo) checkbox (for comparison purposes) check box not checked'"]))
+    ["BRAILLE LINE:  '<x> CheckBox cb0: Vanilla \(non-dojo\) checkbox \(for comparison purposes\)'",
+     "     VISIBLE:  '<x> CheckBox cb0: Vanilla (non-d', cursor=1",
+     "SPEECH OUTPUT: 'cb0: Vanilla \(non-dojo\) checkbox \(for comparison purposes\) check box checked'"]))
 
 ########################################################################
 # Now, change its state.  
@@ -48,9 +48,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "change state on cb0 checkbox", 
-    ["BRAILLE LINE:  '<x> CheckBox cb0: Vanilla (non-dojo) checkbox (for comparison purposes)'",
-     "     VISIBLE:  '<x> CheckBox cb0: Vanilla (non-d', cursor=1",
-     "SPEECH OUTPUT: 'checked'"]))
+    ["BRAILLE LINE:  '< > CheckBox cb0: Vanilla \(non-dojo\) checkbox \(for comparison purposes\)'",
+     "     VISIBLE:  '< > CheckBox cb0: Vanilla \(non-d', cursor=1",
+     "SPEECH OUTPUT: 'not checked'"]))
 
 ########################################################################
 # Tab to the cb1 checkbox.  
@@ -59,7 +59,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb1 checkbox", 
-    ["BRAILLE LINE:  '< > CheckBox cb1: normal checkbox, with value=foo, clicking generates console log messages attr('value')'",
+    ["BRAILLE LINE:  '< > CheckBox cb1: normal checkbox, with value=foo, clicking generates console log messages get\('value'\)'",
      "     VISIBLE:  '< > CheckBox cb1: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb1: normal checkbox, with value=foo, clicking generates console log messages check box not checked'"]))
 
@@ -70,7 +70,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "change state on cb1 checkbox", 
-    ["BRAILLE LINE:  '<x> CheckBox cb1: normal checkbox, with value=foo, clicking generates console log messages attr('value')'",
+    ["BRAILLE LINE:  '<x> CheckBox cb1: normal checkbox, with value=foo, clicking generates console log messages get\('value'\)'",
      "     VISIBLE:  '<x> CheckBox cb1: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'checked'"]))
 
@@ -82,19 +82,30 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb2 checkbox", 
-    ["BRAILLE LINE:  '<x> CheckBox cb2: normal checkbox, with default value, initially turned on. \"onChange\" handler updates: [] attr('value')'",
+    ["BRAILLE LINE:  '<x> CheckBox cb2: normal checkbox, with default value, initially turned on. \"onChange\" handler updates: \[false\] get\('value'\)'",
      "     VISIBLE:  '<x> CheckBox cb2: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb2: normal checkbox, with default value, initially turned on. check box checked'"]))
 
 ########################################################################
-# Tab to the cb5 checkbox.  Note: cb3 and cb4 are disabled.
+# Tab to the cb4 checkbox.  Note: cb3 is disabled.
 #
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
+    "Tab to the cb4 checkbox", 
+    ["BRAILLE LINE:  '<x> CheckBox cb4: readOnly checkbox, turned on'",
+     "     VISIBLE:  '<x> CheckBox cb4: readOnly check', cursor=1",
+     "SPEECH OUTPUT: 'cb4: readOnly checkbox, turned on check box checked'"]))
+
+########################################################################
+# Tab to the cb5 checkbox.
+#
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Tab"))
+sequence.append(utils.AssertPresentationAction(
     "Tab to the cb5 checkbox", 
-    ["BRAILLE LINE:  '< > CheckBox cb5: normal checkbox, with specified value=\"\", clicking generates console log messages attr('value')'",
+    ["BRAILLE LINE:  '< > CheckBox cb5: normal checkbox, with specified value=\"\", clicking generates console log messages get\('value'\)'",
      "     VISIBLE:  '< > CheckBox cb5: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb5: normal checkbox, with specified value=\"\", clicking generates console log messages check box not checked'"]))
 
@@ -117,7 +128,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb7 checkbox", 
-    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button \"onChange\" handler updates: []'",
+    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable enable set value to \"fish\" Reset value+checked \"onChange\" handler updates: [false]'",
      "     VISIBLE:  '< > CheckBox cb7: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb7: normal checkbox. check box not checked'"]))
 
@@ -129,7 +140,7 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I", 
-    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button \"onChange\" handler updates: []'",
+    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable enable set value to \"fish\" Reset value+checked \"onChange\" handler updates: [false]'",
      "     VISIBLE:  '< > CheckBox cb7: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb7: normal checkbox. check box not checked'"]))
 
diff --git a/test/keystrokes/firefox/flat_review_text_by_line.py b/test/keystrokes/firefox/flat_review_text_by_line.py
index 3f83a52..ae913f4 100644
--- a/test/keystrokes/firefox/flat_review_text_by_line.py
+++ b/test/keystrokes/firefox/flat_review_text_by_line.py
@@ -35,8 +35,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_8", 1000))
 sequence.append(utils.AssertPresentationAction(
     "flat review current line", 
-    ["BRAILLE LINE:  'On weaponry: $l'",
-     "     VISIBLE:  'On weaponry: $l', cursor=1",
+    ["BRAILLE LINE:  'On weaponry:'",
+     "     VISIBLE:  'On weaponry:', cursor=1",
+     "BRAILLE LINE:  'On weaponry: $l'",
+     "     VISIBLE:  'On weaponry: $l', cursor=12",
      "SPEECH OUTPUT: 'On weaponry:'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/html_role_combo_box.py b/test/keystrokes/firefox/html_role_combo_box.py
index 408f839..4ef1307 100644
--- a/test/keystrokes/firefox/html_role_combo_box.py
+++ b/test/keystrokes/firefox/html_role_combo_box.py
@@ -59,8 +59,7 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_COMBO_BOX))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Severity combo box", 
-    ["BUG? - Where should the cursor be? If we're not IN the combo box should it be as is with the label showing or not?",
-     "BRAILLE LINE:  'Severity: Severity normal Combo'",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
      "     VISIBLE:  'Severity: Severity normal Combo', cursor=20",
      "SPEECH OUTPUT: 'Severity normal combo box'"]))
 
@@ -162,8 +161,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "Left out of combo box", 
-    ["BRAILLE LINE:  'FIXED Combo'",
-     "     VISIBLE:  'FIXED Combo', cursor=1",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
      "SPEECH OUTPUT: 'Resolution: FIXED combo box'"]))
 
 ########################################################################
@@ -173,8 +172,34 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Version 2.16 Combo'",
-     "     VISIBLE:  'Version 2.16 Combo', cursor=1",
+    ["BRAILLE LINE:  'Resolution:'",
+     "     VISIBLE:  'Resolution:', cursor=1",
+     "SPEECH OUTPUT: 'Resolution:",
+     "'"]))
+
+########################################################################
+# Press Down Arrow again to move to the next line which contains a
+# combo box.
+#
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "Line Down", 
+    ["BRAILLE LINE:  'FIXED Combo'",
+     "     VISIBLE:  'FIXED Combo', cursor=1",
+     "SPEECH OUTPUT: 'Resolution:'",
+     "SPEECH OUTPUT: 'FIXED' voice=uppercase",
+     "SPEECH OUTPUT: 'combo box'"]))
+
+########################################################################
+# Press Down Arrow once to move to the next line.
+#
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "Line Down",
+    ["BRAILLE LINE:  'Version 2.16 Combo'",
+     "     VISIBLE:  'Version 2.16 Combo', cursor=1",
      "SPEECH OUTPUT: 'Version 2.16 combo box'"]))
 
 ########################################################################
@@ -185,8 +210,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Component'",
-     "     VISIBLE:  'Component', cursor=1",
+    ["BRAILLE LINE:  'Component'",
+     "     VISIBLE:  'Component', cursor=1",
      "SPEECH OUTPUT: 'Component'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/html_role_links.py b/test/keystrokes/firefox/html_role_links.py
index c4b9043..21fa537 100644
--- a/test/keystrokes/firefox/html_role_links.py
+++ b/test/keystrokes/firefox/html_role_links.py
@@ -35,8 +35,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Here are some of our local test files:'",
-     "     VISIBLE:  'Here are some of our local test ', cursor=1",
+    ["BRAILLE LINE:  'Here are some of our local test files:'",
+     "     VISIBLE:  'Here are some of our local test ', cursor=1",
      "SPEECH OUTPUT: 'Here are some of our local test files:'"]))
 
 ########################################################################
@@ -109,7 +109,7 @@ sequence.append(KeyComboAction("<Alt>Left"))
 sequence.append(WaitForDocLoad())
 sequence.append(PauseAction(3000))
 
-# Hack to ignore a focus event that will temporarily update braillle
+# Hack to ignore a focus event that will temporarily update braille
 #
 sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Up"))
@@ -122,7 +122,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up to anchors.html", 
-    ["BRAILLE LINE:  'â?¢ anchors.html'",
+    ["BUG? - Focus is not leaving the link we were on. Probably one of those recent Gecko/Mozilla regressions. Need to investigate further.",
+     "BRAILLE LINE:  'â?¢ anchors.html'",
      "     VISIBLE:  'â?¢ anchors.html', cursor=1",
      "SPEECH OUTPUT: 'â?¢ anchors.html link'"]))
 
diff --git a/test/keystrokes/firefox/html_role_lists.py b/test/keystrokes/firefox/html_role_lists.py
index 91b9897..dfbb393 100644
--- a/test/keystrokes/firefox/html_role_lists.py
+++ b/test/keystrokes/firefox/html_role_lists.py
@@ -37,6 +37,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file", 
     ["BRAILLE LINE:  'Welcome to a List of Lists h1'",
      "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
+     "BRAILLE LINE:  'Welcome to a List of Lists h1'",
+     "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
      "SPEECH OUTPUT: 'Welcome to a List of Lists heading level 1'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/html_struct_nav_blockquote.py b/test/keystrokes/firefox/html_struct_nav_blockquote.py
index cf91489..bb34fd1 100644
--- a/test/keystrokes/firefox/html_struct_nav_blockquote.py
+++ b/test/keystrokes/firefox/html_struct_nav_blockquote.py
@@ -39,6 +39,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file", 
     ["BRAILLE LINE:  'On weaponry:'",
      "     VISIBLE:  'On weaponry:', cursor=1",
+     "BRAILLE LINE:  'On weaponry:'",
+     "     VISIBLE:  'On weaponry:', cursor=1",
      "SPEECH OUTPUT: 'On weaponry:'"]))
 
 ########################################################################
@@ -86,7 +88,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("q"))
 sequence.append(utils.AssertPresentationAction(
     "q wrap to top", 
-    ["BRAILLE LINE:  'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'",
      "     VISIBLE:  'NOBODY expects the Spanish Inqui', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'"]))
@@ -100,7 +104,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>q"))
 sequence.append(utils.AssertPresentationAction(
     "Shift+q wrap to bottom", 
-    ["BRAILLE LINE:  'Hm! She is made of harder stuff! Cardinal Fang! Fetch the COMFY CHAIR!'",
+    ["BRAILLE LINE:  'Wrapping to bottom.'",
+     "     VISIBLE:  'Wrapping to bottom.', cursor=0",
+     "BRAILLE LINE:  'Hm! She is made of harder stuff! Cardinal Fang! Fetch the COMFY CHAIR!'",
      "     VISIBLE:  'Hm! She is made of harder stuff!', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'Hm! She is made of harder stuff! Cardinal Fang! Fetch the COMFY CHAIR!'"]))
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_554616.py b/test/keystrokes/firefox/html_struct_nav_bug_554616.py
index 58ea96f..2927696 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_554616.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_554616.py
@@ -37,7 +37,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  'Snapshot version Date (UTC) Download'",
      "     VISIBLE:  'Snapshot version Date (UTC) Down', cursor=1",
-     "SPEECH OUTPUT: 'Snapshot version Date (UTC) Download'"]))
+     "SPEECH OUTPUT: 'Snapshot version column header Date (UTC) column header Download column header'"]))
 
 ########################################################################
 # T to move to the table.
@@ -46,11 +46,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("t"))
 sequence.append(utils.AssertPresentationAction(
     "2. t",
-    ["BRAILLE LINE:  'Snapshot version Date (UTC) Download'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  'Snapshot version Date (UTC) Download'",
      "     VISIBLE:  'Snapshot version Date (UTC) Down', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'Table with 4 rows 3 columns'",
-     "SPEECH OUTPUT: 'Snapshot version'"]))
+     "SPEECH OUTPUT: 'Snapshot version column header'"]))
 
 ########################################################################
 # Alt+Shift+Arrow to move amongst cells
@@ -59,10 +61,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Alt Shift Down",
-    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=1",
-     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=1",
+    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008 in', cursor=1",
+     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008 in', cursor=1",
      "SPEECH OUTPUT: 'r2477'",
      "SPEECH OUTPUT: 'Row 2, column 1.'"]))
 
@@ -70,10 +72,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Right"))
 sequence.append(utils.AssertPresentationAction(
     "4. Alt Shift Right",
-    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=7",
-     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=7",
+    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'Wed Nov 5 16:39:00 2008 installe', cursor=1",
+     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'Wed Nov 5 16:39:00 2008 installe', cursor=1",
      "SPEECH OUTPUT: 'Date (UTC)'",
      "SPEECH OUTPUT: 'Wed Nov 5 16:39:00 2008'",
      "SPEECH OUTPUT: 'Row 2, column 2.'"]))
@@ -82,10 +84,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Right"))
 sequence.append(utils.AssertPresentationAction(
     "5. Alt Shift Right",
-    ["BRAILLE LINE:  'installer (10190 KB)'",
-     "     VISIBLE:  'installer (10190 KB)', cursor=1",
-     "BRAILLE LINE:  'installer (10190 KB)'",
-     "     VISIBLE:  'installer (10190 KB)', cursor=1",
+    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'installer (10190 KB)portable arc', cursor=1",
+     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'installer (10190 KB)portable arc', cursor=1",
      "SPEECH OUTPUT: 'Download'",
      "SPEECH OUTPUT: 'installer link  (10190 KB)",
      " portable archive link  (9154 KB)'",
@@ -95,9 +97,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Alt Shift Down",
-    ["BRAILLE LINE:  'installer (10193 KB)'",
+    ["BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008 installer (10193 KB)'",
      "     VISIBLE:  'installer (10193 KB)', cursor=1",
-     "BRAILLE LINE:  'installer (10193 KB)'",
+     "BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008 installer (10193 KB)'",
      "     VISIBLE:  'installer (10193 KB)', cursor=1",
      "SPEECH OUTPUT: 'installer link  (10193 KB)",
      " portable archive link  (9149 KB)'",
@@ -107,10 +109,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Left"))
 sequence.append(utils.AssertPresentationAction(
     "7. Alt Shift Left",
-    ["BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008'",
-     "     VISIBLE:  'r2468 Tue Nov 4 16:39:02 2008', cursor=7",
-     "BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008'",
-     "     VISIBLE:  'r2468 Tue Nov 4 16:39:02 2008', cursor=7",
+    ["BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008 installer (10193 KB)'",
+     "     VISIBLE:  'Tue Nov 4 16:39:02 2008 installe', cursor=1",
+     "BRAILLE LINE:  'r2468 Tue Nov 4 16:39:02 2008 installer (10193 KB)'",
+     "     VISIBLE:  'Tue Nov 4 16:39:02 2008 installe', cursor=1",
      "SPEECH OUTPUT: 'Date (UTC)'",
      "SPEECH OUTPUT: 'Tue Nov 4 16:39:02 2008'",
      "SPEECH OUTPUT: 'Row 3, column 2.'"]))
@@ -119,10 +121,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>Up"))
 sequence.append(utils.AssertPresentationAction(
     "8. Alt Shift Up",
-    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=7",
-     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008'",
-     "     VISIBLE:  'r2477 Wed Nov 5 16:39:00 2008', cursor=7",
+    ["BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'Wed Nov 5 16:39:00 2008 installe', cursor=1",
+     "BRAILLE LINE:  'r2477 Wed Nov 5 16:39:00 2008 installer (10190 KB)portable archive (9154 KB)'",
+     "     VISIBLE:  'Wed Nov 5 16:39:00 2008 installe', cursor=1",
      "SPEECH OUTPUT: 'Wed Nov 5 16:39:00 2008'",
      "SPEECH OUTPUT: 'Row 2, column 2.'"]))
 
@@ -130,9 +132,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt><Shift>End"))
 sequence.append(utils.AssertPresentationAction(
     "9. Alt Shift End",
-    ["BRAILLE LINE:  'installer (10186 KB)'",
+    ["BRAILLE LINE:  'r2464 Mon Nov 3 16:39:48 2008 installer (10186 KB)'",
      "     VISIBLE:  'installer (10186 KB)', cursor=1",
-     "BRAILLE LINE:  'installer (10186 KB)'",
+     "BRAILLE LINE:  'r2464 Mon Nov 3 16:39:48 2008 installer (10186 KB)'",
      "     VISIBLE:  'installer (10186 KB)', cursor=1",
      "SPEECH OUTPUT: 'Download'",
      "SPEECH OUTPUT: 'installer link  (10186 KB)",
@@ -147,7 +149,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Snapshot version Date (UTC) Down', cursor=1",
      "BRAILLE LINE:  'Snapshot version Date (UTC) Download'",
      "     VISIBLE:  'Snapshot version Date (UTC) Down', cursor=1",
-     "SPEECH OUTPUT: 'Snapshot version'",
+     "SPEECH OUTPUT: 'Snapshot version column header'",
      "SPEECH OUTPUT: 'Row 1, column 1.'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_556470.py b/test/keystrokes/firefox/html_struct_nav_bug_556470.py
index c9087e2..adc542c 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_556470.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_556470.py
@@ -50,7 +50,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'col 1 col 2 col 3'",
      "     VISIBLE:  'col 1 col 2 col 3', cursor=1",
      "SPEECH OUTPUT: 'Table with 2 rows 3 columns'",
-     "SPEECH OUTPUT: 'col 1'"]))
+     "SPEECH OUTPUT: 'col 1 column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("t"))
@@ -64,12 +64,14 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("t"))
 sequence.append(utils.AssertPresentationAction(
-    "3. t", 
-    ["BRAILLE LINE:  'col 1 col 2 col 3'",
+    "3. t",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  'col 1 col 2 col 3'",
      "     VISIBLE:  'col 1 col 2 col 3', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'Table with 2 rows 3 columns'",
-     "SPEECH OUTPUT: 'col 1'"]))
+     "SPEECH OUTPUT: 'col 1 column header'"]))
 
 ########################################################################
 # Press Shift+t to move amongst the tables
@@ -78,7 +80,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>t"))
 sequence.append(utils.AssertPresentationAction(
     "1. shift+t", 
-    ["BRAILLE LINE:  '1 2 4'",
+    ["BRAILLE LINE:  'Wrapping to bottom.'",
+     "     VISIBLE:  'Wrapping to bottom.', cursor=0",
+     "BRAILLE LINE:  '1 2 4'",
      "     VISIBLE:  '1 2 4', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'Table with 2 rows 3 columns'",
@@ -91,13 +95,15 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'col 1 col 2 col 3'",
      "     VISIBLE:  'col 1 col 2 col 3', cursor=1",
      "SPEECH OUTPUT: 'Table with 2 rows 3 columns'",
-     "SPEECH OUTPUT: 'col 1'"]))
+     "SPEECH OUTPUT: 'col 1 column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>t"))
 sequence.append(utils.AssertPresentationAction(
-    "3. shift+t", 
-    ["BRAILLE LINE:  '1 2 4'",
+    "3. shift+t",
+    ["BRAILLE LINE:  'Wrapping to bottom.'",
+     "     VISIBLE:  'Wrapping to bottom.', cursor=0", 
+     "BRAILLE LINE:  '1 2 4'",
      "     VISIBLE:  '1 2 4', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'Table with 2 rows 3 columns'",
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_567984.py b/test/keystrokes/firefox/html_struct_nav_bug_567984.py
index 7f0dc08..24f17ae 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_567984.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_567984.py
@@ -35,9 +35,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
-    ["BRAILLE LINE:  'Index Vakbarát Hírportál h1'",
-     "     VISIBLE:  'Index Vakbarát Hírportál h1', cursor=1",
-     "SPEECH OUTPUT: 'Index Vakbarát Hírportál heading level 1'"]))
+    ["BRAILLE LINE:  'Index Vakbarát Hírportál h1 '",
+     "     VISIBLE:  'Index Vakbarát Hírportál h1 ', cursor=1",
+     "SPEECH OUTPUT: 'Index Vakbarát Hírportál heading level 1 ",
+     "'"]))
 
 ########################################################################
 # H to move amongst headings
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_591592.py b/test/keystrokes/firefox/html_struct_nav_bug_591592.py
index 86180d7..7a6fb71 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_591592.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_591592.py
@@ -63,7 +63,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("h"))
 sequence.append(utils.AssertPresentationAction(
     "3. h",
-    ["BRAILLE LINE:  'This is a test. h1'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  'This is a test. h1'",
      "     VISIBLE:  'This is a test. h1', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'This is a test. heading level 1'"]))
diff --git a/test/keystrokes/firefox/html_struct_nav_large_obj.py b/test/keystrokes/firefox/html_struct_nav_large_obj.py
index b5ab86d..92eabd5 100644
--- a/test/keystrokes/firefox/html_struct_nav_large_obj.py
+++ b/test/keystrokes/firefox/html_struct_nav_large_obj.py
@@ -32,8 +32,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Text Attributes h1'",
-     "     VISIBLE:  'Text Attributes h1', cursor=1",
+    ["BRAILLE LINE:  'Text Attributes h1'",
+     "     VISIBLE:  'Text Attributes h1', cursor=1",
+     "BRAILLE LINE:  'Text Attributes h1'",
+     "     VISIBLE:  'Text Attributes h1', cursor=1",
      "SPEECH OUTPUT: 'Text Attributes heading level 1'"]))
 
 ########################################################################
@@ -44,24 +46,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("o"))
 sequence.append(utils.AssertPresentationAction(
     "First large chunk", 
-    ["BRAILLE LINE:  'I have of late but'",
-     "     VISIBLE:  'I have of late but', cursor=1",
-     "SPEECH OUTPUT: 'I have of late but",
-     "wherefore I know not lost all my mirth,",
-     "forgone all custom of exercises;",
-     "and indeed, it goes so heavily with",
-     "my disposition that this goodly frame,",
-     "the earth, seems to me a sterile promontory;",
-     "this most excellent canopy, the air, look you,",
-     "this brave o'erhanging firmament,",
-     "this majestical roof fretted with golden fire",
-     "why, it appeareth no other thing to me than a foul",
-     "and pestilent congregation of vapours.",
-     "What a piece of work is a man!",
-     "how noble in reason! how infinite in faculties!",
-     "in form and moving how express and admirable!",
-     "in action how like an angel!",
-     "in apprehension how like a god!",
+    ["BRAILLE LINE:  'I have of late but'",
+     "     VISIBLE:  'I have of late but', cursor=1",
+     "SPEECH OUTPUT: 'I have of late but",
+     "wherefore I know not lost all my mirth,",
+     "forgone all custom of exercises;",
+     "and indeed, it goes so heavily with",
+     "my disposition that this goodly frame,",
+     "the earth, seems to me a sterile promontory;",
+     "this most excellent canopy, the air, look you,",
+     "this brave o'erhanging firmament,",
+     "this majestical roof fretted with golden fire",
+     "why, it appeareth no other thing to me than a foul",
+     "and pestilent congregation of vapours.",
+     "What a piece of work is a man!",
+     "how noble in reason! how infinite in faculties!",
+     "in form and moving how express and admirable!",
+     "in action how like an angel!",
+     "in apprehension how like a god!",
      "the beauty of the world, the paragon of animals!'"]))
 
 ########################################################################
@@ -72,24 +74,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("o"))
 sequence.append(utils.AssertPresentationAction(
     "Second large chunk", 
-    ["BRAILLE LINE:  'I have of late but'",
-     "     VISIBLE:  'I have of late but', cursor=1",
-     "SPEECH OUTPUT: 'I have of late but",
-     "wherefore I know not lost all my mirth,",
-     "forgone all custom of exercises;",
-     "and indeed, it goes so heavily with",
-     "my disposition that this goodly frame,",
-     "the earth, seems to me a sterile promontory;",
-     "this most excellent canopy, the air, look you,",
-     "this brave o'erhanging firmament,",
-     "this majestical roof fretted with golden fire",
-     "why, it appeareth no other thing to me than a foul",
-     "and pestilent congregation of vapours.",
-     "What a piece of work is a man!",
-     "how noble in reason! how infinite in faculties!",
-     "in form and moving how express and admirable!",
-     "in action how like an angel!",
-     "in apprehension how like a god!",
+    ["BRAILLE LINE:  'I have of late but'",
+     "     VISIBLE:  'I have of late but', cursor=1",
+     "SPEECH OUTPUT: 'I have of late but",
+     "wherefore I know not lost all my mirth,",
+     "forgone all custom of exercises;",
+     "and indeed, it goes so heavily with",
+     "my disposition that this goodly frame,",
+     "the earth, seems to me a sterile promontory;",
+     "this most excellent canopy, the air, look you,",
+     "this brave o'erhanging firmament,",
+     "this majestical roof fretted with golden fire",
+     "why, it appeareth no other thing to me than a foul",
+     "and pestilent congregation of vapours.",
+     "What a piece of work is a man!",
+     "how noble in reason! how infinite in faculties!",
+     "in form and moving how express and admirable!",
+     "in action how like an angel!",
+     "in apprehension how like a god!",
      "the beauty of the world, the paragon of animals!'"]))
 
 ########################################################################
@@ -100,24 +102,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("o"))
 sequence.append(utils.AssertPresentationAction(
     "Third large chunk", 
-    ["BRAILLE LINE:  'I have of late but'",
-     "     VISIBLE:  'I have of late but', cursor=1",
-     "SPEECH OUTPUT: 'I have of late but",
-     "wherefore I know not lost all my mirth,",
-     "forgone all custom of exercises;",
-     "and indeed, it goes so heavily with",
-     "my disposition that this goodly frame,",
-     "the earth, seems to me a sterile promontory;",
-     "this most excellent canopy, the air, look you,",
-     "this brave o'erhanging firmament,",
-     "this majestical roof fretted with golden fire",
-     "why, it appeareth no other thing to me than a foul",
-     "and pestilent congregation of vapours.",
-     "What a piece of work is a man!",
-     "how noble in reason! how infinite in faculties!",
-     "in form and moving how express and admirable!",
-     "in action how like an angel!",
-     "in apprehension how like a god!",
+    ["BRAILLE LINE:  'I have of late but'",
+     "     VISIBLE:  'I have of late but', cursor=1",
+     "SPEECH OUTPUT: 'I have of late but",
+     "wherefore I know not lost all my mirth,",
+     "forgone all custom of exercises;",
+     "and indeed, it goes so heavily with",
+     "my disposition that this goodly frame,",
+     "the earth, seems to me a sterile promontory;",
+     "this most excellent canopy, the air, look you,",
+     "this brave o'erhanging firmament,",
+     "this majestical roof fretted with golden fire",
+     "why, it appeareth no other thing to me than a foul",
+     "and pestilent congregation of vapours.",
+     "What a piece of work is a man!",
+     "how noble in reason! how infinite in faculties!",
+     "in form and moving how express and admirable!",
+     "in action how like an angel!",
+     "in apprehension how like a god!",
      "the beauty of the world, the paragon of animals!'"]))
 
 ########################################################################
@@ -161,24 +163,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>o"))
 sequence.append(utils.AssertPresentationAction(
     "Shift + o to third large chunk", 
-    ["BRAILLE LINE:  'I have of late but'",
-     "     VISIBLE:  'I have of late but', cursor=1",
-     "SPEECH OUTPUT: 'I have of late but",
-     "wherefore I know not lost all my mirth,",
-     "forgone all custom of exercises;",
-     "and indeed, it goes so heavily with",
-     "my disposition that this goodly frame,",
-     "the earth, seems to me a sterile promontory;",
-     "this most excellent canopy, the air, look you,",
-     "this brave o'erhanging firmament,",
-     "this majestical roof fretted with golden fire",
-     "why, it appeareth no other thing to me than a foul",
-     "and pestilent congregation of vapours.",
-     "What a piece of work is a man!",
-     "how noble in reason! how infinite in faculties!",
-     "in form and moving how express and admirable!",
-     "in action how like an angel!",
-     "in apprehension how like a god!",
+    ["BRAILLE LINE:  'I have of late but'",
+     "     VISIBLE:  'I have of late but', cursor=1",
+     "SPEECH OUTPUT: 'I have of late but",
+     "wherefore I know not lost all my mirth,",
+     "forgone all custom of exercises;",
+     "and indeed, it goes so heavily with",
+     "my disposition that this goodly frame,",
+     "the earth, seems to me a sterile promontory;",
+     "this most excellent canopy, the air, look you,",
+     "this brave o'erhanging firmament,",
+     "this majestical roof fretted with golden fire",
+     "why, it appeareth no other thing to me than a foul",
+     "and pestilent congregation of vapours.",
+     "What a piece of work is a man!",
+     "how noble in reason! how infinite in faculties!",
+     "in form and moving how express and admirable!",
+     "in action how like an angel!",
+     "in apprehension how like a god!",
      "the beauty of the world, the paragon of animals!'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/html_struct_nav_list_item.py b/test/keystrokes/firefox/html_struct_nav_list_item.py
index a94a3b2..2802eca 100644
--- a/test/keystrokes/firefox/html_struct_nav_list_item.py
+++ b/test/keystrokes/firefox/html_struct_nav_list_item.py
@@ -37,6 +37,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file", 
     ["BRAILLE LINE:  'Welcome to a List of Lists h1'",
      "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
+     "BRAILLE LINE:  'Welcome to a List of Lists h1'",
+     "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
      "SPEECH OUTPUT: 'Welcome to a List of Lists heading level 1'"]))
 
 ########################################################################
@@ -195,7 +197,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "i should wrap to top", 
-    ["BRAILLE LINE:  '1. remember what the heck we are doing each day'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  '1. remember what the heck we are doing each day'",
      "     VISIBLE:  '1. remember what the heck we are', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: '1. remember what the heck we are doing each day'"]))
@@ -223,7 +227,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>i"))
 sequence.append(utils.AssertPresentationAction(
     "shift + i should wrap to bottom", 
-    ["BRAILLE LINE:  'â?¢ whine, whine, whine'",
+    ["BRAILLE LINE:  'Wrapping to bottom.'",
+     "     VISIBLE:  'Wrapping to bottom.', cursor=0",
+     "BRAILLE LINE:  'â?¢ whine, whine, whine'",
      "     VISIBLE:  'â?¢ whine, whine, whine', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'â?¢ whine, whine, whine'"]))
diff --git a/test/keystrokes/firefox/html_struct_nav_lists.py b/test/keystrokes/firefox/html_struct_nav_lists.py
index ededa10..76f764d 100644
--- a/test/keystrokes/firefox/html_struct_nav_lists.py
+++ b/test/keystrokes/firefox/html_struct_nav_lists.py
@@ -37,6 +37,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file", 
     ["BRAILLE LINE:  'Welcome to a List of Lists h1'",
      "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
+     "BRAILLE LINE:  'Welcome to a List of Lists h1'",
+     "     VISIBLE:  'Welcome to a List of Lists h1', cursor=1",
      "SPEECH OUTPUT: 'Welcome to a List of Lists heading level 1'"]))
 
 ########################################################################
@@ -162,7 +164,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
 sequence.append(utils.AssertPresentationAction(
     "l - should wrap to top", 
-    ["BRAILLE LINE:  '1. remember what the heck we are doing each day'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  '1. remember what the heck we are doing each day'",
      "     VISIBLE:  '1. remember what the heck we are', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'List with 4 items'",
@@ -175,8 +179,10 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
 sequence.append(utils.AssertPresentationAction(
-    "shift + l - should wrap to bottom", 
-    ["BRAILLE LINE:  'â?¢ feeling listless'",
+    "shift + l - should wrap to bottom",
+    ["BRAILLE LINE:  'Wrapping to bottom.'",
+     "     VISIBLE:  'Wrapping to bottom.', cursor=0",
+     "BRAILLE LINE:  'â?¢ feeling listless'",
      "     VISIBLE:  'â?¢ feeling listless', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'List with 3 items'",
diff --git a/test/keystrokes/firefox/label_guess_bug_546815.py b/test/keystrokes/firefox/label_guess_bug_546815.py
index 5f9a35f..48fb9fc 100644
--- a/test/keystrokes/firefox/label_guess_bug_546815.py
+++ b/test/keystrokes/firefox/label_guess_bug_546815.py
@@ -198,7 +198,9 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+    ["BRAILLE LINE:  'Wrapping to top.'",
+     "     VISIBLE:  'Wrapping to top.', cursor=0",
+     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
      "     VISIBLE:  ' $l text field using default typ', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'Enter your Name: text'"]))
diff --git a/test/keystrokes/firefox/line_nav_bug_555055.py b/test/keystrokes/firefox/line_nav_bug_555055.py
index 3ea5cb5..0ffaf9a 100644
--- a/test/keystrokes/firefox/line_nav_bug_555055.py
+++ b/test/keystrokes/firefox/line_nav_bug_555055.py
@@ -72,7 +72,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  ' '",
      "     VISIBLE:  ' ', cursor=1",
-     "SPEECH OUTPUT: ' '"]))
+     "SPEECH OUTPUT: ' ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -104,24 +105,27 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["BRAILLE LINE:  'Item 3'",
      "     VISIBLE:  'Item 3', cursor=1",
-     "SPEECH OUTPUT: 'Item 3'"]))
+     "SPEECH OUTPUT: 'Item 3 ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
-    ["BUG? - Braille should indicate the blank line",
-     "BRAILLE LINE:  'Item 3'",
-     "     VISIBLE:  'Item 3', cursor=0",
-     "SPEECH OUTPUT: 'blank'"]))
+    ["BRAILLE LINE:  '  '",
+     "     VISIBLE:  '  ', cursor=1",
+     "SPEECH OUTPUT: '  ",
+     " ",
+     " ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  ' '",
-     "     VISIBLE:  ' ', cursor=1",
-     "SPEECH OUTPUT: ' '"]))
+    ["BRAILLE LINE:  'This table is messed up.'",
+     "     VISIBLE:  'This table is messed up.', cursor=1",
+     "SPEECH OUTPUT: 'This table is messed up.'"]))
 
 ########################################################################
 # Up Arrow.
@@ -130,18 +134,21 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Line Up",
-    ["BUG? - Braille should indicate the blank line",
-     "BRAILLE LINE:  'Item 3'",
-     "     VISIBLE:  'Item 3', cursor=0",
-     "SPEECH OUTPUT: 'blank'"]))
+    ["BRAILLE LINE:  '  '",
+     "     VISIBLE:  '  ', cursor=1",
+     "SPEECH OUTPUT: '  ",
+     " ",
+     " ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Up",
-    ["BRAILLE LINE:  'Item 3'",
-     "     VISIBLE:  'Item 3', cursor=1",
-     "SPEECH OUTPUT: 'Item 3'"]))
+    ["BUG? - Speech should say 'Item 3'",
+     "BRAILLE LINE:  'Item 3'",
+     "     VISIBLE:  'Item 3', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -181,7 +188,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Up",
     ["BRAILLE LINE:  ' '",
      "     VISIBLE:  ' ', cursor=1",
-     "SPEECH OUTPUT: ' '"]))
+     "SPEECH OUTPUT: '  ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_592383.py b/test/keystrokes/firefox/line_nav_bug_592383.py
index 4354d02..7a15f02 100644
--- a/test/keystrokes/firefox/line_nav_bug_592383.py
+++ b/test/keystrokes/firefox/line_nav_bug_592383.py
@@ -34,10 +34,12 @@ sequence.append(WaitForFocus("Test",
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
-    "Top of file", 
+    "Top of file",
     ["BRAILLE LINE:  'This is a normal paragraph.'",
      "     VISIBLE:  'This is a normal paragraph.', cursor=1",
-     "SPEECH OUTPUT: 'This is a normal paragraph."]))
+     "BRAILLE LINE:  'This is a normal paragraph.'",
+     "     VISIBLE:  'This is a normal paragraph.', cursor=1",
+     "SPEECH OUTPUT: 'This is a normal paragraph.'"]))
 
 ########################################################################
 # Press Down Arrow to move line by line to the end.
diff --git a/test/keystrokes/firefox/line_nav_bugzilla_search.py b/test/keystrokes/firefox/line_nav_bugzilla_search.py
index 57e4731..2172f62 100644
--- a/test/keystrokes/firefox/line_nav_bugzilla_search.py
+++ b/test/keystrokes/firefox/line_nav_bugzilla_search.py
@@ -39,9 +39,12 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Image Bugzilla'",
-     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
-     "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
+    ["BRAILLE LINE:  'Home Image Bugzilla New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
+     "     VISIBLE:  'Home Image Bugzilla New bug', cursor=1",
+     "BRAILLE LINE:  'Home Image Bugzilla New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
+     "     VISIBLE:  'Home Image Bugzilla New bug', cursor=1",
+     "SPEECH OUTPUT: 'Home link Image Bugzilla New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'",
+     "SPEECH OUTPUT: Home link image'"]))
 
 ########################################################################
 # Down Arrow.
@@ -50,14 +53,6 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
-     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Down",
     ["BRAILLE LINE:  ' Short Bug Search Form Complicated Bug Search Form  '",
      "     VISIBLE:  ' Short Bug Search Form Complicat', cursor=1",
      "SPEECH OUTPUT: '  Short Bug Search Form link Complicated Bug Search Form  '"]))
@@ -1163,17 +1158,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
-     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Up"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Up",
     ["BRAILLE LINE:  'Home Image Bugzilla'",
      "     VISIBLE:  'Home Image Bugzilla', cursor=1",
-     "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
+     "BRAILLE LINE:  'Home Image Bugzilla New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
+     "     VISIBLE:  'Home Image Bugzilla New bug', cursor=1",
+     "SPEECH OUTPUT: 'Home link Image Bugzilla New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'",
+     "SPEECH OUTPUT: 'Home link image Bugzilla'"
+     "SPEECH OUTPUT: Home link image'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/line_nav_empty_anchor.py b/test/keystrokes/firefox/line_nav_empty_anchor.py
index 1009ccf..1101107 100644
--- a/test/keystrokes/firefox/line_nav_empty_anchor.py
+++ b/test/keystrokes/firefox/line_nav_empty_anchor.py
@@ -38,7 +38,9 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BRAILLE LINE:  'FAQ h1'",
      "     VISIBLE:  'FAQ h1', cursor=1",
-     "SPEECH OUTPUT: 'FAQ '",
+     "BRAILLE LINE:  'FAQ h1'",
+     "     VISIBLE:  'FAQ h1', cursor=1",
+     "SPEECH OUTPUT: 'FAQ ' voice=uppercase",
      "SPEECH OUTPUT: 'heading level 1'"]))
 
 ########################################################################
@@ -73,18 +75,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
+    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page? h2'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
      "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link ",
-     "'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Down",
-    ["BRAILLE LINE:  ' h2'",
-     "     VISIBLE:  ' h2', cursor=1",
-     "SPEECH OUTPUT: '",
+     " ",
      " heading level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -109,18 +103,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
+    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow? h2'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
      "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link ",
-     "'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Down",
-    ["BRAILLE LINE:  ' h2'",
-     "     VISIBLE:  ' h2', cursor=1",
-     "SPEECH OUTPUT: '",
+     " ",
      " heading level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -249,10 +235,11 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
+    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow? h2'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
      "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link ",
-     "'"]))
+     "",
+     " heading level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -285,10 +272,11 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
+    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page? h2'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
      "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link ",
-     "'"]))
+     " ",
+     " heading level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_heading_section.py b/test/keystrokes/firefox/line_nav_heading_section.py
index 4d06e15..be0c026 100644
--- a/test/keystrokes/firefox/line_nav_heading_section.py
+++ b/test/keystrokes/firefox/line_nav_heading_section.py
@@ -38,6 +38,8 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BRAILLE LINE:  'Heading 1. h1'",
      "     VISIBLE:  'Heading 1. h1', cursor=1",
+     "BRAILLE LINE:  'Heading 1. h1'",
+     "     VISIBLE:  'Heading 1. h1', cursor=1",
      "SPEECH OUTPUT: 'Heading 1. heading level 1'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/line_nav_nested_tables.py b/test/keystrokes/firefox/line_nav_nested_tables.py
index 0aa7ea6..e327ced 100644
--- a/test/keystrokes/firefox/line_nav_nested_tables.py
+++ b/test/keystrokes/firefox/line_nav_nested_tables.py
@@ -38,9 +38,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'nested-tables Image Campus  .  Classroom  .  Communicate  .  Reports '",
-     "     VISIBLE:  'nested-tables Image Campus  .  C', cursor=1",
-     "SPEECH OUTPUT: 'nested-tables link image Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
+    ["BRAILLE LINE:  'nested-tables Image'",
+     "     VISIBLE:  'nested-tables Image', cursor=1",
+     "SPEECH OUTPUT: 'nested-tables link image'"]))
 
 ########################################################################
 # Down Arrow to the End.
@@ -48,6 +48,14 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
+    "0. line Down",
+    ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports '",
+     "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
+     "SPEECH OUTPUT: 'Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
     "1. line Down",
     ["BRAILLE LINE:  'Your Learning Plan'",
      "     VISIBLE:  'Your Learning Plan', cursor=1",
@@ -220,9 +228,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "11. line Up",
-    ["BRAILLE LINE:  'nested-tables Image Campus  .  Classroom  .  Communicate  .  Reports '",
-     "     VISIBLE:  'nested-tables Image Campus  .  C', cursor=1",
-     "SPEECH OUTPUT: 'nested-tables link image Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
+    ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports '",
+     "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
+     "SPEECH OUTPUT: 'Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/line_nav_simple_form.py b/test/keystrokes/firefox/line_nav_simple_form.py
index c32ac1b..133a694 100644
--- a/test/keystrokes/firefox/line_nav_simple_form.py
+++ b/test/keystrokes/firefox/line_nav_simple_form.py
@@ -216,10 +216,7 @@ sequence.append(utils.AssertPresentationAction(
     "6. line Up",
     ["BRAILLE LINE:  '      $l'",
      "     VISIBLE:  '      $l', cursor=1",
-     "BRAILLE LINE:  '      $l'",
-     "     VISIBLE:  '      $l', cursor=1",
-     "SPEECH OUTPUT: 'Tell me a little more about yourself: text'",
-     "SPEECH OUTPUT: '     '"]))
+     "SPEECH OUTPUT: 'Tell me a little more about yourself: text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))



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