[orca] Fix several issues related to caret and structural navigation in Gecko



commit b3f84152f6bceada7156501d99ccb0df1b619a5e
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Aug 20 14:31:14 2014 -0400

    Fix several issues related to caret and structural navigation in Gecko

 src/orca/scripts/toolkits/Gecko/script.py          |   15 +++-
 test/keystrokes/firefox/aria_list.py               |   30 +++----
 test/keystrokes/firefox/html_role_links.py         |    2 +-
 .../firefox/html_role_list_item_where_am_i.py      |   34 +++++---
 test/keystrokes/firefox/html_role_lists.py         |   16 ++--
 .../firefox/html_struct_nav_list_item.py           |   49 ++++++------
 test/keystrokes/firefox/html_struct_nav_lists.py   |   61 +++++++-------
 test/keystrokes/firefox/line_nav_bug_552887a.py    |   66 ++++++++++------
 test/keystrokes/firefox/line_nav_bug_570757.py     |    6 +-
 test/keystrokes/firefox/line_nav_bug_577239.py     |   12 ++--
 test/keystrokes/firefox/line_nav_bug_577979.py     |   20 ++--
 test/keystrokes/firefox/line_nav_enter_bug.py      |   12 +--
 .../keystrokes/firefox/line_nav_multi_line_text.py |   24 +++---
 test/keystrokes/firefox/line_nav_slash_test.py     |   87 ++++++++++----------
 test/keystrokes/firefox/line_nav_sun_java.py       |   12 +--
 test/keystrokes/firefox/line_nav_wiki_down.py      |   59 ++++++-------
 test/keystrokes/firefox/line_nav_wiki_up.py        |   59 ++++++-------
 17 files changed, 285 insertions(+), 279 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 9e4dc7b..c1f9611 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -857,6 +857,11 @@ class Script(default.Script):
             debug.println(debug.LEVEL_INFO, msg)
             return
 
+        if self._lastCommandWasStructNav:
+            msg = "INFO: Caret-moved event ignored: last command was struct nav"
+            debug.println(debug.LEVEL_INFO, msg)
+            return
+
         text = self.utilities.queryNonEmptyText(event.source)
         if not text:
             if event.source.getRole() == pyatspi.ROLE_LINK:
@@ -1203,6 +1208,12 @@ class Script(default.Script):
                 orca.setLocusOfFocus(event, contextObj)
                 return
 
+        # If we caused this event, we don't want to double-present it.
+        if self._lastCommandWasCaretNav:
+            msg = "INFO: Focus change event ignored: last command was caret nav"
+            debug.println(debug.LEVEL_INFO, msg)
+            return
+
         default.Script.onFocusedChanged(self, event)
 
     def onShowingChanged(self, event):
@@ -2169,10 +2180,6 @@ class Script(default.Script):
         if not text:
             return [obj, -1]
 
-        if role == pyatspi.ROLE_LIST_ITEM and not characterOffset and obj.name:
-            words = obj.name.split()
-            characterOffset = len(words[0])
-
         character = text.getText(characterOffset, characterOffset + 1)
         if len(character) == 1 and character != self.EMBEDDED_OBJECT_CHARACTER:
             return [obj, characterOffset]
diff --git a/test/keystrokes/firefox/aria_list.py b/test/keystrokes/firefox/aria_list.py
index 1a77bf2..ed86641 100644
--- a/test/keystrokes/firefox/aria_list.py
+++ b/test/keystrokes/firefox/aria_list.py
@@ -13,39 +13,35 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. Down Arrow",
-    ["KNOWN ISSUE: We're moving to the end of this line and getting stuck",
-     "BRAILLE LINE:  'dog'",
-     "     VISIBLE:  'dog', cursor=1",
-     "SPEECH OUTPUT: 'dog'"]))
+    ["BRAILLE LINE:  'cat'",
+     "     VISIBLE:  'cat', cursor=1",
+     "SPEECH OUTPUT: 'cat'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Down Arrow",
-    ["KNOWN ISSUE: We're moving to the end of this line and getting stuck",
-     "BRAILLE LINE:  'dog'",
-     "     VISIBLE:  'dog', cursor=1",
-     "SPEECH OUTPUT: 'dog'"]))
+    ["BRAILLE LINE:  'sparrow'",
+     "     VISIBLE:  'sparrow', cursor=1",
+     "SPEECH OUTPUT: 'sparrow'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. Basic whereAmI",
-    ["KNOWN ISSUE: We're moving to the end of this line and getting stuck",
-     "BRAILLE LINE:  'dog'",
-     "     VISIBLE:  'dog', cursor=1",
+    ["BRAILLE LINE:  'sparrow'",
+     "     VISIBLE:  'sparrow', cursor=1",
      "SPEECH OUTPUT: 'list item'",
-     "SPEECH OUTPUT: 'dog'",
-     "SPEECH OUTPUT: '1 of 4'"]))
+     "SPEECH OUTPUT: 'sparrow'",
+     "SPEECH OUTPUT: '3 of 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Up Arrow",
-    ["KNOWN ISSUE: We're moving to the end of this line and getting stuck",
-     "BRAILLE LINE:  'dog'",
-     "     VISIBLE:  'dog', cursor=1",
-     "SPEECH OUTPUT: 'dog'"]))
+    ["BRAILLE LINE:  'cat'",
+     "     VISIBLE:  'cat', cursor=1",
+     "SPEECH OUTPUT: 'cat'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_role_links.py b/test/keystrokes/firefox/html_role_links.py
index 6fcfbfa..f542fab 100644
--- a/test/keystrokes/firefox/html_role_links.py
+++ b/test/keystrokes/firefox/html_role_links.py
@@ -78,7 +78,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Up to anchors.html",
     ["BRAILLE LINE:  '•anchors.html'",
-     "     VISIBLE:  '•anchors.html', cursor=2",
+     "     VISIBLE:  '•anchors.html', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'anchors.html'",
      "SPEECH OUTPUT: 'link'"]))
diff --git a/test/keystrokes/firefox/html_role_list_item_where_am_i.py 
b/test/keystrokes/firefox/html_role_list_item_where_am_i.py
index 3f13006..d4eca55 100644
--- a/test/keystrokes/firefox/html_role_list_item_where_am_i.py
+++ b/test/keystrokes/firefox/html_role_list_item_where_am_i.py
@@ -12,7 +12,7 @@ sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  '•Not in a paragraph'",
-     "     VISIBLE:  '•Not in a paragraph', cursor=2",
+     "     VISIBLE:  '•Not in a paragraph', cursor=1",
      "SPEECH OUTPUT: '•Not in a paragraph'"]))
 
 sequence.append(KeyComboAction("Down"))
@@ -21,8 +21,10 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. Basic Where Am I next item",
     ["BRAILLE LINE:  '• In a paragraph'",
-     "     VISIBLE:  '• In a paragraph', cursor=3",
-     "SPEECH OUTPUT: 'In a paragraph'"]))
+     "     VISIBLE:  '• In a paragraph', cursor=1",
+     "SPEECH OUTPUT: 'list item'",
+     "SPEECH OUTPUT: '• In a paragraph'",
+     "SPEECH OUTPUT: '2 of 4'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -30,8 +32,10 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. Basic Where Am I next item",
     ["BRAILLE LINE:  '• In a section'",
-     "     VISIBLE:  '• In a section', cursor=3",
-     "SPEECH OUTPUT: 'In a section'"]))
+     "     VISIBLE:  '• In a section', cursor=1",
+     "SPEECH OUTPUT: 'list item'",
+     "SPEECH OUTPUT: '• In a section'",
+     "SPEECH OUTPUT: '3 of 4'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -39,7 +43,7 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "4. Basic Where Am I next item",
     ["BRAILLE LINE:  '1.A nested list item, not in a paragraph'",
-     "     VISIBLE:  '1.A nested list item, not in a p', cursor=3",
+     "     VISIBLE:  '1.A nested list item, not in a p', cursor=1",
      "SPEECH OUTPUT: 'list item'",
      "SPEECH OUTPUT: '1.A nested list item, not in a paragraph'",
      "SPEECH OUTPUT: '1 of 3 Nesting level 1'"]))
@@ -50,8 +54,10 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "5. Basic Where Am I next item",
     ["BRAILLE LINE:  '2. A nested list item, in a paragraph'",
-     "     VISIBLE:  'A nested list item, in a paragra', cursor=1",
-     "SPEECH OUTPUT: 'A nested list item, in a paragraph'"]))
+     "     VISIBLE:  '2. A nested list item, in a para', cursor=1",
+     "SPEECH OUTPUT: 'list item'",
+     "SPEECH OUTPUT: '2. A nested list item, in a paragraph'",
+     "SPEECH OUTPUT: '2 of 3 Nesting level 1'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -59,8 +65,10 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. Basic Where Am I next item",
     ["BRAILLE LINE:  '3. A nested list item, in a section'",
-     "     VISIBLE:  'A nested list item, in a section', cursor=1",
-     "SPEECH OUTPUT: 'A nested list item, in a section'"]))
+     "     VISIBLE:  '3. A nested list item, in a sect', cursor=1",
+     "SPEECH OUTPUT: 'list item'",
+     "SPEECH OUTPUT: '3. A nested list item, in a section'",
+     "SPEECH OUTPUT: '3 of 3 Nesting level 1'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -68,8 +76,10 @@ sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "7. Basic Where Am I next item",
     ["BRAILLE LINE:  '• In a paragraph that's in a section'",
-     "     VISIBLE:  'In a paragraph that's in a secti', cursor=1",
-     "SPEECH OUTPUT: 'In a paragraph that's in a section'"]))
+     "     VISIBLE:  '• In a paragraph that's in a sec', cursor=1",
+     "SPEECH OUTPUT: 'list item'",
+     "SPEECH OUTPUT: '• In a paragraph that's in a section'",
+     "SPEECH OUTPUT: '4 of 4'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_role_lists.py b/test/keystrokes/firefox/html_role_lists.py
index e3c286e..fd52572 100644
--- a/test/keystrokes/firefox/html_role_lists.py
+++ b/test/keystrokes/firefox/html_role_lists.py
@@ -31,7 +31,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'Lists are not only fun to make, they are fun to use. They help us: 1.remember what the 
heck we are doing each day'",
-    "     VISIBLE:  '1.remember what the heck we are ', cursor=3",
+    "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
     "SPEECH OUTPUT: 'Lists are not only fun to make, they are fun to use. They help us: '",
     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
@@ -40,7 +40,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  '2.arrange long and arbitrary lines of text into ordered lists that are pleasing to the 
eye and suggest some'",
-     "     VISIBLE:  '2.arrange long and arbitrary lin', cursor=3",
+     "     VISIBLE:  '2.arrange long and arbitrary lin', cursor=1",
      "SPEECH OUTPUT: '2.arrange long and arbitrary lines of text into ordered lists that are pleasing to the 
eye and suggest some '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -56,7 +56,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
     ["BRAILLE LINE:  '3.look really cool when we carry them around on yellow Post-Itstm.'",
-     "     VISIBLE:  '3.look really cool when we carry', cursor=3",
+     "     VISIBLE:  '3.look really cool when we carry', cursor=1",
      "SPEECH OUTPUT: '3.look really cool when we carry them around on yellow Post-Itstm.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -64,7 +64,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  '4.and that other thing I keep forgetting.'",
-     "     VISIBLE:  '4.and that other thing I keep fo', cursor=3",
+     "     VISIBLE:  '4.and that other thing I keep fo', cursor=1",
      "SPEECH OUTPUT: '4.and that other thing I keep forgetting.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -82,7 +82,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
     ["BRAILLE LINE:  'Your ordered lists can start at a strange number, like: VI.And use roman numerals,'",
-     "     VISIBLE:  'VI.And use roman numerals,', cursor=4",
+     "     VISIBLE:  'VI.And use roman numerals,', cursor=1",
      "SPEECH OUTPUT: 'Your ordered lists can start at a strange number, like: '",
      "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
 
@@ -91,7 +91,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
     ["BRAILLE LINE:  'g.You might try using letters as well,'",
-     "     VISIBLE:  'g.You might try using letters as', cursor=3",
+     "     VISIBLE:  'g.You might try using letters as', cursor=1",
      "SPEECH OUTPUT: 'g.You might try using letters as well,'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -99,7 +99,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
     ["BRAILLE LINE:  'H.Maybe you prefer Big Letters,'",
-     "     VISIBLE:  'H.Maybe you prefer Big Letters,', cursor=3",
+     "     VISIBLE:  'H.Maybe you prefer Big Letters,', cursor=1",
      "SPEECH OUTPUT: 'H.Maybe you prefer Big Letters,'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -107,7 +107,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
     ["BRAILLE LINE:  'You might try using letters as well,'",
-     "     VISIBLE:  'You might try using letters as', cursor=3",
+     "     VISIBLE:  'You might try using letters as w', cursor=1",
      "SPEECH OUTPUT: 'You might try using letters as well,'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_list_item.py 
b/test/keystrokes/firefox/html_struct_nav_list_item.py
index a3144c3..17af6bd 100644
--- a/test/keystrokes/firefox/html_struct_nav_list_item.py
+++ b/test/keystrokes/firefox/html_struct_nav_list_item.py
@@ -13,13 +13,12 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
 sequence.append(utils.AssertPresentationAction(
     "1. l to first list",
-    ["KNOWN ISSUE: The list item marker is missing here and in a couple other tests.",
-     "BRAILLE LINE:  'List with 4 items'",
+    ["BRAILLE LINE:  'List with 4 items'",
      "     VISIBLE:  'List with 4 items', cursor=0",
-     "BRAILLE LINE:  'remember what the heck we are doing each day'",
-     "     VISIBLE:  'remember what the heck we are do', cursor=1",
+     "BRAILLE LINE:  '1.remember what the heck we are doing each day'",
+     "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
      "SPEECH OUTPUT: 'List with 4 items' voice=system",
-     "SPEECH OUTPUT: 'remember what the heck we are doing each day'"]))
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
@@ -27,10 +26,10 @@ sequence.append(utils.AssertPresentationAction(
     "2. l to second list",
     ["BRAILLE LINE:  'List with 6 items'",
      "     VISIBLE:  'List with 6 items', cursor=0",
-     "BRAILLE LINE:  'And use roman numerals,'",
-     "     VISIBLE:  'And use roman numerals,', cursor=1",
+     "BRAILLE LINE:  'VI.And use roman numerals,'",
+     "     VISIBLE:  'VI.And use roman numerals,', cursor=1",
      "SPEECH OUTPUT: 'List with 6 items' voice=system",
-     "SPEECH OUTPUT: 'And use roman numerals,'"]))
+     "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
@@ -39,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'List with 1 item'",
      "     VISIBLE:  'List with 1 item', cursor=0",
      "BRAILLE LINE:  '•listing item'",
-     "     VISIBLE:  '•listing item', cursor=2",
+     "     VISIBLE:  '•listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 1 item' voice=system",
      "SPEECH OUTPUT: '•listing item'"]))
 
@@ -48,7 +47,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "4. i in third list",
     ["BRAILLE LINE:  '◦first sublevel'",
-     "     VISIBLE:  '◦first sublevel', cursor=2",
+     "     VISIBLE:  '◦first sublevel', cursor=1",
      "SPEECH OUTPUT: '◦first sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -56,7 +55,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "5. i in third list",
     ["BRAILLE LINE:  '▪look for the bullet on'",
-     "     VISIBLE:  '▪look for the bullet on', cursor=2",
+     "     VISIBLE:  '▪look for the bullet on', cursor=1",
      "SPEECH OUTPUT: '▪look for the bullet on'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -64,7 +63,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "6. i in third list",
     ["BRAILLE LINE:  '▪each sublevel'",
-     "     VISIBLE:  '▪each sublevel', cursor=2",
+     "     VISIBLE:  '▪each sublevel', cursor=1",
      "SPEECH OUTPUT: '▪each sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -72,7 +71,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "7. i in third list",
     ["BRAILLE LINE:  '▪they should all be different, except here.'",
-     "     VISIBLE:  '▪they should all be different, e', cursor=2",
+     "     VISIBLE:  '▪they should all be different, e', cursor=1",
      "SPEECH OUTPUT: '▪they should all be different, except here.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -80,7 +79,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "8. i in third list",
     ["BRAILLE LINE:  '▪second sublevel'",
-     "     VISIBLE:  '▪second sublevel', cursor=2",
+     "     VISIBLE:  '▪second sublevel', cursor=1",
      "SPEECH OUTPUT: '▪second sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -88,7 +87,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "9. i in third list",
     ["BRAILLE LINE:  '◦if your TYPE is circle'",
-     "     VISIBLE:  '◦if your TYPE is circle', cursor=2",
+     "     VISIBLE:  '◦if your TYPE is circle', cursor=1",
      "SPEECH OUTPUT: '◦if your TYPE is circle'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -96,7 +95,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "10. i in third list",
     ["BRAILLE LINE:  '•or even a disc'",
-     "     VISIBLE:  '•or even a disc', cursor=2",
+     "     VISIBLE:  '•or even a disc', cursor=1",
      "SPEECH OUTPUT: '•or even a disc'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -104,7 +103,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "11. i in third list",
     ["BRAILLE LINE:  '◦was a composer who was not square'",
-     "     VISIBLE:  '◦was a composer who was not squa', cursor=2",
+     "     VISIBLE:  '◦was a composer who was not squa', cursor=1",
      "SPEECH OUTPUT: '◦was a composer who was not square'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -112,7 +111,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "12. i in third list",
     ["BRAILLE LINE:  '•would have liked the Who'",
-     "     VISIBLE:  '•would have liked the Who', cursor=2",
+     "     VISIBLE:  '•would have liked the Who', cursor=1",
      "SPEECH OUTPUT: '•would have liked the Who'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -120,7 +119,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "13. i in third list",
     ["BRAILLE LINE:  '◦feeling listless'",
-     "     VISIBLE:  '◦feeling listless', cursor=2",
+     "     VISIBLE:  '◦feeling listless', cursor=1",
      "SPEECH OUTPUT: '◦feeling listless"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -128,7 +127,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "14. i in third list",
     ["BRAILLE LINE:  '▪blah, blah, blah'",
-     "     VISIBLE:  '▪blah, blah, blah', cursor=2",
+     "     VISIBLE:  '▪blah, blah, blah', cursor=1",
      "SPEECH OUTPUT: '▪blah, blah, blah'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -136,7 +135,7 @@ sequence.append(KeyComboAction("i"))
 sequence.append(utils.AssertPresentationAction(
     "15. i in third list",
     ["BRAILLE LINE:  '•whine, whine, whine'",
-     "     VISIBLE:  '•whine, whine, whine', cursor=2",
+     "     VISIBLE:  '•whine, whine, whine', cursor=1",
      "SPEECH OUTPUT: '•whine, whine, whine'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -145,10 +144,10 @@ sequence.append(utils.AssertPresentationAction(
     "16. i should wrap to top",
     ["BRAILLE LINE:  'Wrapping to top.'",
      "     VISIBLE:  'Wrapping to top.', cursor=0",
-     "BRAILLE LINE:  'remember what the heck we are doing each day'",
-     "     VISIBLE:  'remember what the heck we are do', cursor=1",
-     "SPEECH OUTPUT: 'Wrapping to top.'",
-     "SPEECH OUTPUT: 'remember what the heck we are doing each day'"]))
+     "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.' voice=system",
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_struct_nav_lists.py 
b/test/keystrokes/firefox/html_struct_nav_lists.py
index cf61fe8..a322b1e 100644
--- a/test/keystrokes/firefox/html_struct_nav_lists.py
+++ b/test/keystrokes/firefox/html_struct_nav_lists.py
@@ -13,13 +13,12 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
 sequence.append(utils.AssertPresentationAction(
     "1. l to first list",
-    ["KNOWN ISSUE: We are missing the list item marker here and in other tests.",
-     "BRAILLE LINE:  'List with 4 items'",
+    ["BRAILLE LINE:  'List with 4 items'",
      "     VISIBLE:  'List with 4 items', cursor=0",
-     "BRAILLE LINE:  'remember what the heck we are doing each day'",
-     "     VISIBLE:  'remember what the heck we are do', cursor=1",
+     "BRAILLE LINE:  '1.remember what the heck we are doing each day'",
+     "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
      "SPEECH OUTPUT: 'List with 4 items' voice=system",
-     "SPEECH OUTPUT: 'remember what the heck we are doing each day'"]))
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
@@ -27,10 +26,10 @@ sequence.append(utils.AssertPresentationAction(
     "2. l to second list",
     ["BRAILLE LINE:  'List with 6 items'",
      "     VISIBLE:  'List with 6 items', cursor=0",
-     "BRAILLE LINE:  'And use roman numerals,'",
-     "     VISIBLE:  'And use roman numerals,', cursor=1",
+     "BRAILLE LINE:  'VI.And use roman numerals,'",
+     "     VISIBLE:  'VI.And use roman numerals,', cursor=1",
      "SPEECH OUTPUT: 'List with 6 items' voice=system",
-     "SPEECH OUTPUT: 'And use roman numerals,'"]))
+     "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("l"))
@@ -39,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'List with 1 item'",
      "     VISIBLE:  'List with 1 item', cursor=0",
      "BRAILLE LINE:  '•listing item'",
-     "     VISIBLE:  '•listing item', cursor=2",
+     "     VISIBLE:  '•listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 1 item' voice=system",
      "SPEECH OUTPUT: '•listing item'"]))
 
@@ -52,7 +51,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 1'",
      "     VISIBLE:  'Nesting level 1', cursor=0",
      "BRAILLE LINE:  '◦first sublevel'",
-     "     VISIBLE:  '◦first sublevel', cursor=2",
+     "     VISIBLE:  '◦first sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 1 item' voice=system",
      "SPEECH OUTPUT: 'Nesting level 1' voice=system",
      "SPEECH OUTPUT: '◦first sublevel'"]))
@@ -66,7 +65,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 2'",
      "     VISIBLE:  'Nesting level 2', cursor=0",
      "BRAILLE LINE:  '▪look for the bullet on'",
-     "     VISIBLE:  '▪look for the bullet on', cursor=2",
+     "     VISIBLE:  '▪look for the bullet on', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 2' voice=system",
      "SPEECH OUTPUT: '▪look for the bullet on'"]))
@@ -80,7 +79,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 3'",
      "     VISIBLE:  'Nesting level 3', cursor=0",
      "BRAILLE LINE:  '▪each sublevel'",
-     "     VISIBLE:  '▪each sublevel', cursor=2",
+     "     VISIBLE:  '▪each sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 3' voice=system",
      "SPEECH OUTPUT: '▪each sublevel'"]))
@@ -94,7 +93,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 2'",
      "     VISIBLE:  'Nesting level 2', cursor=0",
      "BRAILLE LINE:  '◦if your TYPE is circle'",
-     "     VISIBLE:  '◦if your TYPE is circle', cursor=2",
+     "     VISIBLE:  '◦if your TYPE is circle', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 2' voice=system",
      "SPEECH OUTPUT: '◦if your TYPE is circle'"]))
@@ -108,7 +107,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 1'",
      "     VISIBLE:  'Nesting level 1', cursor=0",
      "BRAILLE LINE:  '◦was a composer who was not square'",
-     "     VISIBLE:  '◦was a composer who was not squa', cursor=2",
+     "     VISIBLE:  '◦was a composer who was not squa', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 1' voice=system",
      "SPEECH OUTPUT: '◦was a composer who was not square'"]))
@@ -120,7 +119,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'List with 3 items'",
      "     VISIBLE:  'List with 3 items', cursor=0",
      "BRAILLE LINE:  '◦feeling listless'",
-     "     VISIBLE:  '◦feeling listless', cursor=2",
+     "     VISIBLE:  '◦feeling listless', cursor=1",
      "SPEECH OUTPUT: 'List with 3 items' voice=system",
      "SPEECH OUTPUT: '◦feeling listless'"]))
 
@@ -132,11 +131,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Wrapping to top.', cursor=0",
      "BRAILLE LINE:  'List with 4 items'",
      "     VISIBLE:  'List with 4 items', cursor=0",
-     "BRAILLE LINE:  'remember what the heck we are doing each day'",
-     "     VISIBLE:  'remember what the heck we are do', cursor=1",
+     "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.' voice=system",
      "SPEECH OUTPUT: 'List with 4 items' voice=system",
-     "SPEECH OUTPUT: 'remember what the heck we are doing each day'"]))
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -147,7 +146,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'List with 3 items'",
      "     VISIBLE:  'List with 3 items', cursor=0",
      "BRAILLE LINE:  '◦feeling listless'",
-     "     VISIBLE:  '◦feeling listless', cursor=2",
+     "     VISIBLE:  '◦feeling listless', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.' voice=system",
      "SPEECH OUTPUT: 'List with 3 items' voice=system",
      "SPEECH OUTPUT: '◦feeling listless'"]))
@@ -161,7 +160,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 1'",
      "     VISIBLE:  'Nesting level 1', cursor=0",
      "BRAILLE LINE:  '◦was a composer who was not square'",
-     "     VISIBLE:  '◦was a composer who was not squa', cursor=2",
+     "     VISIBLE:  '◦was a composer who was not squa', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 1' voice=system",
      "SPEECH OUTPUT: '◦was a composer who was not square'"]))
@@ -175,7 +174,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 2'",
      "     VISIBLE:  'Nesting level 2', cursor=0",
      "BRAILLE LINE:  '◦if your TYPE is circle'",
-     "     VISIBLE:  '◦if your TYPE is circle', cursor=2",
+     "     VISIBLE:  '◦if your TYPE is circle', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 2' voice=system",
      "SPEECH OUTPUT: '◦if your TYPE is circle'"]))
@@ -189,7 +188,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 3'",
      "     VISIBLE:  'Nesting level 3', cursor=0",
      "BRAILLE LINE:  '▪each sublevel'",
-     "     VISIBLE:  '▪each sublevel', cursor=2",
+     "     VISIBLE:  '▪each sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 3' voice=system",
      "SPEECH OUTPUT: '▪each sublevel'"]))
@@ -203,7 +202,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 2'",
      "     VISIBLE:  'Nesting level 2', cursor=0",
      "BRAILLE LINE:  '▪look for the bullet on'",
-     "     VISIBLE:  '▪look for the bullet on', cursor=2",
+     "     VISIBLE:  '▪look for the bullet on', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items' voice=system",
      "SPEECH OUTPUT: 'Nesting level 2' voice=system",
      "SPEECH OUTPUT: '▪look for the bullet on'"]))
@@ -217,7 +216,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Nesting level 1'",
      "     VISIBLE:  'Nesting level 1', cursor=0",
      "BRAILLE LINE:  '◦first sublevel'",
-     "     VISIBLE:  '◦first sublevel', cursor=2",
+     "     VISIBLE:  '◦first sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 1 item' voice=system",
      "SPEECH OUTPUT: 'Nesting level 1' voice=system",
      "SPEECH OUTPUT: '◦first sublevel'"]))
@@ -229,7 +228,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'List with 1 item'",
      "     VISIBLE:  'List with 1 item', cursor=0",
      "BRAILLE LINE:  '•listing item'",
-     "     VISIBLE:  '•listing item', cursor=2",
+     "     VISIBLE:  '•listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 1 item' voice=system",
      "SPEECH OUTPUT: '•listing item'"]))
 
@@ -239,10 +238,10 @@ sequence.append(utils.AssertPresentationAction(
     "18. shift + l",
     ["BRAILLE LINE:  'List with 6 items'",
      "     VISIBLE:  'List with 6 items', cursor=0",
-     "BRAILLE LINE:  'And use roman numerals,'",
-     "     VISIBLE:  'And use roman numerals,', cursor=1",
+     "BRAILLE LINE:  'VI.And use roman numerals,'",
+     "     VISIBLE:  'VI.And use roman numerals,', cursor=1",
      "SPEECH OUTPUT: 'List with 6 items' voice=system",
-     "SPEECH OUTPUT: 'And use roman numerals,'"]))
+     "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -250,10 +249,10 @@ sequence.append(utils.AssertPresentationAction(
     "19. shift + l",
     ["BRAILLE LINE:  'List with 4 items'",
      "     VISIBLE:  'List with 4 items', cursor=0",
-     "BRAILLE LINE:  'remember what the heck we are doing each day'",
-     "     VISIBLE:  'remember what the heck we are do', cursor=1",
+     "BRAILLE LINE:  '1.remember what the heck we are doing each day'",
+     "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
      "SPEECH OUTPUT: 'List with 4 items' voice=system",
-     "SPEECH OUTPUT: 'remember what the heck we are doing each day'"]))
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_bug_552887a.py b/test/keystrokes/firefox/line_nav_bug_552887a.py
index aac99ca..86f1e03 100644
--- a/test/keystrokes/firefox/line_nav_bug_552887a.py
+++ b/test/keystrokes/firefox/line_nav_bug_552887a.py
@@ -63,21 +63,39 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
-    ["KNOWN ISSUE: We seem to be combining quite a bit here. Why?",
-     "BRAILLE LINE:  'Can an Orca really'",
+    ["BRAILLE LINE:  'Can an Orca really'",
      "     VISIBLE:  'Can an Orca really', cursor=1",
-     "BRAILLE LINE:  'The Orca logo imageCan an Orca really'",
-     "     VISIBLE:  'The Orca logo imageCan an Orca r', cursor=0",
-     "SPEECH OUTPUT: 'Can an Orca really '",
-     "SPEECH OUTPUT: 'The Orca logo Can an Orca really hold a white cane? (And why aren't we speaking this 
text?'",
-     "SPEECH OUTPUT: 'link image' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Can an Orca really '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
-    ["KNOWN ISSUE: We seem to be combining quite a bit here. Why?",
-     "BRAILLE LINE:  ''",
+    ["BRAILLE LINE:  'hold a white cane?'",
+     "     VISIBLE:  'hold a white cane?', cursor=1",
+     "SPEECH OUTPUT: 'hold a white cane? '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "8. Line Down",
+    ["BRAILLE LINE:  '(And why aren't we'",
+     "     VISIBLE:  '(And why aren't we', cursor=1",
+     "SPEECH OUTPUT: '(And why aren't we '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "9. Line Down",
+    ["BRAILLE LINE:  'speaking this text?'",
+     "     VISIBLE:  'speaking this text?', cursor=1",
+     "SPEECH OUTPUT: 'speaking this text?'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "10. Line Down",
+    ["BRAILLE LINE:  ''",
      "     VISIBLE:  '', cursor=0",
      "SPEECH OUTPUT: 'The Orca logo'",
      "SPEECH OUTPUT: 'link'",
@@ -93,7 +111,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Line Down",
+    "11. Line Down",
     ["BRAILLE LINE:  'This text comes before the box section'",
      "     VISIBLE:  'This text comes before the box s', cursor=1",
      "SPEECH OUTPUT: 'This text comes before the box section",
@@ -102,7 +120,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "9. Line Down",
+    "12. Line Down",
     ["BRAILLE LINE:  ''",
      "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
@@ -110,7 +128,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "10. Line Down",
+    "13. Line Down",
     ["BRAILLE LINE:  'image'",
      "     VISIBLE:  'image', cursor=1",
      "SPEECH OUTPUT: 'image'"]))
@@ -118,7 +136,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "11. Line Down",
+    "14. Line Down",
     ["BRAILLE LINE:  'Here's a box'",
      "     VISIBLE:  'Here's a box', cursor=1",
      "SPEECH OUTPUT: 'Here's a box'"]))
@@ -126,7 +144,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "12. Line Down",
+    "15. Line Down",
     ["BRAILLE LINE:  'Here's some box text.'",
      "     VISIBLE:  'Here's some box text.', cursor=1",
      "SPEECH OUTPUT: 'Here's some box text.'"]))
@@ -134,7 +152,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "13. Line Down",
+    "16. Line Down",
     ["BRAILLE LINE:  'The end of the box'",
      "     VISIBLE:  'The end of the box', cursor=1",
      "SPEECH OUTPUT: 'The end of the box'"]))
@@ -142,7 +160,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "14. Line Down",
+    "17. Line Down",
     ["BRAILLE LINE:  'image This text comes after'",
      "     VISIBLE:  'image This text comes after', cursor=7",\
      "SPEECH OUTPUT: 'image'",
@@ -151,7 +169,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "15. Line Down",
+    "18. Line Down",
     ["BRAILLE LINE:  'the box section.'",
      "     VISIBLE:  'the box section.', cursor=1",
      "SPEECH OUTPUT: 'the box section.",
@@ -160,7 +178,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "16. Line Up",
+    "19. Line Up",
     ["BRAILLE LINE:  'image'",
      "     VISIBLE:  'image', cursor=1",
      "SPEECH OUTPUT: 'image'"]))
@@ -168,7 +186,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "17. Line Up",
+    "20. Line Up",
     ["BRAILLE LINE:  ''",
      "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
@@ -176,7 +194,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "18. Line Up",
+    "21. Line Up",
     ["BRAILLE LINE:  'This text comes before the box section'",
      "     VISIBLE:  'This text comes before the box s', cursor=1",
      "SPEECH OUTPUT: 'This text comes before the box section",
@@ -185,7 +203,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "19. Line Up",
+    "22. Line Up",
     ["BRAILLE LINE:  'The Orca logo image'",
      "     VISIBLE:  'The Orca logo image', cursor=1",
      "SPEECH OUTPUT: 'The Orca logo'",
@@ -200,7 +218,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "20. Line Up",
+    "23. Line Up",
     ["BRAILLE LINE:  'Line 3'",
      "     VISIBLE:  'Line 3', cursor=1",
      "SPEECH OUTPUT: 'Line 3",
@@ -209,7 +227,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "21. Line Up",
+    "24. Line Up",
     ["KNOWN ISSUE: On the way up, we skip the 'Line 2' text.",
      "BRAILLE LINE:  'Line 1'",
      "     VISIBLE:  'Line 1', cursor=1",
@@ -219,7 +237,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "22. Line Up",
+    "25. Line Up",
     ["BRAILLE LINE:  ''",
      "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
diff --git a/test/keystrokes/firefox/line_nav_bug_570757.py b/test/keystrokes/firefox/line_nav_bug_570757.py
index 94412e5..8e61c04 100644
--- a/test/keystrokes/firefox/line_nav_bug_570757.py
+++ b/test/keystrokes/firefox/line_nav_bug_570757.py
@@ -41,7 +41,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["KNOWN ISSUE: Are we getting stuck here?",
      "BRAILLE LINE:  'Here is a step-by-step tutorial: •Do this thing'",
-     "     VISIBLE:  '•Do this thing', cursor=2",
+     "     VISIBLE:  '•Do this thing', cursor=1",
      "SPEECH OUTPUT: 'Here is a step-by-step tutorial: ",
      "'",
      "SPEECH OUTPUT: 'panel'",
@@ -52,7 +52,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
     ["BRAILLE LINE:  '•Do this other thing'",
-     "     VISIBLE:  '•Do this other thing', cursor=2",
+     "     VISIBLE:  '•Do this other thing', cursor=1",
      "SPEECH OUTPUT: '•Do this other thing'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -60,7 +60,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Up",
     ["BRAILLE LINE:  '•Do this thing'",
-     "     VISIBLE:  '•Do this thing', cursor=2",
+     "     VISIBLE:  '•Do this thing', cursor=1",
      "SPEECH OUTPUT: '•Do this thing'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_577239.py b/test/keystrokes/firefox/line_nav_bug_577239.py
index 9e6a0d8..ef8eb01 100644
--- a/test/keystrokes/firefox/line_nav_bug_577239.py
+++ b/test/keystrokes/firefox/line_nav_bug_577239.py
@@ -28,7 +28,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  '1.This is a short list item.'",
-     "     VISIBLE:  '1.This is a short list item.', cursor=3",
+     "     VISIBLE:  '1.This is a short list item.', cursor=1",
      "SPEECH OUTPUT: '1.This is a short list item. '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -36,7 +36,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=3",
+     "     VISIBLE:  '2.This is a list item that spans', cursor=1",
      "SPEECH OUTPUT: '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -68,7 +68,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["BRAILLE LINE:  '•This is a short list item.'",
-     "     VISIBLE:  '•This is a short list item.', cursor=2",
+     "     VISIBLE:  '•This is a short list item.', cursor=1",
      "SPEECH OUTPUT: '•This is a short list item. '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -76,7 +76,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
     ["BRAILLE LINE:  '•This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '•This is a list item that spans ', cursor=2",
+     "     VISIBLE:  '•This is a list item that spans ', cursor=1",
      "SPEECH OUTPUT: '•This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -92,7 +92,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
     ["BRAILLE LINE:  '•This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '•This is a list item that spans ', cursor=2",
+     "     VISIBLE:  '•This is a list item that spans ', cursor=1",
      "SPEECH OUTPUT: '•This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -100,7 +100,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
     ["BRAILLE LINE:  '•This is a short list item.'",
-     "     VISIBLE:  '•This is a short list item.', cursor=2",
+     "     VISIBLE:  '•This is a short list item.', cursor=1",
      "SPEECH OUTPUT: '•This is a short list item. '"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_577979.py b/test/keystrokes/firefox/line_nav_bug_577979.py
index ee6c8f2..37c90d9 100644
--- a/test/keystrokes/firefox/line_nav_bug_577979.py
+++ b/test/keystrokes/firefox/line_nav_bug_577979.py
@@ -28,7 +28,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  '1.This is a short list item.'",
-     "     VISIBLE:  '1.This is a short list item.', cursor=3",
+     "     VISIBLE:  '1.This is a short list item.', cursor=1",
      "SPEECH OUTPUT: '1.This is a short list item. '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -36,7 +36,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=3",
+     "     VISIBLE:  '2.This is a list item that spans', cursor=1",
      "SPEECH OUTPUT: '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -44,32 +44,32 @@ sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "5. Next Word",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=7",
-     "SPEECH OUTPUT: 'This '"]))
+     "     VISIBLE:  '2.This is a list item that spans', cursor=2",
+     "SPEECH OUTPUT: '2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "6. Next Word",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=10",
-     "SPEECH OUTPUT: 'is '"]))
+     "     VISIBLE:  '2.This is a list item that spans', cursor=7",
+     "SPEECH OUTPUT: 'This '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "7. Next Word",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=12",
-     "SPEECH OUTPUT: 'a '"]))
+     "     VISIBLE:  '2.This is a list item that spans', cursor=10",
+     "SPEECH OUTPUT: 'is '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "8. Next Word",
     ["BRAILLE LINE:  '2.This is a list item that spans multiple lines. If Orca can successfully read to the 
end of this list item, it will have'",
-     "     VISIBLE:  '2.This is a list item that spans', cursor=17",
-     "SPEECH OUTPUT: 'list '"]))
+     "     VISIBLE:  '2.This is a list item that spans', cursor=12",
+     "SPEECH OUTPUT: 'a '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/line_nav_enter_bug.py b/test/keystrokes/firefox/line_nav_enter_bug.py
index 5131121..dd38421 100644
--- a/test/keystrokes/firefox/line_nav_enter_bug.py
+++ b/test/keystrokes/firefox/line_nav_enter_bug.py
@@ -13,12 +13,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  'Home Bugzilla'",
      "     VISIBLE:  'Home Bugzilla', cursor=1",
-     "BRAILLE LINE:  'Home Bugzilla'",
-     "     VISIBLE:  'Home Bugzilla', cursor=0",
      "SPEECH OUTPUT: 'Home'",
-     "SPEECH OUTPUT: 'Bugzilla'",
-     "SPEECH OUTPUT: 'Home'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Bugzilla'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -622,12 +618,8 @@ sequence.append(utils.AssertPresentationAction(
     "58. Line Up",
     ["BRAILLE LINE:  'Home Bugzilla'",
      "     VISIBLE:  'Home Bugzilla', cursor=1",
-     "BRAILLE LINE:  'Home Bugzilla'",
-     "     VISIBLE:  'Home Bugzilla', cursor=0",
-     "SPEECH OUTPUT: 'Home'",
-     "SPEECH OUTPUT: 'Bugzilla'",
      "SPEECH OUTPUT: 'Home'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Bugzilla'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_multi_line_text.py 
b/test/keystrokes/firefox/line_nav_multi_line_text.py
index aadd7e1..c9f0ee7 100644
--- a/test/keystrokes/firefox/line_nav_multi_line_text.py
+++ b/test/keystrokes/firefox/line_nav_multi_line_text.py
@@ -72,7 +72,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["BRAILLE LINE:  '•This is a test that is not very interesting.'",
-     "     VISIBLE:  'This is a test that is not very ', cursor=1",
+     "     VISIBLE:  '•This is a test that is not very', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'This is a test'",
      "SPEECH OUTPUT: 'link'",
@@ -83,7 +83,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
     ["BRAILLE LINE:  '•But it looks like a real-world example.'",
-     "     VISIBLE:  'But it looks like a real-world e', cursor=1",
+     "     VISIBLE:  '•But it looks like a real-world ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'But it looks like'",
      "SPEECH OUTPUT: 'link'",
@@ -94,7 +94,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
     ["BRAILLE LINE:  '•And that's why this silly test is here.'",
-     "     VISIBLE:  'And that's why this silly test i', cursor=1",
+     "     VISIBLE:  '•And that's why this silly test ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'And that's'",
      "SPEECH OUTPUT: 'link'",
@@ -125,7 +125,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "13. Line Down",
     ["BRAILLE LINE:  '•The thing is we can't copy content.'",
-     "     VISIBLE:  'The thing is we can't copy conte', cursor=1",
+     "     VISIBLE:  '•The thing is we can't copy cont', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'The thing is'",
      "SPEECH OUTPUT: 'link'",
@@ -136,7 +136,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
     ["BRAILLE LINE:  '•So we must create silly tests.'",
-     "     VISIBLE:  '•So we must create silly tests.', cursor=2",
+     "     VISIBLE:  '•So we must create silly tests.', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'So we must'",
      "SPEECH OUTPUT: 'link'",
@@ -147,7 +147,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "15. Line Down",
     ["BRAILLE LINE:  '•Oh well.'",
-     "     VISIBLE:  '•Oh well.', cursor=2",
+     "     VISIBLE:  '•Oh well.', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Oh'",
      "SPEECH OUTPUT: 'link'",
@@ -169,7 +169,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "17. Line Up",
     ["BRAILLE LINE:  '•Oh well.'",
-     "     VISIBLE:  '•Oh well.', cursor=2",
+     "     VISIBLE:  '•Oh well.', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Oh'",
      "SPEECH OUTPUT: 'link'",
@@ -180,7 +180,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "18. Line Up",
     ["BRAILLE LINE:  '•So we must create silly tests.'",
-     "     VISIBLE:  '•So we must create silly tests.', cursor=2",
+     "     VISIBLE:  '•So we must create silly tests.', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'So we must'",
      "SPEECH OUTPUT: 'link'",
@@ -191,7 +191,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "19. Line Up",
     ["BRAILLE LINE:  '•The thing is we can't copy content.'",
-     "     VISIBLE:  'The thing is we can't copy conte', cursor=1",
+     "     VISIBLE:  '•The thing is we can't copy cont', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'The thing is'",
      "SPEECH OUTPUT: 'link'",
@@ -222,7 +222,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "22. Line Up",
     ["BRAILLE LINE:  '•And that's why this silly test is here.'",
-     "     VISIBLE:  'And that's why this silly test i', cursor=1",
+     "     VISIBLE:  '•And that's why this silly test ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'And that's'",
      "SPEECH OUTPUT: 'link'",
@@ -233,7 +233,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "23. Line Up",
     ["BRAILLE LINE:  '•But it looks like a real-world example.'",
-     "     VISIBLE:  'But it looks like a real-world e', cursor=1",
+     "     VISIBLE:  '•But it looks like a real-world ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'But it looks like'",
      "SPEECH OUTPUT: 'link'",
@@ -244,7 +244,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "24. Line Up",
     ["BRAILLE LINE:  '•This is a test that is not very interesting.'",
-     "     VISIBLE:  'This is a test that is not very ', cursor=1",
+     "     VISIBLE:  '•This is a test that is not very', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'This is a test'",
      "SPEECH OUTPUT: 'link'",
diff --git a/test/keystrokes/firefox/line_nav_slash_test.py b/test/keystrokes/firefox/line_nav_slash_test.py
index 4d8e4b8..992e5ad 100644
--- a/test/keystrokes/firefox/line_nav_slash_test.py
+++ b/test/keystrokes/firefox/line_nav_slash_test.py
@@ -31,35 +31,48 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["KNOWN ISSUE: There is all sorts of crazy updating here which we need to stop",
-     "BRAILLE LINE:  'Science h4'",
+    ["BRAILLE LINE:  'Science h4'",
      "     VISIBLE:  'Science h4', cursor=1",
+     "SPEECH OUTPUT: 'Science'",
+     "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: 'heading level 4'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. Line Down",
+    ["KNOWN ISSUE: 'We are landing here twice",
      "BRAILLE LINE:  'Science h4'",
      "     VISIBLE:  'Science h4', cursor=1",
      "SPEECH OUTPUT: 'Science'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'heading level 4'",
-     "SPEECH OUTPUT: 'Science'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "4. Line Down",
+    "5. Line Down",
     ["BRAILLE LINE:  'Recent Tags h4'",
      "     VISIBLE:  'Recent Tags h4', cursor=1",
+     "SPEECH OUTPUT: 'Recent Tags'",
+     "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: 'heading level 4'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "6. Line Down",
+    ["KNOWN ISSUE: 'We are landing here twice",
      "BRAILLE LINE:  'Recent Tags h4'",
      "     VISIBLE:  'Recent Tags h4', cursor=1",
      "SPEECH OUTPUT: 'Recent Tags'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'heading level 4'",
-     "SPEECH OUTPUT: 'Recent Tags'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Line Down",
+    "7. Line Down",
     ["BRAILLE LINE:  'Slashdot Login h4'",
      "     VISIBLE:  'Slashdot Login h4', cursor=1",
      "SPEECH OUTPUT: 'Slashdot Login'",
@@ -68,7 +81,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Down",
+    "8. Line Down",
     ["BRAILLE LINE:  'Nickname  $l Password  $l Log in push button'",
      "     VISIBLE:  'Nickname  $l Password  $l Log in', cursor=1",
      "SPEECH OUTPUT: 'Nickname'",
@@ -81,7 +94,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Down",
+    "9. Line Down",
     ["BRAILLE LINE:  'Some Poll h4'",
      "     VISIBLE:  'Some Poll h4', cursor=1",
      "SPEECH OUTPUT: 'Some Poll'",
@@ -90,7 +103,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Line Down",
+    "10. Line Down",
     ["BRAILLE LINE:  'What is your favorite poison?'",
      "     VISIBLE:  'What is your favorite poison?', cursor=1",
      "SPEECH OUTPUT: 'What is your favorite poison?",
@@ -100,7 +113,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "9. Line Down",
+    "11. Line Down",
     ["KNOWN ISSUE - Sometimes we also say 'Recent Tags'. Might be a timing issue. And the presentation is 
wrong regardless.",
      "BRAILLE LINE:  '& y radio button Some polls'",
      "     VISIBLE:  '& y radio button Some polls', cursor=1",
@@ -114,22 +127,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "10. Line Down",
-    ["KNOWN ISSUE: There is all sorts of crazy updating here which we need to stop",
-     "BRAILLE LINE:  'Book Reviews h4'",
-     "     VISIBLE:  'Book Reviews h4', cursor=1",
-     "BRAILLE LINE:  'Book Reviews h4'",
+    "12. Line Down",
+    ["BRAILLE LINE:  'Book Reviews h4'",
      "     VISIBLE:  'Book Reviews h4', cursor=1",
      "SPEECH OUTPUT: 'Book Reviews'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'heading level 4'",
-     "SPEECH OUTPUT: 'Book Reviews'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "11. Line Up",
+    "13. Line Up",
     ["BRAILLE LINE:  '& y radio button Some polls'",
      "     VISIBLE:  '& y radio button Some polls', cursor=1",
      "BRAILLE LINE:  '& y radio button Some polls'",
@@ -141,7 +149,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "12. Line Up",
+    "14. Line Up",
     ["BRAILLE LINE:  'What is your favorite poison?'",
      "     VISIBLE:  'What is your favorite poison?', cursor=1",
      "SPEECH OUTPUT: 'What is your favorite poison?",
@@ -151,7 +159,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "13. Line Up",
+    "15. Line Up",
     ["BRAILLE LINE:  'Some Poll h4'",
      "     VISIBLE:  'Some Poll h4', cursor=1",
      "SPEECH OUTPUT: 'Some Poll'",
@@ -160,7 +168,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "14. Line Up",
+    "16. Line Up",
     ["BRAILLE LINE:  'Nickname  $l Password  $l Log in push button'",
      "     VISIBLE:  'Nickname  $l Password  $l Log in', cursor=1",
      "SPEECH OUTPUT: 'Nickname'",
@@ -173,7 +181,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "15. Line Up",
+    "17. Line Up",
     ["BRAILLE LINE:  'Slashdot Login h4'",
      "     VISIBLE:  'Slashdot Login h4', cursor=1",
      "SPEECH OUTPUT: 'Slashdot Login'",
@@ -182,36 +190,27 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "16. Line Up",
-    ["KNOWN ISSUE: There is all sorts of crazy updating here which we need to stop",
-     "BRAILLE LINE:  'Recent Tags h4'",
-     "     VISIBLE:  'Recent Tags h4', cursor=1",
-     "BRAILLE LINE:  'Recent Tags h4'",
+    "18. Line Up",
+    ["BRAILLE LINE:  'Recent Tags h4'",
      "     VISIBLE:  'Recent Tags h4', cursor=1",
      "SPEECH OUTPUT: 'Recent Tags'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'heading level 4'",
-     "SPEECH OUTPUT: 'Recent Tags'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "17. Line Up",
+    "19. Line Up",
     ["BRAILLE LINE:  'Science h4'",
      "     VISIBLE:  'Science h4', cursor=1",
-     "BRAILLE LINE:  'Science h4'",
-     "     VISIBLE:  'Science h4', cursor=1",
      "SPEECH OUTPUT: 'Science'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'heading level 4'",
-     "SPEECH OUTPUT: 'Science'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "18. Line Up",
+    "20. Line Up",
     ["BRAILLE LINE:  'Services h4'",
      "     VISIBLE:  'Services h4', cursor=1",
      "SPEECH OUTPUT: 'Services'",
@@ -220,7 +219,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "19. Line Up",
+    "21. Line Up",
     ["BRAILLE LINE:  'About h4'",
      "     VISIBLE:  'About h4', cursor=1",
      "SPEECH OUTPUT: 'About'",
@@ -229,7 +228,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "20. Line Up",
+    "22. Line Up",
     ["BRAILLE LINE:  'Stories h4'",
      "     VISIBLE:  'Stories h4', cursor=1",
      "SPEECH OUTPUT: 'Stories'",
diff --git a/test/keystrokes/firefox/line_nav_sun_java.py b/test/keystrokes/firefox/line_nav_sun_java.py
index 091b11c..1655f5c 100644
--- a/test/keystrokes/firefox/line_nav_sun_java.py
+++ b/test/keystrokes/firefox/line_nav_sun_java.py
@@ -32,12 +32,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'Home Page'",
      "     VISIBLE:  'Home Page', cursor=1",
-     "BRAILLE LINE:  'Home Page'",
-     "     VISIBLE:  'Home Page', cursor=0",
      "SPEECH OUTPUT: 'Home Page'",
-     "SPEECH OUTPUT: 'Sun Developer Network'",
-     "SPEECH OUTPUT: 'Home Page'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Sun Developer Network'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -264,7 +260,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "24. Line Down",
     ["BRAILLE LINE:  '\u2022Java Web Start Installation Notes'",
-     "     VISIBLE:  'Java Web Start Installation Note', cursor=1",
+     "     VISIBLE:  '\u2022Java Web Start Installation Not', cursor=1",
      "SPEECH OUTPUT: '\u2022'",
      "SPEECH OUTPUT: 'Java Web Start Installation Notes'",
      "SPEECH OUTPUT: 'link'"]))
@@ -284,7 +280,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "26. Line Down",
     ["BRAILLE LINE:  'Install formats - This version of the JDK is available in two installation formats. 
\u2022Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the 
user. This one can be installed by anyone (not only root users), and it can'",
-     "     VISIBLE:  '\u2022Self-extracting Binary File - T', cursor=2",
+     "     VISIBLE:  '\u2022Self-extracting Binary File - T', cursor=1",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'Install formats - This version of the JDK is available in two installation formats. '",
      "SPEECH OUTPUT: '\u2022Self-extracting Binary File - This file can be used to install the JDK in a 
location chosen by the user. This one can be installed by anyone (not only root users), and it can '"]))
@@ -312,7 +308,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "29. Line Down",
     ["BRAILLE LINE:  '\u2022RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm 
utility. Requires root access to install. RPM packages are the recommended method for'",
-     "     VISIBLE:  '\u2022RPM Packages - A rpm.bin file c', cursor=2",
+     "     VISIBLE:  '\u2022RPM Packages - A rpm.bin file c', cursor=1",
      "SPEECH OUTPUT: '\u2022RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm 
utility. Requires root access to install. RPM packages are the recommended method for '"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_wiki_down.py b/test/keystrokes/firefox/line_nav_wiki_down.py
index ffe8878..111e680 100644
--- a/test/keystrokes/firefox/line_nav_wiki_down.py
+++ b/test/keystrokes/firefox/line_nav_wiki_down.py
@@ -130,14 +130,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
-    ["BUG? - Why are we presenting this twice?",
-     "BRAILLE LINE:  'Orca Logo'",
+    ["BRAILLE LINE:  'Orca Logo'",
      "     VISIBLE:  'Orca Logo', cursor=1",
-     "BRAILLE LINE:  'Orca Logo'",
-     "     VISIBLE:  'Orca Logo', cursor=0",
-     "SPEECH OUTPUT: 'Orca Logo'",
-     "SPEECH OUTPUT: 'Orca Logo'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Orca Logo'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -162,7 +157,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
     ["BRAILLE LINE:  '1.Welcome to Orca!'",
-     "     VISIBLE:  '1.Welcome to Orca!', cursor=3",
+     "     VISIBLE:  '1.Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1.'",
      "SPEECH OUTPUT: 'Welcome to Orca!'",
      "SPEECH OUTPUT: 'link'"]))
@@ -172,7 +167,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
     ["BRAILLE LINE:  '2.About'",
-     "     VISIBLE:  '2.About', cursor=3",
+     "     VISIBLE:  '2.About', cursor=1",
      "SPEECH OUTPUT: '2.'",
      "SPEECH OUTPUT: 'About'",
      "SPEECH OUTPUT: 'link'"]))
@@ -182,7 +177,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "13. Line Down",
     ["BRAILLE LINE:  '3.Audio Guides'",
-     "     VISIBLE:  '3.Audio Guides', cursor=3",
+     "     VISIBLE:  '3.Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3.'",
      "SPEECH OUTPUT: 'Audio Guides'",
      "SPEECH OUTPUT: 'link'"]))
@@ -192,7 +187,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
     ["BRAILLE LINE:  '4.Download/Installation'",
-     "     VISIBLE:  '4.Download/Installation', cursor=3",
+     "     VISIBLE:  '4.Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4.'",
      "SPEECH OUTPUT: 'Download/Installation'",
      "SPEECH OUTPUT: 'link'"]))
@@ -202,7 +197,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "15. Line Down",
     ["BRAILLE LINE:  '5.Configuration/Use'",
-     "     VISIBLE:  '5.Configuration/Use', cursor=3",
+     "     VISIBLE:  '5.Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5.'",
      "SPEECH OUTPUT: 'Configuration/Use'",
      "SPEECH OUTPUT: 'link'"]))
@@ -212,7 +207,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "16. Line Down",
     ["BRAILLE LINE:  '6.Accessible Applications'",
-     "     VISIBLE:  '6.Accessible Applications', cursor=3",
+     "     VISIBLE:  '6.Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6.'",
      "SPEECH OUTPUT: 'Accessible Applications'",
      "SPEECH OUTPUT: 'link'"]))
@@ -222,7 +217,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "17. Line Down",
     ["BRAILLE LINE:  '7.How Can I Help?'",
-     "     VISIBLE:  '7.How Can I Help?', cursor=3",
+     "     VISIBLE:  '7.How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7.'",
      "SPEECH OUTPUT: 'How Can I Help?'",
      "SPEECH OUTPUT: 'link'"]))
@@ -232,7 +227,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "18. Line Down",
     ["BRAILLE LINE:  '8.More Information'",
-     "     VISIBLE:  '8.More Information', cursor=3",
+     "     VISIBLE:  '8.More Information', cursor=1",
      "SPEECH OUTPUT: '8.'",
      "SPEECH OUTPUT: 'More Information'",
      "SPEECH OUTPUT: 'link'"]))
@@ -449,8 +444,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "38. Line Down",
-    ["BRAILLE LINE:  '•Walk through of the installation of Ubuntu 7.4. Very helpful tutorial 
ubuntu-7-4-install-walk-through image'",
-     "     VISIBLE:  'ubuntu-7-4-install-walk-through ', cursor=1",
+    ["BRAILLE LINE:  '•Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
+     "     VISIBLE:  '•Walk through of the installatio', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "SPEECH OUTPUT: 'link'",
@@ -460,8 +455,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "39. Line Down",
-    ["BRAILLE LINE:  '•Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop 
linux-and-orca-review image'",
-     "     VISIBLE:  'linux-and-orca-review image', cursor=1",
+    ["BRAILLE LINE:  '•Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
+     "     VISIBLE:  '•Review of Fedora 7 and the Orca', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
      "SPEECH OUTPUT: 'link'",
@@ -471,8 +466,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "40. Line Down",
-    ["BRAILLE LINE:  '•Guide to installing the latest versions of Firefox and Orca 
installing-firefox-and-orca image'",
-     "     VISIBLE:  'installing-firefox-and-orca imag', cursor=1",
+    ["BRAILLE LINE:  '•Guide to installing the latest versions of Firefox and Orca'",
+     "     VISIBLE:  '•Guide to installing the latest ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
      "SPEECH OUTPUT: 'link'",
@@ -831,7 +826,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "77. Line Down",
     ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ'",
-     "     VISIBLE:  'Frequently Asked Questions: FAQ', cursor=1",
+     "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Frequently Asked Questions: '",
      "SPEECH OUTPUT: 'FAQ'",
@@ -842,7 +837,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "78. Line Down",
     ["BRAILLE LINE:  '• Mailing list: orca-list image orca-list gnome org ( orca-list image Archives)'",
-     "     VISIBLE:  'Mailing list: orca-list image or', cursor=1",
+     "     VISIBLE:  '• Mailing list: orca-list image ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Mailing list: '",
      "SPEECH OUTPUT: 'orca-list'",
@@ -865,7 +860,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "79. Line Down",
     ["BRAILLE LINE:  '• Bug database: bugzilla.gnome.org image GNOME Bug Tracking System (Bugzilla) ( 
buglist image current bug list)'",
-     "     VISIBLE:  'Bug database: bugzilla.gnome.org', cursor=1",
+     "     VISIBLE:  '• Bug database: bugzilla.gnome.o', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Bug database: '",
      "SPEECH OUTPUT: 'bugzilla.gnome.org'",
@@ -888,7 +883,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "80. Line Down",
     ["BRAILLE LINE:  '• Design documents: orca image Orca Documentation Series'",
-     "     VISIBLE:  'Design documents: orca image Orc', cursor=1",
+     "     VISIBLE:  '• Design documents: orca image O', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Design documents: '",
      "SPEECH OUTPUT: 'orca'",
@@ -902,8 +897,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "81. Line Down",
-    ["BRAILLE LINE:  '•Dive Into Python, Mark Pilgrim www.diveintopython.org image'",
-     "     VISIBLE:  'www.diveintopython.org image', cursor=1",
+    ["BRAILLE LINE:  '•Dive Into Python, Mark Pilgrim'",
+     "     VISIBLE:  '•Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
      "SPEECH OUTPUT: 'link'",
@@ -913,8 +908,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "82. Line Down",
-    ["BRAILLE LINE:  '•Python in a Nutshell, Alex Martelli 103-6779448-2183842 image'",
-     "     VISIBLE:  '103-6779448-2183842 image', cursor=1",
+    ["BRAILLE LINE:  '•Python in a Nutshell, Alex Martelli'",
+     "     VISIBLE:  '•Python in a Nutshell, Alex Mart', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
      "SPEECH OUTPUT: 'link'",
@@ -924,8 +919,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "83. Line Down",
-    ["BRAILLE LINE:  '•Python Pocket Reference, Mark Lutz 103-6779448-2183842 image'",
-     "     VISIBLE:  '103-6779448-2183842 image', cursor=1",
+    ["BRAILLE LINE:  '•Python Pocket Reference, Mark Lutz'",
+     "     VISIBLE:  '•Python Pocket Reference, Mark L', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
      "SPEECH OUTPUT: 'link'",
@@ -1023,7 +1018,7 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "94. Line Down",
     ["BRAILLE LINE:  'Immutable Page'",
-     "     VISIBLE:  'Immutable Page', cursor=10",
+     "     VISIBLE:  'Immutable Page', cursor=1",
      "SPEECH OUTPUT: 'Immutable Page'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_wiki_up.py b/test/keystrokes/firefox/line_nav_wiki_up.py
index 4e17d56..f78b04e 100644
--- a/test/keystrokes/firefox/line_nav_wiki_up.py
+++ b/test/keystrokes/firefox/line_nav_wiki_up.py
@@ -92,7 +92,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Up",
     ["BRAILLE LINE:  'Immutable Page'",
-     "     VISIBLE:  'Immutable Page', cursor=10",
+     "     VISIBLE:  'Immutable Page', cursor=1",
      "SPEECH OUTPUT: 'Immutable Page'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -186,8 +186,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "20. Line Up",
-    ["BRAILLE LINE:  '•Python Pocket Reference, Mark Lutz 103-6779448-2183842 image'",
-     "     VISIBLE:  '103-6779448-2183842 image', cursor=1",
+    ["BRAILLE LINE:  '•Python Pocket Reference, Mark Lutz'",
+     "     VISIBLE:  '•Python Pocket Reference, Mark L', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
      "SPEECH OUTPUT: 'link'",
@@ -197,8 +197,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "21. Line Up",
-    ["BRAILLE LINE:  '•Python in a Nutshell, Alex Martelli 103-6779448-2183842 image'",
-     "     VISIBLE:  '103-6779448-2183842 image', cursor=1",
+    ["BRAILLE LINE:  '•Python in a Nutshell, Alex Martelli'",
+     "     VISIBLE:  '•Python in a Nutshell, Alex Mart', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
      "SPEECH OUTPUT: 'link'",
@@ -208,8 +208,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "22. Line Up",
-    ["BRAILLE LINE:  '•Dive Into Python, Mark Pilgrim www.diveintopython.org image'",
-     "     VISIBLE:  'www.diveintopython.org image', cursor=1",
+    ["BRAILLE LINE:  '•Dive Into Python, Mark Pilgrim'",
+     "     VISIBLE:  '•Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
      "SPEECH OUTPUT: 'link'",
@@ -220,7 +220,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "23. Line Up",
     ["BRAILLE LINE:  '• Design documents: orca image Orca Documentation Series'",
-     "     VISIBLE:  'Design documents: orca image Orc', cursor=1",
+     "     VISIBLE:  '• Design documents: orca image O', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Design documents: '",
      "SPEECH OUTPUT: 'orca'",
@@ -235,7 +235,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "24. Line Up",
     ["BRAILLE LINE:  '• Bug database: bugzilla.gnome.org image GNOME Bug Tracking System (Bugzilla) ( 
buglist image current bug list)'",
-     "     VISIBLE:  'Bug database: bugzilla.gnome.org', cursor=1",
+     "     VISIBLE:  '• Bug database: bugzilla.gnome.o', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Bug database: '",
      "SPEECH OUTPUT: 'bugzilla.gnome.org'",
@@ -258,7 +258,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "25. Line Up",
     ["BRAILLE LINE:  '• Mailing list: orca-list image orca-list gnome org ( orca-list image Archives)'",
-     "     VISIBLE:  'Mailing list: orca-list image or', cursor=1",
+     "     VISIBLE:  '• Mailing list: orca-list image ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Mailing list: '",
      "SPEECH OUTPUT: 'orca-list'",
@@ -281,7 +281,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "26. Line Up",
     ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ'",
-     "     VISIBLE:  'Frequently Asked Questions: FAQ', cursor=1",
+     "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Frequently Asked Questions: '",
      "SPEECH OUTPUT: 'FAQ'",
@@ -619,8 +619,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "61. Line Up",
-    ["BRAILLE LINE:  '•Guide to installing the latest versions of Firefox and Orca 
installing-firefox-and-orca image'",
-     "     VISIBLE:  'installing-firefox-and-orca imag', cursor=1",
+    ["BRAILLE LINE:  '•Guide to installing the latest versions of Firefox and Orca'",
+     "     VISIBLE:  '•Guide to installing the latest ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
      "SPEECH OUTPUT: 'link'",
@@ -630,8 +630,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "62. Line Up",
-    ["BRAILLE LINE:  '•Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop 
linux-and-orca-review image'",
-     "     VISIBLE:  'linux-and-orca-review image', cursor=1",
+    ["BRAILLE LINE:  '•Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
+     "     VISIBLE:  '•Review of Fedora 7 and the Orca', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
      "SPEECH OUTPUT: 'link'",
@@ -641,8 +641,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "63. Line Up",
-    ["BRAILLE LINE:  '•Walk through of the installation of Ubuntu 7.4. Very helpful tutorial 
ubuntu-7-4-install-walk-through image'",
-     "     VISIBLE:  'ubuntu-7-4-install-walk-through ', cursor=1",
+    ["BRAILLE LINE:  '•Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
+     "     VISIBLE:  '•Walk through of the installatio', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "SPEECH OUTPUT: 'link'",
@@ -824,7 +824,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "80. Line Up",
     ["BRAILLE LINE:  '8.More Information'",
-     "     VISIBLE:  '8.More Information', cursor=3",
+     "     VISIBLE:  '8.More Information', cursor=1",
      "SPEECH OUTPUT: '8.'",
      "SPEECH OUTPUT: 'More Information'",
      "SPEECH OUTPUT: 'link'"]))
@@ -834,7 +834,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "81. Line Up",
     ["BRAILLE LINE:  '7.How Can I Help?'",
-     "     VISIBLE:  '7.How Can I Help?', cursor=3",
+     "     VISIBLE:  '7.How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7.'",
      "SPEECH OUTPUT: 'How Can I Help?'",
      "SPEECH OUTPUT: 'link'"]))
@@ -844,7 +844,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "82. Line Up",
     ["BRAILLE LINE:  '6.Accessible Applications'",
-     "     VISIBLE:  '6.Accessible Applications', cursor=3",
+     "     VISIBLE:  '6.Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6.'",
      "SPEECH OUTPUT: 'Accessible Applications'",
      "SPEECH OUTPUT: 'link'"]))
@@ -854,7 +854,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "83. Line Up",
     ["BRAILLE LINE:  '5.Configuration/Use'",
-     "     VISIBLE:  '5.Configuration/Use', cursor=3",
+     "     VISIBLE:  '5.Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5.'",
      "SPEECH OUTPUT: 'Configuration/Use'",
      "SPEECH OUTPUT: 'link'"]))
@@ -864,7 +864,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "84. Line Up",
     ["BRAILLE LINE:  '4.Download/Installation'",
-     "     VISIBLE:  '4.Download/Installation', cursor=3",
+     "     VISIBLE:  '4.Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4.'",
      "SPEECH OUTPUT: 'Download/Installation'",
      "SPEECH OUTPUT: 'link'"]))
@@ -874,7 +874,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "85. Line Up",
     ["BRAILLE LINE:  '3.Audio Guides'",
-     "     VISIBLE:  '3.Audio Guides', cursor=3",
+     "     VISIBLE:  '3.Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3.'",
      "SPEECH OUTPUT: 'Audio Guides'",
      "SPEECH OUTPUT: 'link'"]))
@@ -884,7 +884,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "86. Line Up",
     ["BRAILLE LINE:  '2.About'",
-     "     VISIBLE:  '2.About', cursor=3",
+     "     VISIBLE:  '2.About', cursor=1",
      "SPEECH OUTPUT: '2.'",
      "SPEECH OUTPUT: 'About'",
      "SPEECH OUTPUT: 'link'"]))
@@ -894,7 +894,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "87. Line Up",
     ["BRAILLE LINE:  '1.Welcome to Orca!'",
-     "     VISIBLE:  '1.Welcome to Orca!', cursor=3",
+     "     VISIBLE:  '1.Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1.'",
      "SPEECH OUTPUT: 'Welcome to Orca!'",
      "SPEECH OUTPUT: 'link'"]))
@@ -921,14 +921,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "90. Line Up",
-    ["BUG? - Why are we presenting this twice?",
-     "BRAILLE LINE:  'Orca Logo'",
+    ["BRAILLE LINE:  'Orca Logo'",
      "     VISIBLE:  'Orca Logo', cursor=1",
-     "BRAILLE LINE:  'Orca Logo'",
-     "     VISIBLE:  'Orca Logo', cursor=0",
-     "SPEECH OUTPUT: 'Orca Logo'",
-     "SPEECH OUTPUT: 'Orca Logo'",
-     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+     "SPEECH OUTPUT: 'Orca Logo'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))



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