[orca] Fix several bugs in presentation of Gecko form fields



commit 8150bf8211e9f970b508ccbe0084cba5e7e6aff2
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Sun Aug 24 22:35:33 2014 -0400

    Fix several bugs in presentation of Gecko form fields

 src/orca/label_inference.py                        |    7 +-
 src/orca/scripts/toolkits/Gecko/script.py          |   37 +++----
 test/keystrokes/firefox/aria_button_dojo.py        |   32 +++---
 test/keystrokes/firefox/aria_combobox_dojo.py      |    2 +-
 test/keystrokes/firefox/aria_radio_button_uiuc.py  |   50 +++++-----
 test/keystrokes/firefox/aria_tabcontainer_dojo.py  |    4 +-
 .../firefox/label_inference_bug_546815.py          |   26 +++---
 test/keystrokes/firefox/label_inference_entries.py |   11 +-
 test/keystrokes/firefox/label_inference_mailman.py |   21 ++---
 test/keystrokes/firefox/line_nav_bug_546815.py     |  103 +++++++++++---------
 test/keystrokes/firefox/line_nav_slash_test.py     |    7 +-
 test/keystrokes/firefox/link_where_am_i.py         |    5 +-
 test/keystrokes/firefox/say_all_imagemap.py        |    5 +-
 13 files changed, 156 insertions(+), 154 deletions(-)
---
diff --git a/src/orca/label_inference.py b/src/orca/label_inference.py
index 778554f..6eb50a0 100644
--- a/src/orca/label_inference.py
+++ b/src/orca/label_inference.py
@@ -134,11 +134,10 @@ class LabelInference:
         """Returns True if we should not permit inference based on text below
         the object obj."""
 
-        roles = [pyatspi.ROLE_COMBO_BOX,
-                 pyatspi.ROLE_LIST,
-                 pyatspi.ROLE_LIST_BOX]
+        roles = [pyatspi.ROLE_ENTRY,
+                 pyatspi.ROLE_PASSWORD_TEXT]
 
-        return obj.getRole() in roles
+        return obj.getRole() not in roles
 
     def _isSimpleObject(self, obj):
         """Returns True if the given object has 'simple' contents, such as text
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 7a67888..d2ac939 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -1847,9 +1847,11 @@ class Script(default.Script):
             return [0, 0, 0, 0]
 
         role = obj.getRole()
-        treatAsWhole = [pyatspi.ROLE_CHECK_MENU_ITEM,
+        treatAsWhole = [pyatspi.ROLE_CHECK_BOX,
+                        pyatspi.ROLE_CHECK_MENU_ITEM,
                         pyatspi.ROLE_MENU_ITEM,
                         pyatspi.ROLE_RADIO_MENU_ITEM,
+                        pyatspi.ROLE_RADIO_BUTTON,
                         pyatspi.ROLE_PUSH_BUTTON]
 
         text = self.utilities.queryNonEmptyText(obj)
@@ -2789,11 +2791,19 @@ class Script(default.Script):
             prevExtents = self.getExtents(prevObj, pOffset, pOffset + 1)
             if self.onSameLine(extents, prevExtents):
                 toAdd = self.utilities.getObjectsFromEOCs(prevObj, pOffset, boundary)
-                toAdd = [x for x in toAdd if x not in objects]
+
+                # This shouldn't be needed. But getObjectsFromEOCs is insane,
+                # and there are Gecko AtkText bugs. This is the safest hack
+                # this close to the impending stable release.
+                try:
+                    index = toAdd.index(objects[0])
+                except:
+                    index = len(toAdd)
+                toAdd = toAdd[0:index]
                 if not toAdd:
                     break
 
-                objects[0:0] = toAdd[0:]
+                objects[0:0] = toAdd
             else:
                 break
 
@@ -2914,21 +2924,6 @@ class Script(default.Script):
                 if len(contents) > 1 and not len(string):
                     continue
 
-            # If the focused item is a checkbox or a radio button for which
-            # we had to infer the label, odds are that the inferred label is
-            # immediately to the right. Under these circumstances, we'll
-            # double speak the "label". It would be nice to avoid that.
-            # [[[TODO - JD: This is the simple version. It does not handle
-            # the possibility of the fake label being comprised of multiple
-            # objects.]]]
-            #
-            if prevObj \
-               and prevObj.getRole() in [pyatspi.ROLE_CHECK_BOX,
-                                         pyatspi.ROLE_RADIO_BUTTON] \
-               and prevObj.getState().contains(pyatspi.STATE_FOCUSED):
-                if self.labelInference.infer(prevObj) == string.strip():
-                    continue
-
             # If we don't have a string, then use the speech generator.
             # Otherwise, we'll want to speak the string and possibly the
             # role.
@@ -2936,8 +2931,10 @@ class Script(default.Script):
             if not len(string) \
                or self.utilities.isEntry(obj) \
                or self.utilities.isPasswordText(obj) \
-               or role == pyatspi.ROLE_PUSH_BUTTON and obj.name \
-               or self.utilities.isClickableElement(obj):
+               or self.utilities.isClickableElement(obj) \
+               or role in [pyatspi.ROLE_PUSH_BUTTON,
+                           pyatspi.ROLE_CHECK_BOX, pyatspi.ROLE_RADIO_BUTTON,
+                           pyatspi.ROLE_TOGGLE_BUTTON, pyatspi.ROLE_COMBO_BOX]:
                 rv = self.speechGenerator.generateSpeech(obj)
                 # Crazy crap to make clump and friends happy until we can
                 # kill them. (They don't deal well with what the speech
diff --git a/test/keystrokes/firefox/aria_button_dojo.py b/test/keystrokes/firefox/aria_button_dojo.py
index 49a4035..28a9e86 100644
--- a/test/keystrokes/firefox/aria_button_dojo.py
+++ b/test/keystrokes/firefox/aria_button_dojo.py
@@ -26,7 +26,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "3. Tab to <input type='button'>",
-    ["BRAILLE LINE:  '<button> push button  Create push button Create push button Viewpush button Createsave 
options push button   Savesave options push button Disabled push button push button <input type='button'> 
push button'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
      "     VISIBLE:  '<input type='button'> push butto', cursor=1",
      "SPEECH OUTPUT: '<input type='button'> push button'"]))
 
@@ -34,7 +34,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "4. Basic Where Am I on <input type='button'>",
-    ["BRAILLE LINE:  '<button> push button  Create push button Create push button Viewpush button Createsave 
options push button   Savesave options push button Disabled push button push button <input type='button'> 
push button'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
      "     VISIBLE:  '<input type='button'> push butto', cursor=1",
      "SPEECH OUTPUT: '<input type='button'>'",
      "SPEECH OUTPUT: 'push button'"]))
@@ -43,7 +43,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "5. Tab to first Create button",
-    ["BRAILLE LINE:  '<button> push button  Create push button Create push button Viewpush button Createsave 
options push button   Savesave options push button Disabled push button push button <input type='button'> 
push button'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
      "     VISIBLE:  'Create push button Create push b', cursor=1",
      "SPEECH OUTPUT: 'Create push button'"]))
 
@@ -51,7 +51,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. Basic Where Am I on first Create button",
-    ["BRAILLE LINE:  '<button> push button  Create push button Create push button Viewpush button Createsave 
options push button   Savesave options push button Disabled push button push button <input type='button'> 
push button'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
      "     VISIBLE:  'Create push button Create push b', cursor=1",
      "SPEECH OUTPUT: 'Create'",
      "SPEECH OUTPUT: 'push button'"]))
@@ -60,7 +60,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "7. Tab to View push button",
-    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button push button Createsave options push button   Savesave options push button Disabled push button push 
button View'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button View'",
      "     VISIBLE:  '<button> push button <input type', cursor=0",
      "SPEECH OUTPUT: 'View push button view title'"]))
 
@@ -68,7 +68,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "8. Tab to second Create button",
-    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button save options push button   Savesave options push button Disabled push button push 
button Create'",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
      "     VISIBLE:  '<button> push button <input type', cursor=0",
      "SPEECH OUTPUT: 'Create push button creative title'"]))
 
@@ -76,16 +76,16 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "9. Tab to drop down menu on Create -- whose tooltip and accessible name is 'save options'",
-    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button    Savesave options push button Disabled push button push button Createsave options 
push button'",
-     "     VISIBLE:  'save options push button', cursor=1",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
+     "     VISIBLE:  'save options push button   Saves', cursor=1",
      "SPEECH OUTPUT: 'save options push button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "10. Open drop down menu on Create",
-    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button    Savesave options push button Disabled push button push button Createsave options 
push button'",
-     "     VISIBLE:  'save options push button', cursor=1",
+    ["BRAILLE LINE:  '<button> push button <input type='button'> push button Create push button Create push 
button Viewpush button Createsave options push button   Savesave options push button Disabled push button 
push button'",
+     "     VISIBLE:  'save options push button   Saves', cursor=1",
      "BRAILLE LINE:  'Create blank'",
      "     VISIBLE:  'Create blank', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
@@ -312,8 +312,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "30. Tab to the toggle me button",
-    ["BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button push button 
Toggle meToggle me push button'",
-     "     VISIBLE:  'Toggle me push button', cursor=1",
+    ["BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button Toggle me push 
button push button Toggle meToggle me push button'",
+     "     VISIBLE:  'Toggle me push button push butto', cursor=1",
      "SPEECH OUTPUT: 'Toggle me push button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -321,16 +321,16 @@ sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "31. Toggle the state of the toggle me button",
     ["KNOWN ISSUE: We seem to be missing the expected events and state changes. Dojo bug?",
-     "BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button push button 
Toggle meToggle me push button'",
-     "     VISIBLE:  'Toggle me push button', cursor=1"]))
+     "BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button Toggle me push 
button push button Toggle meToggle me push button'",
+     "     VISIBLE:  'Toggle me push button push butto', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "32. Toggle the state of the toggle me button",
     ["KNOWN ISSUE: We seem to be missing the expected events and state changes. Dojo bug?",
-     "BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button push button 
Toggle meToggle me push button'",
-     "     VISIBLE:  'Toggle me push button', cursor=1"]))
+     "BRAILLE LINE:  'toggle me off&=y toggle me off Toggle me off toggle button push button Toggle me push 
button push button Toggle meToggle me push button'",
+     "     VISIBLE:  'Toggle me push button push butto', cursor=1"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/aria_combobox_dojo.py b/test/keystrokes/firefox/aria_combobox_dojo.py
index 9d0ef85..54e38d0 100644
--- a/test/keystrokes/firefox/aria_combobox_dojo.py
+++ b/test/keystrokes/firefox/aria_combobox_dojo.py
@@ -14,7 +14,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Tab to the first combo box",
-    ["BRAILLE LINE:  '  \u25bc push button US State test 1 (200% Courier font): California $l'",
+    ["BRAILLE LINE:  ' \u25bc push button US State test 1 (200% Courier font): California $l'",
      "     VISIBLE:  '(200% Courier font): California ', cursor=32",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
diff --git a/test/keystrokes/firefox/aria_radio_button_uiuc.py 
b/test/keystrokes/firefox/aria_radio_button_uiuc.py
index 163a7e6..2c7e9ba 100644
--- a/test/keystrokes/firefox/aria_radio_button_uiuc.py
+++ b/test/keystrokes/firefox/aria_radio_button_uiuc.py
@@ -16,13 +16,12 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Tab to first radio button",
-    ["KNOWN ISSUE: The braille is now correct; the speech still needs to be fixed.",
-     "BRAILLE LINE:  '&=y Radio Maria radio button'",
+    ["BRAILLE LINE:  '&=y Radio Maria radio button'",
      "     VISIBLE:  '&=y Radio Maria radio button', cursor=1",
      "BRAILLE LINE:  '&=y Radio Maria radio button'",
      "     VISIBLE:  '&=y Radio Maria radio button', cursor=1",
      "SPEECH OUTPUT: 'Lunch Options panel'",
-     "SPEECH OUTPUT: 'Johns Radio Maria selected radio button'"]))
+     "SPEECH OUTPUT: 'Radio Maria selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -30,40 +29,33 @@ sequence.append(utils.AssertPresentationAction(
     "2. Basic whereamI",
     ["BRAILLE LINE:  '&=y Radio Maria radio button'",
      "     VISIBLE:  '&=y Radio Maria radio button', cursor=1",
-     "SPEECH OUTPUT: 'Lunch Options Johns Radio Maria'",
+     "SPEECH OUTPUT: 'Lunch Options Radio Maria'",
      "SPEECH OUTPUT: 'radio button selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Move to next radio button",
-    ["BRAILLE LINE:  '&=y Radio Maria radio button'",
-     "     VISIBLE:  '&=y Radio Maria radio button', cursor=1",
-     "SPEECH OUTPUT: 'Maria '",
-     "SPEECH OUTPUT: 'radio button'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "4. Move to next radio button",
-    ["BRAILLE LINE:  '& y Rainbow Gardens radio button'",
+    ["KNOWN ISSUE: It looks like at the time we move to it, the state hasn't changed yet. This is something 
better handled by focus mode but users don't want that.",
+     "BRAILLE LINE:  '& y Rainbow Gardens radio button'",
      "     VISIBLE:  '& y Rainbow Gardens radio button', cursor=1",
-     "SPEECH OUTPUT: ' Rainbow '",
+     "SPEECH OUTPUT: 'Rainbow Gardens'",
+     "SPEECH OUTPUT: 'not selected'",
      "SPEECH OUTPUT: 'radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
-    "5. Move to next radio button",
+    "4. Basic whereamI",
     ["BRAILLE LINE:  '&=y Rainbow Gardens radio button'",
      "     VISIBLE:  '&=y Rainbow Gardens radio button', cursor=1",
-     "SPEECH OUTPUT: 'Gardens '",
-     "SPEECH OUTPUT: 'radio button'"]))
+     "SPEECH OUTPUT: 'Lunch Options Rainbow Gardens'",
+     "SPEECH OUTPUT: 'radio button selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "6. Move to next line",
+    "5. Move to next line",
     ["BRAILLE LINE:  'Drink Options h3'",
      "     VISIBLE:  'Drink Options h3', cursor=1",
      "SPEECH OUTPUT: 'Drink Options'",
@@ -72,7 +64,7 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
-    "7. Tab to second radio group",
+    "6. Tab to second radio group",
     ["BRAILLE LINE:  '&=y Water radio button'",
      "     VISIBLE:  '&=y Water radio button', cursor=1",
      "BRAILLE LINE:  '&=y Water radio button'",
@@ -83,19 +75,23 @@ sequence.append(utils.AssertPresentationAction(
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
-    "8. Move to next radio button",
-    ["BRAILLE LINE:  '& y Tea radio button'",
+    "7. Move to next radio button",
+    ["KNOWN ISSUE: It looks like at the time we move to it, the state hasn't changed yet. This is something 
better handled by focus mode but users don't want that.",
+     "BRAILLE LINE:  '& y Tea radio button'",
      "     VISIBLE:  '& y Tea radio button', cursor=1",
-     "SPEECH OUTPUT: ' Tea '",
+     "SPEECH OUTPUT: 'Tea'",
+     "SPEECH OUTPUT: 'not selected'",
      "SPEECH OUTPUT: 'radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
-    "9. Move back to previous radio button",
-    ["BRAILLE LINE:  '& y Water radio button'",
+    "8. Move back to previous radio button",
+    ["KNOWN ISSUE: It looks like at the time we move to it, the state hasn't changed yet. This is something 
better handled by focus mode but users don't want that.",
+     "BRAILLE LINE:  '& y Water radio button'",
      "     VISIBLE:  '& y Water radio button', cursor=1",
-     "SPEECH OUTPUT: ' Water '",
+     "SPEECH OUTPUT: 'Water'",
+     "SPEECH OUTPUT: 'not selected'",
      "SPEECH OUTPUT: 'radio button'"]))
 
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/firefox/aria_tabcontainer_dojo.py 
b/test/keystrokes/firefox/aria_tabcontainer_dojo.py
index af978bb..add8786 100644
--- a/test/keystrokes/firefox/aria_tabcontainer_dojo.py
+++ b/test/keystrokes/firefox/aria_tabcontainer_dojo.py
@@ -14,8 +14,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Tab to tab list",
-    ["BRAILLE LINE:  '  Tab 3 Inlined Sub TabContainer Sub TabContainer from href SplitContainer from href 
Embedded layout widgets Tab 2'",
-     "     VISIBLE:  'Tab 2', cursor=1",
+    ["BRAILLE LINE:  ' Tab 2 Tab 3 Inlined Sub TabContainer Sub TabContainer from href SplitContainer from 
href Embedded layout widgets'",
+     "     VISIBLE:  'Tab 2 Tab 3 Inlined Sub TabConta', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
      "BRAILLE LINE:  'Tab 2 page tab'",
diff --git a/test/keystrokes/firefox/label_inference_bug_546815.py 
b/test/keystrokes/firefox/label_inference_bug_546815.py
index 1afa26c..38becdc 100644
--- a/test/keystrokes/firefox/label_inference_bug_546815.py
+++ b/test/keystrokes/firefox/label_inference_bug_546815.py
@@ -15,8 +15,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "1. Next form field",
-    ["BRAILLE LINE:  'Enter your Name: text field using default type=text $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "     VISIBLE:  ' $l text field using default typ', cursor=1",
      "SPEECH OUTPUT: 'Enter your Name: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -25,8 +25,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "2. Next form field",
-    ["BRAILLE LINE:  '1. Enter your Address: text field using SIZE and  $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and'",
+     "     VISIBLE:  ' $l text field using SIZE and', cursor=1",
      "SPEECH OUTPUT: '1. Enter your Address: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -35,8 +35,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "3. Next form field",
-    ["BRAILLE LINE:  '2. Enter your City: 3. Enter your State:  $l 4. Enter your Country: US $l image text 
field using  $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l image 
text field using'",
+     "     VISIBLE:  ' $l 3. Enter your State:  $l 4. ', cursor=1",
      "SPEECH OUTPUT: '2. Enter your City: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -45,7 +45,7 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "4. Next form field",
-    ["BRAILLE LINE:  '2. Enter your City: 3. Enter your State:  $l 4. Enter your Country: US $l image text 
field using  $l'",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l image 
text field using'",
      "     VISIBLE:  ' $l 4. Enter your Country: US $l', cursor=1",
      "SPEECH OUTPUT: '3. Enter your State: entry'"]))
 
@@ -55,8 +55,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "5. Next form field",
-    ["BRAILLE LINE:  '2. Enter your City: 3. Enter your State:  $l 4. Enter your Country: US $l image text 
field using  $l'",
-     "     VISIBLE:  'US $l image text field using  $l', cursor=1",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l image 
text field using'",
+     "     VISIBLE:  'US $l image text field using', cursor=1",
      "SPEECH OUTPUT: '4. Enter your Country: entry US'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -88,7 +88,7 @@ sequence.append(utils.AssertPresentationAction(
     ["KNOWN ISSUE: This is broken",
      "BRAILLE LINE:  '< > check box bird'",
      "     VISIBLE:  '< > check box bird', cursor=1",
-     "SPEECH OUTPUT: 'What are your favorite pets? check box not checked'"]))
+     "SPEECH OUTPUT: 'check box not checked'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -120,7 +120,7 @@ sequence.append(utils.AssertPresentationAction(
     ["KNOWN ISSUE: This is broken",
      "BRAILLE LINE:  '&=y radio button cabernet sauvignon'",
      "     VISIBLE:  '&=y radio button cabernet sauvig', cursor=1",
-     "SPEECH OUTPUT: 'Would type of wine do you like? selected radio button'"]))
+     "SPEECH OUTPUT: 'selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -170,8 +170,8 @@ sequence.append(utils.AssertPresentationAction(
     "16. Next form field",
     ["BRAILLE LINE:  'Wrapping to top.'",
      "     VISIBLE:  'Wrapping to top.', cursor=0",
-     "BRAILLE LINE:  'Enter your Name: text field using default type=text $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+     "BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "     VISIBLE:  ' $l text field using default typ', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.' voice=system",
      "SPEECH OUTPUT: 'Enter your Name: entry'"]))
 
diff --git a/test/keystrokes/firefox/label_inference_entries.py 
b/test/keystrokes/firefox/label_inference_entries.py
index 7828272..79d9d66 100644
--- a/test/keystrokes/firefox/label_inference_entries.py
+++ b/test/keystrokes/firefox/label_inference_entries.py
@@ -17,15 +17,16 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Type something rather amusing here: entry'"]))
 
+sequence.append(PauseAction(3000))
+
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "2. Next form field",
-    ["KNOWN ISSUE: The placement of the entries with respect to the punctuation is not right.",
-     "BRAILLE LINE:  'Amusing numbers fall between  and  $l . $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
+     "     VISIBLE:  ' $l and  $l .', cursor=1",
      "SPEECH OUTPUT: 'Amusing numbers fall between entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -34,8 +35,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "3. Next form field",
-    ["BRAILLE LINE:  'Amusing numbers fall between  and  $l . $l'",
-     "     VISIBLE:  ' $l . $l', cursor=1",
+    ["BRAILLE LINE:  'Amusing numbers fall between  $l and  $l .'",
+     "     VISIBLE:  ' $l .', cursor=1",
      "SPEECH OUTPUT: 'and entry'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/label_inference_mailman.py 
b/test/keystrokes/firefox/label_inference_mailman.py
index dd73fe3..a6d1a1c 100644
--- a/test/keystrokes/firefox/label_inference_mailman.py
+++ b/test/keystrokes/firefox/label_inference_mailman.py
@@ -15,9 +15,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "1. Next form field",
-    ["KNOWN ISSUE: The braille line seems broken",
-     "BRAILLE LINE:  'search mozilla:  Go push button search mozilla:  $l'",
-     "     VISIBLE:  'search mozilla:  $l', cursor=17",
+    ["BRAILLE LINE:  ' search mozilla:  $l Go push button'",
+     "     VISIBLE:  'search mozilla:  $l Go push butt', cursor=17",
      "SPEECH OUTPUT: 'search mozilla: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -26,8 +25,7 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "2. Next form field",
-    ["KNOWN ISSUE: We are double-presenting the label in braille",
-     "BRAILLE LINE:  'search mozilla: search mozilla:  $l Go push button'",
+    ["BRAILLE LINE:  ' search mozilla:  $l Go push button'",
      "     VISIBLE:  'Go push button', cursor=1",
      "SPEECH OUTPUT: 'Go push button'"]))
 
@@ -87,9 +85,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "8. Next form field",
-    ["KNOWN ISSUE: Where 'Yes' appears seems to be impacted by its state",
-     "BRAILLE LINE:  '&=y radio button No  Yes & y radio button'",
-     "     VISIBLE:  '& y radio button', cursor=1",
+    ["BRAILLE LINE:  '&=y radio button No & y radio button Yes'",
+     "     VISIBLE:  '& y radio button Yes', cursor=1",
      "SPEECH OUTPUT: 'Yes not selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -108,8 +105,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "10. Next form field",
-    ["BRAILLE LINE:  'Admin address: Password:  $l  Visit Subscriber List push button $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List push button'",
+     "     VISIBLE:  ' $l Password:  $l  Visit Subscri', cursor=1",
      "SPEECH OUTPUT: 'Admin address: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -118,8 +115,8 @@ sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "11. Next form field",
-    ["BRAILLE LINE:  'Admin address:  $l Password:   Visit Subscriber List push button $l'",
-     "     VISIBLE:  ' $l', cursor=1",
+    ["BRAILLE LINE:  'Admin address:  $l Password:  $l  Visit Subscriber List push button'",
+     "     VISIBLE:  ' $l  Visit Subscriber List push ', cursor=1",
      "SPEECH OUTPUT: 'Password: password text'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_546815.py b/test/keystrokes/firefox/line_nav_bug_546815.py
index 4e51520..3c3d2d0 100644
--- a/test/keystrokes/firefox/line_nav_bug_546815.py
+++ b/test/keystrokes/firefox/line_nav_bug_546815.py
@@ -45,9 +45,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
-    ["BRAILLE LINE:  'Enter your Name:\xa0 $l text field using default type=text'",
-     "     VISIBLE:  'Enter your Name:\xa0 $l text field ', cursor=1",
-     "SPEECH OUTPUT: 'Enter your Name:\xa0'",
+    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "     VISIBLE:  'Enter your Name:  $l text field ', cursor=1",
+     "SPEECH OUTPUT: 'Enter your Name: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'text field using default type=text'"]))
 
@@ -55,9 +55,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
-    ["BRAILLE LINE:  '1. Enter your Address:\xa0 $l text field using SIZE and'",
-     "     VISIBLE:  '1. Enter your Address:\xa0 $l text ', cursor=1",
-     "SPEECH OUTPUT: '1. Enter your Address:\xa0'",
+    ["BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and'",
+     "     VISIBLE:  '1. Enter your Address:  $l text ', cursor=1",
+     "SPEECH OUTPUT: '1. Enter your Address: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'text field using SIZE and '"]))
 
@@ -74,13 +74,13 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["KNOWN ISSUE: Sometimes we display the 'US'; other times we do not. Seems to be test flakiness.",
-     "BRAILLE LINE:  '2. Enter your City:\xa0 $l 3. Enter your State:\xa0 $l 4. Enter your Country:\xa0US $l 
image text field using'",
-     "     VISIBLE:  '2. Enter your City:\xa0 $l 3. Enter', cursor=1",
-     "SPEECH OUTPUT: '2. Enter your City:\xa0'",
+     "BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l image 
text field using'",
+     "     VISIBLE:  '2. Enter your City:  $l 3. Enter', cursor=1",
+     "SPEECH OUTPUT: '2. Enter your City: '",
      "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '3. Enter your State:\xa0'",
+     "SPEECH OUTPUT: '3. Enter your State: '",
      "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '4. Enter your Country:\xa0'",
+     "SPEECH OUTPUT: '4. Enter your Country: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'US'",
      "SPEECH OUTPUT: 'image'",
@@ -98,9 +98,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  '5. Enter your Zip:\xa0 $l'",
-     "     VISIBLE:  '5. Enter your Zip:\xa0 $l', cursor=1",
-     "SPEECH OUTPUT: '5. Enter your Zip:\xa0'",
+    ["BRAILLE LINE:  '5. Enter your Zip:  $l'",
+     "     VISIBLE:  '5. Enter your Zip:  $l', cursor=1",
+     "SPEECH OUTPUT: '5. Enter your Zip: '",
      "SPEECH OUTPUT: 'entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -115,9 +115,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
-    ["BRAILLE LINE:  'character:\xa0 $l'",
-     "     VISIBLE:  'character:\xa0 $l', cursor=1",
-     "SPEECH OUTPUT: 'character:\xa0'",
+    ["BRAILLE LINE:  'character:  $l'",
+     "     VISIBLE:  'character:  $l', cursor=1",
+     "SPEECH OUTPUT: 'character: '",
      "SPEECH OUTPUT: 'entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -133,9 +133,9 @@ sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
     ["KNOWN ISSUE: Why is the checkbox all by itself?",
-     "BRAILLE LINE:  '\xa0CheckBox:'",
-     "     VISIBLE:  '\xa0CheckBox:', cursor=1",
-     "SPEECH OUTPUT: '\xa0CheckBox:'"]))
+     "BRAILLE LINE:  ' CheckBox:'",
+     "     VISIBLE:  ' CheckBox:', cursor=1",
+     "SPEECH OUTPUT: ' CheckBox:'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -273,11 +273,14 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "28. Line Up",
-    ["BRAILLE LINE:  '& y radio button pinot noir'",
+    ["KNOWN ISSUE: We're repeating things here and in the next few tests which we should not be",
+     "BRAILLE LINE:  '& y radio button pinot noir'",
      "     VISIBLE:  '& y radio button pinot noir', cursor=1",
      "SPEECH OUTPUT: 'pinot noir'",
      "SPEECH OUTPUT: 'not selected'",
-     "SPEECH OUTPUT: 'radio button'"]))
+     "SPEECH OUTPUT: 'radio button'",
+     "SPEECH OUTPUT: 'pinot noir ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -287,7 +290,9 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '& y radio button nebbiolo', cursor=1",
      "SPEECH OUTPUT: 'nebbiolo'",
      "SPEECH OUTPUT: 'not selected'",
-     "SPEECH OUTPUT: 'radio button'"]))
+     "SPEECH OUTPUT: 'radio button'",
+     "SPEECH OUTPUT: 'nebbiolo ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -297,7 +302,9 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '& y radio button merlot', cursor=1",
      "SPEECH OUTPUT: 'merlot'",
      "SPEECH OUTPUT: 'not selected'",
-     "SPEECH OUTPUT: 'radio button'"]))
+     "SPEECH OUTPUT: 'radio button'",
+     "SPEECH OUTPUT: 'merlot ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -305,7 +312,6 @@ sequence.append(utils.AssertPresentationAction(
     "31. Line Up",
     ["BRAILLE LINE:  '&=y radio button cabernet sauvignon'",
      "     VISIBLE:  '&=y radio button cabernet sauvig', cursor=1",
-     "SPEECH OUTPUT: 'Would type of wine do you like?'",
      "SPEECH OUTPUT: 'selected'",
      "SPEECH OUTPUT: 'radio button'",
      "SPEECH OUTPUT: 'cabernet sauvignon ",
@@ -354,6 +360,8 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'wild animal'",
      "SPEECH OUTPUT: 'check box'",
      "SPEECH OUTPUT: 'not checked'",
+     "SPEECH OUTPUT: 'wild animal ",
+     "'",
      "SPEECH OUTPUT: 'separator'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -364,7 +372,9 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '< > check box fish', cursor=1",
      "SPEECH OUTPUT: 'fish'",
      "SPEECH OUTPUT: 'check box'",
-     "SPEECH OUTPUT: 'not checked'"]))
+     "SPEECH OUTPUT: 'not checked'",
+     "SPEECH OUTPUT: 'fish ",
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -373,7 +383,6 @@ sequence.append(utils.AssertPresentationAction(
     ["KNOWN ISSUE: This isn't quite right",
      "BRAILLE LINE:  '< > check box bird'",
      "     VISIBLE:  '< > check box bird', cursor=1",
-     "SPEECH OUTPUT: 'What are your favorite pets?'",
      "SPEECH OUTPUT: 'check box'",
      "SPEECH OUTPUT: 'not checked'",
      "SPEECH OUTPUT: 'bird ",
@@ -393,9 +402,9 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "40. Line Up",
     ["KNOWN ISSUE: Why is the checkbox all by itself?",
-     "BRAILLE LINE:  '\xa0CheckBox:'",
-     "     VISIBLE:  '\xa0CheckBox:', cursor=1",
-     "SPEECH OUTPUT: '\xa0CheckBox:'"]))
+     "BRAILLE LINE:  ' CheckBox:'",
+     "     VISIBLE:  ' CheckBox:', cursor=1",
+     "SPEECH OUTPUT: ' CheckBox:'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -409,9 +418,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "42. Line Up",
-    ["BRAILLE LINE:  'character:\xa0 $l'",
-     "     VISIBLE:  'character:\xa0 $l', cursor=1",
-     "SPEECH OUTPUT: 'character:\xa0'",
+    ["BRAILLE LINE:  'character:  $l'",
+     "     VISIBLE:  'character:  $l', cursor=1",
+     "SPEECH OUTPUT: 'character: '",
      "SPEECH OUTPUT: 'entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -426,9 +435,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "44. Line Up",
-    ["BRAILLE LINE:  '5. Enter your Zip:\xa0 $l'",
-     "     VISIBLE:  '5. Enter your Zip:\xa0 $l', cursor=1",
-     "SPEECH OUTPUT: '5. Enter your Zip:\xa0'",
+    ["BRAILLE LINE:  '5. Enter your Zip:  $l'",
+     "     VISIBLE:  '5. Enter your Zip:  $l', cursor=1",
+     "SPEECH OUTPUT: '5. Enter your Zip: '",
      "SPEECH OUTPUT: 'entry'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -443,13 +452,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "46. Line Up",
-    ["BRAILLE LINE:  '2. Enter your City:\xa0 $l 3. Enter your State:\xa0 $l 4. Enter your Country:\xa0US $l 
image text field using'",
-     "     VISIBLE:  '2. Enter your City:\xa0 $l 3. Enter', cursor=1",
-     "SPEECH OUTPUT: '2. Enter your City:\xa0'",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l image 
text field using'",
+     "     VISIBLE:  '2. Enter your City:  $l 3. Enter', cursor=1",
+     "SPEECH OUTPUT: '2. Enter your City: '",
      "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '3. Enter your State:\xa0'",
+     "SPEECH OUTPUT: '3. Enter your State: '",
      "SPEECH OUTPUT: 'entry'",
-     "SPEECH OUTPUT: '4. Enter your Country:\xa0'",
+     "SPEECH OUTPUT: '4. Enter your Country: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'US'",
      "SPEECH OUTPUT: 'image'",
@@ -467,9 +476,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "48. Line Up",
-    ["BRAILLE LINE:  '1. Enter your Address:\xa0 $l text field using SIZE and'",
-     "     VISIBLE:  '1. Enter your Address:\xa0 $l text ', cursor=1",
-     "SPEECH OUTPUT: '1. Enter your Address:\xa0'",
+    ["BRAILLE LINE:  '1. Enter your Address:  $l text field using SIZE and'",
+     "     VISIBLE:  '1. Enter your Address:  $l text ', cursor=1",
+     "SPEECH OUTPUT: '1. Enter your Address: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'text field using SIZE and '"]))
 
@@ -477,9 +486,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "49. Line Up",
-    ["BRAILLE LINE:  'Enter your Name:\xa0 $l text field using default type=text'",
-     "     VISIBLE:  'Enter your Name:\xa0 $l text field ', cursor=1",
-     "SPEECH OUTPUT: 'Enter your Name:\xa0'",
+    ["BRAILLE LINE:  'Enter your Name:  $l text field using default type=text'",
+     "     VISIBLE:  'Enter your Name:  $l text field ', cursor=1",
+     "SPEECH OUTPUT: 'Enter your Name: '",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'text field using default type=text'"]))
 
diff --git a/test/keystrokes/firefox/line_nav_slash_test.py b/test/keystrokes/firefox/line_nav_slash_test.py
index e0d3e40..8fdbad0 100644
--- a/test/keystrokes/firefox/line_nav_slash_test.py
+++ b/test/keystrokes/firefox/line_nav_slash_test.py
@@ -136,11 +136,14 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "13. Line Up",
-    ["BRAILLE LINE:  '& y radio button Some polls'",
+    ["KNOWN ISSUE: We should not be re-presenting the panel",
+     "BRAILLE LINE:  '& y radio button Some polls'",
      "     VISIBLE:  '& y radio button Some polls', cursor=1",
      "SPEECH OUTPUT: 'Some polls'",
      "SPEECH OUTPUT: 'not selected'",
-     "SPEECH OUTPUT: 'radio button'"]))
+     "SPEECH OUTPUT: 'radio button'",
+     "SPEECH OUTPUT: 'Some polls '",
+     "SPEECH OUTPUT: 'panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/link_where_am_i.py b/test/keystrokes/firefox/link_where_am_i.py
index 2a90492..330f882 100644
--- a/test/keystrokes/firefox/link_where_am_i.py
+++ b/test/keystrokes/firefox/link_where_am_i.py
@@ -13,9 +13,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "1. Where Am I on Product summary link", 
-    ["KNOWN ISSUE: This seems broken",
-     "BRAILLE LINE:  '3. (designed for maintainers)Product summary'",
-     "     VISIBLE:  'Product summary', cursor=1",
+    ["BRAILLE LINE:  '3.Product summary (designed for maintainers)'",
+     "     VISIBLE:  'Product summary (designed for ma', cursor=1",
      "SPEECH OUTPUT: 'http link Product summary different site'"]))
 
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/say_all_imagemap.py b/test/keystrokes/firefox/say_all_imagemap.py
index a3a0e6c..9e95356 100644
--- a/test/keystrokes/firefox/say_all_imagemap.py
+++ b/test/keystrokes/firefox/say_all_imagemap.py
@@ -11,7 +11,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
 sequence.append(utils.AssertPresentationAction(
     "1. KP_Add to do a SayAll",
-    ["KNOWN ISSUE: We're not presenting the URIs for the otherwise useless imagemaps",
+    ["KNOWN ISSUE: Due to a test-timing, flakiness issue we do not always speak the urls for the last 
imagemap links",
      "SPEECH OUTPUT: 'This looks like A to Z, but it's really Z to A.'",
      "SPEECH OUTPUT: 'Test:'",
      "SPEECH OUTPUT: 'z link z image map link'",
@@ -47,7 +47,8 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'blank'",
      "SPEECH OUTPUT: 'blank'",
-     "SPEECH OUTPUT: 'image'",
+     "SPEECH OUTPUT: 'shop.safeway.com link shop.safeway.com image map link'",
+     "SPEECH OUTPUT: 'Rancher's Reserve link Rancher's Reserve image map link'",
      "SPEECH OUTPUT: 'image'",
      "SPEECH OUTPUT: 'blank'",
      "SPEECH OUTPUT: 'blank'"]))



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