Index: test/keystrokes/firefox/moz_menu.py
===================================================================
--- test/keystrokes/firefox/moz_menu.py	(revision 4270)
+++ test/keystrokes/firefox/moz_menu.py	(working copy)
@@ -192,7 +192,8 @@
 sequence.append(KeyComboAction("Escape"))
 sequence.append(utils.AssertPresentationAction(
     "leave menu", 
-    ["BRAILLE LINE:  'Entry # $l Date $l Expense $l Amount $l Merchant $l Type ColumnHeader'",
+    ["BUG? - Missing a space before Type",
+     "BRAILLE LINE:  'Entry # $l Date $l Expense $l Amount $l Merchant $lType ColumnHeader'",
      "     VISIBLE:  'Entry # $l Date $l Expense $l Am', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'table'"]))
Index: test/keystrokes/firefox/dojo_slider.py
===================================================================
--- test/keystrokes/firefox/dojo_slider.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_slider.py	(working copy)
@@ -41,7 +41,7 @@
 sequence.append(KeyComboAction("Tab", 1000))
 sequence.append(utils.AssertPresentationAction(
     "tab to first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: 'Horizontal Slider Example table'",
      "SPEECH OUTPUT: 'Horizontal Slider Example slider 10'"]))
@@ -69,7 +69,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "1 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: '10'"]))
                             
@@ -82,7 +82,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "2 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: '10'"]))
                                
@@ -95,7 +95,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "3 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 11 Sli', cursor=1",
      "SPEECH OUTPUT: '11'"]))
                            
@@ -108,7 +108,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "4 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 11 Sli', cursor=1",
      "SPEECH OUTPUT: '11'"]))
                                
@@ -121,7 +121,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "5 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 11 Sli', cursor=1",
      "SPEECH OUTPUT: '11'"]))
                                   
@@ -134,7 +134,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "6 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 11 Sli', cursor=1",
      "SPEECH OUTPUT: '11'"]))
                                  
@@ -147,7 +147,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "7 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 11 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 11 Sli', cursor=1",
      "SPEECH OUTPUT: '11'"]))
                                   
@@ -160,7 +160,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "8 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: '10'"]))
                              
@@ -173,7 +173,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "9 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: '10'"]))
                             
@@ -186,7 +186,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "10 move first slider", 
-    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider  '",
+    ["BRAILLE LINE:  'Horizontal Slider Example 10 Slider'",
      "     VISIBLE:  'Horizontal Slider Example 10 Sli', cursor=1",
      "SPEECH OUTPUT: '10'"]))
 
@@ -199,10 +199,10 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "move to entry", 
-    ["BRAILLE LINE:  '10.0% $l'",
-     "     VISIBLE:  '10.0% $l', cursor=6",
-     "BRAILLE LINE:  '10.0% $l'",
-     "     VISIBLE:  '10.0% $l', cursor=6",
+    ["BRAILLE LINE:  '10.0% $l rdonly'",
+     "     VISIBLE:  '10.0% $l rdonly', cursor=0",
+     "BRAILLE LINE:  '10.0% $l rdonly'",
+     "     VISIBLE:  '10.0% $l rdonly', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Slider1 Value: read only text 10.0%'"]))
 
@@ -213,10 +213,11 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "move to button", 
-    ["BRAILLE LINE:  'Disable previous slider Button'",
+    ["BUG? - Where should the cursor be winding up? It starts at 1 and then lands at 0",
+     "BRAILLE LINE:  'Disable previous slider Button'",
      "     VISIBLE:  'Disable previous slider Button', cursor=1",
      "BRAILLE LINE:  'Disable previous slider Button'",
-     "     VISIBLE:  'Disable previous slider Button', cursor=1",
+     "     VISIBLE:  'Disable previous slider Button', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Disable previous slider button'"]))
      
Index: test/keystrokes/firefox/flat_review_combo_box.py
===================================================================
--- test/keystrokes/firefox/flat_review_combo_box.py	(revision 4270)
+++ test/keystrokes/firefox/flat_review_combo_box.py	(working copy)
@@ -35,8 +35,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
+     "     VISIBLE:  'Severity: Severity normal Combo', cursor=1",
      "SPEECH OUTPUT: 'Severity link : Severity normal combo box'"]))
 
 ########################################################################
@@ -46,8 +46,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Severity combo box", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
+     "     VISIBLE:  'Severity: Severity normal Combo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Severity link'"]))
 
Index: test/keystrokes/firefox/label_guess_bugzilla_search.py
===================================================================
--- test/keystrokes/firefox/label_guess_bugzilla_search.py	(revision 4270)
+++ test/keystrokes/firefox/label_guess_bugzilla_search.py	(working copy)
@@ -41,8 +41,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
@@ -54,7 +54,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  'contains all of the words/string', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Summary: contains all of the words/strings combo box'"]))
@@ -65,9 +65,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  ' $l Search Button', cursor=1",
-     "BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+     "BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  ' $l Search Button', cursor=1",
      "SPEECH OUTPUT: 'text'"]))
 
@@ -77,7 +77,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  'Search Button', cursor=1",
      "SPEECH OUTPUT: 'Search button'"]))
 
@@ -142,8 +142,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'A Comment: contains the string Combo  $l'",
-     "     VISIBLE:  'contains the string Combo  $l', cursor=1",
+    ["BRAILLE LINE:  'A Comment: contains the string Combo $l'",
+     "     VISIBLE:  'contains the string Combo $l', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'A Comment: contains the string combo box'"]))
 
@@ -153,9 +153,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'A Comment: contains the string Combo  $l'",
+    ["BRAILLE LINE:  'A Comment: contains the string Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'A Comment: contains the string Combo  $l'",
+     "BRAILLE LINE:  'A Comment: contains the string Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'text'"]))
 
@@ -165,7 +165,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo  $l'",
+    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo $l'",
      "     VISIBLE:  'contains all of the words/string', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Whiteboard: contains all of the words/strings combo box'"]))
@@ -176,9 +176,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo  $l'",
+    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo  $l'",
+     "BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'text'"]))
 
@@ -188,7 +188,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Keywords Link : contains all of the keywords Combo  $l'",
+    ["BRAILLE LINE:  'Keywords: contains all of the keywords Combo $l'",
      "     VISIBLE:  'contains all of the keywords Com', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Keywords contains all of the keywords combo box'"]))
@@ -200,9 +200,9 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_ENTRY))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Keywords Link : contains all of the keywords Combo  $l'",
+    ["BRAILLE LINE:  'Keywords: contains all of the keywords Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Keywords Link : contains all of the keywords Combo  $l'",
+     "BRAILLE LINE:  'Keywords: contains all of the keywords Combo $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'text'"]))
 
@@ -267,8 +267,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -277,8 +277,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  the reporter'",
-     "     VISIBLE:  '< > CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the reporter'",
+     "     VISIBLE:  '< > CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -287,8 +287,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  the QA contact'",
-     "     VISIBLE:  '< > CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the QA contact'",
+     "     VISIBLE:  '< > CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -297,8 +297,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  a CC list member'",
-     "     VISIBLE:  '< > CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a CC list member'",
+     "     VISIBLE:  '< > CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -307,8 +307,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -340,8 +340,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -350,8 +350,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '<x> CheckBox  the reporter'",
-     "     VISIBLE:  '<x> CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the reporter'",
+     "     VISIBLE:  '<x> CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -360,8 +360,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '<x> CheckBox  the QA contact'",
-     "     VISIBLE:  '<x> CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the QA contact'",
+     "     VISIBLE:  '<x> CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -370,8 +370,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '<x> CheckBox  a CC list member'",
-     "     VISIBLE:  '<x> CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox a CC list member'",
+     "     VISIBLE:  '<x> CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -380,8 +380,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -439,10 +439,10 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_ENTRY))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
-     "BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
+    ["BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
+     "BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
      "SPEECH OUTPUT: 'Only bugs changed between: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -452,10 +452,10 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_ENTRY))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=10",
-     "BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=10",
+    ["BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=9",
+     "BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=9",
      "SPEECH OUTPUT: 'and text Now'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -511,7 +511,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Sort results by: Reuse same sort as last time Combo'",
+    ["BUG? - extra space between by: and Reuse",
+     "BRAILLE LINE:  'Sort results by:  Reuse same sort as last time Combo'",
      "     VISIBLE:  'Reuse same sort as last time Com', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Sort results by: Reuse same sort as last time combo box'"]))
@@ -532,8 +533,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  and remember these as my default search options'",
-     "     VISIBLE:  '< > CheckBox  and remember these', cursor=1",
+    ["BRAILLE LINE:  '    < > CheckBox and remember these as my default search options'",
+     "     VISIBLE:  '< > CheckBox and remember these ', cursor=1",
      "SPEECH OUTPUT: 'and remember these as my default search options check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -542,8 +543,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '< > CheckBox  Not (negate this whole chart)'",
-     "     VISIBLE:  '< > CheckBox  Not (negate this w', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox Not (negate this whole chart)'",
+     "     VISIBLE:  '< > CheckBox Not \(negate this wh', cursor=1",
      "SPEECH OUTPUT: 'Not (negate this whole chart) check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/sayAll_bugzilla_search.py
===================================================================
--- test/keystrokes/firefox/sayAll_bugzilla_search.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_bugzilla_search.py	(working copy)
@@ -39,8 +39,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/sayAll_html_test_page.py
===================================================================
--- test/keystrokes/firefox/sayAll_html_test_page.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_html_test_page.py	(working copy)
@@ -26,8 +26,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Test Formats Link'",
-     "     VISIBLE:  'Test Formats Link', cursor=1",
+    ["BRAILLE LINE:  'Test Formats'",
+     "     VISIBLE:  'Test Formats', cursor=1",
      "SPEECH OUTPUT: 'Test Formats link ",
      "'"]))
 
Index: test/keystrokes/firefox/dojo_tree.py
===================================================================
--- test/keystrokes/firefox/dojo_tree.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_tree.py	(working copy)
@@ -37,8 +37,9 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "tab to continents", 
-    ["BRAILLE LINE:  'Continents ListItem'",
-     "     VISIBLE:  'Continents ListItem', cursor=1",
+    ["BUG? - Should Tree be in the context? If not, the braille generator should deal with it.",
+     "BRAILLE LINE:  'Tree Continents ListItem'",
+     "     VISIBLE:  'Tree Continents ListItem', cursor=6",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Continents expanded'",
      "SPEECH OUTPUT: 'tree level 1'"]))
@@ -50,8 +51,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to Africa", 
-    ["BRAILLE LINE:  'Africa ListItem'",
-     "     VISIBLE:  'Africa ListItem', cursor=1",
+    ["BUG? - Should Panel be in the context? If not, the braille generator should deal with it.",
+     "BRAILLE LINE:  'Panel Africa ListItem'",
+     "     VISIBLE:  'Panel Africa ListItem', cursor=7",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Africa collapsed'",
      "SPEECH OUTPUT: 'tree level 2'"]))
@@ -64,8 +66,8 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  'Africa ListItem'",
-     "     VISIBLE:  'Africa ListItem', cursor=1",
+    ["BRAILLE LINE:  'Panel Africa ListItem'",
+     "     VISIBLE:  'Panel Africa ListItem', cursor=7",
      "SPEECH OUTPUT: 'list item'",
      "SPEECH OUTPUT: 'Africa'",
      "SPEECH OUTPUT: ''",
@@ -79,8 +81,8 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "expand Africa", 
-    ["BRAILLE LINE:  'Africa ListItem'",
-     "     VISIBLE:  'Africa ListItem', cursor=1",
+    ["BRAILLE LINE:  'Panel Africa ListItem'",
+     "     VISIBLE:  'Panel Africa ListItem', cursor=7",
      "SPEECH OUTPUT: 'expanded'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -88,8 +90,8 @@
 sequence.append(WaitForFocus("Egypt", acc_role=pyatspi.ROLE_LIST_ITEM))
 sequence.append(utils.AssertPresentationAction(
     "arrow to Egypt", 
-    ["BRAILLE LINE:  'Egypt ListItem'",
-     "     VISIBLE:  'Egypt ListItem', cursor=1",
+    ["BRAILLE LINE:  'Panel Egypt ListItem'",
+     "     VISIBLE:  'Panel Egypt ListItem', cursor=7",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Egypt'",
      "SPEECH OUTPUT: 'tree level 3'"]))
@@ -151,8 +153,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to China", 
-    ["BRAILLE LINE:  'China ListItem'",
-     "     VISIBLE:  'China ListItem', cursor=1",
+    ["BRAILLE LINE:  'Panel China ListItem'",
+     "     VISIBLE:  'Panel China ListItem', cursor=7",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'China'",
      "SPEECH OUTPUT: 'tree level 3'"]))
Index: test/keystrokes/firefox/html_role_combo_box.py
===================================================================
--- test/keystrokes/firefox/html_role_combo_box.py	(revision 4270)
+++ test/keystrokes/firefox/html_role_combo_box.py	(working copy)
@@ -35,8 +35,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
+     "     VISIBLE:  'Severity: Severity normal Combo', cursor=1",
      "SPEECH OUTPUT: 'Severity link : Severity normal combo box'"]))
 
 ########################################################################
@@ -46,8 +46,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Severity combo box", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
+     "     VISIBLE:  'Severity: Severity normal Combo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Severity link'"]))
 
@@ -60,8 +60,9 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_COMBO_BOX))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Severity combo box", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'normal Combo', cursor=1",
+    ["BUG? - Where should the cursor be? If we're not IN the combo box should it be as is with the label showing or not?",
+     "BRAILLE LINE:  'Severity:  Severity normal Combo'",
+     "     VISIBLE:  'Severity:  Severity normal Combo', cursor=21",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Severity normal combo box'"]))
 
@@ -73,8 +74,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Priority Link", 
-    ["BRAILLE LINE:  'Priority Link : Normal Combo'",
-     "     VISIBLE:  'Priority Link : Normal Combo', cursor=1",
+    ["BRAILLE LINE:  'Priority: Normal Combo'",
+     "     VISIBLE:  'Priority: Normal Combo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Priority link'"]))
 
@@ -83,8 +84,8 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_COMBO_BOX))
 sequence.append(utils.AssertPresentationAction(
     "Tab to Priority combo box", 
-    ["BRAILLE LINE:  'Priority Link : Normal Combo'",
-     "     VISIBLE:  'Priority Link : Normal Combo', cursor=17",
+    ["BRAILLE LINE:  'Priority:  Normal Combo'",
+     "     VISIBLE:  'Priority:  Normal Combo', cursor=12",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Priority: Normal combo box'"]))
 
@@ -119,8 +120,8 @@
 sequence.append(KeyComboAction("<Alt>Down"))
 sequence.append(utils.AssertPresentationAction(
     "Alt Down to Expand",
-    ["BRAILLE LINE:  'Priority Link : Normal Combo'",
-     "     VISIBLE:  'Priority Link : Normal Combo', cursor=17",
+    ["BRAILLE LINE:  'Priority:  Normal Combo'",
+     "     VISIBLE:  'Priority:  Normal Combo', cursor=0",
      "BRAILLE LINE:  'Normal'",
      "     VISIBLE:  'Normal', cursor=1",
      "SPEECH OUTPUT: ''",
@@ -147,8 +148,8 @@
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "Return to collapse combo box",
-    ["BRAILLE LINE:  'Priority Link : Low Combo'",
-     "     VISIBLE:  'Priority Link : Low Combo', cursor=17",
+    ["BRAILLE LINE:  'Priority:  Low Combo'",
+     "     VISIBLE:  'Priority:  Low Combo', cursor=12",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Priority: Low combo box'"]))
 
@@ -173,7 +174,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Left out of combo box", 
     ["BRAILLE LINE:  'FIXED Combo'",
-     "     VISIBLE:  'FIXED Combo', cursor=0",
+     "     VISIBLE:  'FIXED Combo', cursor=1",
      "SPEECH OUTPUT: 'Resolution: FIXED combo box'"]))
 
 ########################################################################
@@ -220,7 +221,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Alt Down to Expand", 
     ["BRAILLE LINE:  'Speech Combo'",
-     "     VISIBLE:  'Speech Combo', cursor=1",
+     "     VISIBLE:  'Speech Combo', cursor=0",
      "BRAILLE LINE:  'Speech'",
      "     VISIBLE:  'Speech', cursor=1",
      "SPEECH OUTPUT: ''",
Index: test/keystrokes/firefox/moz_progressbar.py
===================================================================
--- test/keystrokes/firefox/moz_progressbar.py	(revision 4270)
+++ test/keystrokes/firefox/moz_progressbar.py	(working copy)
@@ -33,8 +33,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "tab to button", 
-    ["BRAILLE LINE:  'Load schedule Cancel'",
-     "     VISIBLE:  'Load schedule Cancel', cursor=0",
+    ["BRAILLE LINE:  'Load schedule  Cancel'",
+     "     VISIBLE:  'Load schedule  Cancel', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Load schedule button'"]))
 
Index: test/keystrokes/firefox/line_nav_wiki.py
===================================================================
--- test/keystrokes/firefox/line_nav_wiki.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_wiki.py	(working copy)
@@ -40,8 +40,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Home Link News Link Projects Link Art Link Support Link Development Link Community Link'",
-     "     VISIBLE:  'Home Link News Link Projects Lin', cursor=1",
+    ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
+     "     VISIBLE:  'Home News Projects Art Support D', cursor=1",
      "SPEECH OUTPUT: 'Home link News link Projects link Art link Support link Development link Community link'"]))
 
 ########################################################################
@@ -59,32 +59,32 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Home Link RecentChanges Link FindPage Link HelpContents Link Orca Link'",
-     "     VISIBLE:  'Home Link RecentChanges Link Fin', cursor=1",
+    ["BRAILLE LINE:  'Home RecentChanges FindPage HelpContents Orca'",
+     "     VISIBLE:  'Home RecentChanges FindPage Help', cursor=1",
      "SPEECH OUTPUT: 'Home link RecentChanges link FindPage link HelpContents link Orca link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'en Español Link'",
-     "     VISIBLE:  'en Español Link', cursor=1",
+    ["BRAILLE LINE:  'en Español'",
+     "     VISIBLE:  'en Español', cursor=1",
      "SPEECH OUTPUT: 'en Español link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Home Link | Download/Installation Link  | Configuration/Use Link  | Accessible Applications Link  | Mailing List Link  ( Archives Link ) |'",
-     "     VISIBLE:  'Home Link | Download/Installatio', cursor=1",
+    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing List (Archives) |'",
+     "     VISIBLE:  'Home | Download/Installation | Co', cursor=1",
      "SPEECH OUTPUT: 'Home link | Download/Installation link  | Configuration/Use link  | Accessible Applications link  | Mailing List link  ( Archives link ) |'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'FAQ Link | DocIndex Link'",
-     "     VISIBLE:  'FAQ Link | DocIndex Link', cursor=1",
+    ["BRAILLE LINE:  'FAQ | DocIndex'",
+     "     VISIBLE:  'FAQ | DocIndex', cursor=1",
      "SPEECH OUTPUT: 'FAQ link | DocIndex link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -106,15 +106,15 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Orca Logo Link Image'",
-     "     VISIBLE:  'Orca Logo Link Image', cursor=1",
+    ["BRAILLE LINE:  'Orca Logo Image'",
+     "     VISIBLE:  'Orca Logo Image', cursor=1",
      "SPEECH OUTPUT: 'Orca Logo link image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0 Link'",
+    ["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 access to Firefox 3.0 link'"]))
 
@@ -130,64 +130,64 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '1. Welcome to Orca! Link'",
-     "     VISIBLE:  '1. Welcome to Orca! Link', cursor=1",
+    ["BRAILLE LINE:  '1. Welcome to Orca!'",
+     "     VISIBLE:  '1. Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1. Welcome to Orca! link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '2. About Link'",
-     "     VISIBLE:  '2. About Link', cursor=1",
+    ["BRAILLE LINE:  '2. About'",
+     "     VISIBLE:  '2. About', cursor=1",
      "SPEECH OUTPUT: '2. About link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '3. Audio Guides Link'",
-     "     VISIBLE:  '3. Audio Guides Link', cursor=1",
+    ["BRAILLE LINE:  '3. Audio Guides'",
+     "     VISIBLE:  '3. Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3. Audio Guides link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '4. Download/Installation Link'",
-     "     VISIBLE:  '4. Download/Installation Link', cursor=1",
+    ["BRAILLE LINE:  '4. Download/Installation'",
+     "     VISIBLE:  '4. Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4. Download/Installation link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '5. Configuration/Use Link'",
-     "     VISIBLE:  '5. Configuration/Use Link', cursor=1",
+    ["BRAILLE LINE:  '5. Configuration/Use'",
+     "     VISIBLE:  '5. Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5. Configuration/Use link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '6. Accessible Applications Link'",
-     "     VISIBLE:  '6. Accessible Applications Link', cursor=1",
+    ["BRAILLE LINE:  '6. Accessible Applications'",
+     "     VISIBLE:  '6. Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6. Accessible Applications link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '7. How Can I Help? Link'",
-     "     VISIBLE:  '7. How Can I Help? Link', cursor=1",
+    ["BRAILLE LINE:  '7. How Can I Help?'",
+     "     VISIBLE:  '7. How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7. How Can I Help? link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '8. More Information Link'",
-     "     VISIBLE:  '8. More Information Link', cursor=1",
+    ["BRAILLE LINE:  '8. More Information'",
+     "     VISIBLE:  '8. More Information', cursor=1",
      "SPEECH OUTPUT: '8. More Information link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -242,7 +242,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'been led by the Accessibility Program Office of Sun Microsystems, Inc. Link'",
+    ["BRAILLE LINE:  'been led by the Accessibility Program Office of Sun Microsystems, Inc.'",
      "     VISIBLE:  'been led by the Accessibility Pr', cursor=1",
      "SPEECH OUTPUT: 'been led by the Accessibility Program Office of Sun Microsystems, Inc. link'"]))
 
@@ -250,7 +250,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'with contributions from many community members Link .'",
+    ["BRAILLE LINE:  'with contributions from many community members.'",
      "     VISIBLE:  'with contributions from many com', cursor=1",
      "SPEECH OUTPUT: 'with contributions from many community members link .'"]))
 
@@ -274,15 +274,15 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Bugzilla Link  (please see our notes on how we use Bugzilla Link ).'",
-     "     VISIBLE:  'Bugzilla Link  (please see our n', cursor=1",
+    ["BRAILLE LINE:  'Bugzilla (please see our notes on how we use Bugzilla).'",
+     "     VISIBLE:  'Bugzilla (please see our notes o', cursor=1",
      "SPEECH OUTPUT: 'Bugzilla link  (please see our notes on how we use Bugzilla link ).'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list Link  ( archives Link ): it's a helpful, kind, and productive'",
+    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, and productive'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  ( archives link ): it's a helpful, kind, and productive'"]))
 
@@ -306,15 +306,15 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Darragh Ó Héiligh Link  has created several audio guides for Orca. This is a fantastic contribution'",
-     "     VISIBLE:  'Darragh Ó Héiligh Link  has crea', cursor=1",
+    ["BRAILLE LINE:  'Darragh Ó Héiligh has created several audio guides for Orca. This is a fantastic contribution'",
+     "     VISIBLE:  'Darragh Ó Héiligh has created se', cursor=1",
      "SPEECH OUTPUT: 'Darragh Ó Héiligh link  has created several audio guides for Orca. This is a fantastic contribution'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp Link  and'",
+    ["BRAILLE LINE:  '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp and'",
      "     VISIBLE:  '(THANKS!)!!! The audio guides ca', cursor=1",
      "SPEECH OUTPUT: '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp link  and'"]))
 
@@ -330,7 +330,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial Link'",
+    ["BRAILLE LINE:  '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "     VISIBLE:  '• Walk through of the installati', cursor=1",
      "SPEECH OUTPUT: '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial link'"]))
 
@@ -338,7 +338,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '• Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop Link'",
+    ["BRAILLE LINE:  '• Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop'",
      "     VISIBLE:  '• Review of Fedora 7 and the Orc', cursor=1",
      "SPEECH OUTPUT: '• Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop link'"]))
 
@@ -346,7 +346,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '• Guide to installing the latest versions of Firefox and Orca Link'",
+    ["BRAILLE LINE:  '• Guide to installing the latest versions of Firefox and Orca'",
      "     VISIBLE:  '• Guide to installing the latest', cursor=1",
      "SPEECH OUTPUT: '• Guide to installing the latest versions of Firefox and Orca link'"]))
 
@@ -370,7 +370,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'default on a number of operating system distributions, including Open Solaris Link  and Ubuntu Link .'",
+    ["BRAILLE LINE:  'default on a number of operating system distributions, including Open Solaris and Ubuntu.'",
      "     VISIBLE:  'default on a number of operating', cursor=1",
      "SPEECH OUTPUT: 'default on a number of operating system distributions, including Open Solaris link  and Ubuntu link .'"]))
 
@@ -378,7 +378,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Please also refer to the Download/Installation page Link  for detailed information on various distributions'",
+    ["BRAILLE LINE:  'Please also refer to the Download/Installation page for detailed information on various distributions'",
      "     VISIBLE:  'Please also refer to the Downloa', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Download/Installation page link  for detailed information on various distributions'"]))
 
@@ -418,7 +418,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'information as you navigate the desktop using the built-in navigation mechanisms of GNOME Link . These'",
+    ["BRAILLE LINE:  'information as you navigate the desktop using the built-in navigation mechanisms of GNOME. These'",
      "     VISIBLE:  'information as you navigate the ', cursor=1",
      "SPEECH OUTPUT: 'information as you navigate the desktop using the built-in navigation mechanisms of GNOME link . These'"]))
 
@@ -434,7 +434,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI Link'",
+    ["BRAILLE LINE:  'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI'",
      "     VISIBLE:  'You may sometimes wish to contro', cursor=1",
      "SPEECH OUTPUT: 'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI link'"]))
 
@@ -450,7 +450,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'a window. Refer to Orca Keyboard Commands Link (Laptop Layout) Link  for more information on Orca-specific'",
+    ["BRAILLE LINE:  'a window. Refer to Orca Keyboard Commands (Laptop Layout) for more information on Orca-specific'",
      "     VISIBLE:  'a window. Refer to Orca Keyboard', cursor=1",
      "SPEECH OUTPUT: 'a window. Refer to Orca Keyboard Commands link (Laptop Layout) link  for more information on Orca-specific'"]))
 
@@ -458,7 +458,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'keyboard commands. The Orca Configuration GUI Link  also includes a \"Key Bindings\" tab that allows'",
+    ["BRAILLE LINE:  'keyboard commands. The Orca Configuration GUI also includes a \"Key Bindings\" tab that allows'",
      "     VISIBLE:  'keyboard commands. The Orca Conf', cursor=1",
      "SPEECH OUTPUT: 'keyboard commands. The Orca Configuration GUI link  also includes a \"Key Bindings\" tab that allows'"]))
 
@@ -474,7 +474,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page Link  for detailed information.'",
+    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page for detailed information.'",
      "     VISIBLE:  'Please also refer to the Configu', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Configuration/Use page link  for detailed information.'"]))
 
@@ -498,7 +498,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice Link ,'",
+    ["BRAILLE LINE:  'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice,'",
      "     VISIBLE:  'provider interface (AT-SPI). Thi', cursor=1",
      "SPEECH OUTPUT: 'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice link ,'"]))
 
@@ -522,7 +522,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'On the Accessible Applications page Link , you will find a growing list of information regarding various'",
+    ["BRAILLE LINE:  'On the Accessible Applications page, you will find a growing list of information regarding various'",
      "     VISIBLE:  'On the Accessible Applications p', cursor=1",
      "SPEECH OUTPUT: 'On the Accessible Applications page link , you will find a growing list of information regarding various'"]))
 
@@ -554,7 +554,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'See also the Application Specific Settings Link  page for how to configure settings specific to an'",
+    ["BRAILLE LINE:  'See also the Application Specific Settings page for how to configure settings specific to an'",
      "     VISIBLE:  'See also the Application Specifi', cursor=1",
      "SPEECH OUTPUT: 'See also the Application Specific Settings link  page for how to configure settings specific to an'"]))
 
@@ -570,7 +570,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page Link  for detailed information.'",
+    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page for detailed information.'",
      "     VISIBLE:  'Please also refer to the Accessi', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Accessible Applications page link  for detailed information.'"]))
 
@@ -586,7 +586,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page Link  for detailed information.'",
+    ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page for detailed information.'",
      "     VISIBLE:  'There's a bunch you can do! Plea', cursor=1",
      "SPEECH OUTPUT: 'There's a bunch you can do! Please refer to the How Can I Help page link  for detailed information.'"]))
 
@@ -602,7 +602,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ Link'",
+    ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ'",
      "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '• Frequently Asked Questions: FAQ link'"]))
 
@@ -610,7 +610,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Mailing list: orca-list@gnome.org Link  ( Archives Link )'",
+    ["BRAILLE LINE:  '• Mailing list: orca-list@gnome.org (Archives)'",
      "     VISIBLE:  '• Mailing list: orca-list@gnome.', cursor=1",
      "SPEECH OUTPUT: '• Mailing list: orca-list@gnome.org link  ( Archives link )'"]))
 
@@ -618,7 +618,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) Link  ( current bug list Link )'",
+    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
      "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '• Bug database: GNOME Bug Tracking System (Bugzilla) link  ( current bug list link )'"]))
 
@@ -626,7 +626,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Design documents: Orca Documentation Series Link'",
+    ["BRAILLE LINE:  '• Design documents: Orca Documentation Series'",
      "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
      "SPEECH OUTPUT: '• Design documents: Orca Documentation Series link'"]))
 
@@ -634,7 +634,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Dive Into Python, Mark Pilgrim Link'",
+    ["BRAILLE LINE:  '• Dive Into Python, Mark Pilgrim'",
      "     VISIBLE:  '• Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '• Dive Into Python, Mark Pilgrim link'"]))
 
@@ -642,7 +642,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Python in a Nutshell, Alex Martelli Link'",
+    ["BRAILLE LINE:  '• Python in a Nutshell, Alex Martelli'",
      "     VISIBLE:  '• Python in a Nutshell, Alex Mar', cursor=1",
      "SPEECH OUTPUT: '• Python in a Nutshell, Alex Martelli link'"]))
 
@@ -650,7 +650,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Python Pocket Reference, Mark Lutz Link'",
+    ["BRAILLE LINE:  '• Python Pocket Reference, Mark Lutz'",
      "     VISIBLE:  '• Python Pocket Reference, Mark ', cursor=1",
      "SPEECH OUTPUT: '• Python Pocket Reference, Mark Lutz link'"]))
 
@@ -698,15 +698,15 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'CategoryAccessibility Link'",
-     "     VISIBLE:  'CategoryAccessibility Link', cursor=1",
+    ["BRAILLE LINE:  'CategoryAccessibility'",
+     "     VISIBLE:  'CategoryAccessibility', cursor=1",
      "SPEECH OUTPUT: 'CategoryAccessibility link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Orca (last edited 2007-12-07 22:09:22 by WillieWalker Link )'",
+    ["BRAILLE LINE:  'Orca (last edited 2007-12-07 22:09:22 by WillieWalker)'",
      "     VISIBLE:  'Orca (last edited 2007-12-07 22:', cursor=1",
      "SPEECH OUTPUT: 'Orca (last edited 2007-12-07 22:09:22 by WillieWalker link )'"]))
 
@@ -722,8 +722,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Login Link'",
-     "     VISIBLE:  'Login Link', cursor=1",
+    ["BRAILLE LINE:  'Login'",
+     "     VISIBLE:  'Login', cursor=1",
      "SPEECH OUTPUT: 'Login link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -746,16 +746,16 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Info Link'",
-     "     VISIBLE:  'Info Link', cursor=1",
+    ["BRAILLE LINE:  'Info'",
+     "     VISIBLE:  'Info', cursor=1",
      "SPEECH OUTPUT: 'Info link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Attachments Link'",
-     "     VISIBLE:  'Attachments Link', cursor=1",
+    ["BRAILLE LINE:  'Attachments'",
+     "     VISIBLE:  'Attachments', cursor=1",
      "SPEECH OUTPUT: 'Attachments link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -791,16 +791,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Attachments Link'",
-     "     VISIBLE:  'Attachments Link', cursor=1",
+    ["BRAILLE LINE:  'Attachments'",
+     "     VISIBLE:  'Attachments', cursor=1",
      "SPEECH OUTPUT: 'Attachments link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Info Link'",
-     "     VISIBLE:  'Info Link', cursor=1",
+    ["BRAILLE LINE:  'Info'",
+     "     VISIBLE:  'Info', cursor=1",
      "SPEECH OUTPUT: 'Info link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -823,8 +823,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Login Link'",
-     "     VISIBLE:  'Login Link', cursor=1",
+    ["BRAILLE LINE:  'Login'",
+     "     VISIBLE:  'Login', cursor=1",
      "SPEECH OUTPUT: 'Login link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -839,7 +839,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Orca (last edited 2007-12-07 22:09:22 by WillieWalker Link )'",
+    ["BRAILLE LINE:  'Orca (last edited 2007-12-07 22:09:22 by WillieWalker)'",
      "     VISIBLE:  'Orca (last edited 2007-12-07 22:', cursor=1",
      "SPEECH OUTPUT: 'Orca (last edited 2007-12-07 22:09:22 by WillieWalker link )'"]))
 
@@ -847,8 +847,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'CategoryAccessibility Link'",
-     "     VISIBLE:  'CategoryAccessibility Link', cursor=1",
+    ["BRAILLE LINE:  'CategoryAccessibility'",
+     "     VISIBLE:  'CategoryAccessibility', cursor=1",
      "SPEECH OUTPUT: 'CategoryAccessibility link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -895,39 +895,43 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Python Pocket Reference, Mark Lutz Link'",
-     "     VISIBLE:  '• Python Pocket Reference, Mark ', cursor=1",
+    ["BUG? - There's an extra space here",
+     "BRAILLE LINE:  '•  Python Pocket Reference, Mark Lutz'",
+     "     VISIBLE:  '•  Python Pocket Reference, Mark', cursor=1",
      "SPEECH OUTPUT: '• Python Pocket Reference, Mark Lutz link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Python in a Nutshell, Alex Martelli Link'",
-     "     VISIBLE:  '• Python in a Nutshell, Alex Mar', cursor=1",
+    ["BUG? - There's an extra space here",
+     "BRAILLE LINE:  '•  Python in a Nutshell, Alex Martelli'",
+     "     VISIBLE:  '•  Python in a Nutshell, Alex Ma', cursor=1",
      "SPEECH OUTPUT: '• Python in a Nutshell, Alex Martelli link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Dive Into Python, Mark Pilgrim Link'",
-     "     VISIBLE:  '• Dive Into Python, Mark Pilgrim', cursor=1",
+    ["BUG? - There's an extra space here",
+     "BRAILLE LINE:  '•  Dive Into Python, Mark Pilgrim'",
+     "     VISIBLE:  '•  Dive Into Python, Mark Pilgri', cursor=1",
      "SPEECH OUTPUT: '• Dive Into Python, Mark Pilgrim link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Design documents: Orca Documentation Series Link'",
-     "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
+    ["BUG? - There's an extra space here",
+     "BRAILLE LINE:  '• Design documents:  Orca Documentation Series'",
+     "     VISIBLE:  '• Design documents:  Orca Docume', cursor=1",
      "SPEECH OUTPUT: '• Design documents: Orca Documentation Series link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) Link  ( current bug list Link )'",
+    ["BRAILLE LINE:  '• Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
      "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '• Bug database: GNOME Bug Tracking System (Bugzilla) link  ( current bug list link )'"]))
 
@@ -935,7 +939,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Mailing list: orca-list@gnome.org Link  ( Archives Link )'",
+    ["BRAILLE LINE:  '• Mailing list: orca-list@gnome.org (Archives)'",
      "     VISIBLE:  '• Mailing list: orca-list@gnome.', cursor=1",
      "SPEECH OUTPUT: '• Mailing list: orca-list@gnome.org link  ( Archives link )'"]))
 
@@ -943,8 +947,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Frequently Asked Questions: FAQ Link'",
-     "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
+    ["BRAILLE LINE:  '• Frequently Asked Questions:  FAQ'",
+     "     VISIBLE:  '• Frequently Asked Questions:  F', cursor=1",
      "SPEECH OUTPUT: '• Frequently Asked Questions: FAQ link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -959,7 +963,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page Link  for detailed information.'",
+    ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page for detailed information.'",
      "     VISIBLE:  'There's a bunch you can do! Plea', cursor=1",
      "SPEECH OUTPUT: 'There's a bunch you can do! Please refer to the How Can I Help page link  for detailed information.'"]))
 
@@ -975,7 +979,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page Link  for detailed information.'",
+    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page for detailed information.'",
      "     VISIBLE:  'Please also refer to the Accessi', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Accessible Applications page link  for detailed information.'"]))
 
@@ -991,7 +995,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'See also the Application Specific Settings Link  page for how to configure settings specific to an'",
+    ["BRAILLE LINE:  'See also the Application Specific Settings page for how to configure settings specific to an'",
      "     VISIBLE:  'See also the Application Specifi', cursor=1",
      "SPEECH OUTPUT: 'See also the Application Specific Settings link  page for how to configure settings specific to an'"]))
 
@@ -1023,7 +1027,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'On the Accessible Applications page Link , you will find a growing list of information regarding various'",
+    ["BRAILLE LINE:  'On the Accessible Applications page, you will find a growing list of information regarding various'",
      "     VISIBLE:  'On the Accessible Applications p', cursor=1",
      "SPEECH OUTPUT: 'On the Accessible Applications page link , you will find a growing list of information regarding various'"]))
 
@@ -1047,7 +1051,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice Link ,'",
+    ["BRAILLE LINE:  'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice,'",
      "     VISIBLE:  'provider interface (AT-SPI). Thi', cursor=1",
      "SPEECH OUTPUT: 'provider interface (AT-SPI). This includes the GNOME desktop and its applications, OpenOffice link ,'"]))
 
@@ -1071,7 +1075,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page Link  for detailed information.'",
+    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page for detailed information.'",
      "     VISIBLE:  'Please also refer to the Configu', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Configuration/Use page link  for detailed information.'"]))
 
@@ -1087,7 +1091,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'keyboard commands. The Orca Configuration GUI Link  also includes a \"Key Bindings\" tab that allows'",
+    ["BRAILLE LINE:  'keyboard commands. The Orca Configuration GUI also includes a \"Key Bindings\" tab that allows'",
      "     VISIBLE:  'keyboard commands. The Orca Conf', cursor=1",
      "SPEECH OUTPUT: 'keyboard commands. The Orca Configuration GUI link  also includes a \"Key Bindings\" tab that allows'"]))
 
@@ -1095,7 +1099,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'a window. Refer to Orca Keyboard Commands Link (Laptop Layout) Link  for more information on Orca-specific'",
+    ["BRAILLE LINE:  'a window. Refer to Orca Keyboard Commands (Laptop Layout) for more information on Orca-specific'",
      "     VISIBLE:  'a window. Refer to Orca Keyboard', cursor=1",
      "SPEECH OUTPUT: 'a window. Refer to Orca Keyboard Commands link (Laptop Layout) link  for more information on Orca-specific'"]))
 
@@ -1111,7 +1115,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI Link'",
+    ["BRAILLE LINE:  'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI'",
      "     VISIBLE:  'You may sometimes wish to contro', cursor=1",
      "SPEECH OUTPUT: 'You may sometimes wish to control Orca itself, such as bringing up the Orca Configuration GUI link'"]))
 
@@ -1127,7 +1131,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'information as you navigate the desktop using the built-in navigation mechanisms of GNOME Link . These'",
+    ["BRAILLE LINE:  'information as you navigate the desktop using the built-in navigation mechanisms of GNOME. These'",
      "     VISIBLE:  'information as you navigate the ', cursor=1",
      "SPEECH OUTPUT: 'information as you navigate the desktop using the built-in navigation mechanisms of GNOME link . These'"]))
 
@@ -1167,7 +1171,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Please also refer to the Download/Installation page Link  for detailed information on various distributions'",
+    ["BRAILLE LINE:  'Please also refer to the Download/Installation page for detailed information on various distributions'",
      "     VISIBLE:  'Please also refer to the Downloa', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the Download/Installation page link  for detailed information on various distributions'"]))
 
@@ -1175,7 +1179,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'default on a number of operating system distributions, including Open Solaris Link  and Ubuntu Link .'",
+    ["BRAILLE LINE:  'default on a number of operating system distributions, including Open Solaris and Ubuntu.'",
      "     VISIBLE:  'default on a number of operating', cursor=1",
      "SPEECH OUTPUT: 'default on a number of operating system distributions, including Open Solaris link  and Ubuntu link .'"]))
 
@@ -1199,24 +1203,24 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '• Guide to installing the latest versions of Firefox and Orca Link'",
-     "     VISIBLE:  '• Guide to installing the latest', cursor=1",
+    ["BRAILLE LINE:  '•  Guide to installing the latest versions of Firefox and Orca'",
+     "     VISIBLE:  '•  Guide to installing the lates', cursor=1",
      "SPEECH OUTPUT: '• Guide to installing the latest versions of Firefox and Orca link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '• Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop Link'",
-     "     VISIBLE:  '• Review of Fedora 7 and the Orc', 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 Or', cursor=1",
      "SPEECH OUTPUT: '• Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial Link'",
-     "     VISIBLE:  '• Walk through of the installati', cursor=1",
+    ["BRAILLE LINE:  '•  Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
+     "     VISIBLE:  '•  Walk through of the installat', cursor=1",
      "SPEECH OUTPUT: '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1231,7 +1235,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp Link  and'",
+    ["BRAILLE LINE:  '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp and'",
      "     VISIBLE:  '(THANKS!)!!! The audio guides ca', cursor=1",
      "SPEECH OUTPUT: '(THANKS!)!!! The audio guides can be found at http://www.digitaldarragh.com/linuxat.asp link  and'"]))
 
@@ -1239,8 +1243,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Darragh Ó Héiligh Link  has created several audio guides for Orca. This is a fantastic contribution'",
-     "     VISIBLE:  'Darragh Ó Héiligh Link  has crea', cursor=1",
+    ["BRAILLE LINE:  'Darragh Ó Héiligh has created several audio guides for Orca. This is a fantastic contribution'",
+     "     VISIBLE:  'Darragh Ó Héiligh has created se', cursor=1",
      "SPEECH OUTPUT: 'Darragh Ó Héiligh link  has created several audio guides for Orca. This is a fantastic contribution'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1263,7 +1267,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list Link  ( archives Link ): it's a helpful, kind, and productive'",
+    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, and productive'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  ( archives link ): it's a helpful, kind, and productive'"]))
 
@@ -1271,8 +1275,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Bugzilla Link  (please see our notes on how we use Bugzilla Link ).'",
-     "     VISIBLE:  'Bugzilla Link  (please see our n', cursor=1",
+    ["BRAILLE LINE:  'Bugzilla (please see our notes on how we use Bugzilla).'",
+     "     VISIBLE:  'Bugzilla (please see our notes o', cursor=1",
      "SPEECH OUTPUT: 'Bugzilla link  (please see our notes on how we use Bugzilla link ).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1295,7 +1299,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'with contributions from many community members Link .'",
+    ["BRAILLE LINE:  'with contributions from many community members.'",
      "     VISIBLE:  'with contributions from many com', cursor=1",
      "SPEECH OUTPUT: 'with contributions from many community members link .'"]))
 
@@ -1303,7 +1307,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'been led by the Accessibility Program Office of Sun Microsystems, Inc. Link'",
+    ["BRAILLE LINE:  'been led by the Accessibility Program Office of Sun Microsystems, Inc.'",
      "     VISIBLE:  'been led by the Accessibility Pr', cursor=1",
      "SPEECH OUTPUT: 'been led by the Accessibility Program Office of Sun Microsystems, Inc. link'"]))
 
@@ -1359,64 +1363,64 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '8. More Information Link'",
-     "     VISIBLE:  '8. More Information Link', cursor=1",
+    ["BRAILLE LINE:  '8. More Information'",
+     "     VISIBLE:  '8. More Information', cursor=1",
      "SPEECH OUTPUT: '8. More Information link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '7. How Can I Help? Link'",
-     "     VISIBLE:  '7. How Can I Help? Link', cursor=1",
+    ["BRAILLE LINE:  '7. How Can I Help?'",
+     "     VISIBLE:  '7. How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7. How Can I Help? link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '6. Accessible Applications Link'",
-     "     VISIBLE:  '6. Accessible Applications Link', cursor=1",
+    ["BRAILLE LINE:  '6. Accessible Applications'",
+     "     VISIBLE:  '6. Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6. Accessible Applications link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '5. Configuration/Use Link'",
-     "     VISIBLE:  '5. Configuration/Use Link', cursor=1",
+    ["BRAILLE LINE:  '5. Configuration/Use'",
+     "     VISIBLE:  '5. Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5. Configuration/Use link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '4. Download/Installation Link'",
-     "     VISIBLE:  '4. Download/Installation Link', cursor=1",
+    ["BRAILLE LINE:  '4. Download/Installation'",
+     "     VISIBLE:  '4. Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4. Download/Installation link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '3. Audio Guides Link'",
-     "     VISIBLE:  '3. Audio Guides Link', cursor=1",
+    ["BRAILLE LINE:  '3. Audio Guides'",
+     "     VISIBLE:  '3. Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3. Audio Guides link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '2. About Link'",
-     "     VISIBLE:  '2. About Link', cursor=1",
+    ["BRAILLE LINE:  '2. About'",
+     "     VISIBLE:  '2. About', cursor=1",
      "SPEECH OUTPUT: '2. About link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '1. Welcome to Orca! Link'",
-     "     VISIBLE:  '1. Welcome to Orca! Link', cursor=1",
+    ["BRAILLE LINE:  '1. Welcome to Orca!'",
+     "     VISIBLE:  '1. Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1. Welcome to Orca! link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1431,16 +1435,17 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0 Link'",
-     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
+    ["BUG? - Extra space",
+     "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 access to Firefox 3.0 link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Orca Logo Link Image'",
-     "     VISIBLE:  'Orca Logo Link Image', cursor=1",
+    ["BRAILLE LINE:  'Orca Logo Image'",
+     "     VISIBLE:  'Orca Logo Image', cursor=1",
      "SPEECH OUTPUT: 'Orca Logo link image'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1455,39 +1460,39 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'FAQ Link | DocIndex Link'",
-     "     VISIBLE:  'FAQ Link | DocIndex Link', cursor=1",
+    ["BRAILLE LINE:  'FAQ | DocIndex'",
+     "     VISIBLE:  'FAQ | DocIndex', cursor=1",
      "SPEECH OUTPUT: 'FAQ link | DocIndex link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Home Link | Download/Installation Link  | Configuration/Use Link  | Accessible Applications Link  | Mailing List Link  ( Archives Link ) |'",
-     "     VISIBLE:  'Home Link | Download/Installatio', cursor=1",
-     "SPEECH OUTPUT: 'Home link | Download/Installation link  | Configuration/Use link  | Accessible Applications link  | Mailing List link  ( Archives link ) |'"]))
+    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing List (Archives) |'",
+     "     VISIBLE:  'Home | Download/Installation | Co', cursor=1",
+     "SPEECH OUTPUT: 'Home link  | Download/Installation link  | Configuration/Use link  | Accessible Applications link  | Mailing List link  ( Archives link ) |'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'en Español Link'",
-     "     VISIBLE:  'en Español Link', cursor=1",
+    ["BRAILLE LINE:  'en Español'",
+     "     VISIBLE:  'en Español', cursor=1",
      "SPEECH OUTPUT: 'en Español link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Home Link RecentChanges Link FindPage Link HelpContents Link Orca Link'",
-     "     VISIBLE:  'Home Link RecentChanges Link Fin', cursor=1",
+    ["BRAILLE LINE:  'Home RecentChanges FindPage HelpContents Orca'",
+     "     VISIBLE:  'Home RecentChanges FindPage Help', cursor=1",
      "SPEECH OUTPUT: 'Home link RecentChanges link FindPage link HelpContents link Orca link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button Text Button'",
+    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button  Text Button'",
      "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
      "SPEECH OUTPUT: 'live.gnome.org heading level 1 text Search Titles button grayed Text button grayed'"]))
 
@@ -1495,8 +1500,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Home Link News Link Projects Link Art Link Support Link Development Link Community Link'",
-     "     VISIBLE:  'Home Link News Link Projects Lin', cursor=1",
+    ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
+     "     VISIBLE:  'Home News Projects Art Support D', cursor=1",
      "SPEECH OUTPUT: 'Home link News link Projects link Art link Support link Development link Community link'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/sayAll_enter_bug.py
===================================================================
--- test/keystrokes/firefox/sayAll_enter_bug.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_enter_bug.py	(working copy)
@@ -36,8 +36,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_multi_line_text.py
===================================================================
--- test/keystrokes/firefox/line_nav_multi_line_text.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_multi_line_text.py	(working copy)
@@ -97,32 +97,32 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• This is a test Link  that is not very interesting.'",
-     "     VISIBLE:  '• This is a test Link  that is n', cursor=1",
+    ["BRAILLE LINE:  '• This is a test that is not very interesting.'",
+     "     VISIBLE:  '• This is a test that is not ver', cursor=1",
      "SPEECH OUTPUT: '• This is a test link  that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• But it looks like Link  a real-world example.'",
-     "     VISIBLE:  '• But it looks like Link  a real', cursor=1",
+    ["BRAILLE LINE:  '• But it looks like a real-world example.'",
+     "     VISIBLE:  '• But it looks like a real-world', cursor=1",
      "SPEECH OUTPUT: '• But it looks like link  a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• And that's Link  why this silly test is here.'",
-     "     VISIBLE:  '• And that's Link  why this sill', cursor=1",
+    ["BRAILLE LINE:  '• And that's why this silly test is here.'",
+     "     VISIBLE:  '• And that's why this silly test', cursor=1",
      "SPEECH OUTPUT: '• And that's link  why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'So it's far more interesting Link  than it looks.'",
-     "     VISIBLE:  'So it's far more interesting Lin', cursor=1",
+    ["BRAILLE LINE:  'So it's far more interesting than it looks.'",
+     "     VISIBLE:  'So it's far more interesting tha', cursor=1",
      "SPEECH OUTPUT: 'So it's far more interesting link  than it looks.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -137,32 +137,32 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• The thing is Link  we can't copy content.'",
-     "     VISIBLE:  '• The thing is Link  we can't co', cursor=1",
+    ["BRAILLE LINE:  '• The thing is we can't copy content.'",
+     "     VISIBLE:  '• The thing is we can't copy con', cursor=1",
      "SPEECH OUTPUT: '• The thing is link  we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• So we must Link  create silly tests.'",
-     "     VISIBLE:  '• So we must Link  create silly ', cursor=1",
-     "SPEECH OUTPUT: '• So we must link  create silly tests.'",]))
+    ["BRAILLE LINE:  '• So we must create silly tests.'",
+     "     VISIBLE:  '• So we must create silly tests.', cursor=1",
+     "SPEECH OUTPUT: '• So we must link  create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '• Oh Link  well.'",
-     "     VISIBLE:  '• Oh Link  well.', cursor=1",
+    ["BRAILLE LINE:  '• Oh well.'",
+     "     VISIBLE:  '• Oh well.', cursor=1",
      "SPEECH OUTPUT: '• Oh link  well.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'At least it's over Link .'",
-     "     VISIBLE:  'At least it's over Link .', cursor=1",
+    ["BRAILLE LINE:  'At least it's over.'",
+     "     VISIBLE:  'At least it's over.', cursor=1",
      "SPEECH OUTPUT: 'At least it's over link .'"]))
 
 ########################################################################
@@ -172,24 +172,24 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• Oh Link  well.'",
-     "     VISIBLE:  '• Oh Link  well.', cursor=1",
+    ["BRAILLE LINE:  '• Oh well.'",
+     "     VISIBLE:  '• Oh well.', cursor=1",
      "SPEECH OUTPUT: '• Oh link  well.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• So we must Link  create silly tests.'",
-     "     VISIBLE:  '• So we must Link  create silly ', cursor=1",
-     "SPEECH OUTPUT: '• So we must link  create silly tests.'",]))
+    ["BRAILLE LINE:  '• So we must create silly tests.'",
+     "     VISIBLE:  '• So we must create silly tests.', cursor=1",
+     "SPEECH OUTPUT: '• So we must link  create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• The thing is Link  we can't copy content.'",
-     "     VISIBLE:  '• The thing is Link  we can't co', cursor=1",
+    ["BRAILLE LINE:  '• The thing is we can't copy content.'",
+     "     VISIBLE:  '• The thing is we can't copy con', cursor=1",
      "SPEECH OUTPUT: '• The thing is link  we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -204,32 +204,32 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'So it's far more interesting Link  than it looks.'",
-     "     VISIBLE:  'So it's far more interesting Lin', cursor=1",
+    ["BRAILLE LINE:  'So it's far more interesting than it looks.'",
+     "     VISIBLE:  'So it's far more interesting tha', cursor=1",
      "SPEECH OUTPUT: 'So it's far more interesting link  than it looks.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• And that's Link  why this silly test is here.'",
-     "     VISIBLE:  '• And that's Link  why this sill', cursor=1",
+    ["BRAILLE LINE:  '• And that's why this silly test is here.'",
+     "     VISIBLE:  '• And that's why this silly test', cursor=1",
      "SPEECH OUTPUT: '• And that's link  why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• But it looks like Link  a real-world example.'",
-     "     VISIBLE:  '• But it looks like Link  a real', cursor=1",
+    ["BRAILLE LINE:  '• But it looks like a real-world example.'",
+     "     VISIBLE:  '• But it looks like a real-world', cursor=1",
      "SPEECH OUTPUT: '• But it looks like link  a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '• This is a test Link  that is not very interesting.'",
-     "     VISIBLE:  '• This is a test Link  that is n', cursor=1",
+    ["BRAILLE LINE:  '• This is a test that is not very interesting.'",
+     "     VISIBLE:  '• This is a test that is not ver', cursor=1",
      "SPEECH OUTPUT: '• This is a test link  that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/dojo_tabcontainer.py
===================================================================
--- test/keystrokes/firefox/dojo_tabcontainer.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_tabcontainer.py	(working copy)
@@ -63,7 +63,8 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to tab 3", 
-    ["BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Inlined Sub TabContainer Page Sub TabContainer from href Page SplitContainer from href Page Tab 3 Page'",
+    ["BUG? - Should panel be at the end of the line? If not, the braille generator should deal with it.",
+     "BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Inlined Sub TabContainer Page Sub TabContainer from href Page SplitContainer from href Page Tab 3 Page Panel'",
      "     VISIBLE:  'Tab 3 Page Inlined Sub TabContai', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab 3 page'"]))
@@ -74,7 +75,8 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to programmatically created tab", 
-    ["BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Inlined Sub TabContainer Page Sub TabContainer from href Page SplitContainer from href Page Inlined Sub TabContainer Page'",
+    ["BUG? - Should panel be at the end of the line? If not, the braille generator should deal with it. Note that we don't always see it either.... Very strange....",
+     "BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Inlined Sub TabContainer Page Sub TabContainer from href Page SplitContainer from href Page Inlined Sub TabContainer Page Panel'",
      "     VISIBLE:  'Inlined Sub TabContainer Page Su', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Inlined Sub TabContainer page'"]))
Index: test/keystrokes/firefox/line_nav_bug_549128.py
===================================================================
--- test/keystrokes/firefox/line_nav_bug_549128.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_bug_549128.py	(working copy)
@@ -63,8 +63,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["BRAILLE LINE:  'The Ideal Gift Collection Link'",
-     "     VISIBLE:  'The Ideal Gift Collection Link', cursor=1",
+    ["BRAILLE LINE:  'The Ideal Gift Collection'",
+     "     VISIBLE:  'The Ideal Gift Collection', cursor=1",
      "SPEECH OUTPUT: 'The Ideal Gift Collection link ",
      "'"]))
 
@@ -136,7 +136,7 @@
 sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -215,8 +215,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
-    ["BRAILLE LINE:  'The Ideal Gift Collection Link'",
-     "     VISIBLE:  'The Ideal Gift Collection Link', cursor=1",
+    ["BRAILLE LINE:  'The Ideal Gift Collection'",
+     "     VISIBLE:  'The Ideal Gift Collection', cursor=1",
      "SPEECH OUTPUT: 'The Ideal Gift Collection link ",
      "'"]))
 
Index: test/keystrokes/firefox/dojo_spinner.py
===================================================================
--- test/keystrokes/firefox/dojo_spinner.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_spinner.py	(working copy)
@@ -40,9 +40,9 @@
 sequence.append(utils.AssertPresentationAction(
     "Tab to the first spinner",
     ["BUG? - The spinbox is followed by some text - 'onChange:' followed by a grayed out entry containing the text 'not fired yet!'. Either the 'on change' text should be present or, in my opinion, this 'not fired yet!' removed",
-     "BRAILLE LINE:  'Spinbox #1: 900 $l not fired yet! $l '",
+     "BRAILLE LINE:  'Spinbox #1: 900 $l not fired yet! $l'",
      "     VISIBLE:  'Spinbox #1: 900 $l not fired yet', cursor=16",
-     "BRAILLE LINE:  'Spinbox #1: 900 $l not fired yet! $l '",
+     "BRAILLE LINE:  'Spinbox #1: 900 $l not fired yet! $l'",
      "     VISIBLE:  'Spinbox #1: 900 $l not fired yet', cursor=16",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Spinbox #1: 900 selected spin button'"]))
@@ -55,9 +55,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner decrement 1", 
     ["BRAILLE LINE:  'Spinbox #1: 900 $l'",
-     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 899 $l'",
-     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=0",
      "SPEECH OUTPUT: '899'"]))
 
 ########################################################################
@@ -68,9 +68,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner decrement 2", 
     ["BRAILLE LINE:  'Spinbox #1: 899 $l'",
-     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 898 $l'",
-     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=0",
      "SPEECH OUTPUT: '898'"]))
 
 ########################################################################
@@ -81,9 +81,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner decrement 3", 
     ["BRAILLE LINE:  'Spinbox #1: 898 $l'",
-     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 897 $l'",
-     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=0",
      "SPEECH OUTPUT: '897'"]))
 
 ########################################################################
@@ -94,9 +94,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner decrement 4", 
     ["BRAILLE LINE:  'Spinbox #1: 897 $l'",
-     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 896 $l'",
-     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=0",
      "SPEECH OUTPUT: '896'"]))
 
 ########################################################################
@@ -107,9 +107,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner decrement 5", 
     ["BRAILLE LINE:  'Spinbox #1: 896 $l'",
-     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 895 $l'",
-     "     VISIBLE:  'Spinbox #1: 895 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 895 $l', cursor=0",
      "SPEECH OUTPUT: '895'"]))
 
 ########################################################################
@@ -120,9 +120,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 1", 
     ["BRAILLE LINE:  'Spinbox #1: 895 $l'",
-     "     VISIBLE:  'Spinbox #1: 895 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 895 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 896 $l'",
-     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=0",
      "SPEECH OUTPUT: '896'"]))
 
 ########################################################################
@@ -133,9 +133,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 2", 
     ["BRAILLE LINE:  'Spinbox #1: 896 $l'",
-     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 896 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 897 $l'",
-     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=0",
      "SPEECH OUTPUT: '897'"]))
 
 ########################################################################
@@ -146,9 +146,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 3", 
     ["BRAILLE LINE:  'Spinbox #1: 897 $l'",
-     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 897 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 898 $l'",
-     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=0",
      "SPEECH OUTPUT: '898'"]))
 
 ########################################################################
@@ -159,9 +159,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 4", 
     ["BRAILLE LINE:  'Spinbox #1: 898 $l'",
-     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 899 $l'",
-     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=0",
      "SPEECH OUTPUT: '899'"]))
 
 ########################################################################
@@ -172,9 +172,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 5", 
     ["BRAILLE LINE:  'Spinbox #1: 899 $l'",
-     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 900 $l'",
-     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=0",
      "SPEECH OUTPUT: '900'"]))
 
 ########################################################################
@@ -185,9 +185,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 6", 
     ["BRAILLE LINE:  'Spinbox #1: 900 $l'",
-     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 901 $l'",
-     "     VISIBLE:  'Spinbox #1: 901 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 901 $l', cursor=0",
      "SPEECH OUTPUT: '901'"]))
 
 ########################################################################
@@ -198,9 +198,9 @@
 sequence.append(utils.AssertPresentationAction(
     "first spinner increment 7", 
     ["BRAILLE LINE:  'Spinbox #1: 901 $l'",
-     "     VISIBLE:  'Spinbox #1: 901 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 901 $l', cursor=0",
      "BRAILLE LINE:  'Spinbox #1: 902 $l'",
-     "     VISIBLE:  'Spinbox #1: 902 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 902 $l', cursor=0",
      "SPEECH OUTPUT: '902'"]))
 
 ########################################################################
@@ -212,7 +212,7 @@
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
     ["BRAILLE LINE:  'Spinbox #1: 902 $l'",
-     "     VISIBLE:  'Spinbox #1: 902 $l', cursor=16",
+     "     VISIBLE:  'Spinbox #1: 902 $l', cursor=0",
      "SPEECH OUTPUT: 'Spinbox #1:'",
      "SPEECH OUTPUT: 'spin button'",
      "SPEECH OUTPUT: '902'",
Index: test/keystrokes/firefox/dojo_dialog.py
===================================================================
--- test/keystrokes/firefox/dojo_dialog.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_dialog.py	(working copy)
@@ -36,10 +36,11 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to show dialog button", 
-    ["BRAILLE LINE:  'Show Dialog Button'",
+    ["BUG? - Where should the cursor be winding up? It starts at 1 and then lands at 0",
+     "BRAILLE LINE:  'Show Dialog Button'",
      "     VISIBLE:  'Show Dialog Button', cursor=1",
      "BRAILLE LINE:  'Show Dialog Button'",
-     "     VISIBLE:  'Show Dialog Button', cursor=1",
+     "     VISIBLE:  'Show Dialog Button', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Show Dialog button'"]))
      
@@ -50,12 +51,12 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to programatic dialog button", 
-    ["BRAILLE LINE:  'Programatic Dialog (3 second delay) Button'",
-     "     VISIBLE:  'Programatic Dialog (3 second del', cursor=1",
-     "BRAILLE LINE:  'Programatic Dialog (3 second delay) Button'",
-     "     VISIBLE:  'Programatic Dialog (3 second del', cursor=1",
+    ["BRAILLE LINE:  'Programatic Dialog \(3 second delay\) Button'",
+     "     VISIBLE:  'Programatic Dialog \(3 second del', cursor=1",
+     "BRAILLE LINE:  'Programatic Dialog \(3 second delay\) Button'",
+     "     VISIBLE:  'Programatic Dialog \(3 second del', cursor=0",
      "SPEECH OUTPUT: ''",
-     "SPEECH OUTPUT: 'Programatic Dialog (3 second delay) button'"]))
+     "SPEECH OUTPUT: 'Programatic Dialog \(3 second delay\) button'"]))
      
 ########################################################################
 # Tab to the show dialog button.  
@@ -67,7 +68,7 @@
     ["BRAILLE LINE:  'Show TabContainer Dialog Button'",
      "     VISIBLE:  'Show TabContainer Dialog Button', cursor=1",
      "BRAILLE LINE:  'Show TabContainer Dialog Button'",
-     "     VISIBLE:  'Show TabContainer Dialog Button', cursor=1",
+     "     VISIBLE:  'Show TabContainer Dialog Button', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Show TabContainer Dialog button'"]))
 
@@ -111,7 +112,7 @@
     ["BRAILLE LINE:  'Show TabContainer Dialog Button'",
      "     VISIBLE:  'Show TabContainer Dialog Button', cursor=1",
      "BRAILLE LINE:  'Show TabContainer Dialog Button'",
-     "     VISIBLE:  'Show TabContainer Dialog Button', cursor=1",
+     "     VISIBLE:  'Show TabContainer Dialog Button', cursor=0",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Show TabContainer Dialog button'"]))
 
Index: test/keystrokes/firefox/label_guess_entries.py
===================================================================
--- test/keystrokes/firefox/label_guess_entries.py	(revision 4270)
+++ test/keystrokes/firefox/label_guess_entries.py	(working copy)
@@ -51,9 +51,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Type something Link  rather amusing Link  here:  $l'",
+    ["BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Type something Link  rather amusing Link  here:  $l'",
+     "BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Type something rather amusing here: text'"]))
 
@@ -63,10 +63,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Amusing numbers fall between  $l  and  $l .'",
-     "     VISIBLE:  ' $l  and  $l .', cursor=1",
-     "BRAILLE LINE:  'Amusing numbers fall between  $l  and  $l .'",
-     "     VISIBLE:  ' $l  and  $l .', cursor=1",
+    ["BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
+     "     VISIBLE:  ' $l and  $l .', cursor=1",
+     "BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
+     "     VISIBLE:  ' $l and  $l .', cursor=1",
      "SPEECH OUTPUT: 'Amusing numbers fall between text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -75,9 +75,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Amusing numbers fall between  $l  and  $l .'",
+    ["BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
      "     VISIBLE:  ' $l .', cursor=1",
-     "BRAILLE LINE:  'Amusing numbers fall between  $l  and  $l .'",
+     "BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
      "     VISIBLE:  ' $l .', cursor=1",
      "SPEECH OUTPUT: 'and text'"]))
 
@@ -123,9 +123,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Distance doesn't count on the left  $l'",
+    ["BRAILLE LINE:  'Distance doesn't count on the left $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Distance doesn't count on the left  $l'",
+     "BRAILLE LINE:  'Distance doesn't count on the left $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Distance doesn't count on the left text'"]))
 
@@ -174,10 +174,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -186,10 +186,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -200,10 +200,10 @@
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
     ["BUG? - We're not guessing this correctly",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -212,10 +212,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First Name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -224,10 +224,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -237,10 +237,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'Last text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -249,10 +249,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'Given name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -261,10 +261,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'initial text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -273,10 +273,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'Surname text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -285,10 +285,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -297,10 +297,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -310,10 +310,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l', cursor=9",
+    ["BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l'",
+     "     VISIBLE:  ' $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'Last name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -322,10 +322,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -334,10 +334,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -347,10 +347,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'Last name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -360,10 +360,10 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_ENTRY))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
      "SPEECH OUTPUT: 'text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -372,10 +372,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -384,10 +384,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -397,11 +397,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
-     "SPEECH OUTPUT: 'Last name text'",]))
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
+     "SPEECH OUTPUT: 'Last name text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -409,10 +409,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
      "SPEECH OUTPUT: 'text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -421,10 +421,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=1",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=1",
      "SPEECH OUTPUT: 'First name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -433,10 +433,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=5",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=4",
      "SPEECH OUTPUT: 'Middle",
      "initial text'"]))
 
@@ -446,10 +446,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=9",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=7",
      "SPEECH OUTPUT: 'Last name text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -459,10 +459,10 @@
 sequence.append(WaitForFocus("", acc_role=pyatspi.ROLE_ENTRY))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
-     "BRAILLE LINE:  ' $l  $l  $l  $l'",
-     "     VISIBLE:  ' $l  $l  $l  $l', cursor=13",
+    ["BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
+     "BRAILLE LINE:  ' $l $l $l $l'",
+     "     VISIBLE:  ' $l $l $l $l', cursor=10",
      "SPEECH OUTPUT: 'text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -471,10 +471,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'bandaid graphic Image  $l'",
-     "     VISIBLE:  'bandaid graphic Image  $l', cursor=23",
-     "BRAILLE LINE:  'bandaid graphic Image  $l'",
-     "     VISIBLE:  'bandaid graphic Image  $l', cursor=23",
+    ["BRAILLE LINE:  'bandaid graphic Image $l'",
+     "     VISIBLE:  'bandaid graphic Image $l', cursor=22",
+     "BRAILLE LINE:  'bandaid graphic Image $l'",
+     "     VISIBLE:  'bandaid graphic Image $l', cursor=22",
      "SPEECH OUTPUT: 'bandaid graphic text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -483,10 +483,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  ' $l bandaid graphic redux Image'",
-     "     VISIBLE:  ' $l bandaid graphic redux Image', cursor=1",
-     "BRAILLE LINE:  ' $l bandaid graphic redux Image'",
-     "     VISIBLE:  ' $l bandaid graphic redux Image', cursor=1",
+    ["BUG? - Need a space between the EOL symbol and bandaid",
+     "BRAILLE LINE:  ' $lbandaid graphic redux Image'",
+     "     VISIBLE:  ' $lbandaid graphic redux Image', cursor=1",
+     "BRAILLE LINE:  ' $lbandaid graphic redux Image'",
+     "     VISIBLE:  ' $lbandaid graphic redux Image', cursor=1",
      "SPEECH OUTPUT: 'bandaid graphic redux text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -495,11 +496,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
+    ["BRAILLE LINE:  'Magic disappearing text trick:  tab to me and I disappear $l'",
      "     VISIBLE:  'tab to me and I disappear $l', cursor=26",
-     "BRAILLE LINE:  'Magic disappearing text trick:  $l'",
+     "BRAILLE LINE:  'Magic disappearing text trick:   $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Magic disappearing text trick:  $l'",
+     "BRAILLE LINE:  'Magic disappearing text trick:   $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Magic disappearing text trick: text'"]))
 
@@ -509,8 +510,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Tell me a secret:  $l'",
-     "     VISIBLE:  'Tell me a secret:  $l', cursor=19",
+    ["BRAILLE LINE:  'Tell me a secret:   $l'",
+     "     VISIBLE:  'Tell me a secret:   $l', cursor=20",
      "SPEECH OUTPUT: 'Tell me a secret: password'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -531,9 +532,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Type something Link  rather amusing Link  here:  $l'",
+    ["BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  'Type something Link  rather amusing Link  here:  $l'",
+     "BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'Type something rather amusing here: text'"]))
Index: test/keystrokes/firefox/label_guess_bug_509809.py
===================================================================
--- test/keystrokes/firefox/label_guess_bug_509809.py	(revision 4270)
+++ test/keystrokes/firefox/label_guess_bug_509809.py	(working copy)
@@ -34,8 +34,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Mozilla Link h1'",
-     "     VISIBLE:  'Mozilla Link h1', cursor=1",
+    ["BRAILLE LINE:  'Mozilla h1'",
+     "     VISIBLE:  'Mozilla h1', cursor=1",
      "SPEECH OUTPUT: 'Mozilla link heading level 1'"]))
 
 ########################################################################
@@ -59,7 +59,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'search mozilla: search mozilla:  $l Go Button'",
+    ["BRAILLE LINE:  'search mozilla: search mozilla:  $l  Go Button'",
      "     VISIBLE:  'Go Button', cursor=1",
      "SPEECH OUTPUT: 'Go button'"]))
 
@@ -69,10 +69,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field",
-    ["BRAILLE LINE:  'Your email address:  $l'",
-     "     VISIBLE:  'Your email address:  $l', cursor=21",
-     "BRAILLE LINE:  'Your email address:  $l'",
-     "     VISIBLE:  'Your email address:  $l', cursor=21",
+    ["BUG? - Trailing whitespace, or is it really there?",
+     "BRAILLE LINE:  'Your email address: $l '",
+     "     VISIBLE:  'Your email address: $l ', cursor=20",
+     "BRAILLE LINE:  'Your email address: $l '",
+     "     VISIBLE:  'Your email address: $l ', cursor=20",
      "SPEECH OUTPUT: 'Your email address: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -81,10 +82,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Your name (optional):  $l'",
-     "     VISIBLE:  'Your name (optional):  $l', cursor=23",
-     "BRAILLE LINE:  'Your name (optional):  $l'",
-     "     VISIBLE:  'Your name (optional):  $l', cursor=23",
+    ["BRAILLE LINE:  'Your name (optional): $l '",
+     "     VISIBLE:  'Your name (optional): $l ', cursor=22",
+     "BRAILLE LINE:  'Your name (optional): $l '",
+     "     VISIBLE:  'Your name (optional): $l ', cursor=22",
      "SPEECH OUTPUT: 'Your name (optional): text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -93,8 +94,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Pick a password:  $l'",
-     "     VISIBLE:  'Pick a password:  $l', cursor=18",
+    ["BRAILLE LINE:  'Pick a password: $l '",
+     "     VISIBLE:  'Pick a password: $l ', cursor=17",
      "SPEECH OUTPUT: 'Pick a password: password'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -103,8 +104,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field",
-    ["BRAILLE LINE:  'Reenter password to confirm:  $l'",
-     "     VISIBLE:  'Reenter password to confirm:  $l', cursor=30",
+    ["BRAILLE LINE:  'Reenter password to confirm: $l '",
+     "     VISIBLE:  'Reenter password to confirm: $l ', cursor=29",
      "SPEECH OUTPUT: 'Reenter password to confirm: password'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -113,8 +114,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'a daily digest? &=y RadioButton  No & y RadioButton  Yes'",
-     "     VISIBLE:  '&=y RadioButton  No & y RadioBut', cursor=1",
+    ["BRAILLE LINE:  'a daily digest? &=y RadioButton No & y RadioButton Yes'",
+     "     VISIBLE:  '&=y RadioButton No & y RadioButt', cursor=1",
      "SPEECH OUTPUT: 'No selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -123,8 +124,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'a daily digest? &=y RadioButton  No & y RadioButton  Yes'",
-     "     VISIBLE:  '& y RadioButton  Yes', cursor=1",
+    ["BRAILLE LINE:  'a daily digest? &=y RadioButton No & y RadioButton Yes'",
+     "     VISIBLE:  '& y RadioButton Yes', cursor=1",
      "SPEECH OUTPUT: 'Yes not selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -143,10 +144,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Admin address:  $l Password:  $l Visit Subscriber List Button'",
-     "     VISIBLE:  ' $l Password:  $l Visit Subscrib', cursor=1",
-     "BRAILLE LINE:  'Admin address:  $l Password:  $l Visit Subscriber List Button'",
-     "     VISIBLE:  ' $l Password:  $l Visit Subscrib', cursor=1",
+    ["BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List Button'",
+     "     VISIBLE:  ' $l Password:  $l  Visit Subscri', cursor=1",
+     "BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List Button'",
+     "     VISIBLE:  ' $l Password:  $l  Visit Subscri', cursor=1",
      "SPEECH OUTPUT: 'Admin address: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -155,8 +156,8 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Admin address:  $l Password:  $l Visit Subscriber List Button'",
-     "     VISIBLE:  ' $l Visit Subscriber List Button', cursor=1",
+    ["BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List Button'",
+     "     VISIBLE:  ' $l  Visit Subscriber List Butto', cursor=1",
      "SPEECH OUTPUT: 'Password: password'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -165,7 +166,7 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field",
-    ["BRAILLE LINE:  'Admin address:  $l Password:  $l Visit Subscriber List Button'",
+    ["BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List Button'",
      "     VISIBLE:  'Visit Subscriber List Button', cursor=1",
      "SPEECH OUTPUT: 'Visit Subscriber List button'"]))
 
Index: test/keystrokes/firefox/imagemap.py
===================================================================
--- test/keystrokes/firefox/imagemap.py	(revision 4270)
+++ test/keystrokes/firefox/imagemap.py	(working copy)
@@ -46,8 +46,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "2. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'z Link y Link x Link w Link v Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'z y x w v u t s r q p o n m l k ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'z link'"]))
 
@@ -56,8 +56,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "3. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'y Link x Link w Link v Link u Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'y x w v u t s r q p o n m l k j ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'y link'"]))
 
@@ -66,8 +66,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "4. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'x Link w Link v Link u Link t Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'x w v u t s r q p o n m l k j i ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'x link'"]))
 
@@ -76,8 +76,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "5. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'w Link v Link u Link t Link s Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'w v u t s r q p o n m l k j i h ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'w link'"]))
 
@@ -86,8 +86,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "6. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'v Link u Link t Link s Link r Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'v u t s r q p o n m l k j i h g ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'v link'"]))
 
@@ -96,8 +96,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "7. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'u Link t Link s Link r Link q Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'u t s r q p o n m l k j i h g f ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'u link'"]))
 
@@ -106,8 +106,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "8. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  't Link s Link r Link q Link p Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  't s r q p o n m l k j i h g f e ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 't link'"]))
 
@@ -116,8 +116,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "9. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  's Link r Link q Link p Link o Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  's r q p o n m l k j i h g f e d ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 's link'"]))
 
@@ -126,8 +126,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "10. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'r Link q Link p Link o Link n Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'r q p o n m l k j i h g f e d c ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'r link'"]))
 
@@ -136,8 +136,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "11. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'q Link p Link o Link n Link m Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'q p o n m l k j i h g f e d c b ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'q link'"]))
 
@@ -146,8 +146,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "12. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'p Link o Link n Link m Link l Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'p o n m l k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'p link'"]))
 
@@ -156,8 +156,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "13. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'o Link n Link m Link l Link k Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'o n m l k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'o link'"]))
 
@@ -166,8 +166,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "14. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'n Link m Link l Link k Link j Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'n m l k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'n link'"]))
 
@@ -176,8 +176,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "15. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'm Link l Link k Link j Link i Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'm l k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'm link'"]))
 
@@ -186,8 +186,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "16. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'l Link k Link j Link i Link h Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'l k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'l link'"]))
 
@@ -196,8 +196,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "17. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'k Link j Link i Link h Link g Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'k j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'k link'"]))
 
@@ -206,8 +206,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "18. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'j Link i Link h Link g Link f Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'j i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'j link'"]))
 
@@ -216,8 +216,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "19. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'i Link h Link g Link f Link e Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'i h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'i link'"]))
 
@@ -226,8 +226,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "20. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'h Link g Link f Link e Link d Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'h g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'h link'"]))
 
@@ -236,8 +236,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "21. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'g Link f Link e Link d Link c Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'g f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'g link'"]))
 
@@ -246,8 +246,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "22. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'f Link e Link d Link c Link b Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'f e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'f link'"]))
 
@@ -256,8 +256,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "23. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'e Link d Link c Link b Link a Li', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'e d c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'e link'"]))
 
@@ -266,8 +266,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "24. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'd Link c Link b Link a Link', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'd c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'd link'"]))
 
@@ -276,8 +276,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "25. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'c Link b Link a Link', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'c b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'c link'"]))
 
@@ -286,8 +286,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "26. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'b Link a Link', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'b a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'b link'"]))
 
@@ -296,8 +296,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "27. Tab",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'a Link', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'a', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'a link'"]))
 
@@ -306,8 +306,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "28. Tab",
-    ["BRAILLE LINE:  'wk09_frozenmovie Link Image'",
-     "     VISIBLE:  'wk09_frozenmovie Link Image', cursor=1",
+    ["BRAILLE LINE:  'wk09_frozenmovie Image'",
+     "     VISIBLE:  'wk09_frozenmovie Image', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'wk09_frozenmovie link image'"]))
 
@@ -316,8 +316,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "29. Tab",
-    ["BRAILLE LINE:  'shop.safeway.com Link Rancher's Reserve Link'",
-     "     VISIBLE:  'shop.safeway.com Link Rancher's ', cursor=1",
+    ["BRAILLE LINE:  'shop.safeway.com Rancher's Reserve'",
+     "     VISIBLE:  'shop.safeway.com Rancher's Reser', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'shop.safeway.com link'"]))
 
@@ -326,8 +326,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "30. Tab",
-    ["BRAILLE LINE:  'shop.safeway.com Link Rancher's Reserve Link'",
-     "     VISIBLE:  'Rancher's Reserve Link', cursor=1",
+    ["BRAILLE LINE:  'shop.safeway.com Rancher's Reserve'",
+     "     VISIBLE:  'Rancher's Reserve', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Rancher's Reserve link'"]))
 
@@ -336,8 +336,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "31. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.vons.com Link www.dominicks.', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.vons.com www.dominicks.com w', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.vons.com link'"]))
 
@@ -346,8 +346,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "32. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.dominicks.com Link www.randa', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.dominicks.com www.randalls.c', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.dominicks.com link'"]))
 
@@ -356,8 +356,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "33. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.randalls.com Link www.tomthu', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.randalls.com www.tomthumb.co', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.randalls.com link'"]))
 
@@ -366,8 +366,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "34. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.tomthumb.com Link www.genuar', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.tomthumb.com www.genuardis.c', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.tomthumb.com link'"]))
 
@@ -376,8 +376,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "35. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.genuardis.com Link www.pavil', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.genuardis.com www.pavilions.', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.genuardis.com link'"]))
 
@@ -386,8 +386,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "36. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.pavilions.com Link www.carrs', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.pavilions.com www.carrsqc.co', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.pavilions.com link'"]))
 
@@ -396,8 +396,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "37. Tab",
-    ["BRAILLE LINE:  'www.vons.com Link www.dominicks.com Link www.randalls.com Link www.tomthumb.com Link www.genuardis.com Link www.pavilions.com Link www.carrsqc.com Link'",
-     "     VISIBLE:  'www.carrsqc.com Link', cursor=1",
+    ["BRAILLE LINE:  'www.vons.com www.dominicks.com www.randalls.com www.tomthumb.com www.genuardis.com www.pavilions.com www.carrsqc.com'",
+     "     VISIBLE:  'www.carrsqc.com', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'www.carrsqc.com link'"]))
 
Index: test/keystrokes/firefox/line_nav_bug_547573.py
===================================================================
--- test/keystrokes/firefox/line_nav_bug_547573.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_bug_547573.py	(working copy)
@@ -35,8 +35,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Link'",
-     "     VISIBLE:  'Link', cursor=1",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'link'"]))
 
 ########################################################################
@@ -46,8 +46,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. Line Down",
-    ["BRAILLE LINE:  'Skip to Content Link Sun Link Java Link Solaris Link Communities Link My SDN Account Link Join SDN Link'",
-     "     VISIBLE:  'Skip to Content Link Sun Link Ja', cursor=1",
+    ["BRAILLE LINE:  'Skip to Content Sun Java Solaris Communities My SDN Account Join SDN'",
+     "     VISIBLE:  'Skip to Content Sun Java Solaris', cursor=1",
      "SPEECH OUTPUT: 'Skip to Content link Sun link Java link Solaris link Communities link My SDN Account link Join SDN link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -55,12 +55,12 @@
 sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BUG? - For some reason we're acting as if the page had just loaded",
-     "BRAILLE LINE:  '» search tips Link Search $l Submit Search Button Home Page Link Image  $l'",
-     "     VISIBLE:  '» search tips Link Search $l Sub', cursor=1",
+     "BRAILLE LINE:  '» search tips  Search $l Submit Search Button Home Page Image $l'",
+     "     VISIBLE:  '» search tips  Search $l Submit ', cursor=1",
      "BRAILLE LINE:  'Installation Notes'",
      "     VISIBLE:  'Installation Notes', cursor=0",
-     "BRAILLE LINE:  '» search tips Link Search $l Submit Search Button Home Page Link Image  $l'",
-     "     VISIBLE:  '» search tips Link Search $l Sub', cursor=1",
+     "BRAILLE LINE:  '» search tips  Search $l Submit Search Button Home Page Image $l'",
+     "     VISIBLE:  '» search tips  Search $l Submit ', cursor=1",
      "SPEECH OUTPUT: '»  search tips link   text Search Submit Search button Home Page link image'",
      "SPEECH OUTPUT: 'Installation Notes page'",
      "SPEECH OUTPUT: '»  search tips link   text Search Submit Search button Home Page link image'"]))
@@ -69,8 +69,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["BRAILLE LINE:  'APIs Link Downloads Link Products Link Support Link Training Link Participate Link'",
-     "     VISIBLE:  'APIs Link Downloads Link Product', cursor=1",
+    ["BRAILLE LINE:  'APIs Downloads Products Support Training Participate'",
+     "     VISIBLE:  'APIs Downloads Products Support ', cursor=1",
      "SPEECH OUTPUT: 'APIs link Downloads link Products link Support link Training link Participate link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -109,8 +109,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
-    ["BRAILLE LINE:  'JDK Documentation Link'",
-     "     VISIBLE:  'JDK Documentation Link', cursor=1",
+    ["BRAILLE LINE:  'JDK Documentation'",
+     "     VISIBLE:  'JDK Documentation', cursor=1",
      "SPEECH OUTPUT: 'JDK Documentation link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -125,8 +125,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  'System Requirements Link'",
-     "     VISIBLE:  'System Requirements Link', cursor=1",
+    ["BRAILLE LINE:  'System Requirements'",
+     "     VISIBLE:  'System Requirements', cursor=1",
      "SPEECH OUTPUT: 'System Requirements link",
      "'"]))
 
@@ -134,34 +134,34 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
-    ["BRAILLE LINE:  'JDK Installation Instructions Link'",
-     "     VISIBLE:  'JDK Installation Instructions Li', cursor=1",
-     "SPEECH OUTPUT: 'JDK Installation Instructions link",
+    ["BRAILLE LINE:  'JDK Installation Instructions'",
+     "     VISIBLE:  'JDK Installation Instructions', cursor=1",
+     "SPEECH OUTPUT: 'JDK Installation Instructions link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
-    ["BRAILLE LINE:  'Installation of Self-Extracting Binary Link'",
-     "     VISIBLE:  'Installation of Self-Extracting ', cursor=0",
-     "SPEECH OUTPUT: '    Installation of Self-Extracting Binary link",
+    ["BRAILLE LINE:  '   Installation of Self-Extracting Binary'",
+     "     VISIBLE:  '   Installation of Self-Extracti', cursor=1",
+     "SPEECH OUTPUT: '    Installation of Self-Extracting Binary link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "13. Line Down",
-    ["BRAILLE LINE:  'Installation of RPM File Link'",
-     "     VISIBLE:  'Installation of RPM File Link', cursor=0",
-     "SPEECH OUTPUT: '    Installation of RPM File link",
+    ["BRAILLE LINE:  '   Installation of RPM File'",
+     "     VISIBLE:  '   Installation of RPM File', cursor=1",
+     "SPEECH OUTPUT: '    Installation of RPM File link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
-    ["BRAILLE LINE:  'Java Plugin Browser Registration Instructions Link'",
+    ["BRAILLE LINE:  'Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  'Java Plugin Browser Registration', cursor=1",
      "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions link",
      "'"]))
@@ -170,7 +170,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "15. Line Down",
-    ["BRAILLE LINE:  'Java Web Start Installation Notes Link'",
+    ["BRAILLE LINE:  'Java Web Start Installation Notes'",
      "     VISIBLE:  'Java Web Start Installation Note', cursor=1",
      "SPEECH OUTPUT: 'Java Web Start Installation Notes link",
      "'"]))
@@ -179,8 +179,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "16. Line Down",
-    ["BRAILLE LINE:  'Troubleshooting Link'",
-     "     VISIBLE:  'Troubleshooting Link', cursor=1",
+    ["BRAILLE LINE:  'Troubleshooting'",
+     "     VISIBLE:  'Troubleshooting', cursor=1",
      "SPEECH OUTPUT: 'Troubleshooting link",
      "'"]))
 
@@ -196,7 +196,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "18. Line Down",
-    ["BRAILLE LINE:  'See supported System Configurations Link  for information about supported platforms, operating systems, desktop managers, and browsers.'",
+    ["BRAILLE LINE:  'See supported System Configurations for information about supported platforms, operating systems, desktop managers, and browsers.'",
      "     VISIBLE:  'See supported System Configurati', cursor=1",
      "SPEECH OUTPUT: 'See supported System Configurations link  for information about supported platforms, operating systems, desktop managers, and browsers.'"]))
 
@@ -204,7 +204,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "19. Line Down",
-    ["BRAILLE LINE:  'For issues, see the Troubleshooting Link  section below.'",
+    ["BRAILLE LINE:  'For issues, see the Troubleshooting section below.'",
      "     VISIBLE:  'For issues, see the Troubleshoot', cursor=1",
      "SPEECH OUTPUT: 'For issues, see the Troubleshooting link  section below.'"]))
 
@@ -228,7 +228,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "22. Line Down",
-    ["BRAILLE LINE:  '• Java Plugin Browser Registration Instructions Link'",
+    ["BRAILLE LINE:  '• Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  '• Java Plugin Browser Registrati', cursor=1",
      "SPEECH OUTPUT: '• Java Plugin Browser Registration Instructions link'"]))
 
@@ -236,7 +236,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "23. Line Down",
-    ["BRAILLE LINE:  '• Java Web Start Installation Notes Link'",
+    ["BRAILLE LINE:  '• Java Web Start Installation Notes'",
      "     VISIBLE:  '• Java Web Start Installation No', cursor=1",
      "SPEECH OUTPUT: '• Java Web Start Installation Notes link'"]))
 
@@ -253,7 +253,7 @@
 sequence.append(utils.AssertPresentationAction(
     "25. Line Down",
     ["BUG? - We're getting more than one line's worth",
-     "BRAILLE LINE:  'Link Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'",
+     "BRAILLE LINE:  'Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'",
      "     VISIBLE:  '• Self-extracting Binary File - ', cursor=1",
      "SPEECH OUTPUT: 'link Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'"]))
 
@@ -269,7 +269,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "27. Line Down",
-    ["BRAILLE LINE:  'Installation of Self-Extracting Binary Link  below.'",
+    ["BRAILLE LINE:  'Installation of Self-Extracting Binary below.'",
      "     VISIBLE:  'Installation of Self-Extracting ', cursor=1",
      "SPEECH OUTPUT: 'Installation of Self-Extracting Binary link  below.'"]))
 
@@ -285,7 +285,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "29. Line Down",
-    ["BRAILLE LINE:  'installation on Linux. To use this bundle, see Installation of RPM File Link  below.'",
+    ["BRAILLE LINE:  'installation on Linux. To use this bundle, see Installation of RPM File below.'",
      "     VISIBLE:  'installation on Linux. To use th', cursor=1",
      "SPEECH OUTPUT: 'installation on Linux. To use this bundle, see Installation of RPM File link  below.'"]))
 
@@ -320,7 +320,7 @@
     "33. Line Down",
     ["BUG? - Even if we're not saying anything here, shouldn't there be a SPEECH OUTPUT line?",
      "BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -345,7 +345,7 @@
     "36. Line Down",
     ["BUG? - Even if we're not saying anything here, shouldn't there be a SPEECH OUTPUT line?",
      "BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -370,7 +370,7 @@
     "39. Line Down",
     ["BUG? - Even if we're not saying anything here, shouldn't there be a SPEECH OUTPUT line?",
      "BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -384,7 +384,7 @@
 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 Link .'",
+    ["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 Installation of RPM File link .'"]))
 
@@ -506,7 +506,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "56. Line Down",
-    ["BRAILLE LINE:  'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure Link . The JDK'",
+    ["BRAILLE LINE:  'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure. The JDK'",
      "     VISIBLE:  'The JDK files are installed in a', cursor=1",
      "SPEECH OUTPUT: 'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure link . The JDK'"]))
 
@@ -587,8 +587,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "66. Line Down",
-    ["BRAILLE LINE:  'See the Preferences API Link  documentation for more information about preferences in the Java platform.'",
-     "     VISIBLE:  'See the Preferences API Link  do', cursor=1",
+    ["BRAILLE LINE:  'See the Preferences API documentation for more information about preferences in the Java platform.'",
+     "     VISIBLE:  'See the Preferences API document', cursor=1",
      "SPEECH OUTPUT: 'See the Preferences API link  documentation for more information about preferences in the Java platform.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -603,7 +603,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "68. Line Down",
-    ["BRAILLE LINE:  'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary Link .'",
+    ["BRAILLE LINE:  'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary.'",
      "     VISIBLE:  'Use these instructions if you wa', cursor=1",
      "SPEECH OUTPUT: 'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary link .'"]))
 
@@ -619,7 +619,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "70. Line Down",
-    ["BRAILLE LINE:  'Link 1. Download and check the file size. You can download to any directory you choose.'",
+    ["BRAILLE LINE:  '1. Download and check the file size. You can download to any directory you choose.'",
      "     VISIBLE:  'You can download to any director', cursor=1",
      "SPEECH OUTPUT: 'link 1. Download and check the file size. You can download to any directory you choose.'"]))
 
@@ -651,7 +651,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "74. Line Down",
-    ["BRAILLE LINE:  'Link 2. Become root by running the su command and entering the super-user password. 3. Extract and install the contents of the downloaded file.'",
+    ["BRAILLE LINE:  '2. Become root by running the su command and entering the super-user password. 3. Extract and install the contents of the downloaded file.'",
      "     VISIBLE:  '3. Extract and install the conte', cursor=1",
      "SPEECH OUTPUT: 'link 2. Become root by running the su command and entering the super-user password. 3. Extract and install the contents of the downloaded file.'"]))
 
@@ -659,7 +659,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "75. Line Down",
-    ["BRAILLE LINE:  'Link 2. Become root by running the su command and entering the super-user password. Link 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'",
+    ["BRAILLE LINE:  '2. Become root by running the su command and entering the super-user password. 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'",
      "     VISIBLE:  'Change directory to where the do', cursor=1",
      "SPEECH OUTPUT: 'link 2. Become root by running the su command and entering the super-user password. link 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'"]))
 
@@ -685,7 +685,7 @@
 sequence.append(utils.AssertPresentationAction(
     "78. Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -702,7 +702,7 @@
 sequence.append(utils.AssertPresentationAction(
     "80. Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -757,7 +757,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "87. Line Down",
-    ["BRAILLE LINE:  'Link 5. Exit the root shell. The RPM packages creates two links /usr/java/latest and /usr/java/default.'",
+    ["BRAILLE LINE:  '5. Exit the root shell. The RPM packages creates two links /usr/java/latest and /usr/java/default. '",
      "     VISIBLE:  'The RPM packages creates two lin', cursor=1",
      "SPEECH OUTPUT: 'link 5. Exit the root shell.",
      " The RPM packages creates two links /usr/java/latest and /usr/java/default.  ",
@@ -818,7 +818,7 @@
 sequence.append(utils.AssertPresentationAction(
     "94. Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -907,7 +907,7 @@
 sequence.append(utils.AssertPresentationAction(
     "5. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -964,7 +964,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
-    ["BRAILLE LINE:  'Link 5. Exit the root shell. The RPM packages creates two links /usr/java/latest and /usr/java/default.'",
+    ["BUG? - We should lose the final space in the braille line.",
+     "BRAILLE LINE:  '5. Exit the root shell. The RPM packages creates two links /usr/java/latest and /usr/java/default. '",
      "     VISIBLE:  '5. Exit the root shell. The RPM ', cursor=1",
      "SPEECH OUTPUT: 'link 5. Exit the root shell.",
      " The RPM packages creates two links /usr/java/latest and /usr/java/default.  ",
@@ -1015,7 +1016,7 @@
 sequence.append(utils.AssertPresentationAction(
     "18. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1031,7 +1032,7 @@
 sequence.append(utils.AssertPresentationAction(
     "20. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1056,7 +1057,7 @@
 sequence.append(utils.AssertPresentationAction(
     "23. Line Up",
     ["BUG? - We're getting more than one line's worth",
-     "BRAILLE LINE:  'Link 2. Become root by running the su command and entering the super-user password. Link 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'",
+     "BRAILLE LINE:  '2. Become root by running the su command and entering the super-user password. 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'",
      "     VISIBLE:  '2. Become root by running the su', cursor=1",
      "SPEECH OUTPUT: 'link 2. Become root by running the su command and entering the super-user password. link 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and'"]))
 
@@ -1080,7 +1081,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "26. Line Up",
-    ["BRAILLE LINE:  'Link 1. Download and check the file size. You can download to any directory you choose.'",
+    ["BRAILLE LINE:  '1. Download and check the file size. You can download to any directory you choose.'",
      "     VISIBLE:  '1. Download and check the file s', cursor=1",
      "SPEECH OUTPUT: 'link 1. Download and check the file size. You can download to any directory you choose.'"]))
 
@@ -1088,7 +1089,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "27. Line Up",
-    ["BRAILLE LINE:  'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary Link .'",
+    ["BRAILLE LINE:  'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary.'",
      "     VISIBLE:  'Use these instructions if you wa', cursor=1",
      "SPEECH OUTPUT: 'Use these instructions if you want to install JDK in the form of RPM packages. If you want to use the self-extracting binary file instead, see Installation of Self-Extracting Binary link .'"]))
 
@@ -1104,8 +1105,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "29. Line Up",
-    ["BRAILLE LINE:  'See the Preferences API Link  documentation for more information about preferences in the Java platform.'",
-     "     VISIBLE:  'See the Preferences API Link  do', cursor=1",
+    ["BRAILLE LINE:  'See the Preferences API documentation for more information about preferences in the Java platform.'",
+     "     VISIBLE:  'See the Preferences API document', cursor=1",
      "SPEECH OUTPUT: 'See the Preferences API link  documentation for more information about preferences in the Java platform.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1185,7 +1186,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "39. Line Up",
-    ["BRAILLE LINE:  'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure Link . The JDK'",
+    ["BRAILLE LINE:  'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure. The JDK'",
      "     VISIBLE:  'The JDK files are installed in a', cursor=1",
      "SPEECH OUTPUT: 'The JDK files are installed in a directory called jdk1.6.0_<version> in the current directory. Follow this link to see its directory structure link . The JDK'"]))
 
@@ -1307,7 +1308,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "54. Line Up",
-    ["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 Link .'",
+    ["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 Installation of RPM File link .'"]))
 
@@ -1324,7 +1325,7 @@
 sequence.append(utils.AssertPresentationAction(
     "56. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1348,7 +1349,7 @@
 sequence.append(utils.AssertPresentationAction(
     "59. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1372,7 +1373,7 @@
 sequence.append(utils.AssertPresentationAction(
     "62. Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1403,7 +1404,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "66. Line Up",
-    ["BRAILLE LINE:  'installation on Linux. To use this bundle, see Installation of RPM File Link  below.'",
+    ["BRAILLE LINE:  'installation on Linux. To use this bundle, see Installation of RPM File below.'",
      "     VISIBLE:  'installation on Linux. To use th', cursor=1",
      "SPEECH OUTPUT: 'installation on Linux. To use this bundle, see Installation of RPM File link  below.'"]))
 
@@ -1419,7 +1420,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "68. Line Up",
-    ["BRAILLE LINE:  'Installation of Self-Extracting Binary Link  below.'",
+    ["BRAILLE LINE:  'Installation of Self-Extracting Binary below.'",
      "     VISIBLE:  'Installation of Self-Extracting ', cursor=1",
      "SPEECH OUTPUT: 'Installation of Self-Extracting Binary link  below.'"]))
 
@@ -1436,7 +1437,7 @@
 sequence.append(utils.AssertPresentationAction(
     "70. Line Up",
     ["BUG? - We're getting more than one line's worth",
-     "BRAILLE LINE:  'Link Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'",
+     "BRAILLE LINE:  'Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'",
      "     VISIBLE:  'Install formats - This version o', cursor=1",
      "SPEECH OUTPUT: 'link Install formats - This version of the JDK is available in two installation formats. • Self-extracting Binary File - This file can be used to install the JDK in a location chosen by the user. This one can be installed by anyone (not only root users), and it can'"]))
 
@@ -1444,16 +1445,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "71. Line Up",
-    ["BRAILLE LINE:  '• Java Web Start Installation Notes Link'",
-     "     VISIBLE:  '• Java Web Start Installation No', cursor=1",
+    ["BRAILLE LINE:  '•  Java Web Start Installation Notes'",
+     "     VISIBLE:  '•  Java Web Start Installation N', cursor=1",
      "SPEECH OUTPUT: '• Java Web Start Installation Notes link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "72. Line Up",
-    ["BRAILLE LINE:  '• Java Plugin Browser Registration Instructions Link'",
-     "     VISIBLE:  '• Java Plugin Browser Registrati', cursor=1",
+    ["BRAILLE LINE:  '•  Java Plugin Browser Registration Instructions'",
+     "     VISIBLE:  '•  Java Plugin Browser Registrat', cursor=1",
      "SPEECH OUTPUT: '• Java Plugin Browser Registration Instructions link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1476,7 +1477,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "75. Line Up",
-    ["BRAILLE LINE:  'For issues, see the Troubleshooting Link  section below.'",
+    ["BRAILLE LINE:  'For issues, see the Troubleshooting section below.'",
      "     VISIBLE:  'For issues, see the Troubleshoot', cursor=1",
      "SPEECH OUTPUT: 'For issues, see the Troubleshooting link  section below.'"]))
 
@@ -1484,7 +1485,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "76. Line Up",
-    ["BRAILLE LINE:  'See supported System Configurations Link  for information about supported platforms, operating systems, desktop managers, and browsers.'",
+    ["BRAILLE LINE:  'See supported System Configurations for information about supported platforms, operating systems, desktop managers, and browsers.'",
      "     VISIBLE:  'See supported System Configurati', cursor=1",
      "SPEECH OUTPUT: 'See supported System Configurations link  for information about supported platforms, operating systems, desktop managers, and browsers.'"]))
 
@@ -1500,8 +1501,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "78. Line Up",
-    ["BRAILLE LINE:  'Troubleshooting Link'",
-     "     VISIBLE:  'Troubleshooting Link', cursor=1",
+    ["BRAILLE LINE:  'Troubleshooting'",
+     "     VISIBLE:  'Troubleshooting', cursor=1",
      "SPEECH OUTPUT: 'Troubleshooting link",
      "'"]))
 
@@ -1509,7 +1510,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "79. Line Up",
-    ["BRAILLE LINE:  'Java Web Start Installation Notes Link'",
+    ["BRAILLE LINE:  'Java Web Start Installation Notes'",
      "     VISIBLE:  'Java Web Start Installation Note', cursor=1",
      "SPEECH OUTPUT: 'Java Web Start Installation Notes link",
      "'"]))
@@ -1518,7 +1519,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "80. Line Up",
-    ["BRAILLE LINE:  'Java Plugin Browser Registration Instructions Link'",
+    ["BRAILLE LINE:  'Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  'Java Plugin Browser Registration', cursor=1",
      "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions link",
      "'"]))
@@ -1527,16 +1528,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "81. Line Up",
-    ["BRAILLE LINE:  'Installation of RPM File Link'",
-     "     VISIBLE:  'Installation of RPM File Link', cursor=0",
-     "SPEECH OUTPUT: '    Installation of RPM File link",
+    ["BRAILLE LINE:  '   Installation of RPM File'",
+     "     VISIBLE:  '   Installation of RPM File', cursor=1",
+     "SPEECH OUTPUT: '    Installation of RPM File link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "82. Line Up",
-    ["BRAILLE LINE:  'Installation of Self-Extracting Binary Link'",
+    ["BRAILLE LINE:  'Installation of Self-Extracting Binary'",
      "     VISIBLE:  'Installation of Self-Extracting ', cursor=0",
      "SPEECH OUTPUT: 'blank'"]))
 
@@ -1544,26 +1545,26 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "83. Line Up",
-    ["BRAILLE LINE:  'Installation of Self-Extracting Binary Link'",
-     "     VISIBLE:  'Installation of Self-Extracting ', cursor=0",
-     "SPEECH OUTPUT: '  Installation of Self-Extracting Binary link",
+    ["BRAILLE LINE:  ' Installation of Self-Extracting Binary'",
+     "     VISIBLE:  ' Installation of Self-Extracting', cursor=1",
+     "SPEECH OUTPUT: '  Installation of Self-Extracting Binary link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "84. Line Up",
-    ["BRAILLE LINE:  'JDK Installation Instructions Link'",
-     "     VISIBLE:  'JDK Installation Instructions Li', cursor=1",
-     "SPEECH OUTPUT: 'JDK Installation Instructions link",
+    ["BRAILLE LINE:  'JDK Installation Instructions'",
+     "     VISIBLE:  'JDK Installation Instructions', cursor=1",
+     "SPEECH OUTPUT: 'JDK Installation Instructions link ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "85. Line Up",
-    ["BRAILLE LINE:  'System Requirements Link'",
-     "     VISIBLE:  'System Requirements Link', cursor=1",
+    ["BRAILLE LINE:  'System Requirements'",
+     "     VISIBLE:  'System Requirements', cursor=1",
      "SPEECH OUTPUT: 'System Requirements link",
      "'"]))
 
@@ -1579,8 +1580,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "87. Line Up",
-    ["BRAILLE LINE:  'JDK Documentation Link'",
-     "     VISIBLE:  'JDK Documentation Link', cursor=1",
+    ["BRAILLE LINE:  'JDK Documentation'",
+     "     VISIBLE:  'JDK Documentation', cursor=1",
      "SPEECH OUTPUT: 'JDK Documentation link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1619,24 +1620,24 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "92. Line Up",
-    ["BRAILLE LINE:  'APIs Link Downloads Link Products Link Support Link Training Link Participate Link'",
-     "     VISIBLE:  'APIs Link Downloads Link Product', cursor=1",
+    ["BRAILLE LINE:  'APIs Downloads Products Support Training Participate'",
+     "     VISIBLE:  'APIs Downloads Products Support ', cursor=1",
      "SPEECH OUTPUT: 'APIs link Downloads link Products link Support link Training link Participate link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "93. Line Up",
-    ["BRAILLE LINE:  '» search tips Link Search $l Submit Search Button Home Page Link Image  $l'",
-     "     VISIBLE:  '» search tips Link Search $l Sub', cursor=1",
+    ["BRAILLE LINE:  '» search tips  Search $l  Submit Search Button Home Page Image $l'",
+     "     VISIBLE:  '» search tips  Search $l  Submit', cursor=1",
      "SPEECH OUTPUT: '»  search tips link   text Search Submit Search button Home Page link image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "94. Line Up",
-    ["BRAILLE LINE:  'Skip to Content Link Sun Link Java Link Solaris Link Communities Link My SDN Account Link Join SDN Link'",
-     "     VISIBLE:  'Skip to Content Link Sun Link Ja', cursor=1",
+    ["BRAILLE LINE:  'Skip to Content Sun Java Solaris Communities My SDN Account  Join SDN'",
+     "     VISIBLE:  'Skip to Content Sun Java Solaris', cursor=1",
      "SPEECH OUTPUT: 'Skip to Content link Sun link Java link Solaris link Communities link My SDN Account link Join SDN link'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/line_nav_imagemap.py
===================================================================
--- test/keystrokes/firefox/line_nav_imagemap.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_imagemap.py	(working copy)
@@ -47,8 +47,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "1. line Down",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'Test: z Link y Link x Link w Lin', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'Test: z y x w v u t s r q p o n ', cursor=1",
      "SPEECH OUTPUT: 'Test: z link y link x link w link v link u link t link s link r link q link p link o link n link m link l link k link j link i link h link g link f link e link d link c link b link a link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -66,8 +66,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. line Up",
-    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'Test: z Link y Link x Link w Lin', cursor=1",
+    ["BRAILLE LINE:  'Test: z y x w v u t s r q p o n m l k j i h g f e d c b a'",
+     "     VISIBLE:  'Test: z y x w v u t s r q p o n ', cursor=1",
      "SPEECH OUTPUT: 'Test: z link y link x link w link v link u link t link s link r link q link p link o link n link m link l link k link j link i link h link g link f link e link d link c link b link a link'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/bug_511389.py
===================================================================
--- test/keystrokes/firefox/bug_511389.py	(revision 4270)
+++ test/keystrokes/firefox/bug_511389.py	(working copy)
@@ -31,8 +31,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Hello world Link , this is a test.'",
-     "     VISIBLE:  'Hello world Link , this is a tes', cursor=1",
+    ["BRAILLE LINE:  'Hello world, this is a test.'",
+     "     VISIBLE:  'Hello world, this is a test.', cursor=1",
      "SPEECH OUTPUT: 'Hello world link , this is a test.'"]))
 
 ########################################################################
@@ -42,8 +42,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Foo Link'",
-     "     VISIBLE:  'Foo Link', cursor=1",
+    ["BRAILLE LINE:  'Foo'",
+     "     VISIBLE:  'Foo', cursor=1",
      "SPEECH OUTPUT: 'Foo link ",
      "'"]))
 
@@ -54,8 +54,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab",
-    ["BRAILLE LINE:  'Bar Link'",
-     "     VISIBLE:  'Bar Link', cursor=1",
+    ["BRAILLE LINE:  'Bar'",
+     "     VISIBLE:  'Bar', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Bar link'"]))
 
@@ -67,8 +67,8 @@
 sequence.append(KeyComboAction("<Shift>Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Shift Tab",
-    ["BRAILLE LINE:  'Foo Link'",
-     "     VISIBLE:  'Foo Link', cursor=1",
+    ["BRAILLE LINE:  'Foo'",
+     "     VISIBLE:  'Foo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Foo link'"]))
 
Index: test/keystrokes/firefox/moz_slider.py
===================================================================
--- test/keystrokes/firefox/moz_slider.py	(revision 4270)
+++ test/keystrokes/firefox/moz_slider.py	(working copy)
@@ -31,7 +31,7 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "tab to slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 10 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 10 Slider Move slider right Button'",
      "     VISIBLE:  '10 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'My slider slider 10'"]))
@@ -44,7 +44,7 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    ["BRAILLE LINE:  ' Move slider left Button 10 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 10 Slider Move slider right Button'",
      "     VISIBLE:  '10 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'slider'",
@@ -64,7 +64,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "0 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 15 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 15 Slider Move slider right Button'",
      "     VISIBLE:  '15 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '15'"]))
                                
@@ -77,7 +77,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "1 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 20 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 20 Slider Move slider right Button'",
      "     VISIBLE:  '20 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '20'"]))
                               
@@ -90,7 +90,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "2 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 25 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 25 Slider Move slider right Button'",
      "     VISIBLE:  '25 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '25'"]))
                                      
@@ -103,7 +103,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "3 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 30 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 30 Slider Move slider right Button'",
      "     VISIBLE:  '30 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '30'"]))
                                
@@ -116,7 +116,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "4 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 25 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 25 Slider Move slider right Button'",
      "     VISIBLE:  '25 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '25'"]))
                                        
@@ -129,7 +129,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "5 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 20 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 20 Slider Move slider right Button'",
      "     VISIBLE:  '20 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '20'"]))
                                      
@@ -142,7 +142,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "6 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 15 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 15 Slider Move slider right Button'",
      "     VISIBLE:  '15 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '15'"]))                           
   
@@ -155,7 +155,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "7 move slider", 
-    ["BRAILLE LINE:  ' Move slider left Button 10 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 10 Slider Move slider right Button'",
      "     VISIBLE:  '10 Slider Move slider right Butt', cursor=1",
      "SPEECH OUTPUT: '10'"]))   
                             
@@ -170,7 +170,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "move slider end", 
-    ["BRAILLE LINE:  ' Move slider left Button 100 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 100 Slider Move slider right Button'",
      "     VISIBLE:  '100 Slider Move slider right But', cursor=1",
      "SPEECH OUTPUT: '100'"]))
                                
@@ -185,7 +185,7 @@
                            5000))
 sequence.append(utils.AssertPresentationAction(
     "move slider home", 
-    ["BRAILLE LINE:  ' Move slider left Button 0 Slider Move slider right Button'",
+    ["BRAILLE LINE:  'Move slider left Button 0 Slider Move slider right Button'",
      "     VISIBLE:  '0 Slider Move slider right Butto', cursor=1",
      "SPEECH OUTPUT: '0'"]))
 ########################################################################
Index: test/keystrokes/firefox/uiuc_tree.py
===================================================================
--- test/keystrokes/firefox/uiuc_tree.py	(revision 4270)
+++ test/keystrokes/firefox/uiuc_tree.py	(working copy)
@@ -193,13 +193,13 @@
      "SPEECH OUTPUT: 'Vegetables expanded'",
      "SPEECH OUTPUT: 'tree level 1'"]))
 
-# [[[Bug?: "Panel list" addition.  below are expected results]]]
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "collapse vegetables", 
-    ["BRAILLE LINE:  'Vegetables ListItem'",
-     "     VISIBLE:  'Vegetables ListItem', cursor=1",
+    ["BUG? - If Panel shouldn't be in the context, perhaps a braille generator should be preventing it??",
+     "BRAILLE LINE:  'Vegetables ListItem Panel'",
+     "     VISIBLE:  'Vegetables ListItem Panel', cursor=1",
      "SPEECH OUTPUT: 'collapsed'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/sayAll_role_combo_box.py
===================================================================
--- test/keystrokes/firefox/sayAll_role_combo_box.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_role_combo_box.py	(working copy)
@@ -32,8 +32,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
+    ["BRAILLE LINE:  'Severity: Severity normal Combo'",
+     "     VISIBLE:  'Severity: Severity normal Combo', cursor=1",
      "SPEECH OUTPUT: 'Severity link : Severity normal combo box'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_table_cell_links.py
===================================================================
--- test/keystrokes/firefox/line_nav_table_cell_links.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_table_cell_links.py	(working copy)
@@ -26,7 +26,7 @@
 
 sequence.append(WaitForDocLoad())
 
-sequence.append(WaitForFocus("Table Cell Links",
+sequence.append(WaitForFocus("Table Cells",
                              acc_role=pyatspi.ROLE_DOCUMENT_FRAME))
 
 ########################################################################
@@ -57,15 +57,15 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<!--> Link'",
-     "     VISIBLE:  '<!--> Link', cursor=1",
+    ["BRAILLE LINE:  '<!-->",
+     "     VISIBLE:  '<!-->', cursor=1",
      "SPEECH OUTPUT: '<!--> link ",
      "'"]))
 
@@ -73,8 +73,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<!DOCTYPE> Link'",
-     "     VISIBLE:  '<!DOCTYPE> Link', cursor=1",
+    ["BRAILLE LINE:  '<!DOCTYPE>'",
+     "     VISIBLE:  '<!DOCTYPE>', cursor=1",
      "SPEECH OUTPUT: '<!DOCTYPE> link ",
      "'"]))
 
@@ -82,8 +82,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<a> Link'",
-     "     VISIBLE:  '<a> Link', cursor=1",
+    ["BRAILLE LINE:  '<a>'",
+     "     VISIBLE:  '<a>', cursor=1",
      "SPEECH OUTPUT: '<a> link ",
      "'"]))
 
@@ -91,8 +91,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<abbr> Link'",
-     "     VISIBLE:  '<abbr> Link', cursor=1",
+    ["BRAILLE LINE:  '<abbr>'",
+     "     VISIBLE:  '<abbr>', cursor=1",
      "SPEECH OUTPUT: '<abbr> link ",
      "'"]))
 
@@ -100,8 +100,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<acronym> Link'",
-     "     VISIBLE:  '<acronym> Link', cursor=1",
+    ["BRAILLE LINE:  '<acronym>'",
+     "     VISIBLE:  '<acronym>', cursor=1",
      "SPEECH OUTPUT: '<acronym> link ",
      "'"]))
 
@@ -112,8 +112,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<abbr> Link'",
-     "     VISIBLE:  '<abbr> Link', cursor=1",
+    ["BRAILLE LINE:  '<abbr>'",
+     "     VISIBLE:  '<abbr>', cursor=1",
      "SPEECH OUTPUT: '<abbr> link ",
      "'"]))
 
@@ -121,8 +121,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<a> Link'",
-     "     VISIBLE:  '<a> Link', cursor=1",
+    ["BRAILLE LINE:  '<a>'",
+     "     VISIBLE:  '<a>', cursor=1",
      "SPEECH OUTPUT: '<a> link ",
      "'"]))
 
@@ -130,8 +130,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<!DOCTYPE> Link'",
-     "     VISIBLE:  '<!DOCTYPE> Link', cursor=1",
+    ["BRAILLE LINE:  '<!DOCTYPE>'",
+     "     VISIBLE:  '<!DOCTYPE>', cursor=1",
      "SPEECH OUTPUT: '<!DOCTYPE> link ",
      "'"]))
 
@@ -139,8 +139,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<!--> Link'",
-     "     VISIBLE:  '<!--> Link', cursor=1",
+    ["BRAILLE LINE:  '<!-->'",
+     "     VISIBLE:  '<!-->', cursor=1",
      "SPEECH OUTPUT: '<!--> link ",
      "'"]))
 
@@ -149,7 +149,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/dojo_checkbox.py
===================================================================
--- test/keystrokes/firefox/dojo_checkbox.py	(revision 4270)
+++ test/keystrokes/firefox/dojo_checkbox.py	(working copy)
@@ -84,7 +84,7 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb2 checkbox", 
-    ["BRAILLE LINE:  '<x> CheckBox cb2: normal checkbox, with default value, initially turned on.  \"onChange\" handler updates: [] getValue()'",
+    ["BRAILLE LINE:  '<x> CheckBox cb2: normal checkbox, with default value, initially turned on. \"onChange\" handler updates: [] getValue()'",
      "     VISIBLE:  '<x> CheckBox cb2: normal checkbo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'cb2: normal checkbox, with default value, initially turned on. check box checked'"]))
@@ -122,7 +122,7 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to the cb7 checkbox", 
-    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button  \"onChange\" handler updates: []'",
+    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button \"onChange\" handler updates: []'",
      "     VISIBLE:  '< > CheckBox cb7: normal checkbo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'cb7: normal checkbox. check box not checked'"]))
@@ -135,7 +135,7 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I", 
-    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button  \"onChange\" handler updates: []'",
+    ["BRAILLE LINE:  '< > CheckBox cb7: normal checkbox. disable Button enable Button set value to \"fish\" Button Reset value+checked Button \"onChange\" handler updates: []'",
      "     VISIBLE:  '< > CheckBox cb7: normal checkbo', cursor=1",
      "SPEECH OUTPUT: 'cb7: normal checkbox. check box not checked'",
      "SPEECH OUTPUT: ''"]))
Index: test/keystrokes/firefox/line_nav_empty_anchor.py
===================================================================
--- test/keystrokes/firefox/line_nav_empty_anchor.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_empty_anchor.py	(working copy)
@@ -56,16 +56,16 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. What's a battery? Link'",
-     "     VISIBLE:  'Q. What's a battery? Link', cursor=1",
+    ["BRAILLE LINE:  'Q. What's a battery?'",
+     "     VISIBLE:  'Q. What's a battery?', cursor=1",
      "SPEECH OUTPUT: 'Q. What's a battery? link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. Which way is up? Link'",
-     "     VISIBLE:  'Q. Which way is up? Link', cursor=1",
+    ["BRAILLE LINE:  'Q. Which way is up?'",
+     "     VISIBLE:  'Q. Which way is up?', cursor=1",
      "SPEECH OUTPUT: 'Q. Which way is up? link ",
      "'"]))
 
@@ -73,7 +73,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page? Link'",
+    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
      "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link ",
      "'"]))
@@ -82,8 +82,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' h2'",
+     "     VISIBLE:  ' h2', cursor=1",
      "SPEECH OUTPUT: '",
      " heading level 2'"]))
 
@@ -100,7 +100,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading? Link'",
+    ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading?'",
      "     VISIBLE:  'Q. Why would someone put a line ', cursor=1",
      "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading? link ",
      "'"]))
@@ -109,7 +109,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow? Link'",
+    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
      "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link ",
      "'"]))
@@ -118,8 +118,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' h2'",
+     "     VISIBLE:  ' h2', cursor=1",
      "SPEECH OUTPUT: '",
      " heading level 2'"]))
 
@@ -240,8 +240,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' h2'",
+     "     VISIBLE:  ' h2', cursor=1",
      "SPEECH OUTPUT: '",
      " heading level 2'"]))
 
@@ -249,7 +249,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow? Link'",
+    ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
      "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link ",
      "'"]))
@@ -258,7 +258,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading? Link'",
+    ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading?'",
      "     VISIBLE:  'Q. Why would someone put a line ', cursor=1",
      "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading? link ",
      "'"]))
@@ -276,8 +276,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' h2'",
+     "     VISIBLE:  ' h2', cursor=1",
      "SPEECH OUTPUT: '",
      " heading level 2'"]))
 
@@ -285,7 +285,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page? Link'",
+    ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
      "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link ",
      "'"]))
@@ -294,8 +294,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. Which way is up? Link'",
-     "     VISIBLE:  'Q. Which way is up? Link', cursor=1",
+    ["BRAILLE LINE:  'Q. Which way is up?'",
+     "     VISIBLE:  'Q. Which way is up?', cursor=1",
      "SPEECH OUTPUT: 'Q. Which way is up? link ",
      "'"]))
 
@@ -303,8 +303,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Q. What's a battery? Link'",
-     "     VISIBLE:  'Q. What's a battery? Link', cursor=1",
+    ["BRAILLE LINE:  'Q. What's a battery?'",
+     "     VISIBLE:  'Q. What's a battery?', cursor=1",
      "SPEECH OUTPUT: 'Q. What's a battery? link'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/sayAll_wiki.py
===================================================================
--- test/keystrokes/firefox/sayAll_wiki.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_wiki.py	(working copy)
@@ -35,8 +35,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Home Link News Link Projects Link Art Link Support Link Development Link Community Link'",
-     "     VISIBLE:  'Home Link News Link Projects Lin', cursor=1",
+    ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
+     "     VISIBLE:  'Home News Projects Art Support D', cursor=1",
      "SPEECH OUTPUT: 'Home link News link Projects link Art link Support link Development link Community link'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_bugzilla_search.py
===================================================================
--- test/keystrokes/firefox/line_nav_bugzilla_search.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_bugzilla_search.py	(working copy)
@@ -39,8 +39,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
@@ -50,8 +50,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'New bug Link  · Browse Link  · Search Link  · Reports Link  · Account Link  · Admin Link  · Help Link Logged In joanmarie.diggs@gmail.com | Log Out Link'",
-     "     VISIBLE:  'New bug Link  · Browse Link  · S', cursor=1",
+    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie.diggs@gmail.com | Log Out'",
+     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
      "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie.diggs@gmail.com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -59,12 +59,12 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BUG? - For some reason we're getting the page load information",
-     "BRAILLE LINE:  'Short Bug Search Form Link Complicated Bug Search Form'",
-     "     VISIBLE:  'Short Bug Search Form Link Compl', cursor=0",
+     "BRAILLE LINE:  ' Short Bug Search Form Complicated Bug Search Form  '",
+     "     VISIBLE:  ' Short Bug Search Form Complicat', cursor=1",
      "BRAILLE LINE:  'Search for bugs'",
      "     VISIBLE:  'Search for bugs', cursor=0",
-     "BRAILLE LINE:  'Short Bug Search Form Link Complicated Bug Search Form'",
-     "     VISIBLE:  'Short Bug Search Form Link Compl', cursor=0",
+     "BRAILLE LINE:  ' Short Bug Search Form Complicated Bug Search Form  '",
+     "     VISIBLE:  ' Short Bug Search Form Complicat', cursor=1",
      "SPEECH OUTPUT: '  Short Bug Search Form link Complicated Bug Search Form  '",
      "SPEECH OUTPUT: 'Search for bugs page'",
      "SPEECH OUTPUT: '  Short Bug Search Form link Complicated Bug Search Form  '"]))
@@ -73,15 +73,15 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Give me some help Link  (reloads page.)'",
-     "     VISIBLE:  'Give me some help Link  (reloads', cursor=1",
+    ["BRAILLE LINE:  'Give me some help (reloads page.)'",
+     "     VISIBLE:  'Give me some help (reloads page.', cursor=1",
      "SPEECH OUTPUT: 'Give me some help link  (reloads page.)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  'Summary: contains all of the wor', cursor=1",
      "SPEECH OUTPUT: 'Summary: contains all of the words/strings combo box text Search button'"]))
 
@@ -121,8 +121,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Component Link :'",
-     "     VISIBLE:  'Component Link :', cursor=1",
+    ["BRAILLE LINE:  'Component:'",
+     "     VISIBLE:  'Component:', cursor=1",
      "SPEECH OUTPUT: 'Component link :'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -169,7 +169,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'A Comment: contains the string Combo  $l'",
+    ["BRAILLE LINE:  'A Comment: contains the string Combo $l'",
      "     VISIBLE:  'A Comment: contains the string C', cursor=1",
      "SPEECH OUTPUT: 'A Comment: contains the string combo box text'"]))
 
@@ -177,7 +177,7 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo  $l'",
+    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo $l'",
      "     VISIBLE:  'Whiteboard: contains all of the ', cursor=1",
      "SPEECH OUTPUT: 'Whiteboard: contains all of the words/strings combo box text'"]))
 
@@ -185,8 +185,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Keywords Link : contains all of the keywords Combo  $l'",
-     "     VISIBLE:  'Keywords Link : contains all of ', cursor=1",
+    ["BRAILLE LINE:  'Keywords: contains all of the keywords Combo $l'",
+     "     VISIBLE:  'Keywords: contains all of the ke', cursor=1",
      "SPEECH OUTPUT: 'Keywords link : contains all of the keywords combo box text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -297,40 +297,40 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  the reporter'",
-     "     VISIBLE:  '< > CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the reporter'",
+     "     VISIBLE:  '< > CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  the QA contact'",
-     "     VISIBLE:  '< > CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the QA contact'",
+     "     VISIBLE:  '< > CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  a CC list member'",
-     "     VISIBLE:  '< > CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a CC list member'",
+     "     VISIBLE:  '< > CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -363,40 +363,40 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<x> CheckBox  the reporter'",
-     "     VISIBLE:  '<x> CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the reporter'",
+     "     VISIBLE:  '<x> CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<x> CheckBox  the QA contact'",
-     "     VISIBLE:  '<x> CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the QA contact'",
+     "     VISIBLE:  '<x> CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '<x> CheckBox  a CC list member'",
-     "     VISIBLE:  '<x> CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox a CC list member'",
+     "     VISIBLE:  '<x> CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -461,10 +461,10 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
-     "BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
+    ["BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
+     "BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
      "SPEECH OUTPUT: 'Only bugs changed between: text  and text Now  ",
      "'"]))
 
@@ -562,8 +562,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  and remember these as my default search options'",
-     "     VISIBLE:  '< > CheckBox  and remember these', cursor=0",
+    ["BRAILLE LINE:  '    < > CheckBox and remember these as my default search options'",
+     "     VISIBLE:  '    < > CheckBox and remember th', cursor=1",
      "SPEECH OUTPUT: '    check box not checked  and remember these as my default search options'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -586,8 +586,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox  Not (negate this whole chart)'",
-     "     VISIBLE:  '< > CheckBox  Not (negate this w', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox Not (negate this whole chart)'",
+     "     VISIBLE:  '< > CheckBox Not \(negate this wh', cursor=1",
      "SPEECH OUTPUT: 'Not (negate this whole chart) check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -602,8 +602,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'And Button Add another boolean chart Button'",
-     "     VISIBLE:  'And Button Add another boolean c', cursor=1",
+    ["BRAILLE LINE:  'And Button       Add another boolean chart Button      '",
+     "     VISIBLE:  'And Button       Add another boo', cursor=1",
      "SPEECH OUTPUT: 'And button        Add another boolean chart button       '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -618,9 +618,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Saved Searches: My Bugs and Patches Link | All Orca Link  | Firefox Link  | open orca Link  | Open RFEs Link'",
+    ["BRAILLE LINE:  'Saved Searches: My Bugs and Patches | All Orca | Firefox | open orca | Open RFEs'",
      "     VISIBLE:  'Saved Searches: My Bugs and Patc', cursor=1",
-     "SPEECH OUTPUT: 'Saved Searches: My Bugs and Patches link | All Orca link  | Firefox link  | open orca link  | Open RFEs link'"]))
+     "SPEECH OUTPUT: 'Saved Searches: My Bugs and Patches link  | All Orca link  | Firefox link  | open orca link  | Open RFEs link'"]))
 
 ########################################################################
 # Up Arrow.
@@ -637,24 +637,24 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'And Button Add another boolean chart Button'",
-     "     VISIBLE:  'And Button Add another boolean c', cursor=1",
+    ["BRAILLE LINE:  'And Button       Add another boolean chart Button      '",
+     "     VISIBLE:  'And Button       Add another boo', cursor=1",
      "SPEECH OUTPUT: 'And button        Add another boolean chart button       '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '--- Combo --- Combo  $l Or Button'",
-     "     VISIBLE:  '--- Combo --- Combo  $l Or Butto', cursor=0",
+    ["BRAILLE LINE:  '--- Combo --- Combo   $l Or Button'",
+     "     VISIBLE:  '--- Combo --- Combo   $l Or Butt', cursor=0",
      "SPEECH OUTPUT: '--- combo box --- combo box text Or button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  Not (negate this whole chart)'",
-     "     VISIBLE:  '< > CheckBox  Not (negate this w', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox Not (negate this whole chart)'",
+     "     VISIBLE:  '< > CheckBox Not \(negate this wh', cursor=1",
      "SPEECH OUTPUT: 'Not (negate this whole chart) check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -677,8 +677,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  and remember these as my default search options'",
-     "     VISIBLE:  '< > CheckBox  and remember these', cursor=0",
+    ["BRAILLE LINE:  '    < > CheckBox and remember these as my default search options'",
+     "     VISIBLE:  '    < > CheckBox and remember th', cursor=1",
      "SPEECH OUTPUT: '    check box not checked  and remember these as my default search options'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -693,8 +693,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Sort results by: Reuse same sort as last time Combo'",
-     "     VISIBLE:  'Sort results by: Reuse same sort', cursor=1",
+    ["BRAILLE LINE:  'Sort results by:  Reuse same sort as last time Combo'",
+     "     VISIBLE:  'Sort results by:  Reuse same sor', cursor=1",
      "SPEECH OUTPUT: 'Sort results by: Reuse same sort as last time combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -775,11 +775,11 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
-     "BRAILLE LINE:  ' $l  and Now $l'",
-     "     VISIBLE:  ' $l  and Now $l', cursor=1",
-     "SPEECH OUTPUT: 'Only bugs changed between: text  and text Now",
+    ["BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
+     "BRAILLE LINE:  ' $l and Now $l'",
+     "     VISIBLE:  ' $l and Now $l', cursor=1",
+     "SPEECH OUTPUT: 'Only bugs changed between: text  and text Now ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -844,40 +844,40 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<x> CheckBox  a CC list member'",
-     "     VISIBLE:  '<x> CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox a CC list member'",
+     "     VISIBLE:  '<x> CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<x> CheckBox  the QA contact'",
-     "     VISIBLE:  '<x> CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the QA contact'",
+     "     VISIBLE:  '<x> CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<x> CheckBox  the reporter'",
-     "     VISIBLE:  '<x> CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the reporter'",
+     "     VISIBLE:  '<x> CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -910,40 +910,40 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  a commenter'",
-     "     VISIBLE:  '< > CheckBox  a commenter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a commenter'",
+     "     VISIBLE:  '< > CheckBox a commenter', cursor=1",
      "SPEECH OUTPUT: 'a commenter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  a CC list member'",
-     "     VISIBLE:  '< > CheckBox  a CC list member', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox a CC list member'",
+     "     VISIBLE:  '< > CheckBox a CC list member', cursor=1",
      "SPEECH OUTPUT: 'a CC list member check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  the QA contact'",
-     "     VISIBLE:  '< > CheckBox  the QA contact', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the QA contact'",
+     "     VISIBLE:  '< > CheckBox the QA contact', cursor=1",
      "SPEECH OUTPUT: 'the QA contact check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox  the reporter'",
-     "     VISIBLE:  '< > CheckBox  the reporter', cursor=1",
+    ["BRAILLE LINE:  '< > CheckBox the reporter'",
+     "     VISIBLE:  '< > CheckBox the reporter', cursor=1",
      "SPEECH OUTPUT: 'the reporter check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '<x> CheckBox  the bug assignee'",
-     "     VISIBLE:  '<x> CheckBox  the bug assignee', cursor=1",
+    ["BRAILLE LINE:  '<x> CheckBox the bug assignee'",
+     "     VISIBLE:  '<x> CheckBox the bug assignee', cursor=1",
      "SPEECH OUTPUT: 'the bug assignee check box checked'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1054,15 +1054,15 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Keywords Link : contains all of the keywords Combo  $l'",
-     "     VISIBLE:  'Keywords Link : contains all of ', cursor=1",
+    ["BRAILLE LINE:  'Keywords: contains all of the keywords Combo $l'",
+     "     VISIBLE:  'Keywords: contains all of the ke', cursor=1",
      "SPEECH OUTPUT: 'Keywords link : contains all of the keywords combo box text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo  $l'",
+    ["BRAILLE LINE:  'Whiteboard: contains all of the words/strings Combo $l'",
      "     VISIBLE:  'Whiteboard: contains all of the ', cursor=1",
      "SPEECH OUTPUT: 'Whiteboard: contains all of the words/strings combo box text'"]))
 
@@ -1070,7 +1070,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'A Comment: contains the string Combo  $l'",
+    ["BRAILLE LINE:  'A Comment: contains the string Combo $l'",
      "     VISIBLE:  'A Comment: contains the string C', cursor=1",
      "SPEECH OUTPUT: 'A Comment: contains the string combo box text'"]))
 
@@ -1118,8 +1118,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Component Link :'",
-     "     VISIBLE:  'Component Link :', cursor=1",
+    ["BRAILLE LINE:  'Component:'",
+     "     VISIBLE:  'Component:', cursor=1",
      "SPEECH OUTPUT: 'Component link :'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1158,7 +1158,7 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo  $l Search Button'",
+    ["BRAILLE LINE:  'Summary: contains all of the words/strings Combo $l Search Button'",
      "     VISIBLE:  'Summary: contains all of the wor', cursor=1",
      "SPEECH OUTPUT: 'Summary: contains all of the words/strings combo box text Search button'"]))
 
@@ -1166,32 +1166,32 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Give me some help Link  (reloads page.)'",
-     "     VISIBLE:  'Give me some help Link  (reloads', cursor=1",
+    ["BRAILLE LINE:  'Give me some help (reloads page.)'",
+     "     VISIBLE:  'Give me some help (reloads page.', cursor=1",
      "SPEECH OUTPUT: 'Give me some help link  (reloads page.)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Short Bug Search Form Link Complicated Bug Search Form'",
-     "     VISIBLE:  'Short Bug Search Form Link Compl', cursor=0",
+    ["BRAILLE LINE:  ' Short Bug Search Form Complicated Bug Search Form  '",
+     "     VISIBLE:  ' Short Bug Search Form Complicat', cursor=1",
      "SPEECH OUTPUT: '  Short Bug Search Form link Complicated Bug Search Form  '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'New bug Link  · Browse Link  · Search Link  · Reports Link  · Account Link  · Admin Link  · Help Link Logged In joanmarie.diggs@gmail.com | Log Out Link'",
-     "     VISIBLE:  'New bug Link  · Browse Link  · S', cursor=1",
+    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin ·  Help Logged In joanmarie.diggs@gmail.com |  Log Out'",
+     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
      "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie.diggs@gmail.com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/moz_tabpanel.py
===================================================================
--- test/keystrokes/firefox/moz_tabpanel.py	(revision 4270)
+++ test/keystrokes/firefox/moz_tabpanel.py	(working copy)
@@ -38,7 +38,7 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "basic whereAmI", 
-    [ "BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
+    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
      "     VISIBLE:  'Tab Zero Page Tab One Page Tab T', cursor=1",
      "SPEECH OUTPUT: 'tab list'",
      "SPEECH OUTPUT: 'Tab Zero page'",
@@ -52,7 +52,7 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to tab 2", 
-    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
+    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page Tab Zero Page'",
      "     VISIBLE:  'Tab One Page Tab Two Page Tab Th', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab One page'"]))
@@ -63,7 +63,7 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to tab 3", 
-    [ "BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
+    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page Tab One Page'",
      "     VISIBLE:  'Tab Two Page Tab Three Page Tab ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab Two page'"]))
@@ -97,8 +97,8 @@
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "arrow to tab 4", 
-    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
-     "     VISIBLE:  'Tab Three Page Tab Four Page', cursor=1",
+    ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page Tab Two Page'",
+     "     VISIBLE:  'Tab Three Page Tab Four Page Tab', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab Three page'"]))
 ########################################################################
Index: test/keystrokes/firefox/sayAll_bug_511389.py
===================================================================
--- test/keystrokes/firefox/sayAll_bug_511389.py	(revision 4270)
+++ test/keystrokes/firefox/sayAll_bug_511389.py	(working copy)
@@ -31,8 +31,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Hello world Link , this is a test.'",
-     "     VISIBLE:  'Hello world Link , this is a tes', cursor=1",
+    ["BRAILLE LINE:  'Hello world, this is a test.'",
+     "     VISIBLE:  'Hello world, this is a test.', cursor=1",
      "SPEECH OUTPUT: 'Hello world link , this is a test.'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/html_struct_nav_links.py
===================================================================
--- test/keystrokes/firefox/html_struct_nav_links.py	(revision 4270)
+++ test/keystrokes/firefox/html_struct_nav_links.py	(working copy)
@@ -48,8 +48,8 @@
 sequence.append(KeyComboAction("u"))
 sequence.append(utils.AssertPresentationAction(
     "u to anchors.html link", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=3",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=3",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
 ########################################################################
@@ -59,8 +59,8 @@
 sequence.append(KeyComboAction("u"))
 sequence.append(utils.AssertPresentationAction(
     "u to blockquotes.html link", 
-    ["BRAILLE LINE:  '• blockquotes.html Link'",
-     "     VISIBLE:  '• blockquotes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• blockquotes.html'",
+     "     VISIBLE:  '• blockquotes.html', cursor=3",
      "SPEECH OUTPUT: 'blockquotes.html link'"]))
 
 ########################################################################
@@ -70,8 +70,8 @@
 sequence.append(KeyComboAction("<Shift>u"))
 sequence.append(utils.AssertPresentationAction(
     "shift + u to anchors.html link", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=3",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=3",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
 ########################################################################
@@ -84,8 +84,8 @@
 sequence.append(KeyComboAction("<Shift>u"))
 sequence.append(utils.AssertPresentationAction(
     "shift + u wrapping to bottom",
-    ["BRAILLE LINE:  '• textattributes.html Link'",
-     "     VISIBLE:  '• textattributes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• textattributes.html'",
+     "     VISIBLE:  '• textattributes.html', cursor=3",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'textattributes.html link'"])) 
 
@@ -96,8 +96,8 @@
 sequence.append(KeyComboAction("<Shift>u"))
 sequence.append(utils.AssertPresentationAction(
     "shift + u to tables.html",
-    ["BRAILLE LINE:  '• tables.html Link'",
-     "     VISIBLE:  '• tables.html Link', cursor=3",
+    ["BRAILLE LINE:  '• tables.html'",
+     "     VISIBLE:  '• tables.html', cursor=3",
      "SPEECH OUTPUT: 'tables.html link'"])) 
 
 ########################################################################
@@ -119,8 +119,8 @@
 sequence.append(KeyComboAction("u"))
 sequence.append(utils.AssertPresentationAction(
     "u to textattributes.html link", 
-    ["BRAILLE LINE:  '• textattributes.html Link'",
-     "     VISIBLE:  '• textattributes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• textattributes.html'",
+     "     VISIBLE:  '• textattributes.html', cursor=3",
      "SPEECH OUTPUT: 'textattributes.html link'"])) 
 
 ########################################################################
@@ -130,8 +130,8 @@
 sequence.append(KeyComboAction("u"))
 sequence.append(utils.AssertPresentationAction(
     "u to anchors.html link", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=3",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=3",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
@@ -154,8 +154,8 @@
 sequence.append(KeyComboAction("v"))
 sequence.append(utils.AssertPresentationAction(
     "v to tables.html link", 
-    ["BRAILLE LINE:  '• tables.html Link'",
-     "     VISIBLE:  '• tables.html Link', cursor=3",
+    ["BRAILLE LINE:  '• tables.html'",
+     "     VISIBLE:  '• tables.html', cursor=3",
      "SPEECH OUTPUT: 'tables.html link'"]))
 
 ########################################################################
@@ -165,8 +165,8 @@
 sequence.append(KeyComboAction("v"))
 sequence.append(utils.AssertPresentationAction(
     "v to blockquotes.html link", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=3",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=3",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
@@ -177,8 +177,8 @@
 sequence.append(KeyComboAction("<Shift>v"))
 sequence.append(utils.AssertPresentationAction(
     "shift + v to tables.html link", 
-    ["BRAILLE LINE:  '• tables.html Link'",
-     "     VISIBLE:  '• tables.html Link', cursor=3",
+    ["BRAILLE LINE:  '• tables.html'",
+     "     VISIBLE:  '• tables.html', cursor=3",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'tables.html link'"]))
 
Index: test/keystrokes/firefox/label_guess_bug_546815.py
===================================================================
--- test/keystrokes/firefox/label_guess_bug_546815.py	(revision 4270)
+++ test/keystrokes/firefox/label_guess_bug_546815.py	(working copy)
@@ -47,9 +47,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
      "     VISIBLE:  ' $l text field using default typ', cursor=1",
-     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
      "     VISIBLE:  ' $l text field using default typ', cursor=1",
      "SPEECH OUTPUT: 'Enter your Name: text'"]))
 
@@ -59,9 +59,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and MAXLENGTH'",
+    ["BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and MAXLENGTH'",
      "     VISIBLE:  ' $l text field using SIZE and MA', cursor=1",
-     "BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and MAXLENGTH'",
+     "BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and MAXLENGTH'",
      "     VISIBLE:  ' $l text field using SIZE and MA', cursor=1",
      "SPEECH OUTPUT: '1. Enter your Address: text'"]))
 
@@ -71,10 +71,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field",
-    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
-     "     VISIBLE:  ' $l 3. Enter your State:  $l 4. ', cursor=1",
-     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
-     "     VISIBLE:  ' $l 3. Enter your State:  $l 4. ', cursor=1",
+    ["BUG? - Should have a space between the EOL indicator and Image",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $lImage text field using value'",
+     "     VISIBLE:  ' $l 3. Enter your State:  $l 4. ', cursor=1",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $lImage text field using value'",
+     "     VISIBLE:  ' $l 3. Enter your State:  $l 4. ', cursor=1",
      "SPEECH OUTPUT: '2. Enter your City: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -83,10 +84,11 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
-     "     VISIBLE:  ' $l 4. Enter your Country: US $l', cursor=1",
-     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
-     "     VISIBLE:  ' $l 4. Enter your Country: US $l', cursor=1",
+    ["BUG? - Should have a space between the EOL indicator and Image",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $lImage text field using value'",
+     "     VISIBLE:  ' $l 4. Enter your Country: US $l', cursor=1",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $lImage text field using value'",
+     "     VISIBLE:  ' $l 4. Enter your Country: US $l', cursor=1",
      "SPEECH OUTPUT: '3. Enter your State: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -95,9 +97,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
+    ["BUG? - Should have a space between the EOL indicator and Image",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: Image US $l text field using value'",
      "     VISIBLE:  'US $l text field using value', cursor=1",
-     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text field using value'",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: Image US $l text field using value'",
      "     VISIBLE:  'US $l text field using value', cursor=1",
      "SPEECH OUTPUT: '4. Enter your Country: text US'"]))
 
@@ -107,10 +110,10 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  '5. Enter your Zip:  $l'",
-     "     VISIBLE:  '5. Enter your Zip:  $l', cursor=20",
-     "BRAILLE LINE:  '5. Enter your Zip:  $l'",
-     "     VISIBLE:  '5. Enter your Zip:  $l', cursor=20",
+    ["BRAILLE LINE:  '5. Enter your Zip:   $l'",
+     "     VISIBLE:  '5. Enter your Zip:   $l', cursor=21",
+     "BRAILLE LINE:  '5. Enter your Zip:   $l'",
+     "     VISIBLE:  '5. Enter your Zip:   $l', cursor=21",
      "SPEECH OUTPUT: '5. Enter your Zip: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -119,9 +122,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field",
-    ["BRAILLE LINE:  '6. What happens when a fixed-width font(the default) is used for a one-byte text input area, let's try it.. Enter one character:  $l'",
+    ["BRAILLE LINE:  '6. What happens when a fixed-width font(the default) is used for a one-byte text input area, let's try it.. Enter one character:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "BRAILLE LINE:  '6. What happens when a fixed-width font(the default) is used for a one-byte text input area, let's try it.. Enter one character:  $l'",
+     "BRAILLE LINE:  '6. What happens when a fixed-width font(the default) is used for a one-byte text input area, let's try it.. Enter one character:  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: '6. What happens when a fixed-width font(the default) is used for a one-byte text input area, let's try it.. Enter one character: text'"]))
 
@@ -211,9 +214,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
      "     VISIBLE:  ' $l text field using default typ', cursor=1",
-     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
      "     VISIBLE:  ' $l text field using default typ', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.'",
      "SPEECH OUTPUT: 'Enter your Name: text'"]))
Index: test/keystrokes/firefox/line_nav_slash_test.py
===================================================================
--- test/keystrokes/firefox/line_nav_slash_test.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_slash_test.py	(working copy)
@@ -61,23 +61,23 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["BRAILLE LINE:  'Science Link h4'",
-     "     VISIBLE:  'Science Link h4', cursor=1",
+    ["BRAILLE LINE:  'Science h4'",
+     "     VISIBLE:  'Science h4', cursor=1",
      "SPEECH OUTPUT: 'Science link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
-    ["BRAILLE LINE:  'Recent Tags Link h4'",
-     "     VISIBLE:  'Recent Tags Link h4', cursor=1",
+    ["BRAILLE LINE:  'Recent Tags h4'",
+     "     VISIBLE:  'Recent Tags h4', cursor=1",
      "SPEECH OUTPUT: 'Recent Tags link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
-    ["BRAILLE LINE:  'Recent Tags Link Slashdot Login h4'",
+    ["BRAILLE LINE:  'Recent Tags Slashdot Login h4'",
      "     VISIBLE:  'Slashdot Login h4', cursor=1",
      "SPEECH OUTPUT: 'Slashdot Login heading level 4'"]))
 
@@ -118,16 +118,16 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  'Book Reviews Link h4'",
-     "     VISIBLE:  'Book Reviews Link h4', cursor=1",
+    ["BRAILLE LINE:  'Book Reviews h4'",
+     "     VISIBLE:  'Book Reviews h4', cursor=1",
      "SPEECH OUTPUT: 'Book Reviews link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
-    ["BRAILLE LINE:  'Book Reviews Link Older Stuff h4'",
-     "     VISIBLE:  'Book Reviews Link Older Stuff h4', cursor=19",
+    ["BRAILLE LINE:  'Book Reviews Older Stuff h4'",
+     "     VISIBLE:  'Book Reviews Older Stuff h4', cursor=19",
      "SPEECH OUTPUT: 'Older Stuff heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -143,8 +143,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Line Up",
-    ["BRAILLE LINE:  'Book Reviews Link h4'",
-     "     VISIBLE:  'Book Reviews Link h4', cursor=1",
+    ["BRAILLE LINE:  'Book Reviews h4'",
+     "     VISIBLE:  'Book Reviews h4', cursor=1",
      "SPEECH OUTPUT: 'Book Reviews link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -176,8 +176,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Up",
-    ["BRAILLE LINE:  'Nickname  $l Password  $l Log in Button'",
-     "     VISIBLE:  'Nickname  $l Password  $l Log in', cursor=1",
+    ["BRAILLE LINE:  'Nickname  $l Password  $l  Log in Button'",
+     "     VISIBLE:  'Nickname  $l Password  $l  Log i', cursor=1",
      "SPEECH OUTPUT: 'Nickname text Password password Log in button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -192,24 +192,24 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Up",
-    ["BRAILLE LINE:  'Recent Tags Link h4'",
-     "     VISIBLE:  'Recent Tags Link h4', cursor=1",
+    ["BRAILLE LINE:  'Recent Tags h4'",
+     "     VISIBLE:  'Recent Tags h4', cursor=1",
      "SPEECH OUTPUT: 'Recent Tags link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
-    ["BRAILLE LINE:  'Science Link h4'",
-     "     VISIBLE:  'Science Link h4', cursor=1",
+    ["BRAILLE LINE:  'Science h4'",
+     "     VISIBLE:  'Science h4', cursor=1",
      "SPEECH OUTPUT: 'Science link heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Up",
-    ["BRAILLE LINE:  'Services h4 Science Link h4'",
-     "     VISIBLE:  'Services h4 Science Link h4', cursor=1",
+    ["BRAILLE LINE:  'Services h4 Science h4'",
+     "     VISIBLE:  'Services h4 Science h4', cursor=1",
      "SPEECH OUTPUT: 'Services heading level 4'"]))
 
 sequence.append(utils.StartRecordingAction())
Index: test/keystrokes/firefox/html_role_links.py
===================================================================
--- test/keystrokes/firefox/html_role_links.py	(revision 4270)
+++ test/keystrokes/firefox/html_role_links.py	(working copy)
@@ -46,8 +46,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to anchors.html link", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=3",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
@@ -58,8 +58,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to blockquotes.html link", 
-    ["BRAILLE LINE:  '• blockquotes.html Link'",
-     "     VISIBLE:  '• blockquotes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• blockquotes.html'",
+     "     VISIBLE:  '• blockquotes.html', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'blockquotes.html link'"]))
 
@@ -70,8 +70,8 @@
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Tab to bugzilla_top.html link", 
-    ["BRAILLE LINE:  '• bugzilla_top.html Link'",
-     "     VISIBLE:  '• bugzilla_top.html Link', cursor=3",
+    ["BRAILLE LINE:  '• bugzilla_top.html'",
+     "     VISIBLE:  '• bugzilla_top.html', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'bugzilla_top.html link'"]))
 
@@ -82,8 +82,8 @@
 sequence.append(KeyComboAction("<Shift>Tab"))
 sequence.append(utils.AssertPresentationAction(
     "Shift Tab to blockquotes.html link", 
-    ["BRAILLE LINE:  '• blockquotes.html Link'",
-     "     VISIBLE:  '• blockquotes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• blockquotes.html'",
+     "     VISIBLE:  '• blockquotes.html', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'blockquotes.html link'"]))
 
@@ -96,8 +96,8 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I", 
-    ["BRAILLE LINE:  '• blockquotes.html Link'",
-     "     VISIBLE:  '• blockquotes.html Link', cursor=3",
+    ["BRAILLE LINE:  '• blockquotes.html'",
+     "     VISIBLE:  '• blockquotes.html', cursor=3",
      "SPEECH OUTPUT: 'file link to blockquotes.html'",
      "SPEECH OUTPUT: 'same site'",
      "SPEECH OUTPUT: '1188 bytes'"]))
@@ -128,8 +128,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up to anchors.html", 
-    ["BRAILLE LINE:  '• anchors.html Link'",
-     "     VISIBLE:  '• anchors.html Link', cursor=1",
+    ["BRAILLE LINE:  '• anchors.html'",
+     "     VISIBLE:  '• anchors.html', cursor=1",
      "SPEECH OUTPUT: '• anchors.html link'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_enter_bug.py
===================================================================
--- test/keystrokes/firefox/line_nav_enter_bug.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_enter_bug.py	(working copy)
@@ -36,8 +36,8 @@
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
@@ -47,8 +47,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'New bug Link  · Browse Link  · Search Link  · Reports Link  · Account Link  · Admin Link  · Help Link Logged In joanmarie.diggs@gmail.com | Log Out Link'",
-     "     VISIBLE:  'New bug Link  · Browse Link  · S', cursor=1",
+    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie.diggs@gmail.com | Log Out'",
+     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
      "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie.diggs@gmail.com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -71,14 +71,14 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines Link , please look at the list of most frequently Link'",
+    ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines, please look at the list of most frequently'",
      "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
      "SPEECH OUTPUT: 'Before reporting a bug, please read the bug writing guidelines link , please look at the list of most frequently link'"]))
 
@@ -86,8 +86,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'reported bugs Link , and please search Link  or browse Link  for the bug.'",
-     "     VISIBLE:  'reported bugs Link , and please ', cursor=1",
+    ["BRAILLE LINE:  'reported bugs, and please search or browse for the bug.'",
+     "     VISIBLE:  'reported bugs, and please search', cursor=1",
      "SPEECH OUTPUT: 'reported bugs link , and please search link  or browse link  for the bug.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -95,7 +95,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -110,80 +110,80 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Version: List Component Link : List'",
-     "     VISIBLE:  'Version: List Component Link : L', cursor=1",
+    ["BRAILLE LINE:  'Version: List Component: List'",
+     "     VISIBLE:  'Version: List Component: List', cursor=1",
      "SPEECH OUTPUT: 'Version: 2.21.x List with 9 items Component link : braille List with 5 items'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'GNOME Link'",
-     "     VISIBLE:  'GNOME Link', cursor=1",
+    ["BRAILLE LINE:  'GNOME'",
+     "     VISIBLE:  'GNOME', cursor=1",
      "SPEECH OUTPUT: 'GNOME link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'version Link :'",
-     "     VISIBLE:  'version Link :', cursor=1",
+    ["BRAILLE LINE:  'version:'",
+     "     VISIBLE:  'version:', cursor=1",
      "SPEECH OUTPUT: 'version link :'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'GNOME Link Unspecified Combo'",
-     "     VISIBLE:  'GNOME Link Unspecified Combo', cursor=0",
+    ["BRAILLE LINE:  'GNOME Unspecified Combo'",
+     "     VISIBLE:  'GNOME Unspecified Combo', cursor=0",
      "SPEECH OUTPUT: 'GNOME link Unspecified combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'OS Link : Linux Combo'",
-     "     VISIBLE:  'OS Link : Linux Combo', cursor=1",
+    ["BRAILLE LINE:  'OS: Linux Combo'",
+     "     VISIBLE:  'OS: Linux Combo', cursor=1",
      "SPEECH OUTPUT: 'OS link : Linux combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Severity Link : normal Combo'",
-     "     VISIBLE:  'Severity Link : normal Combo', cursor=1",
+    ["BRAILLE LINE:  'Severity: normal Combo'",
+     "     VISIBLE:  'Severity: normal Combo', cursor=1",
      "SPEECH OUTPUT: 'Severity link : normal combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Summary:  $l'",
-     "     VISIBLE:  'Summary:  $l', cursor=1",
+    ["BRAILLE LINE:  'Summary: $l'",
+     "     VISIBLE:  'Summary: $l', cursor=1",
      "SPEECH OUTPUT: 'Summary: text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Description:  $l'",
-     "     VISIBLE:  'Description:  $l', cursor=1",
+    ["BRAILLE LINE:  'Description: $l'",
+     "     VISIBLE:  'Description: $l', cursor=1",
      "SPEECH OUTPUT: 'Description: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -191,16 +191,16 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: '",
+     "     VISIBLE:  '', cursor=1",
+     "SPEECH OUTPUT: ' ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -215,16 +215,16 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Cc:  $l'",
-     "     VISIBLE:  'Cc:  $l', cursor=1",
+    ["BRAILLE LINE:  'Cc: $l'",
+     "     VISIBLE:  'Cc: $l', cursor=1",
      "SPEECH OUTPUT: 'Cc: text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Keywords Link :  $l'",
-     "     VISIBLE:  'Keywords Link :  $l', cursor=1",
+    ["BRAILLE LINE:  'Keywords:  $l'",
+     "     VISIBLE:  'Keywords:  $l', cursor=1",
      "SPEECH OUTPUT: 'Keywords link : text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -247,8 +247,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Commit Button Remember values as bookmarkable template Button'",
-     "     VISIBLE:  'Commit Button Remember values as', cursor=1",
+    ["BRAILLE LINE:  'Commit Button      Remember values as bookmarkable template Button'",
+     "     VISIBLE:  'Commit Button      Remember valu', cursor=1",
      "SPEECH OUTPUT: 'Commit button       Remember values as bookmarkable template button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -256,7 +256,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -279,9 +279,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Saved Searches: All Orca Link | Firefox Link  | open orca Link  | Open RFEs Link'",
-     "     VISIBLE:  'Saved Searches: All Orca Link |', cursor=1",
-     "SPEECH OUTPUT: 'Saved Searches: All Orca link | Firefox link  | open orca link  | Open RFEs link'"]))
+    ["BRAILLE LINE:  'Saved Searches: All Orca | Firefox | open orca | Open RFEs'",
+     "     VISIBLE:  'Saved Searches: All Orca | Firef', cursor=1",
+     "SPEECH OUTPUT: 'Saved Searches: All Orca link  | Firefox link  | open orca link  | Open RFEs link'"]))
 
 ########################################################################
 # Up Arrow.
@@ -307,15 +307,15 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Commit Button Remember values as bookmarkable template Button'",
-     "     VISIBLE:  'Commit Button Remember values as', cursor=1",
+    ["BRAILLE LINE:  'Commit Button       Remember values as bookmarkable template Button'",
+     "     VISIBLE:  'Commit Button       Remember val', cursor=1",
      "SPEECH OUTPUT: 'Commit button       Remember values as bookmarkable template button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -338,16 +338,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Keywords Link :  $l'",
-     "     VISIBLE:  'Keywords Link :  $l', cursor=1",
+    ["BRAILLE LINE:  'Keywords:  $l'",
+     "     VISIBLE:  'Keywords:  $l', cursor=1",
      "SPEECH OUTPUT: 'Keywords link : text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Cc:  $l'",
-     "     VISIBLE:  'Cc:  $l', cursor=1",
+    ["BRAILLE LINE:  'Cc: $l'",
+     "     VISIBLE:  'Cc: $l', cursor=1",
      "SPEECH OUTPUT: 'Cc: text'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -362,8 +362,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -371,72 +371,72 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: '",
+     "     VISIBLE:  '', cursor=1",
+     "SPEECH OUTPUT: ' ",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Description:  $l'",
-     "     VISIBLE:  'Description:  $l', cursor=1",
+    ["BRAILLE LINE:  'Description: $l'",
+     "     VISIBLE:  'Description: $l', cursor=1",
      "SPEECH OUTPUT: 'Description: text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Summary:  $l'",
-     "     VISIBLE:  'Summary:  $l', cursor=1",
+    ["BRAILLE LINE:  'Summary: $l'",
+     "     VISIBLE:  'Summary: $l', cursor=1",
      "SPEECH OUTPUT: 'Summary: text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Severity Link : normal Combo'",
-     "     VISIBLE:  'Severity Link : normal Combo', cursor=1",
+    ["BRAILLE LINE:  'Severity: normal Combo'",
+     "     VISIBLE:  'Severity: normal Combo', cursor=1",
      "SPEECH OUTPUT: 'Severity link : normal combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'OS Link : Linux Combo'",
-     "     VISIBLE:  'OS Link : Linux Combo', cursor=1",
+    ["BRAILLE LINE:  'OS: Linux Combo'",
+     "     VISIBLE:  'OS: Linux Combo', cursor=1",
      "SPEECH OUTPUT: 'OS link : Linux combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'GNOME Link Unspecified Combo'",
-     "     VISIBLE:  'GNOME Link Unspecified Combo', cursor=1",
+    ["BRAILLE LINE:  'GNOME Unspecified Combo'",
+     "     VISIBLE:  'GNOME Unspecified Combo', cursor=1",
      "SPEECH OUTPUT: 'GNOME link Unspecified combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Version: List Component Link : List'",
-     "     VISIBLE:  'Version: List Component Link : L', cursor=1",
+    ["BRAILLE LINE:  'Version: List Component: List'",
+     "     VISIBLE:  'Version: List Component: List', cursor=1",
      "SPEECH OUTPUT: 'Version: 2.21.x List with 9 items Component link : braille List with 5 items'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -452,22 +452,22 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'reported bugs Link , and please search Link  or browse Link  for the bug.'",
-     "     VISIBLE:  'reported bugs Link , and please ', cursor=1",
+    ["BRAILLE LINE:  'reported bugs, and please search or browse for the bug.'",
+     "     VISIBLE:  'reported bugs, and please search', cursor=1",
      "SPEECH OUTPUT: 'reported bugs link , and please search link  or browse link  for the bug.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines Link , please look at the list of most frequently Link'",
+    ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines, please look at the list of most frequently'",
      "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
      "SPEECH OUTPUT: 'Before reporting a bug, please read the bug writing guidelines link , please look at the list of most frequently link'"]))
 
@@ -476,7 +476,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+     "     VISIBLE:  '', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -491,16 +491,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'New bug Link  · Browse Link  · Search Link  · Reports Link  · Account Link  · Admin Link  · Help Link Logged In joanmarie.diggs@gmail.com | Log Out Link'",
-     "     VISIBLE:  'New bug Link  · Browse Link  · S', cursor=1",
+    ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin ·  Help Logged In joanmarie.diggs@gmail.com |  Log Out'",
+     "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
      "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie.diggs@gmail.com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Home Link Image Bugzilla'",
-     "     VISIBLE:  'Home Link Image Bugzilla', cursor=1",
+    ["BRAILLE LINE:  'Home Image Bugzilla'",
+     "     VISIBLE:  'Home Image Bugzilla', cursor=1",
      "SPEECH OUTPUT: 'Home link image Bugzilla'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_simple_form.py
===================================================================
--- test/keystrokes/firefox/line_nav_simple_form.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_simple_form.py	(working copy)
@@ -201,15 +201,17 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. line Up",
-    ["BRAILLE LINE:  'Make a selection: Water Combo'",
-     "     VISIBLE:  'Make a selection: Water Combo', cursor=1",
+    ["BUG? - Why is the extra space present before Water?",
+     "BRAILLE LINE:  'Make a selection:  Water Combo'",
+     "     VISIBLE:  'Make a selection:  Water Combo', cursor=1",
      "SPEECH OUTPUT: 'Make a selection: Water combo box'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "5. line Up",
-    ["BRAILLE LINE:  'Check one or more: < > CheckBox Red < > CheckBox Blue < > CheckBox Green'",
+    ["BUG? - Extra space after Blue",
+     "BRAILLE LINE:  'Check one or more: < > CheckBox Red < > CheckBox Blue  < > CheckBox Green'",
      "     VISIBLE:  'Check one or more: < > CheckBox ', cursor=1",
      "SPEECH OUTPUT: 'Check one or more: Red check box not checked Blue check box not checked Green check box not checked'"]))
 
@@ -269,24 +271,25 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. line Up",
-    ["BRAILLE LINE:  'Tell me a secret:  $l'",
-     "     VISIBLE:  'Tell me a secret:  $l', cursor=1",
+    ["BRAILLE LINE:  'Tell me a secret:   $l'",
+     "     VISIBLE:  'Tell me a secret:   $l', cursor=1",
      "SPEECH OUTPUT: 'Tell me a secret: password'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "13. line Up",
-    ["BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
-     "     VISIBLE:  'Magic disappearing text trick: t', cursor=1",
+    ["BUG? - Extra space before the entry?",
+     "BRAILLE LINE:  'Magic disappearing text trick:  tab to me and I disappear $l'",
+     "     VISIBLE:  'Magic disappearing text trick:  ', cursor=1",
      "SPEECH OUTPUT: 'Magic disappearing text trick: text tab to me and I disappear'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "14. line Up",
-    ["BRAILLE LINE:  'Type something here:  $l'",
-     "     VISIBLE:  'Type something here:  $l', cursor=1",
+    ["BRAILLE LINE:  'Type something here:   $l'",
+     "     VISIBLE:  'Type something here:   $l', cursor=1",
      "SPEECH OUTPUT: 'Type something here: text'"]))
 
 ########################################################################
Index: test/keystrokes/firefox/line_nav_nested_tables.py
===================================================================
--- test/keystrokes/firefox/line_nav_nested_tables.py	(revision 4270)
+++ test/keystrokes/firefox/line_nav_nested_tables.py	(working copy)
@@ -36,8 +36,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. line Down",
-    ["BRAILLE LINE:  'Campus Link   . Classroom Link   . Communicate Link   . Reports Link'",
-     "     VISIBLE:  'Campus Link   . Classroom Link  ', cursor=1",
+    ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports '",
+     "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
      "SPEECH OUTPUT: 'Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -60,8 +60,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -76,8 +76,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. line Down",
-    ["BRAILLE LINE:  'Take Course Link'",
-     "     VISIBLE:  'Take Course Link', cursor=0",
+    ["BRAILLE LINE:  ' Take Course'",
+     "     VISIBLE:  ' Take Course', cursor=1",
      "SPEECH OUTPUT: '  Take Course link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -108,8 +108,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. line Down",
-    ["BRAILLE LINE:  'Take Course Link'",
-     "     VISIBLE:  'Take Course Link', cursor=0",
+    ["BRAILLE LINE:  ' Take Course'",
+     "     VISIBLE:  ' Take Course', cursor=1",
      "SPEECH OUTPUT: '  Take Course link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -143,8 +143,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. line Up",
-    ["BRAILLE LINE:  'Take Course Link'",
-     "     VISIBLE:  'Take Course Link', cursor=0",
+    ["BRAILLE LINE:  ' Take Course'",
+     "     VISIBLE:  ' Take Course', cursor=1",
      "SPEECH OUTPUT: '  Take Course link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -175,8 +175,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "6. line Up",
-    ["BRAILLE LINE:  'Take Course Link'",
-     "     VISIBLE:  'Take Course Link', cursor=0",
+    ["BRAILLE LINE:  ' Take Course'",
+     "     VISIBLE:  ' Take Course', cursor=1",
      "SPEECH OUTPUT: '  Take Course link'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -191,8 +191,8 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "8. line Up",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
+    ["BRAILLE LINE:  ' '",
+     "     VISIBLE:  ' ', cursor=1",
      "SPEECH OUTPUT: ' '"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -215,16 +215,16 @@
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "11. line Up",
-    ["BRAILLE LINE:  'Campus Link   . Classroom Link   . Communicate Link   . Reports Link'",
-     "     VISIBLE:  'Campus Link   . Classroom Link  ', cursor=1",
+    ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports '",
+     "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
      "SPEECH OUTPUT: 'Campus link   .   Classroom link   .   Communicate link   .   Reports link  '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. line Up",
-    ["BRAILLE LINE:  'nested-tables Link Image'",
-     "     VISIBLE:  'nested-tables Link Image', cursor=1",
+    ["BRAILLE LINE:  'nested-tables Image'",
+     "     VISIBLE:  'nested-tables Image', cursor=1",
      "SPEECH OUTPUT: 'nested-tables link image'"]))
 
 ########################################################################
Index: src/orca/scripts/toolkits/Gecko/braille_generator.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/braille_generator.py	(revision 4270)
+++ src/orca/scripts/toolkits/Gecko/braille_generator.py	(working copy)
@@ -329,10 +329,15 @@
         if focusedRegionIndex >= len(regions):
             focusedRegionIndex = 0
 
+        if obj.getState().contains(pyatspi.STATE_FOCUSED):
+            focusedRegion = regions[focusedRegionIndex]
+        else:
+            focusedRegion = None
+
         # [[[TODO: WDW - perhaps if a text area was created, we should
         # give focus to it.]]]
         #
-        return [regions, regions[focusedRegionIndex]]
+        return [regions, focusedRegion]
 
     def _getBrailleRegionsForMenuItem(self, obj):
         """Get the braille for a menu item.
@@ -427,13 +432,20 @@
             if not item:
                 item = obj[0]
             regions.append(braille.Region(item.name + " "))
+        elif obj.getState().contains(pyatspi.STATE_FOCUSABLE):
+            focusedRegionIndex = -1
 
         if settings.brailleVerbosityLevel == settings.VERBOSITY_LEVEL_VERBOSE:
             regions.append(braille.Region(
                 rolenames.getBrailleForRoleName(obj)))
 
-        return [regions, regions[focusedRegionIndex]]
+        if focusedRegionIndex > -1:
+            focusedRegion = regions[focusedRegionIndex]
+        else:
+            focusedRegion = None
 
+        return [regions, focusedRegion]
+
     def _getBrailleRegionsForImage(self, obj):
         """Get the braille regions for an image.
 
@@ -453,38 +465,35 @@
             return braillegenerator.BrailleGenerator.\
                        _getBrailleRegionsForImage(self, obj)
         
-        regions = []
-
         text = ""
         text = self._script.appendString(text, 
                                          self._script.getDisplayedLabel(obj))
-        text = self._script.appendString(text, 
+        text = self._script.appendString(text,
                                          self._script.getDisplayedText(obj))
-
-        # If there's no text for the link, expose part of the
-        # link to the user if the image is in a link.
-        #
         link = self._script.getAncestor(obj, 
-                                        [pyatspi.ROLE_LINK], 
+                                        [pyatspi.ROLE_LINK],
                                         [pyatspi.ROLE_DOCUMENT_FRAME])
-        if len(text) == 0:
-            if link:
-                [linkRegions, focusedRegion] = \
-                    self._getBrailleRegionsForLink(link)
-                for region in linkRegions:
-                    text += region.string
-        elif link:
-            text = self._script.appendString(text, self._getTextForRole(link))
+        if link:
+            if len(text) == 0:
+                # If there's no text for the link, expose part of the
+                # link to the user if the image is in a link.
+                #
+                basename = self._script.getLinkBasename(link)
+                if basename:
+                    text = basename
 
         text = self._script.appendString(text,
                                          self._script.getTextForValue(obj))
         text = self._script.appendString(text, self._getTextForRole(obj))
 
         regions = []
-        componentRegion = braille.Component(obj, text)
-        regions.append(componentRegion)
+        if link:
+            region = braille.Link(obj, text)
+        else:
+            region = braille.Component(obj, text)
+        regions.append(region)
 
-        return [regions, componentRegion]
+        return [regions, region]
 
     def _getBrailleRegionsForLink(self, obj):
         """Gets text to be displayed for a link.
@@ -499,14 +508,10 @@
 
         self._debugGenerator("Gecko._getBrailleRegionsForLink", obj)
 
-        regions = []
+        text, caretOffset, startOffset = self._script.getTextLineAtCaret(obj)
+        if not len(text):
+            text = self._script.getDisplayedText(obj)
 
-        text = ""
-        text = self._script.appendString(text, 
-                                         self._script.getDisplayedLabel(obj))
-        text = self._script.appendString(text, 
-                                         self._script.getDisplayedText(obj))
-
         # If there's no text for the link, expose part of the
         # URI to the user.
         #
@@ -515,12 +520,8 @@
             if basename:
                 text = basename
 
-        text = self._script.appendString(text,
-                                         self._script.getTextForValue(obj))
-        text = self._script.appendString(text, self._getTextForRole(obj))
-
         regions = []
-        componentRegion = braille.Component(obj, text)
-        regions.append(componentRegion)
+        linkRegion = braille.Link(obj, text, caretOffset - startOffset)
+        regions.append(linkRegion)
 
-        return [regions, componentRegion]
+        return [regions, linkRegion]
Index: src/orca/scripts/toolkits/Gecko/script.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/script.py	(revision 4270)
+++ src/orca/scripts/toolkits/Gecko/script.py	(working copy)
@@ -2038,123 +2038,63 @@
             contents = self.getLineContentsAtOffset(focusedObj,
                                                     max(0, lineContentsOffset))
             self.currentLineContents = contents
+            index = self.findObjectOnLine(focusedObj,
+                                          max(0, lineContentsOffset),
+                                          contents)
 
         if not len(contents):
             return
 
+        whitespace = [" ", "\n", self.NO_BREAK_SPACE_CHARACTER]
+
         focusedRegion = None
-        for content in contents:
+        for i, content in enumerate(contents):
+            isFocusedObj = (i == index)
             [obj, startOffset, endOffset, string] = content
             if not obj:
                 continue
 
-            # If this is a label that's labelling something else, we'll
-            # get the label via a braille generator. [[[TODO: WDW - this is
-            # all to hack around the way checkboxes and their labels
-            # are handled in document content.  For now, we will display
-            # the label so we can track the caret in it on the braille
-            # display.  So...we'll comment this section out.]]]
-            #
-            #if self.isLabellingContents(obj, contents):
-            #    continue
-
-            # Treat the focused combo box and its selected menu item
-            # as the same object for the purposes of displaying the
-            # item in braille.
-            #
-            if focusedObj.getRole() == pyatspi.ROLE_COMBO_BOX \
-               and obj.getRole() == pyatspi.ROLE_MENU_ITEM:
-                comboBox = self.getAncestor(obj,
-                                            [pyatspi.ROLE_COMBO_BOX],
-                                            [pyatspi.ROLE_DOCUMENT_FRAME])
-                isFocusedObj = self.isSameObject(comboBox, focusedObj)
-            else:
-                isFocusedObj = self.isSameObject(obj, focusedObj)
-
-            text = self.queryNonEmptyText(obj)
-            if text and text.getText(startOffset, endOffset) == " " \
-               and not obj.getRole() in [pyatspi.ROLE_PAGE_TAB_LIST,
-                                         pyatspi.ROLE_ENTRY]:
-                continue
-
-            if not self.isNavigableAria(obj):
-                # Treat unnavigable ARIA widgets like normal default.py widgets
-                #
+            role = obj.getRole()
+            if not len(string) \
+               or not self.isNavigableAria(obj) \
+               or role in [pyatspi.ROLE_ENTRY,
+                           pyatspi.ROLE_PASSWORD_TEXT,
+                           pyatspi.ROLE_LINK]:
                 [regions, fRegion] = \
                           self.brailleGenerator.getBrailleRegions(obj)
+
                 if isFocusedObj:
                     focusedRegion = fRegion
-            elif obj.getRole() in [pyatspi.ROLE_ENTRY,
-                                   pyatspi.ROLE_PASSWORD_TEXT] \
-                or ((obj.getRole() == pyatspi.ROLE_DOCUMENT_FRAME) \
-                    and obj.getState().contains(pyatspi.STATE_EDITABLE)):
-                label = self.getDisplayedLabel(obj)
+
+            else:
                 regions = [braille.Text(obj,
-                                        label,
-                                        settings.brailleEOLIndicator)]
-                if isFocusedObj:
-                    focusedRegion = regions[0]
-            elif text and (obj.getRole() != pyatspi.ROLE_MENU_ITEM):
-                string = text.getText(startOffset, endOffset).decode('utf-8')
-                string = string.rstrip()
-                endOffset = startOffset + len(string)
+                                        startOffset=startOffset,
+                                        endOffset=endOffset)]
 
-                if endOffset == startOffset:
-                    continue
-
-                if obj.getRole() == pyatspi.ROLE_LINK:
-                    link = obj
-                else:
-                    link = self.getAncestor(obj,
-                                            [pyatspi.ROLE_LINK],
-                                            [pyatspi.ROLE_DOCUMENT_FRAME])
-
-                if not link:
-                    regions = [braille.Text(obj,
-                                            startOffset=startOffset,
-                                            endOffset=endOffset)]
-
-                if link:
-                    regions = [braille.Component(
-                            link,
-                            string + " " + \
-                                rolenames.getBrailleForRoleName(link),
-                            focusedCharacterOffset - startOffset,
-                            expandOnCursor=True)]
-                elif obj.getRole() == pyatspi.ROLE_CAPTION:
+                if role == pyatspi.ROLE_CAPTION:
                     regions.append(braille.Region(
                         " " + rolenames.getBrailleForRoleName(obj)))
 
-                if isFocusedObj \
-                   and (focusedCharacterOffset >= startOffset) \
-                   and (focusedCharacterOffset < endOffset):
+                if isFocusedObj:
                     focusedRegion = regions[0]
 
-            elif self.isLayoutOnly(obj):
-                continue
-            else:
-                [regions, fRegion] = \
-                          self.brailleGenerator.getBrailleRegions(obj)
-                if isFocusedObj:
-                    focusedRegion = fRegion
-
             # We only want to display the heading role and level if we
             # have found the final item in that heading, or if that
             # heading contains no children.
             #
-            containingHeading = \
-                self.getAncestor(obj,
-                                 [pyatspi.ROLE_HEADING],
-                                 [pyatspi.ROLE_DOCUMENT_FRAME])
-            isLastObject = contents.index(content) == (len(contents) - 1)
-            if obj.getRole() == pyatspi.ROLE_HEADING:
-                appendRole = isLastObject or not obj.childCount
-            elif containingHeading and isLastObject:
-                obj = containingHeading
-                appendRole = True
+            isLastObject = (i == len(contents) - 1)
+            if role == pyatspi.ROLE_HEADING \
+               and (isLastObject or not obj.childCount):
+                heading = obj
+            elif isLastObject:
+                heading = self.getAncestor(obj,
+                                           [pyatspi.ROLE_HEADING],
+                                           [pyatspi.ROLE_DOCUMENT_FRAME])
+            else:
+                heading = None
 
-            if obj.getRole() == pyatspi.ROLE_HEADING and appendRole:
-                level = self.getHeadingLevel(obj)
+            if heading:
+                level = self.getHeadingLevel(heading)
                 # Translators: the 'h' below represents a heading level
                 # attribute for content that you might find in something
                 # such as HTML content (e.g., <h1>). The translated form
@@ -2162,14 +2102,68 @@
                 # heading level, where the single character is to indicate
                 # 'heading'.
                 #
-                regions.append(braille.Region(" " + _("h%d" % level)))
+                headingString = _("h%d" % level)
+                if not string.endswith(" "):
+                    headingString = " " + headingString
+                if not isLastObject:
+                    headingString += " "
+                regions.append(braille.Region(headingString))
 
-            if len(line.regions):
-                line.regions[-1].string.rstrip(" ")
-                line.addRegion(braille.Region(" "))
+            # Add whitespace if we need it. [[[TODO: JD - But should we be
+            # doing this in the braille generators rather than here??]]]
+            #
+            if len(line.regions) \
+               and regions[0].string and line.regions[-1].string \
+               and not regions[0].string[0] in whitespace \
+               and not line.regions[-1].string[-1] in whitespace:
 
+                # There is nothing separating the previous braille region from
+                # this one. We might or might not want to add some whitespace
+                # for readability.
+                #
+                lastObj = contents[i - 1][0]
+
+                # If we have two of the same braille class, or if the previous
+                # region is a component or a generic region, or an image link,
+                # we should add some space.
+                #
+                if line.regions[-1].__class__ == regions[0].__class__ \
+                   or line.regions[-1].__class__ in [braille.Component,
+                                                     braille.Region] \
+                   or lastObj.getRole() == pyatspi.ROLE_IMAGE:
+                    line.addRegion(braille.Region(" "))
+
+                # The above check will catch table cells with uniform
+                # contents and form fields -- and do so more efficiently
+                # than walking up the hierarchy. But if we have a cell
+                # with text next to a cell with a link.... Ditto for
+                # sections on the same line.
+                #
+                else:
+                    layoutRoles = [pyatspi.ROLE_TABLE_CELL,
+                                   pyatspi.ROLE_SECTION,
+                                   pyatspi.ROLE_LIST_ITEM]
+                    if role in layoutRoles:
+                        acc1 = obj
+                    else:
+                        acc1 = self.getAncestor(obj,
+                                                layoutRoles,
+                                                [pyatspi.ROLE_DOCUMENT_FRAME])
+                    if acc1:
+                        if lastObj.getRole() == acc1.getRole():
+                            acc2 = lastObj
+                        else:
+                            acc2 = self.getAncestor(lastObj,
+                                                layoutRoles,
+                                                [pyatspi.ROLE_DOCUMENT_FRAME])
+                        if not self.isSameObject(acc1, acc2):
+                            line.addRegion(braille.Region(" "))
+
             line.addRegions(regions)
 
+            if isLastObject:
+                line.regions[-1].string = line.regions[-1].string.rstrip(" ")
+
             # If we're inside of a combo box, we only want to display
             # the selected menu item.
             #
@@ -2180,9 +2174,6 @@
         if extraRegion:
             line.addRegion(extraRegion)
 
-        if len(line.regions):
-            line.regions[-1].string.rstrip(" ")
-
         braille.setFocus(focusedRegion, getLinkMask=False)
         braille.refresh(panToCursor=True, getLinkMask=False)
 
@@ -4705,8 +4696,9 @@
 
         # Find the current line.
         #
-        contents = self.currentLineContents
         contextObj, contextOffset = self.getCaretContext()
+        contextOffset = max(0, contextOffset)
+        contents = self.currentLineContents
         if self.findObjectOnLine(contextObj, contextOffset, contents) < 0:
             contents = self.getLineContentsAtOffset(contextObj, contextOffset)
 
Index: src/orca/braille.py
===================================================================
--- src/orca/braille.py	(revision 4270)
+++ src/orca/braille.py	(working copy)
@@ -455,6 +455,32 @@
         else:
             action.doAction(0)
 
+class Link(Component):
+    """A subclass of Component backed by an accessible.  This Region will be
+    marked as a link by dots 7 or 8, depending on the user's preferences.
+    """
+
+    def __init__(self, accessible, string, cursorOffset=0):
+        """Initialize a Link region. similar to Component, but here we always
+        have the region expand on cursor."""
+        Component.__init__(self, accessible, string, cursorOffset, '', True)
+
+    def getAttributeMask(self, getLinkMask=True):
+        """Creates a string which can be used as the attrOr field of brltty's
+        write structure for the purpose of indicating text attributes and
+        selection.
+        Arguments:
+
+        - getLinkMask: Whether or not we should take the time to get
+          the attributeMask for links. Reasons we might not want to
+          include knowning that we will fail and/or it taking an
+          unreasonable amount of time (AKA Gecko).
+        """
+
+        # Create an link indicator mask.
+        #
+        return chr(settings.brailleLinkIndicator) * len(self.string)
+
 class Text(Region):
     """A subclass of Region backed by a Text object.  This Region will
     react to any cursor routing key events by positioning the caret in
@@ -655,7 +681,7 @@
                     contractedMask[outPos[i]] |= m
                 except IndexError:
                     continue
-            regionMask = contractedMask
+            regionMask = contractedMask[:len(self.string)]
 
         # Add empty mask characters for the EOL character as well as for
         # any label that might be present.
