[orca] Fix more instances of getting stuck, combining lines, and garbage on lines



commit 49d323ca450838b1242868f68b47df99c506ba72
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Sep 3 20:15:56 2014 -0400

    Fix more instances of getting stuck, combining lines, and garbage on lines

 .../scripts/toolkits/Gecko/script_utilities.py     |   21 +-
 test/html/focused-link-stuck.html                  |    7 +
 test/html/textarea.html                            |    8 +
 test/keystrokes/firefox/line_nav_bug_555055.py     |   13 +-
 test/keystrokes/firefox/line_nav_bug_570757.py     |   27 +-
 test/keystrokes/firefox/line_nav_clickables.py     |   50 ++-
 .../firefox/line_nav_empty_textarea.params         |    1 +
 test/keystrokes/firefox/line_nav_empty_textarea.py |   73 +++++
 .../firefox/line_nav_focused_link.params           |    1 +
 test/keystrokes/firefox/line_nav_focused_link.py   |   49 +++
 test/keystrokes/firefox/line_nav_image_in_link.py  |   30 +--
 .../keystrokes/firefox/line_nav_images_in_links.py |  342 +++++++++++---------
 test/keystrokes/firefox/line_nav_lists.py          |   73 +++--
 test/keystrokes/firefox/line_nav_simple_form.py    |   94 +++---
 test/keystrokes/firefox/line_nav_sun_java.py       |   11 +-
 test/keystrokes/firefox/line_nav_wiki_down.py      |   93 ++----
 test/keystrokes/firefox/line_nav_wiki_up.py        |  107 ++-----
 17 files changed, 559 insertions(+), 441 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py 
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index 56ceb6c..f525320 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -687,9 +687,6 @@ class Utilities(script_utilities.Utilities):
             debug.println(debug.LEVEL_INFO, msg)
             return sadString, sadStart, sadEnd
 
-        if not boundary == pyatspi.TEXT_BOUNDARY_LINE_START:
-            return text.getText(start, end), start, end
-
         return text.getText(start, end), start, end
 
     def _getWordContentsForObj(self, obj, offset):
@@ -763,15 +760,19 @@ class Utilities(script_utilities.Utilities):
 
         boundary = pyatspi.TEXT_BOUNDARY_LINE_START
         string, start, end = self._getTextAtOffset(obj, offset, boundary)
-
-        while string.startswith(self.EMBEDDED_OBJECT_CHARACTER):
-            string = string[1:]
-            start += 1
-
-        if string and string.find(self.EMBEDDED_OBJECT_CHARACTER) == -1:
+        if not string:
             return [[obj, start, end, string]]
 
-        return self.getObjectsFromEOCs(obj, start, boundary)
+        stringOffset = offset - start
+        strings = [m.span() for m in re.finditer("[^\ufffc]+", string)]
+        strings = list(filter(lambda x: x[0] <= stringOffset <= x[1], strings))
+        if len(strings) == 1:
+            rangeStart, rangeEnd = strings[0]
+            start += rangeStart
+            string = string[rangeStart:rangeEnd]
+            end = start + len(string)
+
+        return [[obj, start, end, string]]
 
     def getLineContentsAtOffset(self, obj, offset):
         if not obj:
diff --git a/test/html/focused-link-stuck.html b/test/html/focused-link-stuck.html
new file mode 100644
index 0000000..83c896c
--- /dev/null
+++ b/test/html/focused-link-stuck.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<div>Line 1</div>
+<div>[<a href="foo">Line 2</a>]</div>
+<div>Line 3</div>
+</body>
+</html>
diff --git a/test/html/textarea.html b/test/html/textarea.html
new file mode 100644
index 0000000..12758d5
--- /dev/null
+++ b/test/html/textarea.html
@@ -0,0 +1,8 @@
+<html>
+<body>
+<div>Before the entry</div>
+<label for="comment">Label</label>:
+<br><textarea name="comment" id="comment"></textarea>
+<div>After the entry</div>
+</body>
+</html>
diff --git a/test/keystrokes/firefox/line_nav_bug_555055.py b/test/keystrokes/firefox/line_nav_bug_555055.py
index d05753b..2798c1f 100644
--- a/test/keystrokes/firefox/line_nav_bug_555055.py
+++ b/test/keystrokes/firefox/line_nav_bug_555055.py
@@ -7,6 +7,7 @@ import utils
 
 sequence = MacroSequence()
 
+sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -85,10 +86,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  'table cell'",
-     "     VISIBLE:  'table cell', cursor=1",
-     "SPEECH OUTPUT: '",
-     "'",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -119,10 +118,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Up",
-    ["BRAILLE LINE:  'table cell'",
-     "     VISIBLE:  'table cell', cursor=1",
-     "SPEECH OUTPUT: '",
-     "'",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_570757.py b/test/keystrokes/firefox/line_nav_bug_570757.py
index dfc7427..eae639b 100644
--- a/test/keystrokes/firefox/line_nav_bug_570757.py
+++ b/test/keystrokes/firefox/line_nav_bug_570757.py
@@ -27,18 +27,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["KNOWN ISSUE: We seem to be combining list items",
-     "BRAILLE LINE:  'Here is a step-by-step tutorial: •Do this thing'",
+    ["BRAILLE LINE:  'Here is a step-by-step tutorial:'",
      "     VISIBLE:  'Here is a step-by-step tutorial:', cursor=1",
      "SPEECH OUTPUT: 'Here is a step-by-step tutorial: ",
      "'",
-     "SPEECH OUTPUT: 'panel'",
-     "SPEECH OUTPUT: '•Do this thing'"]))
+     "SPEECH OUTPUT: 'panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
+    ["BRAILLE LINE:  '•Do this thing'",
+     "     VISIBLE:  '•Do this thing', cursor=1",
+     "SPEECH OUTPUT: '•Do this thing'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "5. Line Down",
     ["BRAILLE LINE:  '•Do this other thing'",
      "     VISIBLE:  '•Do this other thing', cursor=1",
      "SPEECH OUTPUT: '•Do this other thing'"]))
@@ -46,7 +52,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Line Up",
+    "6. Line Up",
     ["BRAILLE LINE:  '•Do this thing'",
      "     VISIBLE:  '•Do this thing', cursor=1",
      "SPEECH OUTPUT: '•Do this thing'"]))
@@ -54,18 +60,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Up",
-    ["BRAILLE LINE:  'Here is a step-by-step tutorial: •Do this thing'",
+    "7. Line Up",
+    ["BRAILLE LINE:  'Here is a step-by-step tutorial:'",
      "     VISIBLE:  'Here is a step-by-step tutorial:', cursor=1",
      "SPEECH OUTPUT: 'Here is a step-by-step tutorial: ",
      "'",
-     "SPEECH OUTPUT: 'panel'",
-     "SPEECH OUTPUT: '•Do this thing'"]))
+     "SPEECH OUTPUT: 'panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Up",
+    "8. Line Up",
     ["BRAILLE LINE:  'Solution'",
      "     VISIBLE:  'Solution', cursor=1",
      "SPEECH OUTPUT: 'Solution'"]))
@@ -73,7 +78,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Line Up",
+    "9. Line Up",
     ["BRAILLE LINE:  'This is a test.'",
      "     VISIBLE:  'This is a test.', cursor=1",
      "SPEECH OUTPUT: 'This is a test.'"]))
diff --git a/test/keystrokes/firefox/line_nav_clickables.py b/test/keystrokes/firefox/line_nav_clickables.py
index 64ba558..4428387 100644
--- a/test/keystrokes/firefox/line_nav_clickables.py
+++ b/test/keystrokes/firefox/line_nav_clickables.py
@@ -7,22 +7,40 @@ import utils
 
 sequence = MacroSequence()
 
+sequence.append(PauseAction(3000))
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(KeyComboAction("Down"))
+
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
-    ["BRAILLE LINE:  'Clickable image: Orca Logo More text.'",
-     "     VISIBLE:  'Clickable image: Orca Logo More ', cursor=1",
-     "SPEECH OUTPUT: 'Clickable image: '",
+    ["BRAILLE LINE:  'Clickable image:'",
+     "     VISIBLE:  'Clickable image:', cursor=1",
+     "SPEECH OUTPUT: 'Clickable image: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. Line Down",
+    ["BRAILLE LINE:  'Orca Logo'",
+     "     VISIBLE:  'Orca Logo', cursor=0",
      "SPEECH OUTPUT: 'Orca Logo'",
      "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'clickable'",
+     "SPEECH OUTPUT: 'clickable'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "3. Line Down",
+    ["BRAILLE LINE:  'More text.'",
+     "     VISIBLE:  'More text.', cursor=1",
      "SPEECH OUTPUT: 'More text.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "2. Line Down",
+    "4. Line Down",
     ["BRAILLE LINE:  'Clickable span: Click Me. More text.'",
      "     VISIBLE:  'Clickable span: Click Me. More t', cursor=1",
      "SPEECH OUTPUT: 'Clickable span: '",
@@ -34,7 +52,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "3. Line Down",
+    "5. Line Down",
     ["BRAILLE LINE:  'Clickable div:'",
      "     VISIBLE:  'Clickable div:', cursor=1",
      "SPEECH OUTPUT: 'Clickable div: '"]))
@@ -42,7 +60,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "4 Line Down",
+    "6 Line Down",
     ["BRAILLE LINE:  'Click Me.'",
      "     VISIBLE:  'Click Me.', cursor=1",
      "SPEECH OUTPUT: 'Click Me.'",
@@ -51,7 +69,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Line Down",
+    "7. Line Down",
     ["BRAILLE LINE:  'More text.'",
      "     VISIBLE:  'More text.', cursor=1",
      "SPEECH OUTPUT: 'More text.'"]))
@@ -59,7 +77,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Up",
+    "8. Line Up",
     ["BRAILLE LINE:  'Click Me.'",
      "     VISIBLE:  'Click Me.', cursor=1",
      "SPEECH OUTPUT: 'Click Me.'",
@@ -68,7 +86,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Up",
+    "9. Line Up",
     ["BRAILLE LINE:  'Clickable div:'",
      "     VISIBLE:  'Clickable div:', cursor=1",
      "SPEECH OUTPUT: 'Clickable div: '"]))
@@ -76,7 +94,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "8 . Line Up",
+    "10. Line Up",
     ["BRAILLE LINE:  'Clickable span: Click Me. More text.'",
      "     VISIBLE:  'Clickable span: Click Me. More t', cursor=1",
      "SPEECH OUTPUT: 'Clickable span: '",
@@ -88,13 +106,9 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "9 . Line Up",
-    ["BRAILLE LINE:  'Clickable image: Orca Logo More text.'",
-     "     VISIBLE:  'Clickable image: Orca Logo More ', cursor=1",
-     "SPEECH OUTPUT: 'Clickable image: '",
-     "SPEECH OUTPUT: 'Orca Logo'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'clickable'",
+    "11. Line Up",
+    ["BRAILLE LINE:  'More text.'",
+     "     VISIBLE:  'More text.', cursor=1",
      "SPEECH OUTPUT: 'More text.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/firefox/line_nav_empty_textarea.params 
b/test/keystrokes/firefox/line_nav_empty_textarea.params
new file mode 100644
index 0000000..c571fac
--- /dev/null
+++ b/test/keystrokes/firefox/line_nav_empty_textarea.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/textarea.html
diff --git a/test/keystrokes/firefox/line_nav_empty_textarea.py 
b/test/keystrokes/firefox/line_nav_empty_textarea.py
new file mode 100644
index 0000000..28937e4
--- /dev/null
+++ b/test/keystrokes/firefox/line_nav_empty_textarea.py
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+
+"""Test of line navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(utils.AssertPresentationAction(
+    "1. Top of file",
+    ["BRAILLE LINE:  'Before the entry'",
+     "     VISIBLE:  'Before the entry', cursor=1",
+     "SPEECH OUTPUT: 'Before the entry'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. Line Down",
+    ["BRAILLE LINE:  'Label :'",
+     "     VISIBLE:  'Label :', cursor=1",
+     "SPEECH OUTPUT: 'Label'",
+     "SPEECH OUTPUT: ': ",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "3. Line Down",
+    ["BRAILLE LINE:  'Label  $l'",
+     "     VISIBLE:  'Label  $l', cursor=0",
+     "SPEECH OUTPUT: 'Label'",
+     "SPEECH OUTPUT: 'entry'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. Line Down",
+    ["BRAILLE LINE:  'After the entry'",
+     "     VISIBLE:  'After the entry', cursor=1",
+     "SPEECH OUTPUT: 'After the entry'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "5. Line Up",
+    ["BRAILLE LINE:  'Label  $l'",
+     "     VISIBLE:  'Label  $l', cursor=0",
+     "SPEECH OUTPUT: 'Label'",
+     "SPEECH OUTPUT: 'entry'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "6. Line Up",
+    ["BRAILLE LINE:  'Label :'",
+     "     VISIBLE:  'Label :', cursor=1",
+     "SPEECH OUTPUT: 'Label'",
+     "SPEECH OUTPUT: ': ",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "7. Line Up",
+    ["BRAILLE LINE:  'Before the entry'",
+     "     VISIBLE:  'Before the entry', cursor=1",
+     "SPEECH OUTPUT: 'Before the entry'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_focused_link.params 
b/test/keystrokes/firefox/line_nav_focused_link.params
new file mode 100644
index 0000000..a97d359
--- /dev/null
+++ b/test/keystrokes/firefox/line_nav_focused_link.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/focused-link-stuck.html
diff --git a/test/keystrokes/firefox/line_nav_focused_link.py 
b/test/keystrokes/firefox/line_nav_focused_link.py
new file mode 100644
index 0000000..b453a28
--- /dev/null
+++ b/test/keystrokes/firefox/line_nav_focused_link.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+
+"""Test of line navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Tab"))
+sequence.append(utils.AssertPresentationAction(
+    "1. Tab to link",
+    ["BRAILLE LINE:  '[Line 2]'",
+     "     VISIBLE:  '[Line 2]', cursor=2",
+     "BRAILLE LINE:  '[Line 2]'",
+     "     VISIBLE:  '[Line 2]', cursor=2",
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link' voice=hyperlink"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. Line Down",
+    ["BRAILLE LINE:  'Line 3'",
+     "     VISIBLE:  'Line 3', cursor=1",
+     "SPEECH OUTPUT: 'Line 3'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "3. Line Up",
+    ["BRAILLE LINE:  '[Line 2]'",
+     "     VISIBLE:  '[Line 2]', cursor=1",
+     "SPEECH OUTPUT: '['",
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: ']'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "4. Line Up",
+    ["BRAILLE LINE:  'Line 1'",
+     "     VISIBLE:  'Line 1', cursor=1",
+     "SPEECH OUTPUT: 'Line 1'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_image_in_link.py 
b/test/keystrokes/firefox/line_nav_image_in_link.py
index 1ce2c72..363304e 100644
--- a/test/keystrokes/firefox/line_nav_image_in_link.py
+++ b/test/keystrokes/firefox/line_nav_image_in_link.py
@@ -29,12 +29,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["KNOWN ISSUE: We're re-presenting the image",
-     "BRAILLE LINE:  'foo image'",
-     "     VISIBLE:  'foo image', cursor=0",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+    ["BRAILLE LINE:  ' Before Line After'",
+     "     VISIBLE:  ' Before Line After', cursor=1",
      "SPEECH OUTPUT: ' Before '",
      "SPEECH OUTPUT: 'Line'",
      "SPEECH OUTPUT: 'link'",
@@ -45,30 +41,14 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
-    ["KNOWN ISSUE: We're getting stuck here",
-     "BRAILLE LINE:  'foo image'",
-     "     VISIBLE:  'foo image', cursor=0",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: ' Before '",
-     "SPEECH OUTPUT: 'Line'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: ' After",
-     "'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("<Control>End"))
-sequence.append(utils.AssertPresentationAction(
-    "5. End of file",
     ["BRAILLE LINE:  'End'",
-     "     VISIBLE:  'End', cursor=3",
+     "     VISIBLE:  'End', cursor=1",
      "SPEECH OUTPUT: 'End'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Up",
+    "5. Line Up",
     ["BRAILLE LINE:  'foo image'",
      "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -83,7 +63,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Up",
+    "6. Line Up",
     ["BRAILLE LINE:  'Start'",
      "     VISIBLE:  'Start', cursor=1",
      "SPEECH OUTPUT: 'Start'"]))
diff --git a/test/keystrokes/firefox/line_nav_images_in_links.py 
b/test/keystrokes/firefox/line_nav_images_in_links.py
index 6d20129..3161492 100644
--- a/test/keystrokes/firefox/line_nav_images_in_links.py
+++ b/test/keystrokes/firefox/line_nav_images_in_links.py
@@ -8,14 +8,23 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(PauseAction(3000))
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(KeyComboAction("Down"))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
-    ["BRAILLE LINE:  'One image with alt text in a link: Orca logo image'",
+    ["BRAILLE LINE:  'One image with alt text in a link:'",
      "     VISIBLE:  'One image with alt text in a lin', cursor=1",
-     "SPEECH OUTPUT: 'One image with alt text in a link: '",
+     "SPEECH OUTPUT: 'One image with alt text in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. Line Down",
+    ["BRAILLE LINE:  'Orca logo image'",
+     "     VISIBLE:  'Orca logo image', cursor=0",
      "SPEECH OUTPUT: 'Orca logo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -23,10 +32,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "2. Line Down",
-    ["BRAILLE LINE:  'One image with title attribute in a link: Orca logo showing a whale holding a white 
cane image'",
+    "3. Line Down",
+    ["BRAILLE LINE:  'One image with title attribute in a link:'",
      "     VISIBLE:  'One image with title attribute i', cursor=1",
-     "SPEECH OUTPUT: 'One image with title attribute in a link: '",
+     "SPEECH OUTPUT: 'One image with title attribute in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. Line Down",
+    ["BRAILLE LINE:  'Orca logo showing a whale holding a white cane image'",
+     "     VISIBLE:  'Orca logo showing a whale holdin', cursor=0",
      "SPEECH OUTPUT: 'Orca logo showing a whale holding a white cane'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -34,10 +50,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "3. Line Down",
-    ["BRAILLE LINE:  'One image with both alt text and title attribute in a link: Orca logo image'",
+    "5. Line Down",
+    ["BRAILLE LINE:  'One image with both alt text and title attribute in a link:'",
      "     VISIBLE:  'One image with both alt text and', cursor=1",
-     "SPEECH OUTPUT: 'One image with both alt text and title attribute in a link: '",
+     "SPEECH OUTPUT: 'One image with both alt text and title attribute in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "6. Line Down",
+    ["BRAILLE LINE:  'Orca logo image'",
+     "     VISIBLE:  'Orca logo image', cursor=0",
      "SPEECH OUTPUT: 'Orca logo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -46,10 +69,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "4. Line Down",
-    ["BRAILLE LINE:  'One \"useless\" image in a link: foo image'",
-     "     VISIBLE:  'One \"useless\" image in a link: f', cursor=1",
-     "SPEECH OUTPUT: 'One \"useless\" image in a link: '",
+    "7. Line Down",
+    ["BRAILLE LINE:  'One \"useless\" image in a link:'",
+     "     VISIBLE:  'One \"useless\" image in a link:', cursor=1",
+     "SPEECH OUTPUT: 'One \"useless\" image in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "8. Line Down",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -57,10 +87,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Line Down",
-    ["BRAILLE LINE:  'Two \"useless\" images in a link: foo image foo image'",
-     "     VISIBLE:  'Two \"useless\" images in a link: ', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images in a link: '",
+    "9. Line Down",
+    ["BRAILLE LINE:  'Two \"useless\" images in a link:'",
+     "     VISIBLE:  'Two \"useless\" images in a link:', cursor=1",
+     "SPEECH OUTPUT: 'Two \"useless\" images in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "10. Line Down",
+    ["BRAILLE LINE:  'foo image foo image'",
+     "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -71,17 +108,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Down",
-    ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link: foo'",
+    "11. Line Down",
+    ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link:'",
      "     VISIBLE:  'Two \"useless\" images in a paragr', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link: '",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'"]))
+     "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Down",
+    "12. Line Down",
     ["BRAILLE LINE:  'foo image foo image'",
      "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -94,10 +129,17 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Line Down",
-    ["BRAILLE LINE:  'One \"useless\" image and one \"useful\" image in a link: Orca logo image foo image'",
+    "13. Line Down",
+    ["BRAILLE LINE:  'One \"useless\" image and one \"useful\" image in a link:'",
      "     VISIBLE:  'One \"useless\" image and one \"use', cursor=1",
-     "SPEECH OUTPUT: 'One \"useless\" image and one \"useful\" image in a link: '",
+     "SPEECH OUTPUT: 'One \"useless\" image and one \"useful\" image in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "14. Line Down",
+    ["BRAILLE LINE:  'Orca logo image foo image'",
+     "     VISIBLE:  'Orca logo image foo image', cursor=0",
      "SPEECH OUTPUT: 'Orca logo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -108,16 +150,37 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "9. Line Down",
-    ["BRAILLE LINE:  'Two \"useless\" images along with some text in a link: foo image silly link foo 
image'",
+    "15. Line Down",
+    ["BRAILLE LINE:  'Two \"useless\" images along with some text in a link:'",
      "     VISIBLE:  'Two \"useless\" images along with ', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images along with some text in a link: '",
+     "SPEECH OUTPUT: 'Two \"useless\" images along with some text in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "16. Line Down",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "17. Line Down",
+    ["BRAILLE LINE:  'silly link'",
+     "     VISIBLE:  'silly link', cursor=1",
      "SPEECH OUTPUT: 'silly link'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "18. Line Down",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -125,7 +188,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "10. Line Down",
+    "19. Line Down",
     ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link along with text that is 
not in the paragraph: Before'",
      "     VISIBLE:  'Two \"useless\" images in a paragr', cursor=1",
      "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link along with text that is 
not in the paragraph: '",
@@ -135,7 +198,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "11. Line Down",
+    "20. Line Down",
     ["BRAILLE LINE:  'the paragraph'",
      "     VISIBLE:  'the paragraph', cursor=1",
      "SPEECH OUTPUT: 'the paragraph'",
@@ -144,7 +207,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "12. Line Down",
+    "21. Line Down",
     ["BRAILLE LINE:  'foo image foo image'",
      "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -157,7 +220,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "13. Line Down",
+    "22. Line Down",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
      "SPEECH OUTPUT: 'After the paragraph'",
@@ -166,7 +229,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "14. Line Down",
+    "23. Line Down",
     ["BRAILLE LINE:  'Two \"useless\" images and some additional text in a paragraph that is inside of a 
link along with text that is not in'",
      "     VISIBLE:  'Two \"useless\" images and some ad', cursor=1",
      "SPEECH OUTPUT: 'Two \"useless\" images and some additional text in a paragraph that is inside of a 
link along with text that is not in '"]))
@@ -174,7 +237,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "15. Line Down",
+    "24. Line Down",
     ["BRAILLE LINE:  'the paragraph: Before the paragraph'",
      "     VISIBLE:  'the paragraph: Before the paragr', cursor=1",
      "SPEECH OUTPUT: 'the paragraph: '",
@@ -184,12 +247,29 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "16. Line Down",
-    ["BRAILLE LINE:  'foo image foo image'",
-     "     VISIBLE:  'foo image foo image', cursor=0",
+    "25. Line Down",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "26. Line Down",
+    ["BRAILLE LINE:  'silly link'",
+     "     VISIBLE:  'silly link', cursor=1",
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "27. Line Down",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -197,7 +277,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "17. Line Down",
+    "28. Line Down",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
      "SPEECH OUTPUT: 'After the paragraph'",
@@ -206,12 +286,29 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "18. Line Up",
-    ["BRAILLE LINE:  'foo image foo image'",
-     "     VISIBLE:  'foo image foo image', cursor=0",
+    "29. Line Up",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "30. Line Up",
+    ["BRAILLE LINE:  'silly link'",
+     "     VISIBLE:  'silly link', cursor=1",
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: 'image'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "31. Line Up",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -219,7 +316,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "19. Line Up",
+    "32. Line Up",
     ["BRAILLE LINE:  'the paragraph: Before the paragraph'",
      "     VISIBLE:  'the paragraph: Before the paragr', cursor=1",
      "SPEECH OUTPUT: 'the paragraph: '",
@@ -229,7 +326,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "20. Line Up",
+    "33. Line Up",
     ["BRAILLE LINE:  'Two \"useless\" images and some additional text in a paragraph that is inside of a 
link along with text that is not in'",
      "     VISIBLE:  'Two \"useless\" images and some ad', cursor=1",
      "SPEECH OUTPUT: 'Two \"useless\" images and some additional text in a paragraph that is inside of a 
link along with text that is not in '"]))
@@ -237,7 +334,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "21. Line Up",
+    "34. Line Up",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
      "SPEECH OUTPUT: 'After the paragraph'",
@@ -246,7 +343,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "22. Line Up",
+    "35. Line Up",
     ["BRAILLE LINE:  'foo image foo image'",
      "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -259,7 +356,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "23. Line Up",
+    "36. Line Up",
     ["BRAILLE LINE:  'the paragraph'",
      "     VISIBLE:  'the paragraph', cursor=1",
      "SPEECH OUTPUT: 'the paragraph'",
@@ -268,7 +365,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "24. Line Up",
+    "37. Line Up",
     ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link along with text that is 
not in the paragraph: Before'",
      "     VISIBLE:  'Two \"useless\" images in a paragr', cursor=1",
      "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link along with text that is 
not in the paragraph: '",
@@ -278,12 +375,9 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "25. Line Up",
-    ["BRAILLE LINE:  'foo image foo image'",
-     "     VISIBLE:  'foo image foo image', cursor=0",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+    "38. Line Up",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -291,29 +385,19 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "26. Line Up",
-    ["BRAILLE LINE:  'Two \"useless\" images along with some text in a link: foo image silly link foo 
image'",
-     "     VISIBLE:  'Two \"useless\" images along with ', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images along with some text in a link: '",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+    "39. Line Up",
+    ["BRAILLE LINE:  'silly link'",
+     "     VISIBLE:  'silly link', cursor=1",
      "SPEECH OUTPUT: 'silly link'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "27. Line Up",
-    ["BRAILLE LINE:  'foo image Orca logo image'",
-     "     VISIBLE:  'foo image Orca logo image', cursor=0",
-     "SPEECH OUTPUT: 'Orca logo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
+    "40. Line Up",
+    ["BRAILLE LINE:  'foo image'",
+     "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -321,34 +405,36 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "28. Line Up",
+    "41. Line Up",
+    ["BRAILLE LINE:  'Two \"useless\" images along with some text in a link:'",
+     "     VISIBLE:  'Two \"useless\" images along with ', cursor=1",
+     "SPEECH OUTPUT: 'Two \"useless\" images along with some text in a link: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "42. Line Up",
     ["BRAILLE LINE:  'Orca logo image foo image'",
      "     VISIBLE:  'Orca logo image foo image', cursor=0",
-     "SPEECH OUTPUT: 'foo'",
+     "SPEECH OUTPUT: 'Orca logo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'Orca logo'",
+     "SPEECH OUTPUT: 'foo'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "29. Line Up",
-    ["BRAILLE LINE:  'One \"useless\" image and one \"useful\" image in a link: Orca logo image foo image'",
+    "43. Line Up",
+    ["BRAILLE LINE:  'One \"useless\" image and one \"useful\" image in a link:'",
      "     VISIBLE:  'One \"useless\" image and one \"use', cursor=1",
-     "SPEECH OUTPUT: 'One \"useless\" image and one \"useful\" image in a link: '",
-     "SPEECH OUTPUT: 'Orca logo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
+     "SPEECH OUTPUT: 'One \"useless\" image and one \"useful\" image in a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "30. Line Up",
+    "44. Line Up",
     ["BRAILLE LINE:  'foo image foo image'",
      "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -361,30 +447,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "31. Line Up",
-    ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link: foo'",
+    "45. Line Up",
+    ["BRAILLE LINE:  'Two \"useless\" images in a paragraph that is inside of a link:'",
      "     VISIBLE:  'Two \"useless\" images in a paragr', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link: '",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'"]))
+     "SPEECH OUTPUT: 'Two \"useless\" images in a paragraph that is inside of a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "32. Line Up",
-    ["BRAILLE LINE:  'foo image foo image'",
-     "     VISIBLE:  'foo image foo image', cursor=0",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Up"))
-sequence.append(utils.AssertPresentationAction(
-    "33. Line Up",
+    "46. Line Up",
     ["BRAILLE LINE:  'foo image foo image'",
      "     VISIBLE:  'foo image foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -397,21 +468,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "34. Line Up",
-    ["BRAILLE LINE:  'Two \"useless\" images in a link: foo image foo image'",
-     "     VISIBLE:  'Two \"useless\" images in a link: ', cursor=1",
-     "SPEECH OUTPUT: 'Two \"useless\" images in a link: '",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
+    "47. Line Up",
+    ["BRAILLE LINE:  'Two \"useless\" images in a link:'",
+     "     VISIBLE:  'Two \"useless\" images in a link:', cursor=1",
+     "SPEECH OUTPUT: 'Two \"useless\" images in a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "35. Line Up",
+    "48. Line Up",
     ["BRAILLE LINE:  'foo image'",
      "     VISIBLE:  'foo image', cursor=0",
      "SPEECH OUTPUT: 'foo'",
@@ -421,18 +486,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "36. Line Up",
-    ["BRAILLE LINE:  'One \"useless\" image in a link: foo image'",
-     "     VISIBLE:  'One \"useless\" image in a link: f', cursor=1",
-     "SPEECH OUTPUT: 'One \"useless\" image in a link: '",
-     "SPEECH OUTPUT: 'foo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
+    "49. Line Up",
+    ["BRAILLE LINE:  'One \"useless\" image in a link:'",
+     "     VISIBLE:  'One \"useless\" image in a link:', cursor=1",
+     "SPEECH OUTPUT: 'One \"useless\" image in a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "37. Line Up",
+    "50. Line Up",
     ["BRAILLE LINE:  'Orca logo image'",
      "     VISIBLE:  'Orca logo image', cursor=0",
      "SPEECH OUTPUT: 'Orca logo'",
@@ -443,19 +505,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "38. Line Up",
-    ["BRAILLE LINE:  'One image with both alt text and title attribute in a link: Orca logo image'",
+    "51. Line Up",
+    ["BRAILLE LINE:  'One image with both alt text and title attribute in a link:'",
      "     VISIBLE:  'One image with both alt text and', cursor=1",
-     "SPEECH OUTPUT: 'One image with both alt text and title attribute in a link: '",
-     "SPEECH OUTPUT: 'Orca logo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
-     "SPEECH OUTPUT: 'Orca logo showing a whale holding a white cane'"]))
+     "SPEECH OUTPUT: 'One image with both alt text and title attribute in a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "39. Line Up",
+    "52. Line Up",
     ["BRAILLE LINE:  'Orca logo showing a whale holding a white cane image'",
      "     VISIBLE:  'Orca logo showing a whale holdin', cursor=0",
      "SPEECH OUTPUT: 'Orca logo showing a whale holding a white cane'",
@@ -465,18 +523,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "40. Line Up",
-    ["BRAILLE LINE:  'One image with title attribute in a link: Orca logo showing a whale holding a white 
cane image'",
+    "53. Line Up",
+    ["BRAILLE LINE:  'One image with title attribute in a link:'",
      "     VISIBLE:  'One image with title attribute i', cursor=1",
-     "SPEECH OUTPUT: 'One image with title attribute in a link: '",
-     "SPEECH OUTPUT: 'Orca logo showing a whale holding a white cane'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
+     "SPEECH OUTPUT: 'One image with title attribute in a link: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "41. Line Up",
+    "54. Line Up",
     ["BRAILLE LINE:  'Orca logo image'",
      "     VISIBLE:  'Orca logo image', cursor=0",
      "SPEECH OUTPUT: 'Orca logo'",
@@ -486,13 +541,10 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "42. Line Up",
-    ["BRAILLE LINE:  'One image with alt text in a link: Orca logo image'",
+    "55. Line Up",
+    ["BRAILLE LINE:  'One image with alt text in a link:'",
      "     VISIBLE:  'One image with alt text in a lin', cursor=1",
-     "SPEECH OUTPUT: 'One image with alt text in a link: '",
-     "SPEECH OUTPUT: 'Orca logo'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'"]))
+     "SPEECH OUTPUT: 'One image with alt text in a link: '"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_lists.py b/test/keystrokes/firefox/line_nav_lists.py
index 4a3aaf8..208071d 100644
--- a/test/keystrokes/firefox/line_nav_lists.py
+++ b/test/keystrokes/firefox/line_nav_lists.py
@@ -20,16 +20,22 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
-    ["KNOWN ISSUE: We seem to be combining items here",
-     "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'",
+    ["BRAILLE LINE:  'Lists are not only fun to make, they are fun to use. They help us:'",
      "     VISIBLE:  'Lists are not only fun to make, ', 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'"]))
+     "SPEECH OUTPUT: 'Lists are not only fun to make, they are fun to use. They help us: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
+    ["BRAILLE LINE:  '1.remember what the heck we are doing each day'",
+     "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
+     "SPEECH OUTPUT: '1.remember what the heck we are doing each day'"]))
+
+sequence.append(utils.StartRecordingAction())
+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=1",
      "SPEECH OUTPUT: '2.arrange long and arbitrary lines of text into ordered lists that are pleasing to the 
eye and suggest some '"]))
@@ -37,7 +43,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "4. Line Down",
+    "5. Line Down",
     ["BRAILLE LINE:  'sense of priority, even if it is artificial'",
      "     VISIBLE:  'sense of priority, even if it is', cursor=1",
      "SPEECH OUTPUT: 'sense of priority, even if it is artificial'"]))
@@ -45,7 +51,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Line Down",
+    "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=1",
      "SPEECH OUTPUT: '3.look really cool when we carry them around on yellow Post-Itstm.'"]))
@@ -53,7 +59,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Line Down",
+    "7. Line Down",
     ["BRAILLE LINE:  '4.and that other thing I keep forgetting.'",
      "     VISIBLE:  '4.and that other thing I keep fo', cursor=1",
      "SPEECH OUTPUT: '4.and that other thing I keep forgetting.'"]))
@@ -61,17 +67,23 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Line Down",
-    ["KNOWN ISSUE: We seem to be combining items here",
-     "BRAILLE LINE:  'Your ordered lists can start at a strange number, like: VI.And use roman numerals,'",
+    "8. Line Down",
+    ["BRAILLE LINE:  'Your ordered lists can start at a strange number, like:'",
      "     VISIBLE:  'Your ordered lists can start at ', cursor=1",
-     "SPEECH OUTPUT: 'Your ordered lists can start at a strange number, like: '",
+     "SPEECH OUTPUT: 'Your ordered lists can start at a strange number, like: '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "9. Line Down",
+    ["BRAILLE LINE:  'VI.And use roman numerals,'",
+     "     VISIBLE:  'VI.And use roman numerals,', cursor=1",
      "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Line Down",
+    "10. Line Down",
     ["BRAILLE LINE:  'g.You might try using letters as well,'",
      "     VISIBLE:  'g.You might try using letters as', cursor=1",
      "SPEECH OUTPUT: 'g.You might try using letters as well,'"]))
@@ -79,7 +91,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "9. Line Down",
+    "11. Line Down",
     ["BRAILLE LINE:  'H.Maybe you prefer Big Letters,'",
      "     VISIBLE:  'H.Maybe you prefer Big Letters,', cursor=1",
      "SPEECH OUTPUT: 'H.Maybe you prefer Big Letters,'"]))
@@ -87,7 +99,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "10. Line Down",
+    "12. Line Down",
     ["BRAILLE LINE:  'ix.or small roman numerals'",
      "     VISIBLE:  'ix.or small roman numerals', cursor=1",
      "SPEECH OUTPUT: 'ix.or small roman numerals'"]))
@@ -95,7 +107,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "11. Line Up",
+    "13. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  'H.Maybe you prefer Big Letters, Maybe you prefer Big Letters,'",
      "     VISIBLE:  'H.Maybe you prefer Big Letters, ', cursor=1",
@@ -105,7 +117,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "12. Line Up",
+    "14. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  'g.You might try using letters as well, You might try using letters as well,'",
      "     VISIBLE:  'g.You might try using letters as', cursor=1",
@@ -115,7 +127,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "13. Line Up",
+    "15. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  'VI.And use roman numerals, And use roman numerals,'",
      "     VISIBLE:  'VI.And use roman numerals, And u', cursor=1",
@@ -125,17 +137,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "14. Line Up",
-    ["KNOWN ISSUE: We seem to be combining items here",
-     "BRAILLE LINE:  'Your ordered lists can start at a strange number, like: VI.And use roman numerals,'",
+    "16. Line Up",
+    ["BRAILLE LINE:  'Your ordered lists can start at a strange number, like:'",
      "     VISIBLE:  'Your ordered lists can start at ', cursor=1",
-     "SPEECH OUTPUT: 'Your ordered lists can start at a strange number, like: '",
-     "SPEECH OUTPUT: 'VI.And use roman numerals,'"]))
+     "SPEECH OUTPUT: 'Your ordered lists can start at a strange number, like: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "15. Line Up",
+    "17. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  '4.and that other thing I keep forgetting. and that other thing I keep forgetting.'",
      "     VISIBLE:  '4.and that other thing I keep fo', cursor=1",
@@ -145,7 +155,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "16. Line Up",
+    "18. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  '3.look really cool when we carry them around on yellow Post-Itstm. look really cool 
when we carry them around on yellow Post-Itstm.'",
      "     VISIBLE:  '3.look really cool when we carry', cursor=1",
@@ -155,7 +165,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "17. Line Up",
+    "19. Line Up",
     ["BRAILLE LINE:  'sense of priority, even if it is artificial'",
      "     VISIBLE:  'sense of priority, even if it is', cursor=1",
      "SPEECH OUTPUT: 'sense of priority, even if it is artificial'"]))
@@ -163,7 +173,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "18. Line Up",
+    "20. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  '2.arrange long and arbitrary lines of text into ordered lists that are pleasing to the 
eye and suggest some 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=1",
@@ -173,7 +183,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "19. Line Up",
+    "21. Line Up",
     ["KNOWN ISSUE: Due to a Gecko bug in which we get the wrong line at offset for list items, we are 
presenting this twice on the way up. They have already fixed this bug in Nightly.",
      "BRAILLE LINE:  '1.remember what the heck we are doing each day remember what the heck we are doing 
each day'",
      "     VISIBLE:  '1.remember what the heck we are ', cursor=1",
@@ -183,16 +193,15 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "20. Line Up",
-    ["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'",
+    "22. Line Up",
+    ["BRAILLE LINE:  'Lists are not only fun to make, they are fun to use. They help us:'",
      "     VISIBLE:  'Lists are not only fun to make, ', 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'"]))
+     "SPEECH OUTPUT: 'Lists are not only fun to make, they are fun to use. They help us: '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "21. Line Up",
+    "23. Line Up",
     ["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",
diff --git a/test/keystrokes/firefox/line_nav_simple_form.py b/test/keystrokes/firefox/line_nav_simple_form.py
index d6df4fc..22b1752 100644
--- a/test/keystrokes/firefox/line_nav_simple_form.py
+++ b/test/keystrokes/firefox/line_nav_simple_form.py
@@ -32,26 +32,34 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. line Down",
-    ["BRAILLE LINE:  'Tell me a little more about yourself:      $l'",
+    ["BRAILLE LINE:  'Tell me a little more about yourself:'",
      "     VISIBLE:  'Tell me a little more about your', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:",
-     "'",
-     "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '     '"]))
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. line Down",
+    ["BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
+     "     VISIBLE:  'I am a monkey with a long tail. ', cursor=1",
+     "SPEECH OUTPUT: 'entry'",
+     "SPEECH OUTPUT: 'I am a monkey with a long tail.  I like '"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "5. line Down",
     ["BRAILLE LINE:  'to swing from trees and eat bananas.   $l'",
      "     VISIBLE:  'to swing from trees and eat bana', cursor=1",
+     "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'to swing from trees and eat bananas.  '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "5. line Down",
+    "6. line Down",
     ["BRAILLE LINE:  'I've recently taken up typing and plan  $l'",
      "     VISIBLE:  'I've recently taken up typing an', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -61,7 +69,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "6. line Down",
+    "7. line Down",
     ["BRAILLE LINE:  'to write my memoirs. $l'",
      "     VISIBLE:  'to write my memoirs. $l', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -71,14 +79,14 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "7. line Down",
+    "8. line Down",
     ["BRAILLE LINE:  '      $l'",
      "     VISIBLE:  '      $l', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. line Down",
+    "9. line Down",
     ["BRAILLE LINE:  'Check one or more: < > Red check box < > Blue check box < > Green check box'",
      "     VISIBLE:  'Check one or more: < > Red check', cursor=1",
      "SPEECH OUTPUT: 'Check one or more: '",
@@ -95,7 +103,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "9. line Down",
+    "10. line Down",
     ["BRAILLE LINE:  'Make a selection: Water combo box'",
      "     VISIBLE:  'Make a selection: Water combo bo', cursor=1",
      "SPEECH OUTPUT: 'Make a selection: '",
@@ -105,12 +113,19 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "10. line Down",
-    ["BRAILLE LINE:  'Which sports do you like?Hockey list box'",
-     "     VISIBLE:  'Which sports do you like?Hockey ', cursor=1",
+    "11. line Down",
+    ["BRAILLE LINE:  'Which sports do you like?'",
+     "     VISIBLE:  'Which sports do you like?', cursor=1",
+     "SPEECH OUTPUT: 'Which sports do you like?",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "12. line Down",
+    ["BRAILLE LINE:  'Hockey list box'",
+     "     VISIBLE:  'Hockey list box', cursor=0",
      "SPEECH OUTPUT: 'Which sports do you like?",
-     "'",
-     "SPEECH OUTPUT: 'Which sports do you like?'",
      "SPEECH OUTPUT: 'Hockey'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 4 items'"]))
@@ -118,7 +133,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "11. line Down",
+    "13. line Down",
     ["BRAILLE LINE:  'Dashing picture of Willie Walker image'",
      "     VISIBLE:  'Dashing picture of Willie Walker', cursor=0",
      "SPEECH OUTPUT: 'Dashing picture of Willie Walker'",
@@ -129,7 +144,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "12. line Down",
+    "14. line Down",
     ["BRAILLE LINE:  'Ain't he handsome (please say yes)? & y radio button Yes & y radio button No'",
      "     VISIBLE:  'Ain't he handsome (please say ye', cursor=1",
      "SPEECH OUTPUT: 'Ain't he handsome (please say yes)? '",
@@ -143,7 +158,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:  'Dashing picture of Willie Walker image'",
      "     VISIBLE:  'Dashing picture of Willie Walker', cursor=0",
      "SPEECH OUTPUT: 'Dashing picture of Willie Walker'",
@@ -154,10 +169,10 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "14. line Up",
+    "16. line Up",
     ["BRAILLE LINE:  'Hockey list box'",
      "     VISIBLE:  'Hockey list box', cursor=0",
-     "SPEECH OUTPUT: 'Which sports do you like?'",
+     "SPEECH OUTPUT: 'Which sports do you like?",
      "SPEECH OUTPUT: 'Hockey'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 4 items'"]))
@@ -165,20 +180,16 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "15. line Up",
-    ["BRAILLE LINE:  'Which sports do you like?Hockey list box'",
-     "     VISIBLE:  'Which sports do you like?Hockey ', cursor=1",
+    "17. line Up",
+    ["BRAILLE LINE:  'Which sports do you like?'",
+     "     VISIBLE:  'Which sports do you like?', cursor=1",
      "SPEECH OUTPUT: 'Which sports do you like?",
-     "'",
-     "SPEECH OUTPUT: 'Which sports do you like?'",
-     "SPEECH OUTPUT: 'Hockey'",
-     "SPEECH OUTPUT: 'multi-select'",
-     "SPEECH OUTPUT: 'List with 4 items'"]))
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "16. line Up",
+    "18. line Up",
     ["BRAILLE LINE:  'Make a selection: Water combo box'",
      "     VISIBLE:  'Make a selection: Water combo bo', cursor=1",
      "SPEECH OUTPUT: 'Make a selection: '",
@@ -188,7 +199,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "17. line Up",
+    "19. line Up",
     ["BRAILLE LINE:  'Check one or more: < > Red check box < > Blue check box < > Green check box'",
      "     VISIBLE:  'Check one or more: < > Red check', cursor=1",
      "SPEECH OUTPUT: 'Check one or more: '",
@@ -205,14 +216,14 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "18. line Up",
+    "20. line Up",
     ["BRAILLE LINE:  '      $l'",
      "     VISIBLE:  '      $l', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "19. line Up",
+    "21. line Up",
     ["BRAILLE LINE:  'to write my memoirs. $l'",
      "     VISIBLE:  'to write my memoirs. $l', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -222,7 +233,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:  'I've recently taken up typing and plan  $l'",
      "     VISIBLE:  'I've recently taken up typing an', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -232,7 +243,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "21. line Up",
+    "23. line Up",
     ["BRAILLE LINE:  'to swing from trees and eat bananas.   $l'",
      "     VISIBLE:  'to swing from trees and eat bana', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -242,7 +253,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "22. line Up",
+    "24. line Up",
     ["BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
      "     VISIBLE:  'I am a monkey with a long tail. ', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
@@ -252,19 +263,16 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "23. line Up",
-    ["BRAILLE LINE:  'Tell me a little more about yourself:      $l'",
+    "25. line Up",
+    ["BRAILLE LINE:  'Tell me a little more about yourself:'",
      "     VISIBLE:  'Tell me a little more about your', cursor=1",
      "SPEECH OUTPUT: 'Tell me a little more about yourself:",
-     "'",
-     "SPEECH OUTPUT: 'Tell me a little more about yourself:'",
-     "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '     '"]))
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "24. line Up",
+    "26. line Up",
     ["BRAILLE LINE:  'Tell me a secret:  $l'",
      "     VISIBLE:  'Tell me a secret:  $l', cursor=1",
      "SPEECH OUTPUT: 'Tell me a secret: '",
@@ -273,7 +281,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "25. line Up",
+    "27. line Up",
     ["BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
      "     VISIBLE:  'Magic disappearing text trick: t', cursor=1",
      "SPEECH OUTPUT: 'Magic disappearing text trick: '",
@@ -283,7 +291,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "26. line Up",
+    "28. line Up",
     ["BRAILLE LINE:  'Type something here:  $l'",
      "     VISIBLE:  'Type something here:  $l', cursor=1",
      "SPEECH OUTPUT: 'Type something here: '",
diff --git a/test/keystrokes/firefox/line_nav_sun_java.py b/test/keystrokes/firefox/line_nav_sun_java.py
index f945f31..16eb986 100644
--- a/test/keystrokes/firefox/line_nav_sun_java.py
+++ b/test/keystrokes/firefox/line_nav_sun_java.py
@@ -308,11 +308,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "30. Line Down",
-    ["BRAILLE LINE:  'Choose the install format that is most suitable to your needs.    $l'",
+    ["BRAILLE LINE:  'Choose the install format that is most suitable to your needs.'",
      "     VISIBLE:  'Choose the install format that i', cursor=1",
-     "SPEECH OUTPUT: 'Choose the install format that is most suitable to your needs. '",
-     "SPEECH OUTPUT: ' '",
-     "SPEECH OUTPUT: 'text'"]))
+     "SPEECH OUTPUT: 'Choose the install format that is most suitable to your needs. '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -399,13 +397,12 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "41. Line Down",
-    ["BRAILLE LINE:  'Use these instructions if you want to use the self-extracting binary file to install 
the JDK. If you want to install RPM packages instead, see Installation of RPM File. '",
+    ["BRAILLE LINE:  'Use these instructions if you want to use the self-extracting binary file to install 
the JDK. If you want to install RPM packages instead, see Installation of RPM File.'",
      "     VISIBLE:  'Use these instructions if you wa', cursor=1",
      "SPEECH OUTPUT: 'Use these instructions if you want to use the self-extracting binary file to install 
the JDK. If you want to install RPM packages instead, see '",
      "SPEECH OUTPUT: 'Installation of RPM File'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: '. '",
-     "SPEECH OUTPUT: 'link'"]))
+     "SPEECH OUTPUT: '. '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/line_nav_wiki_down.py b/test/keystrokes/firefox/line_nav_wiki_down.py
index 68e3835..1e8aaac 100644
--- a/test/keystrokes/firefox/line_nav_wiki_down.py
+++ b/test/keystrokes/firefox/line_nav_wiki_down.py
@@ -79,7 +79,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
-    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | orca-list 
image Mailing List ('",
+    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing 
List ('",
      "     VISIBLE:  'Home | Download/Installation | C', cursor=1",
      "SPEECH OUTPUT: 'Home'",
      "SPEECH OUTPUT: 'link'",
@@ -93,9 +93,6 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Accessible Applications'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: ' | '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Mailing List'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -336,12 +333,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "30. Line Down",
-    ["BRAILLE LINE:  'problems in other components, is maintained in buglist image Bugzilla \(please see our 
notes on how we'",
+    ["BRAILLE LINE:  'problems in other components, is maintained in Bugzilla \(please see our notes on how 
we'",
      "     VISIBLE:  'problems in other components, is', cursor=1",
      "SPEECH OUTPUT: 'problems in other components, is maintained in '",
-     "SPEECH OUTPUT: 'buglist'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Bugzilla'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -363,19 +357,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "32. Line Down",
-    ["BRAILLE LINE:  'Please join and participate on the orca-list image Orca mailing list ( orca-list image 
archives): it's a helpful, kind, and'",
+    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, 
and'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Orca mailing list'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'archives'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -435,10 +423,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "38. Line Down",
-    ["BRAILLE LINE:  '• ubuntu-7-4-install-walk-through image'",
-     "     VISIBLE:  '• ubuntu-7-4-install-walk-throug', 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: 'ubuntu-7-4-install-walk-through'",
+     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
@@ -446,10 +434,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "39. Line Down",
-    ["BRAILLE LINE:  '• 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: 'linux-and-orca-review'",
+     "SPEECH OUTPUT: 'Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
@@ -457,10 +445,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "40. Line Down",
-    ["BRAILLE LINE:  '• installing-firefox-and-orca image'",
-     "     VISIBLE:  '• installing-firefox-and-orca im', 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: 'installing-firefox-and-orca'",
+     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
@@ -485,12 +473,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "43. Line Down",
-    ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including 
www.opensolaris.org image Open Solaris'",
+    ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including Open 
Solaris'",
      "     VISIBLE:  'provided by default on a number ', cursor=1",
      "SPEECH OUTPUT: 'provided by default on a number of operating system distributions, including '",
-     "SPEECH OUTPUT: 'www.opensolaris.org'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Open Solaris'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -499,12 +484,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "44. Line Down",
-    ["BRAILLE LINE:  'and www.ubuntu.com image Ubuntu.'",
-     "     VISIBLE:  'and www.ubuntu.com image Ubuntu.', cursor=1",
+    ["BRAILLE LINE:  'and Ubuntu.'",
+     "     VISIBLE:  'and Ubuntu.', cursor=1",
      "SPEECH OUTPUT: 'and '",
-     "SPEECH OUTPUT: 'www.ubuntu.com'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Ubuntu'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -824,20 +806,14 @@ sequence.append(utils.StartRecordingAction())
 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 ', cursor=1",
+    ["BRAILLE LINE:  '• Mailing list: orca-list gnome org (Archives)'",
+     "     VISIBLE:  '• Mailing list: orca-list gnome ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Mailing list: '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'orca-list gnome org'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Archives'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -847,20 +823,14 @@ sequence.append(utils.StartRecordingAction())
 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.o', cursor=1",
+    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
+     "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Bug database: '",
-     "SPEECH OUTPUT: 'bugzilla.gnome.org'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla)'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'buglist'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'current bug list'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -870,13 +840,10 @@ sequence.append(utils.StartRecordingAction())
 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 O', cursor=1",
+    ["BRAILLE LINE:  '• Design documents: Orca Documentation Series'",
+     "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Design documents: '",
-     "SPEECH OUTPUT: 'orca'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Orca Documentation Series'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -885,10 +852,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "81. Line Down",
-    ["BRAILLE LINE:  '• 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: 'www.diveintopython.org'",
+     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
@@ -896,10 +863,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "82. Line Down",
-    ["BRAILLE LINE:  '• 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: '103-6779448-2183842'",
+     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
@@ -907,10 +874,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "83. Line Down",
-    ["BRAILLE LINE:  '• 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: '103-6779448-2183842'",
+     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
 
diff --git a/test/keystrokes/firefox/line_nav_wiki_up.py b/test/keystrokes/firefox/line_nav_wiki_up.py
index 6d5fa0a..092d441 100644
--- a/test/keystrokes/firefox/line_nav_wiki_up.py
+++ b/test/keystrokes/firefox/line_nav_wiki_up.py
@@ -187,12 +187,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "20. Line Up",
-    ["BRAILLE LINE:  '• 103-6779448-2183842 image Python Pocket Reference, Mark Lutz'",
-     "     VISIBLE:  '• 103-6779448-2183842 image Pyth', cursor=1",
+    ["BRAILLE LINE:  '•Python Pocket Reference, Mark Lutz'",
+     "     VISIBLE:  '•Python Pocket Reference, Mark L', cursor=1",
      "SPEECH OUTPUT: '•'",
-     "SPEECH OUTPUT: '103-6779448-2183842'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -201,12 +198,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "21. Line Up",
-    ["BRAILLE LINE:  '• 103-6779448-2183842 image Python in a Nutshell, Alex Martelli'",
-     "     VISIBLE:  '• 103-6779448-2183842 image Pyth', cursor=1",
+    ["BRAILLE LINE:  '•Python in a Nutshell, Alex Martelli'",
+     "     VISIBLE:  '•Python in a Nutshell, Alex Mart', cursor=1",
      "SPEECH OUTPUT: '•'",
-     "SPEECH OUTPUT: '103-6779448-2183842'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -215,12 +209,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "22. Line Up",
-    ["BRAILLE LINE:  '• www.diveintopython.org image Dive Into Python, Mark Pilgrim'",
-     "     VISIBLE:  '• www.diveintopython.org image D', cursor=1",
+    ["BRAILLE LINE:  '•Dive Into Python, Mark Pilgrim'",
+     "     VISIBLE:  '•Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '•'",
-     "SPEECH OUTPUT: 'www.diveintopython.org'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -229,13 +220,10 @@ sequence.append(utils.StartRecordingAction())
 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 O', cursor=1",
+    ["BRAILLE LINE:  '• Design documents: Orca Documentation Series'",
+     "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Design documents: '",
-     "SPEECH OUTPUT: 'orca'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Orca Documentation Series'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -244,20 +232,14 @@ sequence.append(utils.StartRecordingAction())
 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.o', cursor=1",
+    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
+     "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Bug database: '",
-     "SPEECH OUTPUT: 'bugzilla.gnome.org'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla)'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'buglist'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'current bug list'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -267,20 +249,14 @@ sequence.append(utils.StartRecordingAction())
 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 ', cursor=1",
+    ["BRAILLE LINE:  '• Mailing list: orca-list gnome org (Archives)'",
+     "     VISIBLE:  '• Mailing list: orca-list gnome ', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Mailing list: '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'orca-list gnome org'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Archives'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -290,8 +266,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "26. Line Up",
-    ["BRAILLE LINE:  '• Frequently Asked Questions:  FAQ'",
-     "     VISIBLE:  '• Frequently Asked Questions:  F', cursor=1",
+    ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ'",
+     "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '•'",
      "SPEECH OUTPUT: 'Frequently Asked Questions: '",
      "SPEECH OUTPUT: 'FAQ'",
@@ -600,12 +576,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "59. Line Up",
-    ["BRAILLE LINE:  'and www.ubuntu.com image Ubuntu.'",
-     "     VISIBLE:  'and www.ubuntu.com image Ubuntu.', cursor=1",
+    ["BRAILLE LINE:  'and Ubuntu.'",
+     "     VISIBLE:  'and Ubuntu.', cursor=1",
      "SPEECH OUTPUT: 'and '",
-     "SPEECH OUTPUT: 'www.ubuntu.com'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Ubuntu'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -615,12 +588,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "60. Line Up",
-    ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including 
www.opensolaris.org image Open Solaris'",
+    ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including Open 
Solaris'",
      "     VISIBLE:  'provided by default on a number ', cursor=1",
      "SPEECH OUTPUT: 'provided by default on a number of operating system distributions, including '",
-     "SPEECH OUTPUT: 'www.opensolaris.org'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Open Solaris'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -646,12 +616,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "63. Line Up",
-    ["BRAILLE LINE:  '• installing-firefox-and-orca image Guide to installing the latest versions of Firefox 
and Orca'",
-     "     VISIBLE:  '• installing-firefox-and-orca im', 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: 'installing-firefox-and-orca'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -660,12 +627,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "64. Line Up",
-    ["BRAILLE LINE:  '• linux-and-orca-review image Review of Fedora 7 and the Orca screen reader for the 
Gnome graphical desktop'",
-     "     VISIBLE:  '• linux-and-orca-review image Re', 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: 'linux-and-orca-review'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -674,12 +638,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "65. Line Up",
-    ["BRAILLE LINE:  '• ubuntu-7-4-install-walk-through image Walk through of the installation of Ubuntu 
7.4. Very helpful tutorial'",
-     "     VISIBLE:  '• ubuntu-7-4-install-walk-throug', 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: 'ubuntu-7-4-install-walk-through'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'"]))
@@ -738,19 +699,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "71. Line Up",
-    ["BRAILLE LINE:  'Please join and participate on the orca-list image Orca mailing list ( orca-list image 
archives): it's a helpful, kind, and'",
+    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, 
and'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Orca mailing list'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: ' ('",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'archives'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -770,12 +725,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "73. Line Up",
-    ["BRAILLE LINE:  'problems in other components, is maintained in buglist image Bugzilla \(please see our 
notes on how we'",
+    ["BRAILLE LINE:  'problems in other components, is maintained in Bugzilla \(please see our notes on how 
we'",
      "     VISIBLE:  'problems in other components, is', cursor=1",
      "SPEECH OUTPUT: 'problems in other components, is maintained in '",
-     "SPEECH OUTPUT: 'buglist'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Bugzilla'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",
@@ -974,8 +926,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "94. Line Up",
-    ["BRAILLE LINE:  'HOT HOT HOT: Notes on  access to Firefox 3.0'",
-     "     VISIBLE:  'HOT HOT HOT: Notes on  access to', cursor=1",
+    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
+     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
      "SPEECH OUTPUT: 'HOT HOT HOT: Notes on '",
      "SPEECH OUTPUT: 'access to Firefox 3.0'",
      "SPEECH OUTPUT: 'link'"]))
@@ -1017,7 +969,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "98. Line Up",
-    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | orca-list 
image Mailing List ('",
+    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing 
List ('",
      "     VISIBLE:  'Home | Download/Installation | C', cursor=1",
      "SPEECH OUTPUT: 'Home'",
      "SPEECH OUTPUT: 'link'",
@@ -1031,9 +983,6 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Accessible Applications'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: ' | '",
-     "SPEECH OUTPUT: 'orca-list'",
-     "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'Mailing List'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'image'",


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