[orca] Fix for bgo#585897 - Pronunciation substitution can miss words due to word delimiters



commit d85a39d0dc0ffe50546944d94c3664ba9c1b974d
Author: Willie Walker <william walker sun com>
Date:   Sun Jun 21 02:59:10 2009 -0400

    Fix for bgo#585897 - Pronunciation substitution can miss words due to word delimiters
    
    This uses a regular expression to find word and non-word segments. It also
    removes the fallback to chnames.py to get pronunciation for characters.
    That is handled by the punctuation_settings dictionary, which is used
    lower in the stack (e.g., in gnomespeechfactory.py).  As a result, the
    SPEECH OUTPUT lines for those don't include the spoken-word form of
    the characters and all the tests had to be changed back again.

 src/orca/default.py                                |   34 +-
 src/orca/pronunciation_dict.py                     |    9 +-
 test/keystrokes/firefox/codetalks_list.py          |    2 +-
 test/keystrokes/firefox/codetalks_panel_text.py    |   12 +-
 test/keystrokes/firefox/codetalks_treegrid.py      |    2 +-
 test/keystrokes/firefox/dojo_combo_box.py          |   14 +-
 test/keystrokes/firefox/find_wiki.py               |   14 +-
 test/keystrokes/firefox/html_role_links.py         |    2 +-
 .../firefox/html_role_list_item_where_am_i.py      |    8 +-
 test/keystrokes/firefox/html_role_lists.py         |    4 +-
 .../firefox/html_struct_nav_list_item.py           |   36 +-
 test/keystrokes/firefox/html_struct_nav_lists.py   |   30 +-
 test/keystrokes/firefox/line_nav_bug_547573.py     |   42 +-
 test/keystrokes/firefox/line_nav_bug_549128.py     |   73 ++--
 test/keystrokes/firefox/line_nav_bug_570757.py     |    6 +-
 test/keystrokes/firefox/line_nav_bug_577239.py     |    8 +-
 .../keystrokes/firefox/line_nav_bugzilla_search.py |   46 +-
 test/keystrokes/firefox/line_nav_enter_bug.py      |    8 +-
 .../keystrokes/firefox/line_nav_multi_line_text.py |   24 +-
 test/keystrokes/firefox/line_nav_wiki.py           |  429 ++++++++++----------
 test/keystrokes/firefox/tpg_aria_slider.py         |   76 ++--
 21 files changed, 436 insertions(+), 443 deletions(-)
---
diff --git a/src/orca/default.py b/src/orca/default.py
index a0c622c..736ab12 100644
--- a/src/orca/default.py
+++ b/src/orca/default.py
@@ -30,6 +30,7 @@ __license__   = "LGPL"
 
 import locale
 import math
+import re
 import sys
 import time
 
@@ -70,6 +71,7 @@ class Script(script.Script):
 
     EMBEDDED_OBJECT_CHARACTER = u'\ufffc'
     NO_BREAK_SPACE_CHARACTER  = u'\u00a0'
+    WORDS_RE = re.compile("(\W+)", re.UNICODE)
 
     def __init__(self, app):
         """Creates a new script for the given application.
@@ -6622,23 +6624,20 @@ class Script(script.Script):
         dictionary.
         """
 
-        line = line.decode("UTF-8")
-        newLine = segment = u''
-
-        for i in range(0, len(line)):
-            if self.isWordDelimiter(line[i]):
-                if len(segment) != 0:
-                    newLine = newLine + \
-                              self._getPronunciationForSegment(segment)
-                newLine = newLine + line[i]
-                segment = u''
-            else:
-                segment += line[i]
-
-        if len(segment) != 0:
-            newLine = newLine + self._getPronunciationForSegment(segment)
+        newLine = ""
+        words = self.WORDS_RE.split(line.decode("UTF-8"))
+        for word in words:
+            if word.isalnum():
+                word = self._getPronunciationForSegment(word)
+            newLine += word
 
-        return newLine.encode("UTF-8")
+        if line != newLine:
+            debug.println(debug.LEVEL_FINEST,
+                          "adjustForPronunciation: \n  From '%s'\n  To   '%s'" \
+                          % (line, newLine))
+            return newLine.encode("UTF-8")
+        else:
+            return line
 
     def getLinkIndex(self, obj, characterIndex):
         """A brute force method to see if an offset is a link.  This
@@ -7967,7 +7966,8 @@ class Script(script.Script):
             return rv, 0, 0
 
         if get_defaults:
-            rv.update(self.attributeStringToDictionary(texti.getDefaultAttributes()))
+            rv.update(self.attributeStringToDictionary(
+                texti.getDefaultAttributes()))
 
         attrib_str, start, end = texti.getAttributes(offset)
 
diff --git a/src/orca/pronunciation_dict.py b/src/orca/pronunciation_dict.py
index f27bc5b..8fdb734 100644
--- a/src/orca/pronunciation_dict.py
+++ b/src/orca/pronunciation_dict.py
@@ -26,8 +26,6 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2006-2008 Sun Microsystems Inc."
 __license__   = "LGPL"
 
-import chnames
-
 def getPronunciation(word, pronunciations=None):
     """Given a word, return a string that represents what this word
     sounds like.
@@ -51,7 +49,12 @@ def getPronunciation(word, pronunciations=None):
         else:
             return pronunciation_dict[lowerWord][1]
     except:
-        return chnames.getCharacterName(word)
+        # If you want a character name to be spoken, treat it as a
+        # punctuation character at LEVEL_NONE in puncutation_settings.py.
+        # See, for example, the left_arrow and right_arrow characters.
+        #
+        #return chnames.getCharacterName(word)
+        return word
 
 def setPronunciation(word, replacementString, pronunciations=None):
     """Given an actual word, and a replacement string, set a key/value
diff --git a/test/keystrokes/firefox/codetalks_list.py b/test/keystrokes/firefox/codetalks_list.py
index 247a7dd..e5bf618 100644
--- a/test/keystrokes/firefox/codetalks_list.py
+++ b/test/keystrokes/firefox/codetalks_list.py
@@ -75,7 +75,7 @@ sequence.append(utils.AssertPresentationAction(
     "5. Down Arrow", 
     ["BRAILLE LINE:  '\$Revision: [0-9]* \$'",
      "     VISIBLE:  '\$Revision: [0-9]* \$', cursor=1",
-     "SPEECH OUTPUT: '\$Revision: [0-9]* dollar'"]))
+     "SPEECH OUTPUT: '\$Revision: [0-9]* \$'"]))
 
 ########################################################################
 # Up Arrow.
diff --git a/test/keystrokes/firefox/codetalks_panel_text.py b/test/keystrokes/firefox/codetalks_panel_text.py
index efdc100..1825ee2 100644
--- a/test/keystrokes/firefox/codetalks_panel_text.py
+++ b/test/keystrokes/firefox/codetalks_panel_text.py
@@ -61,7 +61,7 @@ sequence.append(utils.AssertPresentationAction(
     "5. Down Arrow", 
     ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'",
      "     VISIBLE:  'â?¢ left and right arrows to move ', cursor=1",
-     "SPEECH OUTPUT: 'bullet left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
+     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -77,7 +77,7 @@ sequence.append(utils.AssertPresentationAction(
     "7. Down Arrow", 
     ["BRAILLE LINE:  'â?¢ ctrl-left and ctrl-right arrows behave the same as left and right arrows'",
      "     VISIBLE:  'â?¢ ctrl-left and ctrl-right arrow', cursor=1",
-     "SPEECH OUTPUT: 'bullet ctrl-left and ctrl-right arrows behave the same as left and right arrows'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-left and ctrl-right arrows behave the same as left and right arrows'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -85,7 +85,7 @@ sequence.append(utils.AssertPresentationAction(
     "8. Down Arrow", 
     ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'",
      "     VISIBLE:  'â?¢ ctrl-shift-pageup / ctrl-shift', cursor=1",
-     "SPEECH OUTPUT: 'bullet ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -104,7 +104,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow", 
     ["BRAILLE LINE:  'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'",
      "     VISIBLE:  'â?¢ ctrl-shift-pageup / ctrl-shift', cursor=1",
-     "SPEECH OUTPUT: 'bullet ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-shift-pageup / ctrl-shift-pagedown is the same as left and right arrows but WILL cycle around the tab order \(shift was added'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -112,7 +112,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Up Arrow", 
     ["BRAILLE LINE:  'â?¢ ctrl-left and ctrl-right arrows behave the same as left and right arrows'",
      "     VISIBLE:  'â?¢ ctrl-left and ctrl-right arrow', cursor=1",
-     "SPEECH OUTPUT: 'bullet ctrl-left and ctrl-right arrows behave the same as left and right arrows'"]))
+     "SPEECH OUTPUT: 'â?¢ ctrl-left and ctrl-right arrows behave the same as left and right arrows'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -128,7 +128,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. Up Arrow", 
     ["BRAILLE LINE:  'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'",
      "     VISIBLE:  'â?¢ left and right arrows to move ', cursor=1",
-     "SPEECH OUTPUT: 'bullet left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
+     "SPEECH OUTPUT: 'â?¢ left and right arrows to move from tab to tab. Panel is made visible when tab gets focus. Arrow keys do not cycle around the'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/codetalks_treegrid.py b/test/keystrokes/firefox/codetalks_treegrid.py
index 82a7b2e..d1af8dc 100644
--- a/test/keystrokes/firefox/codetalks_treegrid.py
+++ b/test/keystrokes/firefox/codetalks_treegrid.py
@@ -142,7 +142,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Right Arrow in child", 
     ["BRAILLE LINE:  'ISBN 978-3-453-40540-0 Cell Author Nora Roberts Cell Price $ 9.99 Cell'",
      "     VISIBLE:  'Price $ 9.99 Cell', cursor=1",
-     "SPEECH OUTPUT: 'dollar 9.99'"]))
+     "SPEECH OUTPUT: '$ 9.99'"]))
 
 ########################################################################
 # Left Arrow in the child item.
diff --git a/test/keystrokes/firefox/dojo_combo_box.py b/test/keystrokes/firefox/dojo_combo_box.py
index 10c02cb..ef6b94d 100644
--- a/test/keystrokes/firefox/dojo_combo_box.py
+++ b/test/keystrokes/firefox/dojo_combo_box.py
@@ -55,7 +55,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?? US State test 1 California $l', cursor=0",
      "BRAILLE LINE:  'â?? US State test 1 C $l'",
      "     VISIBLE:  'â?? US State test 1 C $l', cursor=0",
-     "SPEECH OUTPUT: 'bullet Californiaâ?¢ Coloradoâ?¢ Connecticut'"]))
+     "SPEECH OUTPUT: 'â?¢ Californiaâ?¢ Coloradoâ?¢ Connecticut'"]))
 
 ########################################################################
 # Down Arrow amongst the newly-displayed items. One should not be able
@@ -69,7 +69,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?? US State test 1 C $l', cursor=0",
      "BRAILLE LINE:  'â?¢ California'",
      "     VISIBLE:  'â?¢ California', cursor=1",
-     "SPEECH OUTPUT: 'bullet California'"]))
+     "SPEECH OUTPUT: 'â?¢ California'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -77,7 +77,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Down Arrow", 
     ["BRAILLE LINE:  'â?¢ Colorado'",
      "     VISIBLE:  'â?¢ Colorado', cursor=1",
-     "SPEECH OUTPUT: 'bullet Colorado'"]))
+     "SPEECH OUTPUT: 'â?¢ Colorado'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -85,7 +85,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Down Arrow", 
     ["BRAILLE LINE:  'â?¢ Connecticut'",
      "     VISIBLE:  'â?¢ Connecticut', cursor=1",
-     "SPEECH OUTPUT: 'bullet Connecticut'"]))
+     "SPEECH OUTPUT: 'â?¢ Connecticut'"]))
 
 # Note that not saying anything here is correct because we're already at
 # the end of the expanded combo box thus pressing Down doesn't move us.
@@ -106,7 +106,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow", 
     ["BRAILLE LINE:  'â?¢ Colorado'",
      "     VISIBLE:  'â?¢ Colorado', cursor=1",
-     "SPEECH OUTPUT: 'bullet Colorado'"]))
+     "SPEECH OUTPUT: 'â?¢ Colorado'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -114,7 +114,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Up Arrow", 
     ["BRAILLE LINE:  'â?¢ California'",
      "     VISIBLE:  'â?¢ California', cursor=1",
-     "SPEECH OUTPUT: 'bullet California'"]))
+     "SPEECH OUTPUT: 'â?¢ California'"]))
 
 # Note that not saying anything here is correct because we're already at
 # the top of the expanded combo box thus pressing Up doesn't move us.
@@ -135,7 +135,7 @@ sequence.append(utils.AssertPresentationAction(
     "Basic Where Am I - Combo box expanded", 
     ["BRAILLE LINE:  'â?¢ California'",
      "     VISIBLE:  'â?¢ California', cursor=1",
-     "SPEECH OUTPUT: 'list item bullet California item 1 of 3'"]))
+     "SPEECH OUTPUT: 'list item â?¢ California item 1 of 3'"]))
 
 ########################################################################
 # Escape to collapse the combo box.
diff --git a/test/keystrokes/firefox/find_wiki.py b/test/keystrokes/firefox/find_wiki.py
index c6ad8fd..cc20a55 100644
--- a/test/keystrokes/firefox/find_wiki.py
+++ b/test/keystrokes/firefox/find_wiki.py
@@ -89,35 +89,31 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "5. Return",
-    ["SPEECH OUTPUT: 'AT-SPI (e.g., the GNOME desktop). The development of Orca has'"]))
+    ["SPEECH OUTPUT: 'AT-SPI \(e.g., the GNOME desktop\). The development of Orca has'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "6. Return",
-    ["BUG? - We are speaking the parens here.",
-     "SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  left paren archives link right paren: it's a helpful, kind, and productive'"]))
+    ["SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  \( archives link \): it's a helpful, kind, and productive'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "7. Return",
-    ["BUG? - Should we be doing this?",
-     "SPEECH OUTPUT: 'Darragh O ACUTE Héiligh link  has created several audio guides for Orca. This is a fantastic contribution'"]))
+    ["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("Return"))
 sequence.append(utils.AssertPresentationAction(
     "8. Return",
-    ["BUG? - We are speaking the bullet here. I think we should be, but marking just in case.",
-     "SPEECH OUTPUT: 'bullet Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop link'"]))
+    ["SPEECH OUTPUT: 'â?¢ Review of Fedora 7 and the Orca screen reader for the Gnome graphical desktop link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "9. Return",
-    ["BUG? - We are speaking the bullet here. I think we should be, but marking just in case.",
-     "SPEECH OUTPUT: '(bullet |)Guide to installing the latest versions of Firefox and Orca link'"]))
+    ["SPEECH OUTPUT: '(â?¢ |)Guide to installing the latest versions of Firefox and Orca link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
diff --git a/test/keystrokes/firefox/html_role_links.py b/test/keystrokes/firefox/html_role_links.py
index eede56b..c4b9043 100644
--- a/test/keystrokes/firefox/html_role_links.py
+++ b/test/keystrokes/firefox/html_role_links.py
@@ -124,7 +124,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up to anchors.html", 
     ["BRAILLE LINE:  'â?¢ anchors.html'",
      "     VISIBLE:  'â?¢ anchors.html', cursor=1",
-     "SPEECH OUTPUT: 'bullet anchors.html link'"]))
+     "SPEECH OUTPUT: 'â?¢ anchors.html link'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/html_role_list_item_where_am_i.py b/test/keystrokes/firefox/html_role_list_item_where_am_i.py
index 9628f98..16fdbac 100644
--- a/test/keystrokes/firefox/html_role_list_item_where_am_i.py
+++ b/test/keystrokes/firefox/html_role_list_item_where_am_i.py
@@ -36,7 +36,7 @@ sequence.append(utils.AssertPresentationAction(
     "Top of file",
     ["BRAILLE LINE:  'â?¢ Not in a paragraph'",
      "     VISIBLE:  'â?¢ Not in a paragraph', cursor=1",
-     "SPEECH OUTPUT: 'bullet Not in a paragraph'"]))
+     "SPEECH OUTPUT: 'â?¢ Not in a paragraph'"]))
 
 ########################################################################
 # Press Down Arrow to move through the lists doing a where am I for each
@@ -50,7 +50,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Basic Where Am I",
     ["BRAILLE LINE:  'â?¢ In a paragraph'",
      "     VISIBLE:  'â?¢ In a paragraph', cursor=1",
-     "SPEECH OUTPUT: 'list item bullet In a paragraph item 2 of 4'"]))
+     "SPEECH OUTPUT: 'list item â?¢ In a paragraph item 2 of 4'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -60,7 +60,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Basic Where Am I",
     ["BRAILLE LINE:  'â?¢ In a section'",
      "     VISIBLE:  'â?¢ In a section', cursor=1",
-     "SPEECH OUTPUT: 'list item bullet In a section item 3 of 4'"]))
+     "SPEECH OUTPUT: 'list item â?¢ In a section item 3 of 4'"]))
 
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.StartRecordingAction())
@@ -100,7 +100,7 @@ sequence.append(utils.AssertPresentationAction(
     "6. Basic Where Am I",
     ["BRAILLE LINE:  'â?¢ In a paragraph that's in a section'",
      "     VISIBLE:  'â?¢ In a paragraph that's in a sec', cursor=1",
-     "SPEECH OUTPUT: 'list item bullet In a paragraph that's in a section item 4 of 4'"]))
+     "SPEECH OUTPUT: 'list item â?¢ In a paragraph that's in a section item 4 of 4'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/html_role_lists.py b/test/keystrokes/firefox/html_role_lists.py
index 26454ed..c3331ce 100644
--- a/test/keystrokes/firefox/html_role_lists.py
+++ b/test/keystrokes/firefox/html_role_lists.py
@@ -128,7 +128,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down", 
     ["BRAILLE LINE:  'â?¢ But discs belong to unordered lists'",
      "     VISIBLE:  'â?¢ But discs belong to unordered ', cursor=1",
-     "SPEECH OUTPUT: 'bullet But discs belong to unordered lists'"]))
+     "SPEECH OUTPUT: 'â?¢ But discs belong to unordered lists'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -144,7 +144,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up", 
     ["BRAILLE LINE:  'â?¢ But discs belong to unordered lists'",
      "     VISIBLE:  'â?¢ But discs belong to unordered ', cursor=1",
-     "SPEECH OUTPUT: 'bullet But discs belong to unordered lists'"]))
+     "SPEECH OUTPUT: 'â?¢ But discs belong to unordered lists'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/html_struct_nav_list_item.py b/test/keystrokes/firefox/html_struct_nav_list_item.py
index e524a09..a94a3b2 100644
--- a/test/keystrokes/firefox/html_struct_nav_list_item.py
+++ b/test/keystrokes/firefox/html_struct_nav_list_item.py
@@ -73,7 +73,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'â?¢ listing item'",
      "     VISIBLE:  'â?¢ listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
-     "SPEECH OUTPUT: 'bullet listing item'"]))
+     "SPEECH OUTPUT: 'â?¢ listing item'"]))
 
 ########################################################################
 # Press I to move among all of the items (sub items, sub sub items, 
@@ -85,7 +85,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ first sublevel'",
      "     VISIBLE:  'â?¢ first sublevel', cursor=1",
-     "SPEECH OUTPUT: 'bullet first sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ first sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -93,7 +93,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ look for the bullet on'",
      "     VISIBLE:  'â?¢ look for the bullet on', cursor=1",
-     "SPEECH OUTPUT: 'bullet look for the bullet on'"]))
+     "SPEECH OUTPUT: 'â?¢ look for the bullet on'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -101,7 +101,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ each sublevel'",
      "     VISIBLE:  'â?¢ each sublevel', cursor=1",
-     "SPEECH OUTPUT: 'bullet each sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ each sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -109,7 +109,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ they should all be different, except here.'",
      "     VISIBLE:  'â?¢ they should all be different, ', cursor=1",
-     "SPEECH OUTPUT: 'bullet they should all be different, except here.'"]))
+     "SPEECH OUTPUT: 'â?¢ they should all be different, except here.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -117,7 +117,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ second sublevel'",
      "     VISIBLE:  'â?¢ second sublevel', cursor=1",
-     "SPEECH OUTPUT: 'bullet second sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ second sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -125,7 +125,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ or you can specify a square'",
      "     VISIBLE:  'â?¢ or you can specify a square', cursor=1",
-     "SPEECH OUTPUT: 'bullet or you can specify a square'"]))
+     "SPEECH OUTPUT: 'â?¢ or you can specify a square'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -133,7 +133,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ if your TYPE is circle'",
      "     VISIBLE:  'â?¢ if your TYPE is circle', cursor=1",
-     "SPEECH OUTPUT: 'bullet if your TYPE is circle'"]))
+     "SPEECH OUTPUT: 'â?¢ if your TYPE is circle'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -141,7 +141,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ or even a disc'",
      "     VISIBLE:  'â?¢ or even a disc', cursor=1",
-     "SPEECH OUTPUT: 'bullet or even a disc'"]))
+     "SPEECH OUTPUT: 'â?¢ or even a disc'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -149,7 +149,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ Franz Liszt'",
      "     VISIBLE:  'â?¢ Franz Liszt', cursor=1",
-     "SPEECH OUTPUT: 'bullet Franz Liszt'"]))
+     "SPEECH OUTPUT: 'â?¢ Franz Liszt'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -157,7 +157,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ was a composer who was not square'",
      "     VISIBLE:  'â?¢ was a composer who was not squ', cursor=1",
-     "SPEECH OUTPUT: 'bullet was a composer who was not square'"]))
+     "SPEECH OUTPUT: 'â?¢ was a composer who was not square'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -165,7 +165,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ would have liked the Who'",
      "     VISIBLE:  'â?¢ would have liked the Who', cursor=1",
-     "SPEECH OUTPUT: 'bullet would have liked the Who'"]))
+     "SPEECH OUTPUT: 'â?¢ would have liked the Who'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -173,7 +173,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ feeling listless'",
      "     VISIBLE:  'â?¢ feeling listless', cursor=1",
-     "SPEECH OUTPUT: 'bullet feeling listless'"]))
+     "SPEECH OUTPUT: 'â?¢ feeling listless'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -181,7 +181,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ blah, blah, blah'",
      "     VISIBLE:  'â?¢ blah, blah, blah', cursor=1",
-     "SPEECH OUTPUT: 'bullet blah, blah, blah'"]))
+     "SPEECH OUTPUT: 'â?¢ blah, blah, blah'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -189,7 +189,7 @@ sequence.append(utils.AssertPresentationAction(
     "i in third list", 
     ["BRAILLE LINE:  'â?¢ whine, whine, whine'",
      "     VISIBLE:  'â?¢ whine, whine, whine', cursor=1",
-     "SPEECH OUTPUT: 'bullet whine, whine, whine'"]))
+     "SPEECH OUTPUT: 'â?¢ whine, whine, whine'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("i"))
@@ -226,7 +226,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'â?¢ whine, whine, whine'",
      "     VISIBLE:  'â?¢ whine, whine, whine', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
-     "SPEECH OUTPUT: 'bullet whine, whine, whine'"]))
+     "SPEECH OUTPUT: 'â?¢ whine, whine, whine'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>i"))
@@ -234,7 +234,7 @@ sequence.append(utils.AssertPresentationAction(
     "shift + i in third list", 
     ["BRAILLE LINE:  'â?¢ blah, blah, blah'",
      "     VISIBLE:  'â?¢ blah, blah, blah', cursor=1",
-     "SPEECH OUTPUT: 'bullet blah, blah, blah'"]))
+     "SPEECH OUTPUT: 'â?¢ blah, blah, blah'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>i"))
@@ -242,7 +242,7 @@ sequence.append(utils.AssertPresentationAction(
     "shift + i in third list", 
     ["BRAILLE LINE:  'â?¢ feeling listless'",
      "     VISIBLE:  'â?¢ feeling listless', cursor=1",
-     "SPEECH OUTPUT: 'bullet feeling listless'"]))
+     "SPEECH OUTPUT: 'â?¢ feeling listless'"]))
 
 ########################################################################
 # Move to the location bar by pressing Control+L.  When it has focus
diff --git a/test/keystrokes/firefox/html_struct_nav_lists.py b/test/keystrokes/firefox/html_struct_nav_lists.py
index b686b58..ededa10 100644
--- a/test/keystrokes/firefox/html_struct_nav_lists.py
+++ b/test/keystrokes/firefox/html_struct_nav_lists.py
@@ -73,7 +73,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'â?¢ listing item'",
      "     VISIBLE:  'â?¢ listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
-     "SPEECH OUTPUT: 'bullet listing item'"]))
+     "SPEECH OUTPUT: 'â?¢ listing item'"]))
 
 ########################################################################
 # Press L to move to the first sub-list of the third list.
@@ -86,7 +86,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ first sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 1'",
-     "SPEECH OUTPUT: 'bullet first sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ first sublevel'"]))
 
 ########################################################################
 # Press L to move to the first list *within* the first sub-list of
@@ -100,7 +100,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ look for the bullet on', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 2'",
-     "SPEECH OUTPUT: 'bullet look for the bullet on'"]))
+     "SPEECH OUTPUT: 'â?¢ look for the bullet on'"]))
 
 ########################################################################
 # Press L again.  To move to the first sub-sub-list of the third list.
@@ -114,7 +114,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ each sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 3'",
-     "SPEECH OUTPUT: 'bullet each sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ each sublevel'"]))
 
 ########################################################################
 # Press L again.  Now we're working our way out, but still stopping
@@ -128,7 +128,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ if your TYPE is circle', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 2'",
-     "SPEECH OUTPUT: 'bullet if your TYPE is circle'"]))
+     "SPEECH OUTPUT: 'â?¢ if your TYPE is circle'"]))
 
 ########################################################################
 # Press L again.  Almost done.
@@ -141,7 +141,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ was a composer who was not squ', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 1'",
-     "SPEECH OUTPUT: 'bullet was a composer who was not square'"]))
+     "SPEECH OUTPUT: 'â?¢ was a composer who was not square'"]))
 
 ########################################################################
 # Press L again.  That should be all of the lists.
@@ -153,7 +153,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'â?¢ feeling listless'",
      "     VISIBLE:  'â?¢ feeling listless', cursor=1",
      "SPEECH OUTPUT: 'List with 3 items'",
-     "SPEECH OUTPUT: 'bullet feeling listless'"]))
+     "SPEECH OUTPUT: 'â?¢ feeling listless'"]))
 
 ########################################################################
 # Pressing L again should result in our wrapping to the top.
@@ -180,7 +180,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ feeling listless', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.'",
      "SPEECH OUTPUT: 'List with 3 items'",
-     "SPEECH OUTPUT: 'bullet feeling listless'"]))
+     "SPEECH OUTPUT: 'â?¢ feeling listless'"]))
 
 ########################################################################
 # Pressing Shift+L subsequently should place us on all of the lists
@@ -194,17 +194,17 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ was a composer who was not squ', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 1'",
-     "SPEECH OUTPUT: 'bullet was a composer who was not square'"]))
+     "SPEECH OUTPUT: 'â?¢ was a composer who was not square'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
 sequence.append(utils.AssertPresentationAction(
     "shift + l", 
-     ["BRAILLE LINE:  'â?¢ if your TYPE is circle'",
+    ["BRAILLE LINE:  'â?¢ if your TYPE is circle'",
      "     VISIBLE:  'â?¢ if your TYPE is circle', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 2'",
-     "SPEECH OUTPUT: 'bullet if your TYPE is circle'"]))
+     "SPEECH OUTPUT: 'â?¢ if your TYPE is circle'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -214,7 +214,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ each sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 3'",
-     "SPEECH OUTPUT: 'bullet each sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ each sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -224,7 +224,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ look for the bullet on', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 2'",
-     "SPEECH OUTPUT: 'bullet look for the bullet on'"]))
+     "SPEECH OUTPUT: 'â?¢ look for the bullet on'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -234,7 +234,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'â?¢ first sublevel', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
      "SPEECH OUTPUT: 'Nesting level 1'",
-     "SPEECH OUTPUT: 'bullet first sublevel'"]))
+     "SPEECH OUTPUT: 'â?¢ first sublevel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
@@ -243,7 +243,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'â?¢ listing item'",
      "     VISIBLE:  'â?¢ listing item', cursor=1",
      "SPEECH OUTPUT: 'List with 2 items'",
-     "SPEECH OUTPUT: 'bullet listing item'"]))
+     "SPEECH OUTPUT: 'â?¢ listing item'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>l"))
diff --git a/test/keystrokes/firefox/line_nav_bug_547573.py b/test/keystrokes/firefox/line_nav_bug_547573.py
index d6e135c..2e96531 100644
--- a/test/keystrokes/firefox/line_nav_bug_547573.py
+++ b/test/keystrokes/firefox/line_nav_bug_547573.py
@@ -56,7 +56,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  '» search tips  Search $l Submit Search Button Home Page Image'",
      "     VISIBLE:  '» search tips  Search $l Submit ', cursor=1",
-     "SPEECH OUTPUT: 'right double angle bracket  search tips link   text Search Submit Search button Home Page link image'"]))
+     "SPEECH OUTPUT: '»  search tips link   text Search Submit Search button Home Page link image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -223,7 +223,7 @@ sequence.append(utils.AssertPresentationAction(
     "22. Line Down",
     ["BRAILLE LINE:  'â?¢ Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  'â?¢ Java Plugin Browser Registrati', cursor=1",
-     "SPEECH OUTPUT: 'bullet Java Plugin Browser Registration Instructions link'"]))
+     "SPEECH OUTPUT: 'â?¢ Java Plugin Browser Registration Instructions link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -231,7 +231,7 @@ sequence.append(utils.AssertPresentationAction(
     "23. Line Down",
     ["BRAILLE LINE:  'â?¢ Java Web Start Installation Notes'",
      "     VISIBLE:  'â?¢ Java Web Start Installation No', cursor=1",
-     "SPEECH OUTPUT: 'bullet Java Web Start Installation Notes link'"]))
+     "SPEECH OUTPUT: 'â?¢ Java Web Start Installation Notes link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -247,7 +247,7 @@ sequence.append(utils.AssertPresentationAction(
     "25. Line Down",
     ["BRAILLE LINE:  'â?¢ 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: 'bullet 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'"]))
+     "SPEECH OUTPUT: 'â?¢ 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -271,7 +271,7 @@ sequence.append(utils.AssertPresentationAction(
     "28. Line Down",
     ["BRAILLE LINE:  'â?¢ RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'",
      "     VISIBLE:  'â?¢ RPM Packages - A rpm.bin file ', cursor=1",
-     "SPEECH OUTPUT: 'bullet RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'"]))
+     "SPEECH OUTPUT: 'â?¢ RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -466,10 +466,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "52. Line Down",
-    ["BUG? - We're speaking the quotes here",
-     "BRAILLE LINE:  'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with \"./\" \(necessary if \".\" is not in the PATH'",
+    ["BRAILLE LINE:  'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with \"./\" \(necessary if \".\" is not in the PATH'",
      "     VISIBLE:  'Execute the downloaded file, pre', cursor=1",
-     "SPEECH OUTPUT: 'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with quote./quote \(necessary if quote.quote is not in the PATH'"]))
+     "SPEECH OUTPUT: 'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with \"./\" \(necessary if \".\" is not in the PATH'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -701,10 +700,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "81. Line Down",
-    ["BUG? - We're speaking the quotes here.",
-     "BRAILLE LINE:  'Note that the initial \"./\" is required if you do not have \".\" in your PATH environment variable.'",
+    ["BRAILLE LINE:  'Note that the initial \"./\" is required if you do not have \".\" in your PATH environment variable.'",
      "     VISIBLE:  'Note that the initial \"./\" is re', cursor=1",
-     "SPEECH OUTPUT: 'Note that the initial quote./quote is required if you do not have quote.quote in your PATH environment variable.'"]))
+     "SPEECH OUTPUT: 'Note that the initial \"./\" is required if you do not have \".\" in your PATH environment variable.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -762,7 +760,7 @@ sequence.append(utils.AssertPresentationAction(
     "88. Line Down",
     ["BRAILLE LINE:  '� The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'",
      "     VISIBLE:  'â?¢ The /usr/java/latest link will', cursor=1",
-     "SPEECH OUTPUT: 'bullet The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'"]))
+     "SPEECH OUTPUT: '� The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -778,7 +776,7 @@ sequence.append(utils.AssertPresentationAction(
     "90. Line Down",
     ["BRAILLE LINE:  '� By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'",
      "     VISIBLE:  'â?¢ By default, /usr/java/default ', cursor=1",
-     "SPEECH OUTPUT: 'bullet By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'"]))
+     "SPEECH OUTPUT: '� By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -935,7 +933,7 @@ sequence.append(utils.AssertPresentationAction(
     "9. Line Up",
     ["BRAILLE LINE:  '� By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'",
      "     VISIBLE:  'â?¢ By default, /usr/java/default ', cursor=1",
-     "SPEECH OUTPUT: 'bullet By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'"]))
+     "SPEECH OUTPUT: '� By default, /usr/java/default points to /usr/java/latest. However, if administrators change /usr/java/default to  point to another version of Java, subsequent package upgrades'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -951,7 +949,7 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
     ["BRAILLE LINE:  '� The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'",
      "     VISIBLE:  'â?¢ The /usr/java/latest link will', cursor=1",
-     "SPEECH OUTPUT: 'bullet The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'"]))
+     "SPEECH OUTPUT: '� The /usr/java/latest link will always point to the version of Java that Sun Microsystems considers the latest version.  Subsequent upgrades of the packages will overwrite this'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1010,7 +1008,7 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Up",
     ["BRAILLE LINE:  'Note that the initial \"./\" is required if you do not have \".\" in your PATH environment variable.'",
      "     VISIBLE:  'Note that the initial \"./\" is re', cursor=1",
-     "SPEECH OUTPUT: 'Note that the initial quote./quote is required if you do not have quote.quote in your PATH environment variable.'"]))
+     "SPEECH OUTPUT: 'Note that the initial \"./\" is required if you do not have \".\" in your PATH environment variable.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1244,7 +1242,7 @@ sequence.append(utils.AssertPresentationAction(
     "43. Line Up",
     ["BRAILLE LINE:  'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with \"./\" \(necessary if \".\" is not in the PATH'",
      "     VISIBLE:  'Execute the downloaded file, pre', cursor=1",
-     "SPEECH OUTPUT: 'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with quote./quote \(necessary if quote.quote is not in the PATH'"]))
+     "SPEECH OUTPUT: 'Execute the downloaded file, prepended by the path to it. For example, if the file is in the current directory, prepend it with \"./\" \(necessary if \".\" is not in the PATH'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1438,7 +1436,7 @@ sequence.append(utils.AssertPresentationAction(
     "67. Line Up",
     ["BRAILLE LINE:  'â?¢ RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'",
      "     VISIBLE:  'â?¢ RPM Packages - A rpm.bin file ', cursor=1",
-     "SPEECH OUTPUT: 'bullet RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'"]))
+     "SPEECH OUTPUT: 'â?¢ RPM Packages - A rpm.bin file containing RPM packages, installed with the rpm utility. Requires root access to install. RPM packages are the recommended method for'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1462,7 +1460,7 @@ sequence.append(utils.AssertPresentationAction(
     "70a. Line Up",
     ["BRAILLE LINE:  'â?¢ 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: 'bullet 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'"]))
+     "SPEECH OUTPUT: 'â?¢ 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1478,7 +1476,7 @@ sequence.append(utils.AssertPresentationAction(
     "71. Line Up",
     ["BRAILLE LINE:  'â?¢ Java Web Start Installation Notes'",
      "     VISIBLE:  'â?¢ Java Web Start Installation No', cursor=1",
-     "SPEECH OUTPUT: 'bullet Java Web Start Installation Notes link'"]))
+     "SPEECH OUTPUT: 'â?¢ Java Web Start Installation Notes link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1486,7 +1484,7 @@ sequence.append(utils.AssertPresentationAction(
     "72. Line Up",
     ["BRAILLE LINE:  'â?¢ Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  'â?¢ Java Plugin Browser Registrati', cursor=1",
-     "SPEECH OUTPUT: 'bullet Java Plugin Browser Registration Instructions link'"]))
+     "SPEECH OUTPUT: 'â?¢ Java Plugin Browser Registration Instructions link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1652,7 +1650,7 @@ sequence.append(utils.AssertPresentationAction(
     "93. Line Up",
     ["BRAILLE LINE:  '» search tips  Search $l Submit Search Button Home Page Image'",
      "     VISIBLE:  '» search tips  Search $l Submit ', cursor=1",
-     "SPEECH OUTPUT: 'right double angle bracket  search tips link   text Search Submit Search button Home Page link image'"]))
+     "SPEECH OUTPUT: '»  search tips link   text Search Submit Search button Home Page link image'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_549128.py b/test/keystrokes/firefox/line_nav_bug_549128.py
index b02ec43..1823eca 100644
--- a/test/keystrokes/firefox/line_nav_bug_549128.py
+++ b/test/keystrokes/firefox/line_nav_bug_549128.py
@@ -72,55 +72,54 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
-    ["BUG? - We're speaking the right paren throughout this test.",
-     "BRAILLE LINE:  '  2 (5 oz.) Filet Mignons'",
-     "     VISIBLE:  '  2 (5 oz.) Filet Mignons', cursor=1",
-     "SPEECH OUTPUT: '  2 (5 oz.right paren Filet Mignons",
+    ["BRAILLE LINE:  '  2 \(5 oz.\) Filet Mignons'",
+     "     VISIBLE:  '  2 \(5 oz.\) Filet Mignons', cursor=1",
+     "SPEECH OUTPUT: '  2 \(5 oz.\) Filet Mignons",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
-    ["BRAILLE LINE:  '  2 (5 oz.) Top Sirloins'",
-     "     VISIBLE:  '  2 (5 oz.) Top Sirloins', cursor=2",
-     "SPEECH OUTPUT: '  2 (5 oz.right paren Top Sirloins",
+    ["BRAILLE LINE:  '  2 \(5 oz.\) Top Sirloins'",
+     "     VISIBLE:  '  2 \(5 oz.\) Top Sirloins', cursor=2",
+     "SPEECH OUTPUT: '  2 \(5 oz.\) Top Sirloins",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
-    ["BRAILLE LINE:  '  4 (4 oz.) Foobar Steaks Burgers'",
-     "     VISIBLE:  '  4 (4 oz.) Foobar Steaks Burger', cursor=2",
-     "SPEECH OUTPUT: '  4 (4 oz.right paren Foobar Steaks Burgers",
+    ["BRAILLE LINE:  '  4 \(4 oz.\) Foobar Steaks Burgers'",
+     "     VISIBLE:  '  4 \(4 oz.\) Foobar Steaks Burger', cursor=2",
+     "SPEECH OUTPUT: '  4 \(4 oz.\) Foobar Steaks Burgers",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
-    ["BRAILLE LINE:  '  6 (5.75 oz.) Stuffed Baked Potatoes'",
-     "     VISIBLE:  '  6 (5.75 oz.) Stuffed Baked Pot', cursor=2",
-     "SPEECH OUTPUT: '  6 (5.75 oz.right paren Stuffed Baked Potatoes",
+    ["BRAILLE LINE:  '  6 \(5.75 oz.\) Stuffed Baked Potatoes'",
+     "     VISIBLE:  '  6 \(5.75 oz.\) Stuffed Baked Pot', cursor=2",
+     "SPEECH OUTPUT: '  6 \(5.75 oz.\) Stuffed Baked Potatoes",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
-    ["BRAILLE LINE:  '  2 (4.5 oz.) Stuffed Sole with Scallops and Crab'",
-     "     VISIBLE:  '  2 (4.5 oz.) Stuffed Sole with ', cursor=2",
-     "SPEECH OUTPUT: '  2 (4.5 oz.right paren Stuffed Sole with Scallops and Crab",
+    ["BRAILLE LINE:  '  2 \(4.5 oz.\) Stuffed Sole with Scallops and Crab'",
+     "     VISIBLE:  '  2 \(4.5 oz.\) Stuffed Sole with ', cursor=2",
+     "SPEECH OUTPUT: '  2 \(4.5 oz.\) Stuffed Sole with Scallops and Crab",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
-    ["BRAILLE LINE:  '  1 (6 in.) Chocolate Lover's Cake'",
-     "     VISIBLE:  '  1 (6 in.) Chocolate Lover's Ca', cursor=2",
-     "SPEECH OUTPUT: '  1 (6 in.right paren Chocolate Lover's Cake",
+    ["BRAILLE LINE:  '  1 \(6 in.\) Chocolate Lover's Cake'",
+     "     VISIBLE:  '  1 \(6 in.\) Chocolate Lover's Ca', cursor=2",
+     "SPEECH OUTPUT: '  1 \(6 in.\) Chocolate Lover's Cake",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -162,54 +161,54 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Up",
-    ["BRAILLE LINE:  '  1 (6 in.) Chocolate Lover's Cake'",
-     "     VISIBLE:  '  1 (6 in.) Chocolate Lover's Ca', cursor=1",
-     "SPEECH OUTPUT: '  1 (6 in.right paren Chocolate Lover's Cake",
+    ["BRAILLE LINE:  '  1 \(6 in.\) Chocolate Lover's Cake'",
+     "     VISIBLE:  '  1 \(6 in.\) Chocolate Lover's Ca', cursor=1",
+     "SPEECH OUTPUT: '  1 \(6 in.\) Chocolate Lover's Cake",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Up",
-    ["BRAILLE LINE:  '  2 (4.5 oz.) Stuffed Sole with Scallops and Crab'",
-     "     VISIBLE:  '  2 (4.5 oz.) Stuffed Sole with ', cursor=1",
-     "SPEECH OUTPUT: '  2 (4.5 oz.right paren Stuffed Sole with Scallops and Crab",
+    ["BRAILLE LINE:  '  2 \(4.5 oz.\) Stuffed Sole with Scallops and Crab'",
+     "     VISIBLE:  '  2 \(4.5 oz.\) Stuffed Sole with ', cursor=1",
+     "SPEECH OUTPUT: '  2 \(4.5 oz.\) Stuffed Sole with Scallops and Crab",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Line Up",
-    ["BRAILLE LINE:  '  6 (5.75 oz.) Stuffed Baked Potatoes'",
-     "     VISIBLE:  '  6 (5.75 oz.) Stuffed Baked Pot', cursor=1",
-     "SPEECH OUTPUT: '  6 (5.75 oz.right paren Stuffed Baked Potatoes",
+    ["BRAILLE LINE:  '  6 \(5.75 oz.\) Stuffed Baked Potatoes'",
+     "     VISIBLE:  '  6 \(5.75 oz.\) Stuffed Baked Pot', cursor=1",
+     "SPEECH OUTPUT: '  6 \(5.75 oz.\) Stuffed Baked Potatoes",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Up",
-    ["BRAILLE LINE:  '  4 (4 oz.) Foobar Steaks Burgers'",
-     "     VISIBLE:  '  4 (4 oz.) Foobar Steaks Burger', cursor=1",
-     "SPEECH OUTPUT: '  4 (4 oz.right paren Foobar Steaks Burgers",
+    ["BRAILLE LINE:  '  4 \(4 oz.\) Foobar Steaks Burgers'",
+     "     VISIBLE:  '  4 \(4 oz.\) Foobar Steaks Burger', cursor=1",
+     "SPEECH OUTPUT: '  4 \(4 oz.\) Foobar Steaks Burgers",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Up",
-    ["BRAILLE LINE:  '  2 (5 oz.) Top Sirloins'",
-     "     VISIBLE:  '  2 (5 oz.) Top Sirloins', cursor=1",
-     "SPEECH OUTPUT: '  2 (5 oz.right paren Top Sirloins",
+    ["BRAILLE LINE:  '  2 \(5 oz.\) Top Sirloins'",
+     "     VISIBLE:  '  2 \(5 oz.\) Top Sirloins', cursor=1",
+     "SPEECH OUTPUT: '  2 \(5 oz.\) Top Sirloins",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Up",
-    ["BRAILLE LINE:  '  2 (5 oz.) Filet Mignons'",
-     "     VISIBLE:  '  2 (5 oz.) Filet Mignons', cursor=1",
-     "SPEECH OUTPUT: '  2 (5 oz.right paren Filet Mignons",
+    ["BRAILLE LINE:  '  2 \(5 oz.\) Filet Mignons'",
+     "     VISIBLE:  '  2 \(5 oz.\) Filet Mignons', cursor=1",
+     "SPEECH OUTPUT: '  2 \(5 oz.\) Filet Mignons",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_570757.py b/test/keystrokes/firefox/line_nav_bug_570757.py
index fd2a91a..183fe3d 100644
--- a/test/keystrokes/firefox/line_nav_bug_570757.py
+++ b/test/keystrokes/firefox/line_nav_bug_570757.py
@@ -65,7 +65,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'â?¢ Do this thing'",
      "     VISIBLE:  'â?¢ Do this thing', cursor=1",
-     "SPEECH OUTPUT: 'bullet Do this thing'"]))
+     "SPEECH OUTPUT: 'â?¢ Do this thing'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -73,7 +73,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'â?¢ Do this other thing'",
      "     VISIBLE:  'â?¢ Do this other thing', cursor=1",
-     "SPEECH OUTPUT: 'bullet Do this other thing'"]))
+     "SPEECH OUTPUT: 'â?¢ Do this other thing'"]))
 
 ########################################################################
 # Up Arrow.
@@ -84,7 +84,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Line Up",
     ["BRAILLE LINE:  'â?¢ Do this thing'",
      "     VISIBLE:  'â?¢ Do this thing', cursor=1",
-     "SPEECH OUTPUT: 'bullet Do this thing'"]))
+     "SPEECH OUTPUT: 'â?¢ Do this thing'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_577239.py b/test/keystrokes/firefox/line_nav_bug_577239.py
index bd9130d..79fa2e4 100644
--- a/test/keystrokes/firefox/line_nav_bug_577239.py
+++ b/test/keystrokes/firefox/line_nav_bug_577239.py
@@ -88,7 +88,7 @@ sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
     ["BRAILLE LINE:  'â?¢ This is a short list item.'",
      "     VISIBLE:  'â?¢ This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a short list item.'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -96,7 +96,7 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  'â?¢ This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'",
      "     VISIBLE:  'â?¢ This is a list item that spans', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -115,7 +115,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Line Up",
     ["BRAILLE LINE:  'â?¢ This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'",
      "     VISIBLE:  'â?¢ This is a list item that spans', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a list item that spans multiple lines. If Orca can successfully read to the end of this list item, it will have read several lines of text within this'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -123,7 +123,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Up",
     ["BRAILLE LINE:  'â?¢ This is a short list item.'",
      "     VISIBLE:  'â?¢ This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a short list item.'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bugzilla_search.py b/test/keystrokes/firefox/line_nav_bugzilla_search.py
index 8978548..d41ec57 100644
--- a/test/keystrokes/firefox/line_nav_bugzilla_search.py
+++ b/test/keystrokes/firefox/line_nav_bugzilla_search.py
@@ -52,7 +52,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
      "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  middle dot Browse link  middle dot Search link  middle dot Reports link  middle dot Account link  middle dot Admin link  middle dot Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
+     "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -66,9 +66,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["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.right paren'"]))
+    ["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"))
@@ -428,9 +428,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '(comma-separated list)'",
-     "     VISIBLE:  '(comma-separated list)', cursor=1",
-     "SPEECH OUTPUT: '(comma-separated list)'"]))
+    ["BRAILLE LINE:  '\(comma-separated list\)'",
+     "     VISIBLE:  '\(comma-separated list\)', cursor=1",
+     "SPEECH OUTPUT: '\(comma-separated list\)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -461,9 +461,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '(YYYY-MM-DD or relative dates)'",
-     "     VISIBLE:  '(YYYY-MM-DD or relative dates)', cursor=1",
-     "SPEECH OUTPUT: '(YYYY-MM-DD or relative dates)'"]))
+    ["BRAILLE LINE:  '\(YYYY-MM-DD or relative dates\)'",
+     "     VISIBLE:  '\(YYYY-MM-DD or relative dates\)', cursor=1",
+     "SPEECH OUTPUT: '\(YYYY-MM-DD or relative dates\)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -573,7 +573,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  '< > CheckBox Not (negate this whole chart)'",
+    ["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'"]))
 
@@ -640,9 +640,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '< > CheckBox Not (negate this whole chart)'",
+    ["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'"]))
+     "SPEECH OUTPUT: 'Not \(negate this whole chart\) check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -752,9 +752,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '(YYYY-MM-DD or relative dates)'",
-     "     VISIBLE:  '(YYYY-MM-DD or relative dates)', cursor=1",
-     "SPEECH OUTPUT: '(YYYY-MM-DD or relative dates)'"]))
+    ["BRAILLE LINE:  '\(YYYY-MM-DD or relative dates\)'",
+     "     VISIBLE:  '\(YYYY-MM-DD or relative dates\)', cursor=1",
+     "SPEECH OUTPUT: '\(YYYY-MM-DD or relative dates\)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -785,9 +785,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  '(comma-separated list)'",
-     "     VISIBLE:  '(comma-separated list)', cursor=1",
-     "SPEECH OUTPUT: '(comma-separated list)'"]))
+    ["BRAILLE LINE:  '\(comma-separated list\)'",
+     "     VISIBLE:  '\(comma-separated list\)', cursor=1",
+     "SPEECH OUTPUT: '\(comma-separated list\)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1147,9 +1147,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["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.right paren'"]))
+    ["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"))
@@ -1165,7 +1165,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
      "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  middle dot Browse link  middle dot Search link  middle dot Reports link  middle dot Account link  middle dot Admin link  middle dot Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
+     "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"))
diff --git a/test/keystrokes/firefox/line_nav_enter_bug.py b/test/keystrokes/firefox/line_nav_enter_bug.py
index 88f405b..59e2eaa 100644
--- a/test/keystrokes/firefox/line_nav_enter_bug.py
+++ b/test/keystrokes/firefox/line_nav_enter_bug.py
@@ -49,7 +49,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
      "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  middle dot Browse link  middle dot Search link  middle dot Reports link  middle dot Account link  middle dot Admin link  middle dot Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
+     "SPEECH OUTPUT: 'New bug link  · Browse link  · Search link  · Reports link  · Account link  · Admin link  · Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -57,7 +57,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'Enter Bug: orca â?? This page lets you enter a new bug into Bugzilla. h1'",
      "     VISIBLE:  'Enter Bug: orca â?? This page lets', cursor=1",
-     "SPEECH OUTPUT: 'Enter Bug: orca en dash This page lets you enter a new bug into Bugzilla. heading level 1'"]))
+     "SPEECH OUTPUT: 'Enter Bug: orca â?? This page lets you enter a new bug into Bugzilla. heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -478,7 +478,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'Enter Bug: orca â?? This page lets you enter a new bug into Bugzilla. h1'",
      "     VISIBLE:  'Enter Bug: orca â?? This page lets', cursor=1",
-     "SPEECH OUTPUT: 'Enter Bug: orca en dash This page lets you enter a new bug into Bugzilla. heading level 1'"]))
+     "SPEECH OUTPUT: 'Enter Bug: orca â?? This page lets you enter a new bug into Bugzilla. heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -486,7 +486,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'New bug · Browse · Search · Reports · Account · Admin · Help Logged In joanmarie diggs gmail com | Log Out'",
      "     VISIBLE:  'New bug · Browse · Search · Repo', cursor=1",
-     "SPEECH OUTPUT: 'New bug link  middle dot Browse link  middle dot Search link  middle dot Reports link  middle dot Account link  middle dot Admin link  middle dot Help link Logged In joanmarie diggs gmail com | Log Out link'"]))
+     "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"))
diff --git a/test/keystrokes/firefox/line_nav_multi_line_text.py b/test/keystrokes/firefox/line_nav_multi_line_text.py
index 29d3854..f8049a6 100644
--- a/test/keystrokes/firefox/line_nav_multi_line_text.py
+++ b/test/keystrokes/firefox/line_nav_multi_line_text.py
@@ -99,7 +99,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ This is a test that is not very interesting.'",
      "     VISIBLE:  'â?¢ This is a test that is not ver', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a test link  that is not very interesting.'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a test link  that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -107,7 +107,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ But it looks like a real-world example.'",
      "     VISIBLE:  'â?¢ But it looks like a real-world', cursor=1",
-     "SPEECH OUTPUT: 'bullet But it looks like link  a real-world example.'"]))
+     "SPEECH OUTPUT: 'â?¢ But it looks like link  a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -115,7 +115,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ And that's why this silly test is here.'",
      "     VISIBLE:  'â?¢ And that's why this silly test', cursor=1",
-     "SPEECH OUTPUT: 'bullet And that's link  why this silly test is here.'"]))
+     "SPEECH OUTPUT: 'â?¢ And that's link  why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -139,7 +139,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ The thing is we can't copy content.'",
      "     VISIBLE:  'â?¢ The thing is we can't copy con', cursor=1",
-     "SPEECH OUTPUT: 'bullet The thing is link  we can't copy content.'"]))
+     "SPEECH OUTPUT: 'â?¢ The thing is link  we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -147,7 +147,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ So we must create silly tests.'",
      "     VISIBLE:  'â?¢ So we must create silly tests.', cursor=1",
-     "SPEECH OUTPUT: 'bullet So we must link  create silly tests.'"]))
+     "SPEECH OUTPUT: 'â?¢ So we must link  create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -155,7 +155,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down",
     ["BRAILLE LINE:  'â?¢ Oh well.'",
      "     VISIBLE:  'â?¢ Oh well.', cursor=1",
-     "SPEECH OUTPUT: 'bullet Oh link  well.'"]))
+     "SPEECH OUTPUT: 'â?¢ Oh link  well.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -174,7 +174,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ Oh well.'",
      "     VISIBLE:  'â?¢ Oh well.', cursor=1",
-     "SPEECH OUTPUT: 'bullet Oh link  well.'"]))
+     "SPEECH OUTPUT: 'â?¢ Oh link  well.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -182,7 +182,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ So we must create silly tests.'",
      "     VISIBLE:  'â?¢ So we must create silly tests.', cursor=1",
-     "SPEECH OUTPUT: 'bullet So we must link  create silly tests.'"]))
+     "SPEECH OUTPUT: 'â?¢ So we must link  create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -190,7 +190,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ The thing is we can't copy content.'",
      "     VISIBLE:  'â?¢ The thing is we can't copy con', cursor=1",
-     "SPEECH OUTPUT: 'bullet The thing is link  we can't copy content.'"]))
+     "SPEECH OUTPUT: 'â?¢ The thing is link  we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -214,7 +214,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ And that's why this silly test is here.'",
      "     VISIBLE:  'â?¢ And that's why this silly test', cursor=1",
-     "SPEECH OUTPUT: 'bullet And that's link  why this silly test is here.'"]))
+     "SPEECH OUTPUT: 'â?¢ And that's link  why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -222,7 +222,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ But it looks like a real-world example.'",
      "     VISIBLE:  'â?¢ But it looks like a real-world', cursor=1",
-     "SPEECH OUTPUT: 'bullet But it looks like link  a real-world example.'"]))
+     "SPEECH OUTPUT: 'â?¢ But it looks like link  a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -230,7 +230,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up",
     ["BRAILLE LINE:  'â?¢ This is a test that is not very interesting.'",
      "     VISIBLE:  'â?¢ This is a test that is not ver', cursor=1",
-     "SPEECH OUTPUT: 'bullet This is a test link  that is not very interesting.'"]))
+     "SPEECH OUTPUT: 'â?¢ This is a test link  that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_wiki.py b/test/keystrokes/firefox/line_nav_wiki.py
index 383e026..975a0ff 100644
--- a/test/keystrokes/firefox/line_nav_wiki.py
+++ b/test/keystrokes/firefox/line_nav_wiki.py
@@ -42,8 +42,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "Top of file", 
-    ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
-     "     VISIBLE:  'Home News Projects Art Support D', 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'"]))
 
 ########################################################################
@@ -53,34 +53,33 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button Text Button'",
-     "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
+    ["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 Search: text Search Titles button grayed Text button grayed'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Home RecentChanges FindPage HelpContents Orca'",
-     "     VISIBLE:  'Home RecentChanges FindPage Help', 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'",
-     "     VISIBLE:  'en Español', 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", 
-    ["BUG? - We are speaking/verbalizing the parens",
-     "BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing List (Archives) |'",
+    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing List \(Archives\) |'",
      "     VISIBLE:  'Home | Download/Installation | C', cursor=1",
-     "SPEECH OUTPUT: 'Home link  | Download/Installation link  | Configuration/Use link  | Accessible Applications link  | Mailing List link  left paren Archives link right paren |'"]))
+     "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"))
@@ -94,7 +93,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Welcome to Orca! h1'",
+    ["BRAILLE LINE:  'Welcome to Orca! h1'",
      "     VISIBLE:  'Welcome to Orca! h1', cursor=1",
      "SPEECH OUTPUT: 'Welcome to Orca! heading level 1'"]))
 
@@ -102,96 +101,96 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Orca Logo Image'",
-     "     VISIBLE:  'Orca Logo 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'",
-     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
+    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
+     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
      "SPEECH OUTPUT: 'HOT HOT HOT: Notes on access to Firefox 3.0 link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Contents'",
-     "     VISIBLE:  'Contents', cursor=1",
+    ["BRAILLE LINE:  'Contents'",
+     "     VISIBLE:  'Contents', cursor=1",
      "SPEECH OUTPUT: 'Contents'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  '1. Welcome to Orca!'",
-     "     VISIBLE:  '1. Welcome to Orca!', 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'",
-     "     VISIBLE:  '2. About', 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'",
-     "     VISIBLE:  '3. Audio Guides', 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'",
-     "     VISIBLE:  '4. Download/Installation', 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'",
-     "     VISIBLE:  '5. Configuration/Use', 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'",
-     "     VISIBLE:  '6. Accessible Applications', 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?'",
-     "     VISIBLE:  '7. How Can I Help?', 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'",
-     "     VISIBLE:  '8. More Information', 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("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'About h1'",
-     "     VISIBLE:  'About h1', cursor=1",
+    ["BRAILLE LINE:  'About h1'",
+     "     VISIBLE:  'About h1', cursor=1",
      "SPEECH OUTPUT: 'About heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -280,15 +279,15 @@ sequence.append(utils.AssertPresentationAction(
     "Line Down", 
     ["BRAILLE LINE:  '" + bugzillaStringBraille + "( |)" + "how we use Bugzilla\).'",
      "     VISIBLE:  '" + bugzillaStringVisible + "', cursor=1",
-     "SPEECH OUTPUT: '" + bugzillaStringSpeech + "( |)" + "how we use Bugzilla link right paren.'"]))
+     "SPEECH OUTPUT: '" + bugzillaStringSpeech + "( |)" + "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 (archives): 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  left paren archives link right paren: it's a helpful, kind, and productive'"]))
+     "SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  \( archives link \): it's a helpful, kind, and productive'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -302,26 +301,25 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Audio Guides h1'",
-     "     VISIBLE:  'Audio Guides h1', cursor=1",
+    ["BRAILLE LINE:  'Audio Guides h1'",
+     "     VISIBLE:  'Audio Guides h1', cursor=1",
      "SPEECH OUTPUT: 'Audio Guides heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BUG? - Should we be doing this?",
-     "BRAILLE LINE:  'Darragh � Héiligh has created several audio guides for Orca. This is a fantastic contribution'",
+    ["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 O ACUTE Héiligh link  has created several audio guides for Orca. This is a fantastic contribution'"]))
+     "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 and'",
-     "     VISIBLE:  '(THANKS!)!!! The audio guides ca', cursor=1",
-     "SPEECH OUTPUT: '\(THANKS!right paren!!! 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -335,32 +333,32 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'â?¢ Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
-     "     VISIBLE:  'â?¢ Walk through of the installati', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 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'",
-     "     VISIBLE:  'â?¢ Review of Fedora 7 and the Orc', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'â?¢ Guide to installing the latest versions of Firefox and Orca'",
-     "     VISIBLE:  'â?¢ Guide to installing the latest', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Download/Installation h1'",
-     "     VISIBLE:  'Download/Installation h1', cursor=1",
+    ["BRAILLE LINE:  'Download/Installation h1'",
+     "     VISIBLE:  'Download/Installation h1', cursor=1",
      "SPEECH OUTPUT: 'Download/Installation heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -399,8 +397,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down", 
-    ["BRAILLE LINE:  'Configuration/Use h1'",
-     "     VISIBLE:  'Configuration/Use h1', cursor=1",
+    ["BRAILLE LINE:  'Configuration/Use h1'",
+     "     VISIBLE:  'Configuration/Use h1', cursor=1",
      "SPEECH OUTPUT: 'Configuration/Use heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -479,16 +477,16 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page for detailed information.'",
-     "     VISIBLE:  'Please also refer to the Configu', cursor=1",
+    ["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.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Accessible Applications h1'",
-     "     VISIBLE:  'Accessible Applications h1', cursor=1",
+    ["BRAILLE LINE:  'Accessible Applications h1'",
+     "     VISIBLE:  'Accessible Applications h1', cursor=1",
      "SPEECH OUTPUT: 'Accessible Applications heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -559,32 +557,32 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["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",
+    ["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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'application.'",
-     "     VISIBLE:  'application.', cursor=1",
+    ["BRAILLE LINE:  'application.'",
+     "     VISIBLE:  'application.', cursor=1",
      "SPEECH OUTPUT: 'application.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page for detailed information.'",
-     "     VISIBLE:  'Please also refer to the Accessi', cursor=1",
+    ["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.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'How Can I Help? h1'",
-     "     VISIBLE:  'How Can I Help? h1', cursor=1",
+    ["BRAILLE LINE:  'How Can I Help? h1'",
+     "     VISIBLE:  'How Can I Help? h1', cursor=1",
      "SPEECH OUTPUT: 'How Can I Help? heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -599,72 +597,72 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'More Information h1'",
-     "     VISIBLE:  'More Information h1', cursor=1",
+    ["BRAILLE LINE:  'More Information h1'",
+     "     VISIBLE:  'More Information h1', cursor=1",
      "SPEECH OUTPUT: 'More Information heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Frequently Asked Questions: FAQ'",
-     "     VISIBLE:  'â?¢ Frequently Asked Questions: FA', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Mailing list: orca-list gnome org (Archives)'",
-     "     VISIBLE:  'â?¢ Mailing list: orca-list gnome ', cursor=1",
-     "SPEECH OUTPUT: 'bullet Mailing list: orca-list gnome org link  left paren Archives link right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
-     "     VISIBLE:  'â?¢ Bug database: GNOME Bug Tracki', cursor=1",
-     "SPEECH OUTPUT: 'bullet Bug database: GNOME Bug Tracking System (Bugzilla) link  left paren current bug list link right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Design documents: Orca Documentation Series'",
-     "     VISIBLE:  'â?¢ Design documents: Orca Documen', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Dive Into Python, Mark Pilgrim'",
-     "     VISIBLE:  'â?¢ Dive Into Python, Mark Pilgrim', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Python in a Nutshell, Alex Martelli'",
-     "     VISIBLE:  'â?¢ Python in a Nutshell, Alex Mar', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'â?¢ Python Pocket Reference, Mark Lutz'",
-     "     VISIBLE:  'â?¢ Python Pocket Reference, Mark ', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Separator'",
-     "     VISIBLE:  'Separator', cursor=1",
+    ["BRAILLE LINE:  'Separator'",
+     "     VISIBLE:  'Separator', cursor=1",
      "SPEECH OUTPUT: 'separator'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -695,25 +693,25 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'Separator'",
-     "     VISIBLE:  'Separator', cursor=1",
+    ["BRAILLE LINE:  'Separator'",
+     "     VISIBLE:  'Separator', cursor=1",
      "SPEECH OUTPUT: 'separator'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  'CategoryAccessibility'",
-     "     VISIBLE:  'CategoryAccessibility', 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)'",
-     "     VISIBLE:  'Orca (last edited 2007-12-07 22:', cursor=1",
-     "SPEECH OUTPUT: 'Orca \(last edited 2007-12-07 22:09:22 by WillieWalker link right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -844,24 +842,24 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["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 right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'CategoryAccessibility'",
-     "     VISIBLE:  'CategoryAccessibility', cursor=1",
+    ["BRAILLE LINE:  'CategoryAccessibility'",
+     "     VISIBLE:  'CategoryAccessibility', cursor=1",
      "SPEECH OUTPUT: 'CategoryAccessibility link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Separator'",
-     "     VISIBLE:  'Separator', cursor=1",
+    ["BRAILLE LINE:  'Separator'",
+     "     VISIBLE:  'Separator', cursor=1",
      "SPEECH OUTPUT: 'separator'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -892,72 +890,72 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Separator'",
-     "     VISIBLE:  'Separator', cursor=1",
+    ["BRAILLE LINE:  'Separator'",
+     "     VISIBLE:  'Separator', cursor=1",
      "SPEECH OUTPUT: 'separator'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Python Pocket Reference, Mark Lutz'",
-     "     VISIBLE:  'â?¢ Python Pocket Reference, Mark ', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Python in a Nutshell, Alex Martelli'",
-     "     VISIBLE:  'â?¢ Python in a Nutshell, Alex Mar', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Dive Into Python, Mark Pilgrim'",
-     "     VISIBLE:  'â?¢ Dive Into Python, Mark Pilgrim', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Design documents: Orca Documentation Series'",
-     "     VISIBLE:  'â?¢ Design documents: Orca Documen', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Bug database: GNOME Bug Tracking System (Bugzilla) (current bug list)'",
-     "     VISIBLE:  'â?¢ Bug database: GNOME Bug Tracki', cursor=1",
-     "SPEECH OUTPUT: 'bullet Bug database: GNOME Bug Tracking System (Bugzilla) link  left paren current bug list link right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Mailing list: orca-list gnome org (Archives)'",
-     "     VISIBLE:  'â?¢ Mailing list: orca-list gnome ', cursor=1",
-     "SPEECH OUTPUT: 'bullet Mailing list: orca-list gnome org link  left paren Archives link right paren'"]))
+    ["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 \)'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'â?¢ Frequently Asked Questions: FAQ'",
-     "     VISIBLE:  'â?¢ Frequently Asked Questions: FA', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'More Information h1'",
-     "     VISIBLE:  'More Information h1', cursor=1",
+    ["BRAILLE LINE:  'More Information h1'",
+     "     VISIBLE:  'More Information h1', cursor=1",
      "SPEECH OUTPUT: 'More Information heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -972,32 +970,32 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'How Can I Help? h1'",
-     "     VISIBLE:  'How Can I Help? h1', cursor=1",
+    ["BRAILLE LINE:  'How Can I Help? h1'",
+     "     VISIBLE:  'How Can I Help? h1', cursor=1",
      "SPEECH OUTPUT: 'How Can I Help? heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Please also refer to the Accessible Applications page for detailed information.'",
-     "     VISIBLE:  'Please also refer to the Accessi', cursor=1",
+    ["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.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'application.'",
-     "     VISIBLE:  'application.', cursor=1",
+    ["BRAILLE LINE:  'application.'",
+     "     VISIBLE:  'application.', cursor=1",
      "SPEECH OUTPUT: 'application.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["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",
+    ["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'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1052,9 +1050,9 @@ sequence.append(utils.StartRecordingAction())
 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,'",
-     "     VISIBLE:  'provider interface (AT-SPI). Thi', cursor=1",
-     "SPEECH OUTPUT: '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 ,'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1068,16 +1066,16 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Accessible Applications h1'",
-     "     VISIBLE:  'Accessible Applications h1', cursor=1",
+    ["BRAILLE LINE:  'Accessible Applications h1'",
+     "     VISIBLE:  'Accessible Applications h1', cursor=1",
      "SPEECH OUTPUT: 'Accessible Applications heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Please also refer to the Configuration/Use page for detailed information.'",
-     "     VISIBLE:  'Please also refer to the Configu', cursor=1",
+    ["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.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1100,17 +1098,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'a window. Refer to Orca Keyboard Commands (Laptop Layout) 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'"]))
+     "SPEECH OUTPUT: 'a window. Refer to Orca Keyboard Commands link \(Laptop Layout\) link  for more information on Orca-specific'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '(accessed by pressing Insert+Space when Orca is running) and for using flat review mode to examine'",
-     "     VISIBLE:  '(accessed by pressing Insert+Spa', cursor=1",
-     "SPEECH OUTPUT: '(accessed by pressing Insert+Space when Orca is running) and for using flat review mode to examine'"]))
+    ["BRAILLE LINE:  '\(accessed by pressing Insert\+Space when Orca is running\) and for using flat review mode to examine'",
+     "     VISIBLE:  '\(accessed by pressing Insert\+Spa', cursor=1",
+     "SPEECH OUTPUT: '\(accessed by pressing Insert\+Space when Orca is running\) and for using flat review mode to examine'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1156,8 +1154,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Configuration/Use h1'",
-     "     VISIBLE:  'Configuration/Use h1', cursor=1",
+    ["BRAILLE LINE:  'Configuration/Use h1'",
+     "     VISIBLE:  'Configuration/Use h1', cursor=1",
      "SPEECH OUTPUT: 'Configuration/Use heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1196,33 +1194,33 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Download/Installation h1'",
-     "     VISIBLE:  'Download/Installation h1', cursor=1",
+    ["BRAILLE LINE:  'Download/Installation h1'",
+     "     VISIBLE:  'Download/Installation h1', cursor=1",
      "SPEECH OUTPUT: 'Download/Installation heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'â?¢ Guide to installing the latest versions of Firefox and Orca'",
-     "     VISIBLE:  'â?¢ Guide to installing the latest', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 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'",
-     "     VISIBLE:  'â?¢ Review of Fedora 7 and the Orc', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 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'",
-     "     VISIBLE:  'â?¢ Walk through of the installati', cursor=1",
-     "SPEECH OUTPUT: 'bullet 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1236,25 +1234,24 @@ sequence.append(utils.StartRecordingAction())
 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 and'",
-     "     VISIBLE:  '(THANKS!)!!! The audio guides ca', cursor=1",
-     "SPEECH OUTPUT: '\(THANKS!right paren!!! 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'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BUG? - Should we be doing this?",
-     "BRAILLE LINE:  'Darragh � Héiligh has created several audio guides for Orca. This is a fantastic contribution'",
+    ["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 O ACUTE Héiligh link  has created several audio guides for Orca. This is a fantastic contribution'"]))
+     "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("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Audio Guides h1'",
-     "     VISIBLE:  'Audio Guides h1', cursor=1",
+    ["BRAILLE LINE:  'Audio Guides h1'",
+     "     VISIBLE:  'Audio Guides h1', cursor=1",
      "SPEECH OUTPUT: 'Audio Guides heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1269,9 +1266,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): 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  left paren archives link right paren: it's a helpful, kind, and productive'"]))
+     "SPEECH OUTPUT: 'Please join and participate on the Orca mailing list link  \( archives link \): it's a helpful, kind, and productive'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1279,7 +1276,7 @@ sequence.append(utils.AssertPresentationAction(
     "Line Up", 
     ["BRAILLE LINE:  '" + bugzillaStringBraille + "( |)" + "how we use Bugzilla\).'",
      "     VISIBLE:  '" + bugzillaStringVisible + "', cursor=1",
-     "SPEECH OUTPUT: '" + bugzillaStringSpeech + "( |)" + "how we use Bugzilla link right paren.'"]))
+     "SPEECH OUTPUT: '" + bugzillaStringSpeech + "( |)" + "how we use Bugzilla link \).'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -1357,104 +1354,104 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'About h1'",
-     "     VISIBLE:  'About h1', cursor=1",
+    ["BRAILLE LINE:  'About h1'",
+     "     VISIBLE:  'About h1', cursor=1",
      "SPEECH OUTPUT: 'About heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  '8. More Information'",
-     "     VISIBLE:  '8. More Information', 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?'",
-     "     VISIBLE:  '7. How Can I Help?', 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'",
-     "     VISIBLE:  '6. Accessible Applications', 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'",
-     "     VISIBLE:  '5. Configuration/Use', 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'",
-     "     VISIBLE:  '4. Download/Installation', 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'",
-     "     VISIBLE:  '3. Audio Guides', 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'",
-     "     VISIBLE:  '2. About', 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!'",
-     "     VISIBLE:  '1. Welcome to Orca!', 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("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Contents'",
-     "     VISIBLE:  'Contents', cursor=1",
+    ["BRAILLE LINE:  'Contents'",
+     "     VISIBLE:  'Contents', cursor=1",
      "SPEECH OUTPUT: 'Contents'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
-     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
+    ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
+     "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
      "SPEECH OUTPUT: 'HOT HOT HOT: Notes on access to Firefox 3.0 link'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Orca Logo Image'",
-     "     VISIBLE:  'Orca Logo 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("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Welcome to Orca! h1'",
-     "     VISIBLE:  'Welcome to Orca! h1', cursor=1",
+    ["BRAILLE LINE:  'Welcome to Orca! h1'",
+     "     VISIBLE:  'Welcome to Orca! h1', cursor=1",
      "SPEECH OUTPUT: 'Welcome to Orca! heading level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -1469,40 +1466,40 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up", 
-    ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing List (Archives) |'",
+    ["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  left paren archives link right paren |'"]))
+     "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'",
-     "     VISIBLE:  'en Español', 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 RecentChanges FindPage HelpContents Orca'",
-     "     VISIBLE:  'Home RecentChanges FindPage Help', 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'",
-     "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
+    ["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 Search: text Search Titles button grayed Text button grayed'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "Line Up",
-    ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
-     "     VISIBLE:  'Home News Projects Art Support D', 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'"]))
 
 ########################################################################
diff --git a/test/keystrokes/firefox/tpg_aria_slider.py b/test/keystrokes/firefox/tpg_aria_slider.py
index 7353ba6..79cd61b 100644
--- a/test/keystrokes/firefox/tpg_aria_slider.py
+++ b/test/keystrokes/firefox/tpg_aria_slider.py
@@ -36,7 +36,7 @@ sequence.append(utils.AssertPresentationAction(
     "Tab to Volume Slider", 
     ["BRAILLE LINE:  'Volume 0 % Slider'",
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: 'Volume slider 0 percent'"]))
+     "SPEECH OUTPUT: 'Volume slider 0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -49,7 +49,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 1 % Slider'",
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -61,7 +61,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 2 % Slider'",
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -73,7 +73,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 3 % Slider'",
      "     VISIBLE:  'Volume 3 % Slider', cursor=1",
-     "SPEECH OUTPUT: '3 percent'"]))
+     "SPEECH OUTPUT: '3 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -85,7 +85,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 3 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 2 % Slider'",
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -97,7 +97,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 1 % Slider'",
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -109,7 +109,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 0 % Slider'",
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -121,7 +121,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 1 % Slider'",
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -133,7 +133,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 2 % Slider'",
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -145,7 +145,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 3 % Slider'",
      "     VISIBLE:  'Volume 3 % Slider', cursor=1",
-     "SPEECH OUTPUT: '3 percent'"]))
+     "SPEECH OUTPUT: '3 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -157,7 +157,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 3 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 2 % Slider'",
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -169,7 +169,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 1 % Slider'",
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -181,7 +181,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 0 % Slider'",
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Up"))
@@ -193,7 +193,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 25 % Slider'",
      "     VISIBLE:  'Volume 25 % Slider', cursor=1",
-     "SPEECH OUTPUT: '25 percent'"]))
+     "SPEECH OUTPUT: '25 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Up"))
@@ -205,7 +205,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 25 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 50 % Slider'",
      "     VISIBLE:  'Volume 50 % Slider', cursor=1",
-     "SPEECH OUTPUT: '50 percent'"]))
+     "SPEECH OUTPUT: '50 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Down"))
@@ -217,7 +217,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 50 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 25 % Slider'",
      "     VISIBLE:  'Volume 25 % Slider', cursor=1",
-     "SPEECH OUTPUT: '25 percent'"]))
+     "SPEECH OUTPUT: '25 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Down"))
@@ -229,7 +229,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 25 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 0 % Slider'",
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("End"))
@@ -241,7 +241,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 100 % Slider'",
      "     VISIBLE:  'Volume 100 % Slider', cursor=1",
-     "SPEECH OUTPUT: '100 percent'"]))
+     "SPEECH OUTPUT: '100 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Home"))
@@ -253,7 +253,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Volume 100 % Slider', cursor=1",
      "BRAILLE LINE:  'Volume 0 % Slider'",
      "     VISIBLE:  'Volume 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -719,7 +719,7 @@ sequence.append(utils.AssertPresentationAction(
     "Tab to Red Slider", 
     ["BRAILLE LINE:  'Red 0 % Slider'",
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: 'Red slider 0 percent'"]))
+     "SPEECH OUTPUT: 'Red slider 0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -732,7 +732,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 1 % Slider'",
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -744,7 +744,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 2 % Slider'",
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -756,7 +756,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 3 % Slider'",
      "     VISIBLE:  'Red 3 % Slider', cursor=1",
-     "SPEECH OUTPUT: '3 percent'"]))
+     "SPEECH OUTPUT: '3 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -768,7 +768,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 3 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 2 % Slider'",
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -780,7 +780,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 1 % Slider'",
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -792,7 +792,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 0 % Slider'",
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -804,7 +804,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 1 % Slider'",
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -816,7 +816,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 2 % Slider'",
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -828,7 +828,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 3 % Slider'",
      "     VISIBLE:  'Red 3 % Slider', cursor=1",
-     "SPEECH OUTPUT: '3 percent'"]))
+     "SPEECH OUTPUT: '3 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -840,7 +840,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 3 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 2 % Slider'",
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
-     "SPEECH OUTPUT: '2 percent'"]))
+     "SPEECH OUTPUT: '2 %'"]))
 
 
 sequence.append(utils.StartRecordingAction())
@@ -853,7 +853,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 2 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 1 % Slider'",
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
-     "SPEECH OUTPUT: '1 percent'"]))
+     "SPEECH OUTPUT: '1 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -865,7 +865,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 1 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 0 % Slider'",
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Up"))
@@ -877,7 +877,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 20 % Slider'",
      "     VISIBLE:  'Red 20 % Slider', cursor=1",
-     "SPEECH OUTPUT: '20 percent'"]))
+     "SPEECH OUTPUT: '20 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Up"))
@@ -889,7 +889,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 20 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 40 % Slider'",
      "     VISIBLE:  'Red 40 % Slider', cursor=1",
-     "SPEECH OUTPUT: '40 percent'"]))
+     "SPEECH OUTPUT: '40 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Down"))
@@ -901,7 +901,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 40 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 20 % Slider'",
      "     VISIBLE:  'Red 20 % Slider', cursor=1",
-     "SPEECH OUTPUT: '20 percent'"]))
+     "SPEECH OUTPUT: '20 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Page_Down"))
@@ -913,7 +913,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 20 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 0 % Slider'",
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("End"))
@@ -925,7 +925,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 55 % Slider'",
      "     VISIBLE:  'Red 55 % Slider', cursor=1",
-     "SPEECH OUTPUT: '55 percent'"]))
+     "SPEECH OUTPUT: '55 %'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Home"))
@@ -937,7 +937,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Red 55 % Slider', cursor=1",
      "BRAILLE LINE:  'Red 0 % Slider'",
      "     VISIBLE:  'Red 0 % Slider', cursor=1",
-     "SPEECH OUTPUT: '0 percent'"]))
+     "SPEECH OUTPUT: '0 %'"]))
 
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.StartRecordingAction())



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