[orca] Updated tests



commit edbb65e2d2a42322fcc65afd36c8dfb42808063d
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Dec 2 11:05:23 2015 -0500

    Updated tests

 test/harness/orca-customizations.py.in             |    1 -
 test/harness/user-settings.conf.in                 |  245 +++++++++-----------
 test/html/so.html                                  |    6 +-
 test/keystrokes/firefox/aria_alert.py              |   12 +-
 test/keystrokes/firefox/aria_alert_dialog.py       |    3 +-
 test/keystrokes/firefox/aria_button.py             |    3 +-
 test/keystrokes/firefox/aria_button_dojo.py        |   75 +++---
 test/keystrokes/firefox/aria_button_toggle.py      |    3 +-
 test/keystrokes/firefox/aria_checkbox.py           |    3 +-
 test/keystrokes/firefox/aria_checkbox_dojo.py      |    3 +-
 test/keystrokes/firefox/aria_combobox_dojo.py      |    3 +-
 test/keystrokes/firefox/aria_dialog_dismissed.py   |    3 +-
 test/keystrokes/firefox/aria_dialog_dojo.py        |    5 +-
 .../firefox/aria_editor_navigation_dojo.py         |   10 +-
 test/keystrokes/firefox/aria_landmarks.py          |    3 +-
 test/keystrokes/firefox/aria_list.py               |    3 +-
 test/keystrokes/firefox/aria_menu.py               |    7 +-
 test/keystrokes/firefox/aria_progressbar.py        |    3 +-
 test/keystrokes/firefox/aria_radiobutton.py        |    3 +-
 .../firefox/aria_roledescription_where_am_i.py     |    3 +-
 test/keystrokes/firefox/aria_slider.py             |    3 +-
 test/keystrokes/firefox/aria_slider_dojo.py        |    3 +-
 test/keystrokes/firefox/aria_slider_tpg.py         |    3 +-
 test/keystrokes/firefox/aria_sliders.py            |    3 +-
 test/keystrokes/firefox/aria_spinner_dojo.py       |   43 ++--
 test/keystrokes/firefox/aria_tabcontainer_dojo.py  |    3 +-
 test/keystrokes/firefox/aria_tabpanel.py           |    5 +-
 test/keystrokes/firefox/aria_tabpanel2.py          |    5 +-
 test/keystrokes/firefox/aria_tabpanel_text_dojo.py |    5 +-
 test/keystrokes/firefox/aria_toolbar_dojo.py       |    3 +-
 test/keystrokes/firefox/aria_tree.py               |    3 +-
 test/keystrokes/firefox/aria_tree_dojo.py          |    3 +-
 test/keystrokes/firefox/aria_treegrid.py           |    3 +-
 test/keystrokes/firefox/find_wiki.py               |    6 +-
 test/keystrokes/firefox/flat_review_combo_box.py   |    9 +-
 .../firefox/flat_review_hidden_elements.py         |    3 +-
 .../keystrokes/firefox/flat_review_text_by_line.py |    3 +-
 .../firefox/flat_review_text_by_word_and_char.py   |    3 +-
 .../firefox/focus_tracking_descriptions.py         |    3 +-
 test/keystrokes/firefox/focus_tracking_imagemap.py |    3 +-
 .../firefox/focus_tracking_input_type_number.py    |    3 +-
 .../firefox/focus_tracking_link_child_of_body.py   |    6 +-
 test/keystrokes/firefox/focus_tracking_links.py    |   15 +-
 .../focus_tracking_radios_with_label_and_name.py   |    3 +-
 .../firefox/focus_tracking_roledescriptions.py     |    3 +-
 test/keystrokes/firefox/html_page_summary.py       |    3 +-
 test/keystrokes/firefox/html_role_combo_box.py     |    3 +-
 test/keystrokes/firefox/html_role_links.py         |   12 +-
 .../firefox/html_role_list_item_where_am_i.py      |    3 +-
 .../firefox/html_struct_nav_activate_link.py       |    6 +-
 .../firefox/html_struct_nav_blockquote.py          |    3 +-
 .../firefox/html_struct_nav_bug_554616.py          |   21 ++-
 .../firefox/html_struct_nav_bug_556470.py          |    3 +-
 .../firefox/html_struct_nav_bug_567984.py          |   32 ++-
 .../firefox/html_struct_nav_bug_591592.py          |    3 +-
 .../html_struct_nav_clickable_text_change.py       |    3 +-
 .../firefox/html_struct_nav_descriptions.py        |   12 +-
 .../firefox/html_struct_nav_heading_empty.py       |    3 +-
 .../html_struct_nav_heading_in_div_with_text.py    |   51 +++--
 .../html_struct_nav_heading_with_child_text.py     |    3 +-
 .../html_struct_nav_heading_with_clickable.py      |    6 +-
 .../html_struct_nav_headings_buried_deep.py        |    3 +-
 ...html_struct_nav_headings_with_hidden_anchors.py |    3 +-
 .../firefox/html_struct_nav_hidden_paragraphs.py   |    3 +-
 .../firefox/html_struct_nav_large_obj.py           |   95 ++++----
 .../html_struct_nav_link_with_child_text.py        |    6 +-
 test/keystrokes/firefox/html_struct_nav_links.py   |   45 +++--
 .../firefox/html_struct_nav_list_item.py           |    3 +-
 test/keystrokes/firefox/html_struct_nav_lists.py   |    3 +-
 .../firefox/label_inference_bug_546815.py          |    3 +-
 .../firefox/label_inference_bugzilla_search.py     |   16 +-
 test/keystrokes/firefox/label_inference_entries.py |    3 +-
 .../label_inference_labels_without_for_far_away.py |    3 +-
 test/keystrokes/firefox/label_inference_mailman.py |    3 +-
 test/keystrokes/firefox/line_nav_bug_546815.py     |   11 +-
 test/keystrokes/firefox/line_nav_bug_549128.py     |    9 +-
 test/keystrokes/firefox/line_nav_bug_552887a.py    |   12 +-
 test/keystrokes/firefox/line_nav_bug_554616.py     |   24 ++-
 test/keystrokes/firefox/line_nav_bug_555055.py     |    3 +-
 test/keystrokes/firefox/line_nav_bug_570757.py     |   15 +-
 test/keystrokes/firefox/line_nav_bug_577239.py     |   14 +-
 test/keystrokes/firefox/line_nav_bug_592383.py     |    3 +-
 .../firefox/line_nav_bugzilla_search_down.py       |  118 +++++-----
 .../firefox/line_nav_bugzilla_search_up.py         |  103 ++++----
 ...av_button_in_link_position_relative_on_focus.py |    3 +-
 test/keystrokes/firefox/line_nav_canvas.py         |    3 +-
 test/keystrokes/firefox/line_nav_clickables.py     |    3 +-
 test/keystrokes/firefox/line_nav_descriptions.py   |   12 +-
 .../firefox/line_nav_display_table_cell.py         |    5 +-
 test/keystrokes/firefox/line_nav_empty_anchor.py   |   41 ++--
 .../firefox/line_nav_empty_block_link.py           |    3 +-
 test/keystrokes/firefox/line_nav_empty_textarea.py |    3 +-
 test/keystrokes/firefox/line_nav_enter_bug.py      |  141 +++++++-----
 test/keystrokes/firefox/line_nav_entries.py        |   27 ++-
 test/keystrokes/firefox/line_nav_focused_link.py   |    6 +-
 .../firefox/line_nav_follow_same_page_link.py      |    3 +-
 .../firefox/line_nav_follow_same_page_link_2.py    |    3 +-
 .../firefox/line_nav_follow_same_page_link_3.py    |    4 +-
 .../firefox/line_nav_fontawesome_link.py           |    3 +-
 .../keystrokes/firefox/line_nav_heading_section.py |    3 +-
 test/keystrokes/firefox/line_nav_hidden_buttons.py |    3 +-
 .../keystrokes/firefox/line_nav_hidden_elements.py |    3 +-
 test/keystrokes/firefox/line_nav_hidden_float.py   |    3 +-
 test/keystrokes/firefox/line_nav_hidden_label.py   |    3 +-
 test/keystrokes/firefox/line_nav_hidden_links.py   |   19 ++-
 .../keystrokes/firefox/line_nav_iframes_blogger.py |   15 +-
 .../firefox/line_nav_iframes_in_inline_block.py    |    3 +-
 .../firefox/line_nav_iframes_in_inline_block2.py   |    3 +-
 test/keystrokes/firefox/line_nav_iframes_nested.py |    3 +-
 test/keystrokes/firefox/line_nav_image_in_link.py  |    9 +-
 test/keystrokes/firefox/line_nav_imagemap.py       |    3 +-
 .../keystrokes/firefox/line_nav_images_in_links.py |   30 ++-
 .../line_nav_images_in_table_and_floating_div.py   |    3 +-
 .../firefox/line_nav_inline_block_spans.py         |    3 +-
 .../line_nav_link_position_relative_on_focus.py    |    9 +-
 test/keystrokes/firefox/line_nav_lists.py          |    5 +-
 test/keystrokes/firefox/line_nav_lists_broken.py   |    3 +-
 .../firefox/line_nav_lists_without_items.py        |    9 +-
 .../keystrokes/firefox/line_nav_multi_line_text.py |   48 +++--
 test/keystrokes/firefox/line_nav_nested_tables.py  |   39 ++-
 .../line_nav_offscreen_text_with_tiny_width.py     |    3 +-
 .../firefox/line_nav_paragraphs_in_links.py        |    3 +-
 test/keystrokes/firefox/line_nav_pre_lines.py      |    3 +-
 test/keystrokes/firefox/line_nav_pre_links.py      |   15 +-
 .../firefox/line_nav_role_application.py           |    3 +-
 .../firefox/line_nav_roledescriptions.py           |    3 +-
 test/keystrokes/firefox/line_nav_simple_form.py    |   16 +-
 test/keystrokes/firefox/line_nav_slash_test.py     |   31 ++-
 test/keystrokes/firefox/line_nav_sun_java.py       |   70 ++++--
 test/keystrokes/firefox/line_nav_table_captions.py |    3 +-
 .../firefox/line_nav_table_cell_links.py           |   30 ++-
 .../firefox/line_nav_textarea_last_line.py         |    3 +-
 test/keystrokes/firefox/line_nav_twitter_bug.py    |    3 +-
 test/keystrokes/firefox/line_nav_wiki_down.py      |  202 +++++++++++------
 test/keystrokes/firefox/line_nav_wiki_up.py        |  202 +++++++++++------
 test/keystrokes/firefox/link_where_am_i.py         |    3 +-
 test/keystrokes/firefox/longdesc_1.py              |    6 +-
 test/keystrokes/firefox/longdesc_10.py             |    6 +-
 test/keystrokes/firefox/longdesc_11.py             |    6 +-
 test/keystrokes/firefox/longdesc_12.py             |    6 +-
 test/keystrokes/firefox/longdesc_13.py             |    6 +-
 test/keystrokes/firefox/longdesc_14.py             |    6 +-
 test/keystrokes/firefox/longdesc_15.py             |    6 +-
 test/keystrokes/firefox/longdesc_2.py              |    6 +-
 test/keystrokes/firefox/longdesc_3.py              |    6 +-
 test/keystrokes/firefox/longdesc_4.py              |    6 +-
 test/keystrokes/firefox/longdesc_5.py              |    6 +-
 test/keystrokes/firefox/longdesc_6.py              |    6 +-
 test/keystrokes/firefox/longdesc_7.py              |    6 +-
 test/keystrokes/firefox/longdesc_8.py              |    6 +-
 test/keystrokes/firefox/longdesc_9.py              |    6 +-
 test/keystrokes/firefox/math_line_nav_fraction.py  |    3 +-
 .../firefox/math_line_nav_math_in_dialog.py        |    3 +-
 .../firefox/math_line_nav_mathvariant.py           |    3 +-
 test/keystrokes/firefox/math_line_nav_menclose.py  |    3 +-
 test/keystrokes/firefox/math_line_nav_mfenced.py   |    3 +-
 test/keystrokes/firefox/math_line_nav_mroot.py     |    3 +-
 test/keystrokes/firefox/math_line_nav_mrow.py      |    3 +-
 test/keystrokes/firefox/math_line_nav_scripts.py   |    3 +-
 test/keystrokes/firefox/math_line_nav_table.py     |    3 +-
 .../firefox/math_line_nav_torture_test.py          |    5 +-
 .../firefox/mouseover_javascript_alert.py          |    3 +-
 .../firefox/object_nav_descriptions_down.py        |    3 +-
 .../firefox/object_nav_descriptions_up.py          |    3 +-
 .../firefox/object_nav_link_in_quotes.py           |    3 +-
 .../keystrokes/firefox/object_nav_links_in_text.py |    3 +-
 .../keystrokes/firefox/object_nav_links_on_line.py |    3 +-
 .../firefox/object_nav_simple_form_down.py         |   18 +-
 .../firefox/object_nav_simple_form_up.py           |   18 +-
 test/keystrokes/firefox/say_all_blockquote.py      |    3 +-
 test/keystrokes/firefox/say_all_bug_511389.py      |    3 +-
 test/keystrokes/firefox/say_all_bug_591351_1.py    |    3 +-
 test/keystrokes/firefox/say_all_bugzilla_search.py |   19 +--
 test/keystrokes/firefox/say_all_empty_anchor.py    |    3 +-
 test/keystrokes/firefox/say_all_enter_bug.py       |    7 +-
 test/keystrokes/firefox/say_all_entries.py         |    3 +-
 test/keystrokes/firefox/say_all_heading_section.py |    3 +-
 test/keystrokes/firefox/say_all_hidden_elements.py |    3 +-
 test/keystrokes/firefox/say_all_imagemap.py        |    3 +-
 test/keystrokes/firefox/say_all_multi_line_text.py |    3 +-
 test/keystrokes/firefox/say_all_nested_tables.py   |    4 +-
 test/keystrokes/firefox/say_all_onmouseup.py       |    3 +-
 test/keystrokes/firefox/say_all_role_combo_box.py  |    3 +-
 test/keystrokes/firefox/say_all_role_links.py      |    3 +-
 test/keystrokes/firefox/say_all_role_lists.py      |    3 +-
 test/keystrokes/firefox/say_all_simple_form.py     |    7 +-
 test/keystrokes/firefox/say_all_table_caption.py   |    3 +-
 .../keystrokes/firefox/say_all_table_cell_links.py |    3 +-
 test/keystrokes/firefox/say_all_wiki.py            |    3 +-
 test/keystrokes/firefox/spelling_errors.py         |   12 +-
 test/keystrokes/firefox/ui_doc_tabs.py             |    3 +-
 test/keystrokes/firefox/ui_role_radio_button.py    |    1 -
 test/keystrokes/firefox/ui_role_radio_menu_item.py |    2 +-
 test/keystrokes/firefox/word_nav_links.py          |   33 ++-
 test/keystrokes/firefox/word_nav_list_items.py     |   13 +-
 test/keystrokes/gtk-demo/role_accel_label.py       |    7 +-
 test/keystrokes/gtk-demo/role_alert.py             |    9 +-
 test/keystrokes/gtk-demo/role_check_menu_item.py   |    6 +-
 test/keystrokes/gtk-demo/role_column_header.py     |   33 ++-
 test/keystrokes/gtk-demo/role_combo_box.py         |   28 ++-
 test/keystrokes/gtk-demo/role_combo_box2.py        |   14 +-
 test/keystrokes/gtk-demo/role_icon.py              |   16 +-
 test/keystrokes/gtk-demo/role_menu.py              |   12 +-
 test/keystrokes/gtk-demo/role_page_tab.py          |    6 +-
 test/keystrokes/gtk-demo/role_radio_button.py      |   17 +-
 test/keystrokes/gtk-demo/role_spin_button.py       |    2 +-
 test/keystrokes/gtk-demo/role_table.py             |   20 ++-
 test/keystrokes/gtk-demo/role_text_multiline.py    |   13 +-
 .../gtk-demo/role_text_multiline_flatreview.py     |    8 +-
 .../gtk-demo/role_text_multiline_navigation.py     |    6 +-
 test/keystrokes/gtk-demo/role_tooltip.py           |    5 +-
 test/keystrokes/gtk-demo/role_tree_table.py        |   95 +++++++--
 test/keystrokes/gtk3-demo/role_accel_label.py      |   11 +-
 test/keystrokes/gtk3-demo/role_alert.py            |   17 +-
 test/keystrokes/gtk3-demo/role_check_box.py        |   12 +-
 test/keystrokes/gtk3-demo/role_check_menu_item.py  |    6 +-
 test/keystrokes/gtk3-demo/role_color_chooser.py    |    3 +-
 test/keystrokes/gtk3-demo/role_column_header.py    |   50 +++--
 test/keystrokes/gtk3-demo/role_combo_box.py        |   70 +++---
 test/keystrokes/gtk3-demo/role_combo_box2.py       |   23 ++-
 test/keystrokes/gtk3-demo/role_dialog.py           |   19 +-
 test/keystrokes/gtk3-demo/role_icon.py             |   26 ++-
 test/keystrokes/gtk3-demo/role_info_bar.py         |    5 +-
 test/keystrokes/gtk3-demo/role_menu.py             |   25 +-
 test/keystrokes/gtk3-demo/role_page_tab.py         |   14 +-
 test/keystrokes/gtk3-demo/role_radio_button.py     |   28 ++-
 test/keystrokes/gtk3-demo/role_radio_menu_item.py  |    8 +-
 test/keystrokes/gtk3-demo/role_spin_button.py      |    8 +-
 test/keystrokes/gtk3-demo/role_split_pane.py       |    8 +-
 test/keystrokes/gtk3-demo/role_table.py            |   32 ++-
 test/keystrokes/gtk3-demo/role_text_multiline.py   |   13 +-
 .../gtk3-demo/role_text_multiline_flatreview.py    |    2 +-
 .../gtk3-demo/role_text_multiline_navigation.py    |    6 +-
 test/keystrokes/gtk3-demo/role_toggle_button.py    |   20 +-
 test/keystrokes/gtk3-demo/role_tooltip.py          |   22 +-
 test/keystrokes/gtk3-demo/role_tree_table.py       |  130 ++++++++---
 test/keystrokes/oowriter/document_nav_line.py      |   13 +-
 237 files changed, 2124 insertions(+), 1351 deletions(-)
---
diff --git a/test/harness/orca-customizations.py.in b/test/harness/orca-customizations.py.in
index 208c9d0..1d278db 100644
--- a/test/harness/orca-customizations.py.in
+++ b/test/harness/orca-customizations.py.in
@@ -12,5 +12,4 @@ orca.settings.enableSpeech = True
 orca.settings.speechFactoryModules = []
 orca.settings.speechServerFactory = None
 orca.settings.asyncMode = False
-orca.settings.enableProgressBarUpdates = True
 orca.settings.progressBarUpdateInterval = 0
diff --git a/test/harness/user-settings.conf.in b/test/harness/user-settings.conf.in
index 1877c06..5b2e248 100644
--- a/test/harness/user-settings.conf.in
+++ b/test/harness/user-settings.conf.in
@@ -1,13 +1,12 @@
 {
-    "pronunciations": {}, 
-    "keybindings": {}, 
+    "pronunciations": {},
     "profiles": {
         "default": {
-            "speechServerFactory": "orca.speechdispatcherfactory", 
+            "speechServerFactory": "orca.speechdispatcherfactory",
             "profile": [
-                "Default", 
+                "Default",
                 "default"
-            ], 
+            ],
             "voices": {
                 "default": {
                     "average-pitch": 5.0, 
@@ -31,147 +30,123 @@
             "keybindings": {}, 
             "pronunciations": {}
         }
-    }, 
+    },
+    "keybindings": {},
     "general": {
-        "speakCellHeaders": true, 
-        "magEdgeMargin": 0, 
-        "brailleContractionTable": "", 
-        "magPointerFollowsFocus": false, 
-        "magTextTrackingMode": 2, 
-        "magZoomerBorderSize": 1, 
-        "brailleAlignmentStyle": 0, 
-        "enableEchoByWord": false, 
-        "enableMagZoomerColorInversion": false, 
-        "magCursorSize": 32, 
-        "magSmoothingMode": 0, 
-        "magZoomerLeft": 1200, 
-        "sayAllStyle": 1, 
-        "brailleSelectorIndicator": 192, 
-        "presentDateFormat": "%x", 
-        "magContrastLevel": 0, 
-        "magMouseTrackingMode": 0, 
-        "speakCellSpan": true, 
-        "progressBarUpdateInterval": 10, 
-        "speakCellCoordinates": true, 
-        "enablePauseBreaks": true, 
-        "brailleEOLIndicator": " $l", 
-        "verbalizePunctuationStyle": 1, 
-        "progressBarVerbosity": 1, 
-        "enableSpeech": true, 
-        "enableBraille": false, 
-        "chatAnnounceBuddyTyping": false, 
-        "speakMultiCaseStringsAsWords": false, 
-        "enableBrailleGrouping": false, 
-        "readTableCellRow": true, 
-        "activeProfile": [
-            "Default", 
-            "default"
-        ], 
-        "textAttributesBrailleIndicator": 0, 
-        "enableMagCursorExplicitSize": false, 
-        "messageVerbosityLevel": 1, 
-        "enableMagLiveUpdating": true, 
-        "enableSpeechIndentation": false, 
-        "enableKeyEcho": false, 
-        "magHideCursor": false, 
-        "magZoomerBorderColor": "#000000", 
-        "magPointerFollowsZoomer": true, 
-        "mouseDwellDelay": 0, 
-        "magBrightnessLevelRed": 0, 
-        "enableMagnifier": false, 
-        "magZoomFactor": 4.0, 
-        "speechServerFactory": "speechdispatcherfactory", 
-        "enableMagZoomerBorder": false, 
-        "flashVerbosityLevel": 1, 
-        "enableFlashMessages": true, 
-        "speechServerInfo": null, 
-        "presentToolTips": false, 
-        "flashIsPersistent": false, 
-        "brailleRequiredStateString": "required", 
-        "firstStart": false, 
-        "largeObjectTextLength": 75, 
-        "enableEchoBySentence": false, 
-        "magContrastLevelBlue": 0, 
-        "magContrastLevelRed": 0, 
-        "enableContractedBraille": false, 
+        "disableBrailleEOL": false,
+        "messagesAreDetailed": true,
+        "enablePunctuationKeys": true,
+        "presentToolTips": false,
+        "enableBraille": false,
+        "enableNavigationKeys": false,
+        "enableModifierKeys": true,
+        "enableNumericKeys": true,
+        "enableMnemonicSpeaking": false,
+        "enablePositionSpeaking": false,
+        "sayAllStyle": 1,
+        "enableSpeechIndentation": false,
+        "skipBlankCells": false,
+        "enableDiacriticalKeys": false,
         "orcaModifierKeys": [
-            "Insert", 
+            "Insert",
             "KP_Insert"
-        ], 
-        "enableMagCursor": true, 
-        "speechRequiredStateString": "required", 
-        "quitOrcaNoConfirmation": false, 
-        "skipBlankCells": false, 
-        "magCursorColor": "#000000", 
-        "enablePositionSpeaking": false, 
-        "magZoomerType": 0, 
-        "onlySpeakDisplayedText": false, 
-        "enableProgressBarUpdates": true, 
-        "wrappedStructuralNavigation": true, 
-        "chatRoomHistories": false, 
-        "brailleVerbosityLevel": 1, 
-        "enableFunctionKeys": true, 
-        "enableModifierKeys": true, 
-        "magCrossHairColor": "#000000", 
-        "enableTutorialMessages": false, 
-        "enableActionKeys": true, 
-        "speakBlankLines": true, 
-        "magColorFilteringMode": 0, 
-        "magZoomerRight": 2400, 
-        "keyboardLayout": 1, 
-        "magTargetDisplay": "", 
-        "disableBrailleEOL": false, 
-        "magZoomerTop": 0, 
-        "magSourceDisplay": "", 
-        "enableDiacriticalKeys": false, 
-        "enableMnemonicSpeaking": false, 
-        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;", 
-        "speechVerbosityLevel": 1, 
-        "enableMagCrossHair": true, 
-        "enableBrailleMonitor": true, 
+        ],
+        "enableSpeech": true,
+        "flashIsPersistent": false,
+        "chatRoomHistories": false,
+        "keyboardLayout": 1,
+        "spellcheckSpellSuggestion": true,
+        "brailleFlashTime": 5000,
+        "speakSpreadsheetCoordinates": true,
+        "verbalizePunctuationStyle": 1,
+        "progressBarVerbosity": 1,
+        "enableEchoByCharacter": false,
         "voices": {
             "default": {
                 "established": false
-            }, 
-            "uppercase": {
-                "average-pitch": 5.6
-            }, 
-            "system": {
-                "established": false
-            }, 
+            },
             "hyperlink": {
                 "established": false
+            },
+            "system": {
+                "established": false
+            },
+            "uppercase": {
+                "average-pitch": 7.0
             }
-        }, 
-        "magContrastLevelGreen": 0, 
-        "brailleFlashTime": 5000, 
-        "magCrossHairSize": 16, 
-        "enableMouseReview": false, 
-        "enableNavigationKeys": false, 
-        "magBrightnessLevelGreen": 0, 
-        "chatSpeakRoomName": false, 
+        },
+        "wrappedStructuralNavigation": true,
+        "caretNavTriggersFocusMode": false,
+        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;",
+        "enableMouseReview": false,
+        "beepProgressBarUpdates": false,
+        "capitalizationStyle": "none",
+        "brailleLinkIndicator": 192,
+        "onlySpeakDisplayedText": false,
+        "spellcheckSpellError": true,
+        "enableFlashMessages": true,
+        "largeObjectTextLength": 75,
+        "chatSpeakRoomName": false,
+        "enableBrailleContext": true,
+        "enablePauseBreaks": true,
+        "enableTutorialMessages": false,
+        "speechServerInfo": null,
+        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none; fg-color:; 
bg-color:;",
+        "enableContractedBraille": false,
+        "enableFunctionKeys": true,
+        "speakNumbersAsDigits": false,
+        "readFullRowInDocumentTable": true,
+        "readFullRowInGUITable": true,
+        "enableAlphabeticKeys": true,
+        "structuralNavigationEnabled": true,
+        "brailleSelectorIndicator": 192,
+        "findResultsMinimumLength": 4,
+        "speakCellSpan": true,
+        "brailleProgressBarUpdates": false,
+        "speechServerFactory": "speechdispatcherfactory",
+        "mouseDwellDelay": 0,
+        "speakBlankLines": true,
+        "enableBrailleMonitor": true,
         "startingProfile": [
-            "Default", 
+            "Default",
             "default"
-        ], 
-        "enableLockingKeys": true, 
+        ],
+        "speakCellCoordinates": true,
+        "brailleContractionTable": "",
+        "enableEchoByWord": false,
+        "structNavTriggersFocusMode": false,
         "profile": [
-            "Default", 
+            "Default",
+            "default"
+        ],
+        "enableActionKeys": true,
+        "speakCellHeaders": true,
+        "readFullRowInSpreadSheet": false,
+        "brailleVerbosityLevel": 1,
+        "flashIsDetailed": true,
+        "enableKeyEcho": false,
+        "spellcheckPresentContext": true,
+        "presentDateFormat": "%x",
+        "brailleRolenameStyle": 1,
+        "speakMultiCaseStringsAsWords": false,
+        "enableSpace": true,
+        "textAttributesBrailleIndicator": 0,
+        "structNavInSayAll": false,
+        "speechVerbosityLevel": 1,
+        "findResultsVerbosity": 2,
+        "enableEchoBySentence": false,
+        "presentTimeFormat": "%X",
+        "rewindAndFastForwardInSayAll": false,
+        "brailleAlignmentStyle": 0,
+        "progressBarUpdateInterval": 10,
+        "chatMessageVerbosity": 0,
+        "useColorNames": true,
+        "speakProgressBarUpdates": true,
+        "layoutMode": true,
+        "activeProfile": [
+            "Default",
             "default"
-        ], 
-        "brailleRolenameStyle": 1, 
-        "brailleLinkIndicator": 192, 
-        "enableEchoByCharacter": false, 
-        "magBrightnessLevelBlue": 0, 
-        "enableBrailleContext": true, 
-        "magControlTrackingMode": 2, 
-        "magZoomerBottom": 1920, 
-        "enablePrintableKeys": true, 
-        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;", 
-        "chatMessageVerbosity": 0, 
-        "presentTimeFormat": "%X", 
-        "magBrightnessLevel": 0, 
-        "presentRequiredState": false, 
-        "enableMagCrossHairClip": false
+        ],
+        "chatAnnounceBuddyTyping": false
     }
-}
+}
\ No newline at end of file
diff --git a/test/html/so.html b/test/html/so.html
index 8c65431..5dcf4cb 100644
--- a/test/html/so.html
+++ b/test/html/so.html
@@ -6,10 +6,10 @@
 </head>
 <body>
 <p>Start</p>
-    <a class="foo">up vote</a>
+    <a class="foo" href="#" tabindex="-1">up vote</a>
     <span style="display:block;font-size:24px;">74</span>
-    <a class="foo">down vote</a>
-    <span class="foo">accepted</span>
+    <a class="foo" href="#" tabindex="-1">down vote</a>
+    <span class="foo" href="#" tabindex="-1">accepted</span>
 <p>End</p>
 </body>
 </html>
diff --git a/test/keystrokes/firefox/aria_alert.py b/test/keystrokes/firefox/aria_alert.py
index f2957ec..26db5b1 100644
--- a/test/keystrokes/firefox/aria_alert.py
+++ b/test/keystrokes/firefox/aria_alert.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
@@ -28,7 +29,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'close'",
      "     VISIBLE:  'close', cursor=1",
      "SPEECH OUTPUT: 'alert.'",
-     "SPEECH OUTPUT: 'This popup is created as a div in the HTML content, rather than being created in the 
DOM at the time of use. The display style is changed from \"none\" to \"block\" to hide and show it. close'",
+     "SPEECH OUTPUT: 'This popup is created as a div in the HTML content, rather than being created in the 
DOM at the time of use. The display style is changed from \"none\" to \"block\" to hide and show it.close'",
      "SPEECH OUTPUT: 'close link.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -37,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Up Arrow",
     ["BRAILLE LINE:  'show it.'",
      "     VISIBLE:  'show it.', cursor=1",
-     "SPEECH OUTPUT: 'show it. '"]))
+     "SPEECH OUTPUT: 'show it.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -134,7 +135,7 @@ sequence.append(utils.AssertPresentationAction(
     "14. Down Arrow",
     ["BRAILLE LINE:  'show it.'",
      "     VISIBLE:  'show it.', cursor=1",
-     "SPEECH OUTPUT: 'show it. '"]))
+     "SPEECH OUTPUT: 'show it.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -142,7 +143,8 @@ sequence.append(utils.AssertPresentationAction(
     "15. Down Arrow",
     ["BRAILLE LINE:  'close'",
      "     VISIBLE:  'close', cursor=1",
-     "SPEECH OUTPUT: 'close link.'"]))
+     "SPEECH OUTPUT: 'close'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/aria_alert_dialog.py b/test/keystrokes/firefox/aria_alert_dialog.py
index 70ad152..1651277 100644
--- a/test/keystrokes/firefox/aria_alert_dialog.py
+++ b/test/keystrokes/firefox/aria_alert_dialog.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(TypeAction("12"))
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
diff --git a/test/keystrokes/firefox/aria_button.py b/test/keystrokes/firefox/aria_button.py
index 03ed4d3..197199c 100644
--- a/test/keystrokes/firefox/aria_button.py
+++ b/test/keystrokes/firefox/aria_button.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_button_dojo.py b/test/keystrokes/firefox/aria_button_dojo.py
index c723fa0..424d338 100644
--- a/test/keystrokes/firefox/aria_button_dojo.py
+++ b/test/keystrokes/firefox/aria_button_dojo.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
@@ -44,17 +45,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "5. Tab to first Create button",
-    ["BRAILLE LINE:  'Create  push button'",
-     "     VISIBLE:  'Create  push button', cursor=1",
-     "SPEECH OUTPUT: 'Create  push button'"]))
+    ["BRAILLE LINE:  'Create push button'",
+     "     VISIBLE:  'Create push button', cursor=1",
+     "SPEECH OUTPUT: 'Create push button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. Basic Where Am I on first Create button",
-    ["BRAILLE LINE:  'Create  push button'",
-     "     VISIBLE:  'Create  push button', cursor=1",
-     "SPEECH OUTPUT: 'Create  push button'"]))
+    ["BRAILLE LINE:  'Create push button'",
+     "     VISIBLE:  'Create push button', cursor=1",
+     "SPEECH OUTPUT: 'Create push button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -68,9 +69,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "8. Tab to second Create button",
-    ["BRAILLE LINE:  'Create  push button'",
-     "     VISIBLE:  'Create  push button', cursor=1",
-     "SPEECH OUTPUT: 'Create  push button creative title'"]))
+    ["BRAILLE LINE:  'Create push button'",
+     "     VISIBLE:  'Create push button', cursor=1",
+     "SPEECH OUTPUT: 'Create push button creative title'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -115,21 +116,21 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "13. Go to Edit!",
-    ["BRAILLE LINE:  'Edit!  push button'",
-     "     VISIBLE:  'Edit!  push button', cursor=1",
+    ["BRAILLE LINE:  'Edit! push button'",
+     "     VISIBLE:  'Edit! push button', cursor=1",
      "BRAILLE LINE:  'Browse mode'",
      "     VISIBLE:  'Browse mode', cursor=0",
-     "SPEECH OUTPUT: 'Edit!  push button edit title'",
+     "SPEECH OUTPUT: 'Edit! push button edit title'",
      "SPEECH OUTPUT: 'Browse mode' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "14. Open the Edit! menu",
-    ["BRAILLE LINE:  'Edit!  push button'",
-     "     VISIBLE:  'Edit!  push button', cursor=1",
-     "BRAILLE LINE:  'Edit!  push button'",
-     "     VISIBLE:  'Edit!  push button', cursor=1",
+    ["BRAILLE LINE:  'Edit! push button'",
+     "     VISIBLE:  'Edit! push button', cursor=1",
+     "BRAILLE LINE:  'Edit! push button'",
+     "     VISIBLE:  'Edit! push button', cursor=1",
      "BRAILLE LINE:  'Cut'",
      "     VISIBLE:  'Cut', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
@@ -201,29 +202,29 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Escape"))
 sequence.append(utils.AssertPresentationAction(
     "22. Close the Edit! menu",
-    ["BRAILLE LINE:  'Edit!  collapsed push button'",
-     "     VISIBLE:  'Edit!  collapsed push button', cursor=1",
-     "SPEECH OUTPUT: 'Edit!  collapsed push button edit title'"]))
+    ["BRAILLE LINE:  'Edit! collapsed push button'",
+     "     VISIBLE:  'Edit! collapsed push button', cursor=1",
+     "SPEECH OUTPUT: 'Edit! collapsed push button edit title'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "23. Tab to the Color button",
-    ["BRAILLE LINE:  'Color  push button'",
-     "     VISIBLE:  'Color  push button', cursor=1",
+    ["BRAILLE LINE:  'Color push button'",
+     "     VISIBLE:  'Color push button', cursor=1",
      "BRAILLE LINE:  'Browse mode'",
      "     VISIBLE:  'Browse mode', cursor=0",
-     "SPEECH OUTPUT: 'Color  push button'",
+     "SPEECH OUTPUT: 'Color push button'",
      "SPEECH OUTPUT: 'Browse mode' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "24. Open the Color menu",
-    ["BRAILLE LINE:  'Color  push button'",
-     "     VISIBLE:  'Color  push button', cursor=1",
-     "BRAILLE LINE:  'Color  push button'",
-     "     VISIBLE:  'Color  push button', cursor=1",
+    ["BRAILLE LINE:  'Color push button'",
+     "     VISIBLE:  'Color push button', cursor=1",
+     "BRAILLE LINE:  'Color push button'",
+     "     VISIBLE:  'Color push button', cursor=1",
      "BRAILLE LINE:  'white table cell'",
      "     VISIBLE:  'white table cell', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
@@ -245,9 +246,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Escape"))
 sequence.append(utils.AssertPresentationAction(
     "26. Close the Color menu",
-    ["BRAILLE LINE:  'Color  collapsed push button'",
-     "     VISIBLE:  'Color  collapsed push button', cursor=1",
-     "SPEECH OUTPUT: 'Color  collapsed push button'"]))
+    ["BRAILLE LINE:  'Color collapsed push button'",
+     "     VISIBLE:  'Color collapsed push button', cursor=1",
+     "SPEECH OUTPUT: 'Color collapsed push button'"]))
 
 for i in range(18):
     sequence.append(KeyComboAction("Tab"))
@@ -280,25 +281,25 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "30. Tab to the toggle me button",
-    ["BRAILLE LINE:  'Toggle me  push button'",
-     "     VISIBLE:  'Toggle me  push button', cursor=1",
-     "SPEECH OUTPUT: 'Toggle me  push button'"]))
+    ["BRAILLE LINE:  'Toggle me push button'",
+     "     VISIBLE:  'Toggle me push button', cursor=1",
+     "SPEECH OUTPUT: 'Toggle me push button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "31. Toggle the state of the toggle me button",
     ["KNOWN ISSUE: This claims to be a toggle button in name; in role it's a push button. We don't announce 
pressing buttons.",
-     "BRAILLE LINE:  'Toggle me  push button'",
-     "     VISIBLE:  'Toggle me  push button', cursor=1"]))
+     "BRAILLE LINE:  'Toggle me push button'",
+     "     VISIBLE:  'Toggle me push button', 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: This claims to be a toggle button in name; in role it's a push button. We don't announce 
pressing buttons.",
-     "BRAILLE LINE:  'Toggle me  push button'",
-     "     VISIBLE:  'Toggle me  push button', cursor=1"]))
+     "BRAILLE LINE:  'Toggle me push button'",
+     "     VISIBLE:  'Toggle me push button', cursor=1"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/aria_button_toggle.py b/test/keystrokes/firefox/aria_button_toggle.py
index 913ee28..46b6e29 100644
--- a/test/keystrokes/firefox/aria_button_toggle.py
+++ b/test/keystrokes/firefox/aria_button_toggle.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/aria_checkbox.py b/test/keystrokes/firefox/aria_checkbox.py
index e38535d..f663b1f 100644
--- a/test/keystrokes/firefox/aria_checkbox.py
+++ b/test/keystrokes/firefox/aria_checkbox.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_checkbox_dojo.py b/test/keystrokes/firefox/aria_checkbox_dojo.py
index 849b8b8..cb2b1fc 100644
--- a/test/keystrokes/firefox/aria_checkbox_dojo.py
+++ b/test/keystrokes/firefox/aria_checkbox_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_combobox_dojo.py b/test/keystrokes/firefox/aria_combobox_dojo.py
index cda0295..66f0c7a 100644
--- a/test/keystrokes/firefox/aria_combobox_dojo.py
+++ b/test/keystrokes/firefox/aria_combobox_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_dialog_dismissed.py 
b/test/keystrokes/firefox/aria_dialog_dismissed.py
index 529ebc4..3591090 100644
--- a/test/keystrokes/firefox/aria_dialog_dismissed.py
+++ b/test/keystrokes/firefox/aria_dialog_dismissed.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/aria_dialog_dojo.py b/test/keystrokes/firefox/aria_dialog_dojo.py
index 0d21d19..e74415d 100644
--- a/test/keystrokes/firefox/aria_dialog_dojo.py
+++ b/test/keystrokes/firefox/aria_dialog_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
@@ -23,7 +24,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'First tab page tab', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
-     "SPEECH OUTPUT: 'TabContainer Dialog This is the first tab.  Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum 
lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non 
mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus.'",
+     "SPEECH OUTPUT: 'TabContainer Dialog This is the first tab. Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum 
lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non 
mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus.'",
      "SPEECH OUTPUT: 'First tab page tab.'",
      "SPEECH OUTPUT: 'Focus mode' voice=system"]))
 
diff --git a/test/keystrokes/firefox/aria_editor_navigation_dojo.py 
b/test/keystrokes/firefox/aria_editor_navigation_dojo.py
index f6ddcc7..c6e1271 100644
--- a/test/keystrokes/firefox/aria_editor_navigation_dojo.py
+++ b/test/keystrokes/firefox/aria_editor_navigation_dojo.py
@@ -7,15 +7,15 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "1. Up Arrow in Focus Mode - which should do nothing",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=1"]))
+    []))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -31,8 +31,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "3. Up Arrow in Browse Mode",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=1",
+    ["BRAILLE LINE:  'applied with aria  $l'",
+     "     VISIBLE:  'applied with aria  $l', cursor=19",
      "BRAILLE LINE:  'editor0 tool bar'",
      "     VISIBLE:  'editor0 tool bar', cursor=1",
      "SPEECH OUTPUT: 'editor0 tool bar'"]))
diff --git a/test/keystrokes/firefox/aria_landmarks.py b/test/keystrokes/firefox/aria_landmarks.py
index 7bc7e02..3c44f8b 100644
--- a/test/keystrokes/firefox/aria_landmarks.py
+++ b/test/keystrokes/firefox/aria_landmarks.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/aria_list.py b/test/keystrokes/firefox/aria_list.py
index 767ef65..48b3212 100644
--- a/test/keystrokes/firefox/aria_list.py
+++ b/test/keystrokes/firefox/aria_list.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/aria_menu.py b/test/keystrokes/firefox/aria_menu.py
index ceab6bc..49cf6f5 100644
--- a/test/keystrokes/firefox/aria_menu.py
+++ b/test/keystrokes/firefox/aria_menu.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -17,9 +18,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control><Alt>m"))
 sequence.append(utils.AssertPresentationAction(
     "1. Move to the menu",
-    ["BRAILLE LINE:  'table'",
-     "     VISIBLE:  'table', cursor=1",
-     "BRAILLE LINE:  'Edit menu'",
+    ["BRAILLE LINE:  'Edit menu'",
      "     VISIBLE:  'Edit menu', cursor=1",
      "SPEECH OUTPUT: 'Edit menu.'"]))
 
diff --git a/test/keystrokes/firefox/aria_progressbar.py b/test/keystrokes/firefox/aria_progressbar.py
index cbb5986..3b984d6 100644
--- a/test/keystrokes/firefox/aria_progressbar.py
+++ b/test/keystrokes/firefox/aria_progressbar.py
@@ -6,7 +6,8 @@ from macaroon.playback import *
 import utils
 
 sequence = MacroSequence()
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/aria_radiobutton.py b/test/keystrokes/firefox/aria_radiobutton.py
index c58e792..023fd09 100644
--- a/test/keystrokes/firefox/aria_radiobutton.py
+++ b/test/keystrokes/firefox/aria_radiobutton.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_roledescription_where_am_i.py 
b/test/keystrokes/firefox/aria_roledescription_where_am_i.py
index bc3f7ce..766d41d 100644
--- a/test/keystrokes/firefox/aria_roledescription_where_am_i.py
+++ b/test/keystrokes/firefox/aria_roledescription_where_am_i.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/aria_slider.py b/test/keystrokes/firefox/aria_slider.py
index df0682c..e4ca98a 100644
--- a/test/keystrokes/firefox/aria_slider.py
+++ b/test/keystrokes/firefox/aria_slider.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_slider_dojo.py b/test/keystrokes/firefox/aria_slider_dojo.py
index 05f5048..59d5908 100644
--- a/test/keystrokes/firefox/aria_slider_dojo.py
+++ b/test/keystrokes/firefox/aria_slider_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/aria_slider_tpg.py b/test/keystrokes/firefox/aria_slider_tpg.py
index 8c7bf3f..acdb3a7 100644
--- a/test/keystrokes/firefox/aria_slider_tpg.py
+++ b/test/keystrokes/firefox/aria_slider_tpg.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
 
diff --git a/test/keystrokes/firefox/aria_sliders.py b/test/keystrokes/firefox/aria_sliders.py
index 640e5ec..82cf36c 100644
--- a/test/keystrokes/firefox/aria_sliders.py
+++ b/test/keystrokes/firefox/aria_sliders.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/aria_spinner_dojo.py b/test/keystrokes/firefox/aria_spinner_dojo.py
index 2642b7a..f2b8a94 100644
--- a/test/keystrokes/firefox/aria_spinner_dojo.py
+++ b/test/keystrokes/firefox/aria_spinner_dojo.py
@@ -7,59 +7,60 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Tab to the first spinner",
-    ["BRAILLE LINE:  'Spinbox #1:  900 $l'",
-     "     VISIBLE:  'Spinbox #1:  900 $l', cursor=17",
+    ["BRAILLE LINE:  'Spinbox #1: 900 $l'",
+     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=16",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
-     "BRAILLE LINE:  'Spinbox #1:  900 $l'",
-     "     VISIBLE:  'Spinbox #1:  900 $l', cursor=17",
-     "SPEECH OUTPUT: 'Spinbox #1:  900 selected spin button'",
+     "BRAILLE LINE:  'Spinbox #1: 900 $l'",
+     "     VISIBLE:  'Spinbox #1: 900 $l', cursor=16",
+     "SPEECH OUTPUT: 'Spinbox #1: 900 selected spin button'",
      "SPEECH OUTPUT: 'Focus mode' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Decrement first spinner",
-    ["BRAILLE LINE:  'Spinbox #1:  899 $l'",
-     "     VISIBLE:  'Spinbox #1:  899 $l', cursor=17",
-     "BRAILLE LINE:  'Spinbox #1:  899 $l'",
-     "     VISIBLE:  'Spinbox #1:  899 $l', cursor=17",
+    ["BRAILLE LINE:  'Spinbox #1: 899 $l'",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "BRAILLE LINE:  'Spinbox #1: 899 $l'",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
      "SPEECH OUTPUT: '899'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Decrement first spinner",
-    ["BRAILLE LINE:  'Spinbox #1:  898 $l'",
-     "     VISIBLE:  'Spinbox #1:  898 $l', cursor=17",
-     "BRAILLE LINE:  'Spinbox #1:  898 $l'",
-     "     VISIBLE:  'Spinbox #1:  898 $l', cursor=17",
+    ["BRAILLE LINE:  'Spinbox #1: 898 $l'",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
+     "BRAILLE LINE:  'Spinbox #1: 898 $l'",
+     "     VISIBLE:  'Spinbox #1: 898 $l', cursor=16",
      "SPEECH OUTPUT: '898'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Increment first spinner",
-    ["BRAILLE LINE:  'Spinbox #1:  899 $l'",
-     "     VISIBLE:  'Spinbox #1:  899 $l', cursor=17",
-     "BRAILLE LINE:  'Spinbox #1:  899 $l'",
-     "     VISIBLE:  'Spinbox #1:  899 $l', cursor=17",
+    ["BRAILLE LINE:  'Spinbox #1: 899 $l'",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "BRAILLE LINE:  'Spinbox #1: 899 $l'",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
      "SPEECH OUTPUT: '899'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "5. basic whereAmI",
-    ["BRAILLE LINE:  'Spinbox #1:  899 $l'",
-     "     VISIBLE:  'Spinbox #1:  899 $l', cursor=17",
-     "SPEECH OUTPUT: 'Spinbox #1:  spin button 899'"]))
+    ["BRAILLE LINE:  'Spinbox #1: 899 $l'",
+     "     VISIBLE:  'Spinbox #1: 899 $l', cursor=16",
+     "SPEECH OUTPUT: 'Spinbox #1: spin button 899'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/aria_tabcontainer_dojo.py 
b/test/keystrokes/firefox/aria_tabcontainer_dojo.py
index bb2b2bc..6b76dbc 100644
--- a/test/keystrokes/firefox/aria_tabcontainer_dojo.py
+++ b/test/keystrokes/firefox/aria_tabcontainer_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(PauseAction(3000))
 
diff --git a/test/keystrokes/firefox/aria_tabpanel.py b/test/keystrokes/firefox/aria_tabpanel.py
index 0f3dc59..c0ae931 100644
--- a/test/keystrokes/firefox/aria_tabpanel.py
+++ b/test/keystrokes/firefox/aria_tabpanel.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -19,8 +20,6 @@ sequence.append(utils.AssertPresentationAction(
     "1. Basic whereAmI",
     ["BRAILLE LINE:  'Tab Zero page tab'",
      "     VISIBLE:  'Tab Zero page tab', cursor=1",
-     "BRAILLE LINE:  'Tab Zero page tab'",
-     "     VISIBLE:  'Tab Zero page tab', cursor=1",
      "SPEECH OUTPUT: 'page tab list.'",
      "SPEECH OUTPUT: 'Tab Zero page tab.'",
      "SPEECH OUTPUT: '1 of 5'"]))
diff --git a/test/keystrokes/firefox/aria_tabpanel2.py b/test/keystrokes/firefox/aria_tabpanel2.py
index 169a15a..4847692 100644
--- a/test/keystrokes/firefox/aria_tabpanel2.py
+++ b/test/keystrokes/firefox/aria_tabpanel2.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -17,6 +18,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Give focus to a widget in the first Tab",
     ["BRAILLE LINE:  '&=y Thick and cheesy radio button'",
      "     VISIBLE:  '&=y Thick and cheesy radio butto', cursor=1",
+     "SPEECH OUTPUT: 'List with 4 items'",
      "SPEECH OUTPUT: 'Thick and cheesy.'",
      "SPEECH OUTPUT: 'selected radio button'"]))
 
@@ -75,6 +77,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '< > Pepperoni check box', cursor=1",
      "BRAILLE LINE:  'Browse mode'",
      "     VISIBLE:  'Browse mode', cursor=0",
+     "SPEECH OUTPUT: 'List with 4 items'",
      "SPEECH OUTPUT: 'Pepperoni check box not checked'",
      "SPEECH OUTPUT: 'Browse mode' voice=system"]))
 
diff --git a/test/keystrokes/firefox/aria_tabpanel_text_dojo.py 
b/test/keystrokes/firefox/aria_tabpanel_text_dojo.py
index 2ccb206..721a482 100644
--- a/test/keystrokes/firefox/aria_tabpanel_text_dojo.py
+++ b/test/keystrokes/firefox/aria_tabpanel_text_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
@@ -24,7 +25,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'First tab page tab', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
-     "SPEECH OUTPUT: 'TabContainer Dialog This is the first tab.  Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum 
lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non 
mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus.'",
+     "SPEECH OUTPUT: 'TabContainer Dialog This is the first tab. Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum 
lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non 
mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus.'",
      "SPEECH OUTPUT: 'First tab page tab.'",
      "SPEECH OUTPUT: 'Focus mode' voice=system"]))
 
diff --git a/test/keystrokes/firefox/aria_toolbar_dojo.py b/test/keystrokes/firefox/aria_toolbar_dojo.py
index 85c4c87..e306a2c 100644
--- a/test/keystrokes/firefox/aria_toolbar_dojo.py
+++ b/test/keystrokes/firefox/aria_toolbar_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/aria_tree.py b/test/keystrokes/firefox/aria_tree.py
index ad771fb..7689a46 100644
--- a/test/keystrokes/firefox/aria_tree.py
+++ b/test/keystrokes/firefox/aria_tree.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/aria_tree_dojo.py b/test/keystrokes/firefox/aria_tree_dojo.py
index bdab4b7..32da1fc 100644
--- a/test/keystrokes/firefox/aria_tree_dojo.py
+++ b/test/keystrokes/firefox/aria_tree_dojo.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("Tab"))
 
diff --git a/test/keystrokes/firefox/aria_treegrid.py b/test/keystrokes/firefox/aria_treegrid.py
index 42ce795..356f2ac 100644
--- a/test/keystrokes/firefox/aria_treegrid.py
+++ b/test/keystrokes/firefox/aria_treegrid.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/find_wiki.py b/test/keystrokes/firefox/find_wiki.py
index 65fd2c8..26703a1 100644
--- a/test/keystrokes/firefox/find_wiki.py
+++ b/test/keystrokes/firefox/find_wiki.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("<Control>F"))
 sequence.append(TypeAction("orca"))
@@ -28,7 +29,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Welcome to Orca!'",
      "     VISIBLE:  'Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1.'",
-     "SPEECH OUTPUT: 'Welcome to Orca! link.'"]))
+     "SPEECH OUTPUT: 'Welcome to Orca!'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
diff --git a/test/keystrokes/firefox/flat_review_combo_box.py 
b/test/keystrokes/firefox/flat_review_combo_box.py
index 0d1d307..0e97522 100644
--- a/test/keystrokes/firefox/flat_review_combo_box.py
+++ b/test/keystrokes/firefox/flat_review_combo_box.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("Tab"))
 
@@ -33,9 +34,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_9"))
 sequence.append(utils.AssertPresentationAction(
     "3. Flat review next line",
-    ["BRAILLE LINE:  'Resolution:  $l'",
-     "     VISIBLE:  'Resolution:  $l', cursor=1",
-     "SPEECH OUTPUT: 'Resolution: ",
+    ["BRAILLE LINE:  'Resolution: $l'",
+     "     VISIBLE:  'Resolution: $l', cursor=1",
+     "SPEECH OUTPUT: 'Resolution:",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/flat_review_hidden_elements.py 
b/test/keystrokes/firefox/flat_review_hidden_elements.py
index 2be9bcb..510b259 100644
--- a/test/keystrokes/firefox/flat_review_hidden_elements.py
+++ b/test/keystrokes/firefox/flat_review_hidden_elements.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/flat_review_text_by_line.py 
b/test/keystrokes/firefox/flat_review_text_by_line.py
index ddd9f12..fab7ea6 100644
--- a/test/keystrokes/firefox/flat_review_text_by_line.py
+++ b/test/keystrokes/firefox/flat_review_text_by_line.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/flat_review_text_by_word_and_char.py 
b/test/keystrokes/firefox/flat_review_text_by_word_and_char.py
index 4fabbf4..f1431a1 100644
--- a/test/keystrokes/firefox/flat_review_text_by_word_and_char.py
+++ b/test/keystrokes/firefox/flat_review_text_by_word_and_char.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/focus_tracking_descriptions.py 
b/test/keystrokes/firefox/focus_tracking_descriptions.py
index e5413eb..290b18f 100644
--- a/test/keystrokes/firefox/focus_tracking_descriptions.py
+++ b/test/keystrokes/firefox/focus_tracking_descriptions.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/focus_tracking_imagemap.py 
b/test/keystrokes/firefox/focus_tracking_imagemap.py
index 685014c..545dc93 100644
--- a/test/keystrokes/firefox/focus_tracking_imagemap.py
+++ b/test/keystrokes/firefox/focus_tracking_imagemap.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/focus_tracking_input_type_number.py 
b/test/keystrokes/firefox/focus_tracking_input_type_number.py
index 44db767..155bc44 100644
--- a/test/keystrokes/firefox/focus_tracking_input_type_number.py
+++ b/test/keystrokes/firefox/focus_tracking_input_type_number.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/focus_tracking_link_child_of_body.py 
b/test/keystrokes/firefox/focus_tracking_link_child_of_body.py
index 12ca821..e6c49ee 100644
--- a/test/keystrokes/firefox/focus_tracking_link_child_of_body.py
+++ b/test/keystrokes/firefox/focus_tracking_link_child_of_body.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -17,7 +18,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  'Foo'",
      "     VISIBLE:  'Foo', cursor=1",
-     "SPEECH OUTPUT: 'Foo link.'"]))
+     "SPEECH OUTPUT: 'Foo'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Tab"))
diff --git a/test/keystrokes/firefox/focus_tracking_links.py b/test/keystrokes/firefox/focus_tracking_links.py
index 371fd58..ba4bf68 100644
--- a/test/keystrokes/firefox/focus_tracking_links.py
+++ b/test/keystrokes/firefox/focus_tracking_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 
 sequence.append(utils.StartRecordingAction())
@@ -16,20 +17,18 @@ sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  'Hello world, this is a test.'",
      "     VISIBLE:  'Hello world, this is a test.', cursor=1",
-     "SPEECH OUTPUT: 'Hello world link.'",
+     "SPEECH OUTPUT: 'Hello world'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', this is a test.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Down to the Foo link",
-    ["KNOWN ISSUE: We're double-presenting this due to the caret-moved event",
-     "BRAILLE LINE:  'Foo'",
-     "     VISIBLE:  'Foo', cursor=1",
-     "BRAILLE LINE:  'Foo'",
+    ["BRAILLE LINE:  'Foo'",
      "     VISIBLE:  'Foo', cursor=1",
-     "SPEECH OUTPUT: 'Foo link.'",
-     "SPEECH OUTPUT: 'Foo'"]))
+     "SPEECH OUTPUT: 'Foo'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
diff --git a/test/keystrokes/firefox/focus_tracking_radios_with_label_and_name.py 
b/test/keystrokes/firefox/focus_tracking_radios_with_label_and_name.py
index aa01104..32d5b71 100644
--- a/test/keystrokes/firefox/focus_tracking_radios_with_label_and_name.py
+++ b/test/keystrokes/firefox/focus_tracking_radios_with_label_and_name.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/focus_tracking_roledescriptions.py 
b/test/keystrokes/firefox/focus_tracking_roledescriptions.py
index 29ac79e..77942cf 100644
--- a/test/keystrokes/firefox/focus_tracking_roledescriptions.py
+++ b/test/keystrokes/firefox/focus_tracking_roledescriptions.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_page_summary.py b/test/keystrokes/firefox/html_page_summary.py
index 7ff599b..11c8de4 100644
--- a/test/keystrokes/firefox/html_page_summary.py
+++ b/test/keystrokes/firefox/html_page_summary.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction("6"))
diff --git a/test/keystrokes/firefox/html_role_combo_box.py b/test/keystrokes/firefox/html_role_combo_box.py
index 523e76b..2aeb26c 100644
--- a/test/keystrokes/firefox/html_role_combo_box.py
+++ b/test/keystrokes/firefox/html_role_combo_box.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_role_links.py b/test/keystrokes/firefox/html_role_links.py
index 924893d..8e58f6f 100644
--- a/test/keystrokes/firefox/html_role_links.py
+++ b/test/keystrokes/firefox/html_role_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -68,10 +69,12 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '1188 bytes.'"]))
 
 sequence.append(KeyComboAction("Return"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(KeyComboAction("<Alt>Left"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -80,7 +83,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• anchors.html'",
      "     VISIBLE:  '• anchors.html', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'anchors.html link.'"]))
+     "SPEECH OUTPUT: 'anchors.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
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 4671375..7c931c0 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
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/html_struct_nav_activate_link.py 
b/test/keystrokes/firefox/html_struct_nav_activate_link.py
index 63140fa..67d2e97 100644
--- a/test/keystrokes/firefox/html_struct_nav_activate_link.py
+++ b/test/keystrokes/firefox/html_struct_nav_activate_link.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -18,7 +19,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Anchors2.html h3', cursor=1",
      "BRAILLE LINE:  'Anchors2.html h3'",
      "     VISIBLE:  'Anchors2.html h3', cursor=1",
-     "SPEECH OUTPUT: 'Anchors2.html link heading level 3.'"]))
+     "SPEECH OUTPUT: 'Anchors2.html'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
diff --git a/test/keystrokes/firefox/html_struct_nav_blockquote.py 
b/test/keystrokes/firefox/html_struct_nav_blockquote.py
index 25e7389..2b6d945 100644
--- a/test/keystrokes/firefox/html_struct_nav_blockquote.py
+++ b/test/keystrokes/firefox/html_struct_nav_blockquote.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_554616.py 
b/test/keystrokes/firefox/html_struct_nav_bug_554616.py
index 93e5b88..39cf9db 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_554616.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_554616.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("<Control>Home"))
 
@@ -70,9 +71,11 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'installer'",
      "     VISIBLE:  'installer', cursor=1",
      "SPEECH OUTPUT: 'Download'",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10190 KB).'",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9154 KB).'",
      "SPEECH OUTPUT: 'Row 2, column 3.' voice=system",
      "SPEECH OUTPUT: 'blank' voice=system"]))
@@ -87,9 +90,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'installer (10193 KB) portable ar', cursor=1",
      "BRAILLE LINE:  'Row 3, column 3.'",
      "     VISIBLE:  'Row 3, column 3.', cursor=0",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10193 KB).'",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9149 KB).'",
      "SPEECH OUTPUT: 'Row 3, column 3.' voice=system"]))
 
@@ -137,9 +142,11 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'Row 4, column 3.'",
      "     VISIBLE:  'Row 4, column 3.', cursor=0",
      "SPEECH OUTPUT: 'Download'",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10186 KB).'",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9146 KB).'",
      "SPEECH OUTPUT: 'Row 4, column 3.' voice=system"]))
 
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_556470.py 
b/test/keystrokes/firefox/html_struct_nav_bug_556470.py
index 888a15c..e51541d 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_556470.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_556470.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_567984.py 
b/test/keystrokes/firefox/html_struct_nav_bug_567984.py
index 3f96f28..8ecc97d 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_567984.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_567984.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -29,13 +30,13 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("h"))
 sequence.append(utils.AssertPresentationAction(
     "3. h",
-    ["BRAILLE LINE:  'Izrael bejelentette az ",
-     "egyoldal\xfa t\xfbzsz\xfcnetet h3'",
-     "     VISIBLE:  'Izrael bejelentette az ",
-     "egyoldal', cursor=1",
-     "BRAILLE LINE:  'Izrael bejelentette az  h3'",
-     "     VISIBLE:  'Izrael bejelentette az  h3', cursor=1",
-     "SPEECH OUTPUT: 'Izrael bejelentette az ",
+    ["BRAILLE LINE:  'Izrael bejelentette az",
+     "egyoldalú tûzszünetet h3'",
+     "     VISIBLE:  'Izrael bejelentette az",
+     "egyoldalú', cursor=1",
+     "BRAILLE LINE:  'Izrael bejelentette az h3'",
+     "     VISIBLE:  'Izrael bejelentette az h3', cursor=1",
+     "SPEECH OUTPUT: 'Izrael bejelentette az",
      "egyoldalú tûzszünetet'",
      "SPEECH OUTPUT: 'link heading level 3.'"]))
 
@@ -45,7 +46,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. h",
     ["BRAILLE LINE:  'Videók a Hudsonba zuhanó repülõrõl h3'",
      "     VISIBLE:  'Videók a Hudsonba zuhanó repülõr', cursor=1",
-     "SPEECH OUTPUT: 'Videók a Hudsonba zuhanó repülõrõl link heading level 3.'"]))
+     "SPEECH OUTPUT: 'Videók a Hudsonba zuhanó repülõrõl'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("h"))
@@ -53,7 +55,8 @@ sequence.append(utils.AssertPresentationAction(
     "5. h",
     ["BRAILLE LINE:  'Újabb pénzügyi guru tûnt el, pénzzel együtt h3'",
      "     VISIBLE:  'Újabb pénzügyi guru tûnt el, pén', cursor=1",
-     "SPEECH OUTPUT: 'Újabb pénzügyi guru tûnt el, pénzzel együtt link heading level 3.'"]))
+     "SPEECH OUTPUT: 'Újabb pénzügyi guru tûnt el, pénzzel együtt'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -69,7 +72,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Down",
     ["BRAILLE LINE:  '1150 embert utcára tesz a pécsi Elcoteq h3'",
      "     VISIBLE:  '1150 embert utcára tesz a pécsi ', cursor=1",
-     "SPEECH OUTPUT: '1150 embert utcára tesz a pécsi Elcoteq link heading level 3.'"]))
+     "SPEECH OUTPUT: '1150 embert utcára tesz a pécsi Elcoteq'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("h"))
@@ -77,7 +81,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. h",
     ["BRAILLE LINE:  'Hamarosan újraindul a gázszállítás h3'",
      "     VISIBLE:  'Hamarosan újraindul a gázszállít', cursor=1",
-     "SPEECH OUTPUT: 'Hamarosan újraindul a gázszállítás link heading level 3.'"]))
+     "SPEECH OUTPUT: 'Hamarosan újraindul a gázszállítás'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -93,7 +98,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Shift+h",
     ["BRAILLE LINE:  'Hamarosan újraindul a gázszállítás h3'",
      "     VISIBLE:  'Hamarosan újraindul a gázszállít', cursor=1",
-     "SPEECH OUTPUT: 'Hamarosan újraindul a gázszállítás link heading level 3.'"]))
+     "SPEECH OUTPUT: 'Hamarosan újraindul a gázszállítás'",
+     "SPEECH OUTPUT: 'link heading level 3.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_struct_nav_bug_591592.py 
b/test/keystrokes/firefox/html_struct_nav_bug_591592.py
index 942e9f6..556cf8b 100644
--- a/test/keystrokes/firefox/html_struct_nav_bug_591592.py
+++ b/test/keystrokes/firefox/html_struct_nav_bug_591592.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/html_struct_nav_clickable_text_change.py 
b/test/keystrokes/firefox/html_struct_nav_clickable_text_change.py
index bf34424..5bfb129 100644
--- a/test/keystrokes/firefox/html_struct_nav_clickable_text_change.py
+++ b/test/keystrokes/firefox/html_struct_nav_clickable_text_change.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/html_struct_nav_descriptions.py 
b/test/keystrokes/firefox/html_struct_nav_descriptions.py
index 6057a92..c172e25 100644
--- a/test/keystrokes/firefox/html_struct_nav_descriptions.py
+++ b/test/keystrokes/firefox/html_struct_nav_descriptions.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -18,7 +19,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Foo', cursor=1",
      "BRAILLE LINE:  'Foo'",
      "     VISIBLE:  'Foo', cursor=1",
-     "SPEECH OUTPUT: 'Foo link.'",
+     "SPEECH OUTPUT: 'Foo'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Title of the Foo link.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -27,7 +29,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. k for next link",
     ["BRAILLE LINE:  'Bar'",
      "     VISIBLE:  'Bar', cursor=1",
-     "SPEECH OUTPUT: 'Bar link.'",
+     "SPEECH OUTPUT: 'Bar'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'ARIA description text.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -36,7 +39,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. k for next link",
     ["BRAILLE LINE:  'Baz'",
      "     VISIBLE:  'Baz', cursor=1",
-     "SPEECH OUTPUT: 'Baz link.'",
+     "SPEECH OUTPUT: 'Baz'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Title of the Baz link.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_heading_empty.py 
b/test/keystrokes/firefox/html_struct_nav_heading_empty.py
index de8db14..2b3657d 100644
--- a/test/keystrokes/firefox/html_struct_nav_heading_empty.py
+++ b/test/keystrokes/firefox/html_struct_nav_heading_empty.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_heading_in_div_with_text.py 
b/test/keystrokes/firefox/html_struct_nav_heading_in_div_with_text.py
index ba90feb..d52ad1c 100644
--- a/test/keystrokes/firefox/html_struct_nav_heading_in_div_with_text.py
+++ b/test/keystrokes/firefox/html_struct_nav_heading_in_div_with_text.py
@@ -7,18 +7,20 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("2"))
 sequence.append(utils.AssertPresentationAction(
-    "1. 2 for first heading",
-    ["BRAILLE LINE:  'First Heading  h2'",
-     "     VISIBLE:  'First Heading  h2', cursor=1",
-     "BRAILLE LINE:  'First Heading  h2'",
-     "     VISIBLE:  'First Heading  h2', cursor=1",
-     "SPEECH OUTPUT: 'First Heading  link heading level 2.'"]))
+    "1. 2 for first Heading",
+    ["BRAILLE LINE:  'First Heading h2'",
+     "     VISIBLE:  'First Heading h2', cursor=1",
+     "BRAILLE LINE:  'First Heading h2'",
+     "     VISIBLE:  'First Heading h2', cursor=1",
+     "SPEECH OUTPUT: 'First Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -32,9 +34,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("2"))
 sequence.append(utils.AssertPresentationAction(
     "3. 2 to move to the next heading",
-    ["BRAILLE LINE:  'Second Heading  h2'",
-     "     VISIBLE:  'Second Heading  h2', cursor=1",
-     "SPEECH OUTPUT: 'Second Heading  link heading level 2.'"]))
+    ["BRAILLE LINE:  'Second Heading h2'",
+     "     VISIBLE:  'Second Heading h2', cursor=1",
+     "SPEECH OUTPUT: 'Second Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -48,9 +51,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>2"))
 sequence.append(utils.AssertPresentationAction(
     "5. Shift+2 to move to the previous heading",
-    ["BRAILLE LINE:  'Second Heading  h2'",
-     "     VISIBLE:  'Second Heading  h2', cursor=1",
-     "SPEECH OUTPUT: 'Second Heading  link heading level 2.'"]))
+    ["BRAILLE LINE:  'Second Heading h2'",
+     "     VISIBLE:  'Second Heading h2', cursor=1",
+     "SPEECH OUTPUT: 'Second Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -64,9 +68,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>2"))
 sequence.append(utils.AssertPresentationAction(
     "7. Shift+2 to move to the previous heading",
-    ["BRAILLE LINE:  'First Heading  h2'",
-     "     VISIBLE:  'First Heading  h2', cursor=1",
-     "SPEECH OUTPUT: 'First Heading  link heading level 2.'"]))
+    ["BRAILLE LINE:  'First Heading h2'",
+     "     VISIBLE:  'First Heading h2', cursor=1",
+     "SPEECH OUTPUT: 'First Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>2"))
@@ -74,10 +79,11 @@ sequence.append(utils.AssertPresentationAction(
     "8. Shift+2 to move to the previous heading",
     ["BRAILLE LINE:  'Wrapping to bottom.'",
      "     VISIBLE:  'Wrapping to bottom.', cursor=0",
-     "BRAILLE LINE:  'Second Heading  h2'",
-     "     VISIBLE:  'Second Heading  h2', cursor=1",
+     "BRAILLE LINE:  'Second Heading h2'",
+     "     VISIBLE:  'Second Heading h2', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.' voice=system",
-     "SPEECH OUTPUT: 'Second Heading  link heading level 2.'"]))
+     "SPEECH OUTPUT: 'Second Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("2"))
@@ -85,10 +91,11 @@ sequence.append(utils.AssertPresentationAction(
     "9. 2 to move to the next heading",
     ["BRAILLE LINE:  'Wrapping to top.'",
      "     VISIBLE:  'Wrapping to top.', cursor=0",
-     "BRAILLE LINE:  'First Heading  h2'",
-     "     VISIBLE:  'First Heading  h2', cursor=1",
+     "BRAILLE LINE:  'First Heading h2'",
+     "     VISIBLE:  'First Heading h2', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.' voice=system",
-     "SPEECH OUTPUT: 'First Heading  link heading level 2.'"]))
+     "SPEECH OUTPUT: 'First Heading'",
+     "SPEECH OUTPUT: 'link heading level 2.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_struct_nav_heading_with_child_text.py 
b/test/keystrokes/firefox/html_struct_nav_heading_with_child_text.py
index 453a0df..581f4db 100644
--- a/test/keystrokes/firefox/html_struct_nav_heading_with_child_text.py
+++ b/test/keystrokes/firefox/html_struct_nav_heading_with_child_text.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_heading_with_clickable.py 
b/test/keystrokes/firefox/html_struct_nav_heading_with_clickable.py
index e809aef..039a5ef 100644
--- a/test/keystrokes/firefox/html_struct_nav_heading_with_clickable.py
+++ b/test/keystrokes/firefox/html_struct_nav_heading_with_clickable.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -16,7 +17,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. h for next heading",
     ["BRAILLE LINE:  'line 2 h1'",
      "     VISIBLE:  'line 2 h1', cursor=1",
-     "SPEECH OUTPUT: 'line 2 link heading level 1.'",
+     "SPEECH OUTPUT: 'line 2'",
+     "SPEECH OUTPUT: 'link heading level 1.'",
      "SPEECH OUTPUT: 'clickable'"]))
 
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_headings_buried_deep.py 
b/test/keystrokes/firefox/html_struct_nav_headings_buried_deep.py
index 55c3ba1..d77b9b9 100644
--- a/test/keystrokes/firefox/html_struct_nav_headings_buried_deep.py
+++ b/test/keystrokes/firefox/html_struct_nav_headings_buried_deep.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/html_struct_nav_headings_with_hidden_anchors.py 
b/test/keystrokes/firefox/html_struct_nav_headings_with_hidden_anchors.py
index 804d487..55d3b7e 100644
--- a/test/keystrokes/firefox/html_struct_nav_headings_with_hidden_anchors.py
+++ b/test/keystrokes/firefox/html_struct_nav_headings_with_hidden_anchors.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/html_struct_nav_hidden_paragraphs.py 
b/test/keystrokes/firefox/html_struct_nav_hidden_paragraphs.py
index e51ca52..10a35e4 100644
--- a/test/keystrokes/firefox/html_struct_nav_hidden_paragraphs.py
+++ b/test/keystrokes/firefox/html_struct_nav_hidden_paragraphs.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/html_struct_nav_large_obj.py 
b/test/keystrokes/firefox/html_struct_nav_large_obj.py
index 303b46b..ca6f9f5 100644
--- a/test/keystrokes/firefox/html_struct_nav_large_obj.py
+++ b/test/keystrokes/firefox/html_struct_nav_large_obj.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -137,57 +138,57 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("o"))
 sequence.append(utils.AssertPresentationAction(
     "4. o to fourth large chunk", 
-    ["BRAILLE LINE:  'I am a tranquilizer. ",
-     "I am effective at home, ",
-     "I work well at the office, ",
-     "I take exams, ",
-     "I appear in court, ",
-     "I carefully mend broken crockery - ",
-     "all you need do is take me, ",
-     "dissolve me under the tongue, ",
-     "all you need do is swallow me, ",
-     "just wash me down with water. I know how to cope with misfortune, ",
-     "how to endure bad news, ",
-     "take the edge of injustice, ",
-     "make up for the absence of God, ",
-     "help pick out your widow's weeds. ",
-     "What are you waiting for - ",
-     "have faith in chemistry's compassion. You're still a young man/woman, ",
-     "you really should settle down somehow. ",
-     "Who said ",
-     "life must be lived courageously? Hand your abyss over to me - ",
-     "I will line it up with soft sleep, ",
-     "you'll be grateful for ",
-     "the four-footed landing. Sell me your soul. ",
+    ["BRAILLE LINE:  'I am a tranquilizer.",
+     "I am effective at home,",
+     "I work well at the office,",
+     "I take exams,",
+     "I appear in court,",
+     "I carefully mend broken crockery -",
+     "all you need do is take me,",
+     "dissolve me under the tongue,",
+     "all you need do is swallow me,",
+     "just wash me down with water. I know how to cope with misfortune,",
+     "how to endure bad news,",
+     "take the edge of injustice,",
+     "make up for the absence of God,",
+     "help pick out your widow's weeds.",
+     "What are you waiting for -",
+     "have faith in chemistry's compassion. You're still a young man/woman,",
+     "you really should settle down somehow.",
+     "Who said",
+     "life must be lived courageously? Hand your abyss over to me -",
+     "I will line it up with soft sleep,",
+     "you'll be grateful for",
+     "the four-footed landing. Sell me your soul.",
      "There's no other buyer likely to turn up.'",
-     "     VISIBLE:  'I am a tranquilizer. ",
-     "I am effec', cursor=1",
-     "SPEECH OUTPUT: 'I am a tranquilizer. ",
-     "I am effective at home, ",
-     "I work well at the office, ",
-     "I take exams, ",
-     "I appear in court, ",
-     "I carefully mend broken crockery - ",
-     "all you need do is take me, ",
-     "dissolve me under the tongue, ",
-     "all you need do is swallow me, ",
+     "     VISIBLE:  'I am a tranquilizer.",
+     "I am effect', cursor=1",
+     "SPEECH OUTPUT: 'I am a tranquilizer.",
+     "I am effective at home,",
+     "I work well at the office,",
+     "I take exams,",
+     "I appear in court,",
+     "I carefully mend broken crockery -",
+     "all you need do is take me,",
+     "dissolve me under the tongue,",
+     "all you need do is swallow me,",
      "just wash me down with water.'",
-     "SPEECH OUTPUT: 'I know how to cope with misfortune, ",
-     "how to endure bad news, ",
-     "take the edge of injustice, ",
-     "make up for the absence of God, ",
-     "help pick out your widow's weeds. ",
-     "What are you waiting for - ",
+     "SPEECH OUTPUT: 'I know how to cope with misfortune,",
+     "how to endure bad news,",
+     "take the edge of injustice,",
+     "make up for the absence of God,",
+     "help pick out your widow's weeds.",
+     "What are you waiting for -",
      "have faith in chemistry's compassion.'",
-     "SPEECH OUTPUT: 'You're still a young man/woman, ",
-     "you really should settle down somehow. ",
-     "Who said ",
+     "SPEECH OUTPUT: 'You're still a young man/woman,",
+     "you really should settle down somehow.",
+     "Who said",
      "life must be lived courageously?'",
-     "SPEECH OUTPUT: 'Hand your abyss over to me - ",
-     "I will line it up with soft sleep, ",
-     "you'll be grateful for ",
+     "SPEECH OUTPUT: 'Hand your abyss over to me -",
+     "I will line it up with soft sleep,",
+     "you'll be grateful for",
      "the four-footed landing.'",
-     "SPEECH OUTPUT: 'Sell me your soul. ",
+     "SPEECH OUTPUT: 'Sell me your soul.",
      "There's no other buyer likely to turn up.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_link_with_child_text.py 
b/test/keystrokes/firefox/html_struct_nav_link_with_child_text.py
index cb90475..8b31641 100644
--- a/test/keystrokes/firefox/html_struct_nav_link_with_child_text.py
+++ b/test/keystrokes/firefox/html_struct_nav_link_with_child_text.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
@@ -16,7 +17,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'line 2', cursor=1",
      "BRAILLE LINE:  'line 2'",
      "     VISIBLE:  'line 2', cursor=1",
-     "SPEECH OUTPUT: 'line 2 link.'"]))
+     "SPEECH OUTPUT: 'line 2'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_struct_nav_links.py 
b/test/keystrokes/firefox/html_struct_nav_links.py
index 33dcb41..c3c1a48 100644
--- a/test/keystrokes/firefox/html_struct_nav_links.py
+++ b/test/keystrokes/firefox/html_struct_nav_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(2000))
 sequence.append(KeyComboAction("<Control>Home"))
 
@@ -19,7 +20,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'anchors.html', cursor=1",
      "BRAILLE LINE:  'anchors.html'",
      "     VISIBLE:  'anchors.html', cursor=1",
-     "SPEECH OUTPUT: 'anchors.html link.'"]))
+     "SPEECH OUTPUT: 'anchors.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("u"))
@@ -27,7 +29,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. u to blockquotes.html link",
     ["BRAILLE LINE:  'blockquotes.html'",
      "     VISIBLE:  'blockquotes.html', cursor=1",
-     "SPEECH OUTPUT: 'blockquotes.html link.'"]))
+     "SPEECH OUTPUT: 'blockquotes.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>u"))
@@ -35,7 +38,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. shift + u to anchors.html link",
     ["BRAILLE LINE:  'anchors.html'",
      "     VISIBLE:  'anchors.html', cursor=1",
-     "SPEECH OUTPUT: 'anchors.html link.'"]))
+     "SPEECH OUTPUT: 'anchors.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>u"))
@@ -46,7 +50,8 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'textattributes.html'",
      "     VISIBLE:  'textattributes.html', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.' voice=system",
-     "SPEECH OUTPUT: 'textattributes.html link.'"]))
+     "SPEECH OUTPUT: 'textattributes.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>u"))
@@ -54,14 +59,17 @@ sequence.append(utils.AssertPresentationAction(
     "5. shift + u to tables.html",
     ["BRAILLE LINE:  'tables.html'",
      "     VISIBLE:  'tables.html', cursor=1",
-     "SPEECH OUTPUT: 'tables.html link.'"]))
+     "SPEECH OUTPUT: 'tables.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(KeyComboAction("Return"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(2000))
 
 sequence.append(KeyComboAction("<Alt>Left"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(2000))
 
 sequence.append(utils.StartRecordingAction())
@@ -70,7 +78,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. u to textattributes.html link",
     ["BRAILLE LINE:  'textattributes.html'",
      "     VISIBLE:  'textattributes.html', cursor=1",
-     "SPEECH OUTPUT: 'textattributes.html link.'"]))
+     "SPEECH OUTPUT: 'textattributes.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("u"))
@@ -81,14 +90,17 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'anchors.html'",
      "     VISIBLE:  'anchors.html', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.' voice=system",
-     "SPEECH OUTPUT: 'anchors.html link.'"]))
+     "SPEECH OUTPUT: 'anchors.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(KeyComboAction("Return"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(2000))
 
 sequence.append(KeyComboAction("<Alt>Left"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(2000))
 
 sequence.append(utils.StartRecordingAction())
@@ -97,7 +109,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. v to tables.html link",
     ["BRAILLE LINE:  'tables.html'",
      "     VISIBLE:  'tables.html', cursor=1",
-     "SPEECH OUTPUT: 'tables.html link.'"]))
+     "SPEECH OUTPUT: 'tables.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("v"))
@@ -108,7 +121,8 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'anchors.html'",
      "     VISIBLE:  'anchors.html', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to top.' voice=system",
-     "SPEECH OUTPUT: 'anchors.html link.'"]))
+     "SPEECH OUTPUT: 'anchors.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>v"))
@@ -119,7 +133,8 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'tables.html'",
      "     VISIBLE:  'tables.html', cursor=1",
      "SPEECH OUTPUT: 'Wrapping to bottom.' voice=system",
-     "SPEECH OUTPUT: 'tables.html link.'"]))
+     "SPEECH OUTPUT: 'tables.html'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/html_struct_nav_list_item.py 
b/test/keystrokes/firefox/html_struct_nav_list_item.py
index ee882f5..49f9920 100644
--- a/test/keystrokes/firefox/html_struct_nav_list_item.py
+++ b/test/keystrokes/firefox/html_struct_nav_list_item.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/html_struct_nav_lists.py 
b/test/keystrokes/firefox/html_struct_nav_lists.py
index e9c79fc..9e9f34f 100644
--- a/test/keystrokes/firefox/html_struct_nav_lists.py
+++ b/test/keystrokes/firefox/html_struct_nav_lists.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("<Control>Home"))
 
diff --git a/test/keystrokes/firefox/label_inference_bug_546815.py 
b/test/keystrokes/firefox/label_inference_bug_546815.py
index 416de91..45a459b 100644
--- a/test/keystrokes/firefox/label_inference_bug_546815.py
+++ b/test/keystrokes/firefox/label_inference_bug_546815.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/label_inference_bugzilla_search.py 
b/test/keystrokes/firefox/label_inference_bugzilla_search.py
index e25f86f..2afcdd4 100644
--- a/test/keystrokes/firefox/label_inference_bugzilla_search.py
+++ b/test/keystrokes/firefox/label_inference_bugzilla_search.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -49,21 +50,21 @@ sequence.append(utils.AssertPresentationAction(
     "4. Tab",
     ["BRAILLE LINE:  'Search push button'",
      "     VISIBLE:  'Search push button', cursor=1",
-     "BRAILLE LINE:  'Admin '",
-     "     VISIBLE:  'Admin ', cursor=1",
+     "BRAILLE LINE:  'Admin'",
+     "     VISIBLE:  'Admin', cursor=1",
      "BRAILLE LINE:  'Focus mode'",
      "     VISIBLE:  'Focus mode', cursor=0",
      "SPEECH OUTPUT: 'table with 2 rows 1 column'",
      "SPEECH OUTPUT: 'Classification: multi-select List with 8 items'",
-     "SPEECH OUTPUT: 'Admin .'",
+     "SPEECH OUTPUT: 'Admin.'",
      "SPEECH OUTPUT: 'Focus mode' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "5. Tab",
-    ["BRAILLE LINE:  'Admin '",
-     "     VISIBLE:  'Admin ', cursor=1",
+    ["BRAILLE LINE:  'Admin'",
+     "     VISIBLE:  'Admin', cursor=1",
      "BRAILLE LINE:  'accerciser'",
      "     VISIBLE:  'accerciser', cursor=1",
      "SPEECH OUTPUT: 'table with 2 rows 1 column'",
@@ -241,7 +242,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '<x> the bug assignee check box', cursor=1",
      "BRAILLE LINE:  'Browse mode'",
      "     VISIBLE:  'Browse mode', cursor=0",
-     "SPEECH OUTPUT: 'Email and Numbering  panel'",
+     "SPEECH OUTPUT: 'Email and Numbering panel'",
      "SPEECH OUTPUT: 'the bug assignee check box checked'",
      "SPEECH OUTPUT: 'Browse mode' voice=system"]))
 
@@ -389,6 +390,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Only bugs changed between:  $l'",
      "     VISIBLE:  'Only bugs changed between:  $l', cursor=28",
      "SPEECH OUTPUT: 'Bug Changes panel'",
+     "SPEECH OUTPUT: 'List with 3 items'",
      "SPEECH OUTPUT: 'Only bugs changed between: entry'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/label_inference_entries.py 
b/test/keystrokes/firefox/label_inference_entries.py
index 42010d6..c4f5aa4 100644
--- a/test/keystrokes/firefox/label_inference_entries.py
+++ b/test/keystrokes/firefox/label_inference_entries.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/label_inference_labels_without_for_far_away.py 
b/test/keystrokes/firefox/label_inference_labels_without_for_far_away.py
index 57543aa..80aa9bb 100644
--- a/test/keystrokes/firefox/label_inference_labels_without_for_far_away.py
+++ b/test/keystrokes/firefox/label_inference_labels_without_for_far_away.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/label_inference_mailman.py 
b/test/keystrokes/firefox/label_inference_mailman.py
index f257e02..c3dcda9 100644
--- a/test/keystrokes/firefox/label_inference_mailman.py
+++ b/test/keystrokes/firefox/label_inference_mailman.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("<Control>Home"))
 
diff --git a/test/keystrokes/firefox/line_nav_bug_546815.py b/test/keystrokes/firefox/line_nav_bug_546815.py
index 1f22837..88ed325 100644
--- a/test/keystrokes/firefox/line_nav_bug_546815.py
+++ b/test/keystrokes/firefox/line_nav_bug_546815.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -70,7 +71,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
-    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text 
field using'",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text 
field'",
      "     VISIBLE:  '2. Enter your City:  $l 3. Enter', cursor=1",
      "SPEECH OUTPUT: '2. Enter your City:'",
      "SPEECH OUTPUT: 'entry'",
@@ -79,7 +80,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '4. Enter your Country:'",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'US'",
-     "SPEECH OUTPUT: 'text field using'"]))
+     "SPEECH OUTPUT: 'text field'"]))
 
 sequence.append(KeyComboAction("Down"))
 
@@ -366,7 +367,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "41. Line Up",
-    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text 
field using'",
+    ["BRAILLE LINE:  '2. Enter your City:  $l 3. Enter your State:  $l 4. Enter your Country: US $l text 
field'",
      "     VISIBLE:  '2. Enter your City:  $l 3. Enter', cursor=1",
      "SPEECH OUTPUT: '2. Enter your City:'",
      "SPEECH OUTPUT: 'entry'",
@@ -375,7 +376,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '4. Enter your Country:'",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'US'",
-     "SPEECH OUTPUT: 'text field using'"]))
+     "SPEECH OUTPUT: 'text field'"]))
 
 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 43313bd..21feef5 100644
--- a/test/keystrokes/firefox/line_nav_bug_549128.py
+++ b/test/keystrokes/firefox/line_nav_bug_549128.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -35,7 +36,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'The Ideal Gift Collection'",
      "     VISIBLE:  'The Ideal Gift Collection', cursor=1",
-     "SPEECH OUTPUT: 'The Ideal Gift Collection link.'"]))
+     "SPEECH OUTPUT: 'The Ideal Gift Collection'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -153,7 +155,8 @@ sequence.append(utils.AssertPresentationAction(
     "18. Line Up",
     ["BRAILLE LINE:  'The Ideal Gift Collection'",
      "     VISIBLE:  'The Ideal Gift Collection', cursor=1",
-     "SPEECH OUTPUT: 'The Ideal Gift Collection link.'"]))
+     "SPEECH OUTPUT: 'The Ideal Gift Collection'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_552887a.py b/test/keystrokes/firefox/line_nav_bug_552887a.py
index e47d217..9732490 100644
--- a/test/keystrokes/firefox/line_nav_bug_552887a.py
+++ b/test/keystrokes/firefox/line_nav_bug_552887a.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -18,8 +19,7 @@ sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
     ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: 'blank'"]))
+     "     VISIBLE:  '', cursor=1"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -51,7 +51,8 @@ sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
     ["BRAILLE LINE:  'The Orca logo image '",
      "     VISIBLE:  'The Orca logo image ', cursor=1",
-     "SPEECH OUTPUT: 'The Orca logo image Hey, look, it's our logo!'"]))
+     "SPEECH OUTPUT: 'The Orca logo image Hey, look, it's our logo!'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -211,7 +212,8 @@ sequence.append(utils.AssertPresentationAction(
     "25. Line Up",
     ["BRAILLE LINE:  'The Orca logo image '",
      "     VISIBLE:  'The Orca logo image ', cursor=1",
-     "SPEECH OUTPUT: 'The Orca logo image Hey, look, it's our logo!'"]))
+     "SPEECH OUTPUT: 'The Orca logo image Hey, look, it's our logo!'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_554616.py b/test/keystrokes/firefox/line_nav_bug_554616.py
index f2ae93b..2034318 100644
--- a/test/keystrokes/firefox/line_nav_bug_554616.py
+++ b/test/keystrokes/firefox/line_nav_bug_554616.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -39,7 +40,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'installer (10190 KB)'",
      "     VISIBLE:  'installer (10190 KB)', cursor=1",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10190 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -48,7 +50,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'portable archive (9154 KB)'",
      "     VISIBLE:  'portable archive (9154 KB)', cursor=1",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9154 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -66,7 +69,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
     ["BRAILLE LINE:  'installer (10193 KB)'",
      "     VISIBLE:  'installer (10193 KB)', cursor=1",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10193 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -75,7 +79,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  'portable archive (9149 KB)'",
      "     VISIBLE:  'portable archive (9149 KB)', cursor=1",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9149 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -84,7 +89,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
     ["BRAILLE LINE:  'installer (10193 KB)'",
      "     VISIBLE:  'installer (10193 KB)', cursor=1",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10193 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -102,7 +108,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Line Up",
     ["BRAILLE LINE:  'portable archive (9154 KB)'",
      "     VISIBLE:  'portable archive (9154 KB)', cursor=1",
-     "SPEECH OUTPUT: 'portable archive link.'",
+     "SPEECH OUTPUT: 'portable archive'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(9154 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -111,7 +118,8 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
     ["BRAILLE LINE:  'installer (10190 KB)'",
      "     VISIBLE:  'installer (10190 KB)', cursor=1",
-     "SPEECH OUTPUT: 'installer link.'",
+     "SPEECH OUTPUT: 'installer'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(10190 KB).'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_bug_555055.py b/test/keystrokes/firefox/line_nav_bug_555055.py
index e9032af..cdb190b 100644
--- a/test/keystrokes/firefox/line_nav_bug_555055.py
+++ b/test/keystrokes/firefox/line_nav_bug_555055.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 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 6c74ce5..9f7c40d 100644
--- a/test/keystrokes/firefox/line_nav_bug_570757.py
+++ b/test/keystrokes/firefox/line_nav_bug_570757.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -29,9 +30,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["BRAILLE LINE:  'Here is a step-by-step tutorial:'",
-     "     VISIBLE:  'Here is a step-by-step tutorial:', cursor=1",
-     "SPEECH OUTPUT: 'Here is a step-by-step tutorial:"]))
+    ["BRAILLE LINE:  'Solution  Here is a step-by-step tutorial:'",
+     "     VISIBLE:  'Solution  Here is a step-by-step', cursor=11",
+     "SPEECH OUTPUT: 'Here is a step-by-step tutorial: panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -61,9 +62,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. Line Up",
-    ["BRAILLE LINE:  'Here is a step-by-step tutorial:'",
-     "     VISIBLE:  'Here is a step-by-step tutorial:', cursor=1",
-     "SPEECH OUTPUT: 'Here is a step-by-step tutorial:"]))
+    ["BRAILLE LINE:  'Solution  Here is a step-by-step tutorial:'",
+     "     VISIBLE:  'Solution  Here is a step-by-step', cursor=11",
+     "SPEECH OUTPUT: 'Here is a step-by-step tutorial: panel'"]))
 
 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 640331b..38f6e0d 100644
--- a/test/keystrokes/firefox/line_nav_bug_577239.py
+++ b/test/keystrokes/firefox/line_nav_bug_577239.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -29,10 +30,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
-    ["KNOWN ISSUE: The second period is for a pause. We should weed that out.",
-     "BRAILLE LINE:  '1. This is a short list item.'",
+    ["BRAILLE LINE:  '1. This is a short list item.'",
      "     VISIBLE:  '1. This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: '1. This is a short list item. .'"]))
+     "SPEECH OUTPUT: '1. This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -72,7 +72,7 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["BRAILLE LINE:  '• This is a short list item.'",
      "     VISIBLE:  '• This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: '• This is a short list item. .'"]))
+     "SPEECH OUTPUT: '• This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -104,7 +104,7 @@ sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
     ["BRAILLE LINE:  '• This is a short list item.'",
      "     VISIBLE:  '• This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: '• This is a short list item. .'"]))
+     "SPEECH OUTPUT: '• This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -144,7 +144,7 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Up",
     ["BRAILLE LINE:  '1. This is a short list item.'",
      "     VISIBLE:  '1. This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: '1. This is a short list item. .'"]))
+     "SPEECH OUTPUT: '1. This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_bug_592383.py b/test/keystrokes/firefox/line_nav_bug_592383.py
index 45a18b8..b2dd51c 100644
--- a/test/keystrokes/firefox/line_nav_bug_592383.py
+++ b/test/keystrokes/firefox/line_nav_bug_592383.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_bugzilla_search_down.py 
b/test/keystrokes/firefox/line_nav_bugzilla_search_down.py
index a75d14a..4b05d42 100644
--- a/test/keystrokes/firefox/line_nav_bugzilla_search_down.py
+++ b/test/keystrokes/firefox/line_nav_bugzilla_search_down.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -25,21 +26,29 @@ sequence.append(utils.AssertPresentationAction(
     "1. 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.'",
+     "SPEECH OUTPUT: 'New bug'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Browse link.'",
+     "SPEECH OUTPUT: 'Browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Search link.'",
+     "SPEECH OUTPUT: 'Search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Reports link.'",
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Account link.'",
+     "SPEECH OUTPUT: 'Account'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Admin link.'",
+     "SPEECH OUTPUT: 'Admin'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Help link.'",
+     "SPEECH OUTPUT: 'Help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Logged In joanmarie diggs gmail com |'",
-     "SPEECH OUTPUT: 'Log Out link.'"]))
+     "SPEECH OUTPUT: 'Log Out'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -47,7 +56,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'Short Bug Search Form Complicated Bug Search Form'",
      "     VISIBLE:  'Short Bug Search Form Complicate', cursor=1",
-     "SPEECH OUTPUT: 'Short Bug Search Form  link.'",
+     "SPEECH OUTPUT: 'Short Bug Search Form'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Complicated Bug Search Form.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -56,7 +66,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. 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.'",
+     "SPEECH OUTPUT: 'Give me some help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(reloads page.)'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -82,9 +93,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
-    ["BRAILLE LINE:  'Admin  list box'",
-     "     VISIBLE:  'Admin  list box', cursor=1",
-     "SPEECH OUTPUT: 'Admin .'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 8 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -99,9 +109,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
-    ["BRAILLE LINE:  'accerciser list box'",
-     "     VISIBLE:  'accerciser list box', cursor=1",
-     "SPEECH OUTPUT: 'accerciser.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 379 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -110,16 +119,16 @@ sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
     ["BRAILLE LINE:  'Component:'",
      "     VISIBLE:  'Component:', cursor=1",
-     "SPEECH OUTPUT: 'Component link.'",
+     "SPEECH OUTPUT: 'Component'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ': column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  'abiscan list box'",
-     "     VISIBLE:  'abiscan list box', cursor=1",
-     "SPEECH OUTPUT: 'abiscan.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 1248 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -134,9 +143,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
-    ["BRAILLE LINE:  '0.0.1 list box'",
-     "     VISIBLE:  '0.0.1 list box', cursor=1",
-     "SPEECH OUTPUT: '0.0.1.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 857 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -151,9 +159,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
-    ["BRAILLE LINE:  '--- list box'",
-     "     VISIBLE:  '--- list box', cursor=1",
-     "SPEECH OUTPUT: '---.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 555 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -182,7 +189,8 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Down",
     ["BRAILLE LINE:  'Keywords: contains all of the keywords combo box $l'",
      "     VISIBLE:  'Keywords: contains all of the ke', cursor=1",
-     "SPEECH OUTPUT: 'Keywords link.'",
+     "SPEECH OUTPUT: 'Keywords'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ': row header'",
      "SPEECH OUTPUT: 'contains all of the keywords combo box.'",
      "SPEECH OUTPUT: 'entry'"]))
@@ -225,9 +233,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "22. Line Down",
-    ["BRAILLE LINE:  'FIXED list box'",
-     "     VISIBLE:  'FIXED list box', cursor=1",
-     "SPEECH OUTPUT: 'FIXED.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 12 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -242,9 +249,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "24. Line Down",
-    ["BRAILLE LINE:  'blocker list box'",
-     "     VISIBLE:  'blocker list box', cursor=1",
-     "SPEECH OUTPUT: 'blocker.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 7 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -259,9 +265,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "26. Line Down",
-    ["BRAILLE LINE:  'Immediate list box'",
-     "     VISIBLE:  'Immediate list box', cursor=1",
-     "SPEECH OUTPUT: 'Immediate.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 5 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -276,9 +281,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "28. Line Down",
-    ["BRAILLE LINE:  'All list box'",
-     "     VISIBLE:  'All list box', cursor=1",
-     "SPEECH OUTPUT: 'All.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 21 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -287,7 +291,7 @@ sequence.append(utils.AssertPresentationAction(
     "29. Line Down",
     ["BRAILLE LINE:  'Email and Numbering'",
      "     VISIBLE:  'Email and Numbering', cursor=1",
-     "SPEECH OUTPUT: 'Email and Numbering '"]))
+     "SPEECH OUTPUT: 'Email and Numbering'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -429,7 +433,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "47. Line Down",
-    ["BRAILLE LINE:  'Only include combo box bugs numbered:  $l'",
+    ["BRAILLE LINE:  'Only include combo box bugs numbered: $l'",
      "     VISIBLE:  'Only include combo box bugs numb', cursor=1",
      "SPEECH OUTPUT: 'Only include combo box.'",
      "SPEECH OUTPUT: 'bugs numbered:.'",
@@ -489,9 +493,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "54. Line Down",
-    ["BRAILLE LINE:  '[Bug creation] list box'",
-     "     VISIBLE:  '[Bug creation] list box', cursor=1",
-     "SPEECH OUTPUT: '[Bug creation].'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 26 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -522,9 +525,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "58. Line Down",
-    ["BRAILLE LINE:  'Unspecified list box'",
-     "     VISIBLE:  'Unspecified list box', cursor=1",
-     "SPEECH OUTPUT: 'Unspecified.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 14 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -539,9 +541,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "60. Line Down",
-    ["BRAILLE LINE:  'Unspecified list box'",
-     "     VISIBLE:  'Unspecified list box', cursor=1",
-     "SPEECH OUTPUT: 'Unspecified.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 12 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -628,15 +629,20 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Saved Searches: My Bugs and Patches | All Orca | Firefox | open orca | Open RFEs'",
      "     VISIBLE:  'Saved Searches: My Bugs and Patc', cursor=1",
      "SPEECH OUTPUT: 'Saved Searches:'",
-     "SPEECH OUTPUT: 'My Bugs and Patches link.'",
+     "SPEECH OUTPUT: 'My Bugs and Patches'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'All Orca link.'",
+     "SPEECH OUTPUT: 'All Orca'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Firefox link.'",
+     "SPEECH OUTPUT: 'Firefox'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'open orca link.'",
+     "SPEECH OUTPUT: 'open orca'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Open RFEs link.'"]))
+     "SPEECH OUTPUT: 'Open RFEs'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_bugzilla_search_up.py 
b/test/keystrokes/firefox/line_nav_bugzilla_search_up.py
index baa0423..41334bd 100644
--- a/test/keystrokes/firefox/line_nav_bugzilla_search_up.py
+++ b/test/keystrokes/firefox/line_nav_bugzilla_search_up.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -101,9 +102,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Up",
-    ["BRAILLE LINE:  'Unspecified list box'",
-     "     VISIBLE:  'Unspecified list box', cursor=1",
-     "SPEECH OUTPUT: 'Unspecified.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 12 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -118,9 +118,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
-    ["BRAILLE LINE:  'Unspecified list box'",
-     "     VISIBLE:  'Unspecified list box', cursor=1",
-     "SPEECH OUTPUT: 'Unspecified.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 14 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -151,9 +150,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "16. Line Up",
-    ["BRAILLE LINE:  '[Bug creation] list box'",
-     "     VISIBLE:  '[Bug creation] list box', cursor=1",
-     "SPEECH OUTPUT: '[Bug creation].'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 26 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -210,7 +208,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "23. Line Up",
-    ["BRAILLE LINE:  'Only include combo box bugs numbered:  $l'",
+    ["BRAILLE LINE:  'Only include combo box bugs numbered: $l'",
      "     VISIBLE:  'Only include combo box bugs numb', cursor=1",
      "SPEECH OUTPUT: 'Only include combo box.'",
      "SPEECH OUTPUT: 'bugs numbered:.'",
@@ -358,15 +356,14 @@ sequence.append(utils.AssertPresentationAction(
     "41. Line Up",
     ["BRAILLE LINE:  'Email and Numbering'",
      "     VISIBLE:  'Email and Numbering', cursor=1",
-     "SPEECH OUTPUT: 'Email and Numbering '"]))
+     "SPEECH OUTPUT: 'Email and Numbering'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "42. Line Up",
-    ["BRAILLE LINE:  'All list box'",
-     "     VISIBLE:  'All list box', cursor=1",
-     "SPEECH OUTPUT: 'All.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 21 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -381,9 +378,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "44. Line Up",
-    ["BRAILLE LINE:  'Immediate list box'",
-     "     VISIBLE:  'Immediate list box', cursor=1",
-     "SPEECH OUTPUT: 'Immediate.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 5 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -398,9 +394,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "46. Line Up",
-    ["BRAILLE LINE:  'blocker list box'",
-     "     VISIBLE:  'blocker list box', cursor=1",
-     "SPEECH OUTPUT: 'blocker.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 7 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -415,9 +410,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "48. Line Up",
-    ["BRAILLE LINE:  'FIXED list box'",
-     "     VISIBLE:  'FIXED list box', cursor=1",
-     "SPEECH OUTPUT: 'FIXED.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 12 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -459,7 +453,8 @@ sequence.append(utils.AssertPresentationAction(
     "53. Line Up",
     ["BRAILLE LINE:  'Keywords: contains all of the keywords combo box $l'",
      "     VISIBLE:  'Keywords: contains all of the ke', cursor=1",
-     "SPEECH OUTPUT: 'Keywords link.'",
+     "SPEECH OUTPUT: 'Keywords'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ': row header'",
      "SPEECH OUTPUT: 'contains all of the keywords combo box.'",
      "SPEECH OUTPUT: 'entry'"]))
@@ -488,9 +483,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "56. Line Up",
-    ["BRAILLE LINE:  '--- list box'",
-     "     VISIBLE:  '--- list box', cursor=1",
-     "SPEECH OUTPUT: '---.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 555 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -505,9 +499,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "58. Line Up",
-    ["BRAILLE LINE:  '0.0.1 list box'",
-     "     VISIBLE:  '0.0.1 list box', cursor=1",
-     "SPEECH OUTPUT: '0.0.1.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 857 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -522,9 +515,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "60. Line Up",
-    ["BRAILLE LINE:  'abiscan list box'",
-     "     VISIBLE:  'abiscan list box', cursor=1",
-     "SPEECH OUTPUT: 'abiscan.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 1248 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -533,16 +525,16 @@ sequence.append(utils.AssertPresentationAction(
     "61. Line Up",
     ["BRAILLE LINE:  'Component:'",
      "     VISIBLE:  'Component:', cursor=1",
-     "SPEECH OUTPUT: 'Component link.'",
+     "SPEECH OUTPUT: 'Component'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ': column header'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "62. Line Up",
-    ["BRAILLE LINE:  'accerciser list box'",
-     "     VISIBLE:  'accerciser list box', cursor=1",
-     "SPEECH OUTPUT: 'accerciser.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 379 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -557,9 +549,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "64. Line Up",
-    ["BRAILLE LINE:  'Admin  list box'",
-     "     VISIBLE:  'Admin  list box', cursor=1",
-     "SPEECH OUTPUT: 'Admin .'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 8 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -587,7 +578,8 @@ sequence.append(utils.AssertPresentationAction(
     "67. 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.'",
+     "SPEECH OUTPUT: 'Give me some help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '(reloads page.)'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -596,7 +588,8 @@ sequence.append(utils.AssertPresentationAction(
     "68. Line Up",
     ["BRAILLE LINE:  'Short Bug Search Form Complicated Bug Search Form'",
      "     VISIBLE:  'Short Bug Search Form Complicate', cursor=1",
-     "SPEECH OUTPUT: 'Short Bug Search Form  link.'",
+     "SPEECH OUTPUT: 'Short Bug Search Form'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Complicated Bug Search Form.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -605,21 +598,29 @@ sequence.append(utils.AssertPresentationAction(
     "69. 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.'",
+     "SPEECH OUTPUT: 'New bug'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Browse link.'",
+     "SPEECH OUTPUT: 'Browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Search link.'",
+     "SPEECH OUTPUT: 'Search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Reports link.'",
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Account link.'",
+     "SPEECH OUTPUT: 'Account'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Admin link.'",
+     "SPEECH OUTPUT: 'Admin'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Help link.'",
+     "SPEECH OUTPUT: 'Help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Logged In joanmarie diggs gmail com |'",
-     "SPEECH OUTPUT: 'Log Out link.'"]))
+     "SPEECH OUTPUT: 'Log Out'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/line_nav_button_in_link_position_relative_on_focus.py 
b/test/keystrokes/firefox/line_nav_button_in_link_position_relative_on_focus.py
index b18bc26..7014176 100644
--- a/test/keystrokes/firefox/line_nav_button_in_link_position_relative_on_focus.py
+++ b/test/keystrokes/firefox/line_nav_button_in_link_position_relative_on_focus.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_canvas.py b/test/keystrokes/firefox/line_nav_canvas.py
index 74c6b70..019b369 100644
--- a/test/keystrokes/firefox/line_nav_canvas.py
+++ b/test/keystrokes/firefox/line_nav_canvas.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_clickables.py b/test/keystrokes/firefox/line_nav_clickables.py
index c2e3439..6240c84 100644
--- a/test/keystrokes/firefox/line_nav_clickables.py
+++ b/test/keystrokes/firefox/line_nav_clickables.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_descriptions.py 
b/test/keystrokes/firefox/line_nav_descriptions.py
index f252441..2579725 100644
--- a/test/keystrokes/firefox/line_nav_descriptions.py
+++ b/test/keystrokes/firefox/line_nav_descriptions.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -20,11 +21,14 @@ sequence.append(utils.AssertPresentationAction(
     "1. Line Down",
     ["BRAILLE LINE:  'Foo, Bar, and Baz.'",
      "     VISIBLE:  'Foo, Bar, and Baz.', cursor=1",
-     "SPEECH OUTPUT: 'Foo link.'",
+     "SPEECH OUTPUT: 'Foo'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ','",
-     "SPEECH OUTPUT: 'Bar link.'",
+     "SPEECH OUTPUT: 'Bar'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', and'",
-     "SPEECH OUTPUT: 'Baz link.'",
+     "SPEECH OUTPUT: 'Baz'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/line_nav_display_table_cell.py 
b/test/keystrokes/firefox/line_nav_display_table_cell.py
index bb56c7a..5bde4fd 100644
--- a/test/keystrokes/firefox/line_nav_display_table_cell.py
+++ b/test/keystrokes/firefox/line_nav_display_table_cell.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -25,7 +26,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'line 2'",
      "     VISIBLE:  'line 2', cursor=1",
-     "SPEECH OUTPUT: 'line 2.'"]))
+     "SPEECH OUTPUT: 'line 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_empty_anchor.py 
b/test/keystrokes/firefox/line_nav_empty_anchor.py
index 3c16d86..22e7701 100644
--- a/test/keystrokes/firefox/line_nav_empty_anchor.py
+++ b/test/keystrokes/firefox/line_nav_empty_anchor.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -17,8 +18,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Top of file",
-    ["BRAILLE LINE:  'FAQ  h1'",
-     "     VISIBLE:  'FAQ  h1', cursor=1",
+    ["BRAILLE LINE:  'FAQ h1'",
+     "     VISIBLE:  'FAQ h1', cursor=1",
      "SPEECH OUTPUT: 'FAQ'",
      "SPEECH OUTPUT: 'heading level 1'"]))
 
@@ -36,7 +37,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'Q. What's a battery?'",
      "     VISIBLE:  'Q. What's a battery?', cursor=1",
-     "SPEECH OUTPUT: 'Q. What's a battery? link.'"]))
+     "SPEECH OUTPUT: 'Q. What's a battery?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -44,7 +46,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'Q. Which way is up?'",
      "     VISIBLE:  'Q. Which way is up?', cursor=1",
-     "SPEECH OUTPUT: 'Q. Which way is up? link.'"]))
+     "SPEECH OUTPUT: 'Q. Which way is up?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -52,7 +55,8 @@ sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
     ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
-     "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link.'"]))
+     "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -69,7 +73,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading?'",
      "     VISIBLE:  'Q. Why would someone put a line ', cursor=1",
-     "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading? link.'"]))
+     "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -77,7 +82,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
     ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
-     "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link.'"]))
+     "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -189,7 +195,8 @@ sequence.append(utils.AssertPresentationAction(
     "22. Line Up",
     ["BRAILLE LINE:  'Q. What is the airspeed velocity of an unladen swallow?'",
      "     VISIBLE:  'Q. What is the airspeed velocity', cursor=1",
-     "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow? link.'"]))
+     "SPEECH OUTPUT: 'Q. What is the airspeed velocity of an unladen swallow?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -197,7 +204,8 @@ sequence.append(utils.AssertPresentationAction(
     "23. Line Up",
     ["BRAILLE LINE:  'Q. Why would someone put a line break in a heading?'",
      "     VISIBLE:  'Q. Why would someone put a line ', cursor=1",
-     "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading? link.'"]))
+     "SPEECH OUTPUT: 'Q. Why would someone put a line break in a heading?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -214,7 +222,8 @@ sequence.append(utils.AssertPresentationAction(
     "25. Line Up",
     ["BRAILLE LINE:  'Q. Why did Orca used to get stuck on this page?'",
      "     VISIBLE:  'Q. Why did Orca used to get stuc', cursor=1",
-     "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page? link.'"]))
+     "SPEECH OUTPUT: 'Q. Why did Orca used to get stuck on this page?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -222,7 +231,8 @@ sequence.append(utils.AssertPresentationAction(
     "26. Line Up",
     ["BRAILLE LINE:  'Q. Which way is up?'",
      "     VISIBLE:  'Q. Which way is up?', cursor=1",
-     "SPEECH OUTPUT: 'Q. Which way is up? link.'"]))
+     "SPEECH OUTPUT: 'Q. Which way is up?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -230,7 +240,8 @@ sequence.append(utils.AssertPresentationAction(
     "27. Line Up",
     ["BRAILLE LINE:  'Q. What's a battery?'",
      "     VISIBLE:  'Q. What's a battery?', cursor=1",
-     "SPEECH OUTPUT: 'Q. What's a battery? link.'"]))
+     "SPEECH OUTPUT: 'Q. What's a battery?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -244,8 +255,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "29. Line Up",
-    ["BRAILLE LINE:  'FAQ  h1'",
-     "     VISIBLE:  'FAQ  h1', cursor=1",
+    ["BRAILLE LINE:  'FAQ h1'",
+     "     VISIBLE:  'FAQ h1', cursor=1",
      "SPEECH OUTPUT: 'FAQ'",
      "SPEECH OUTPUT: 'heading level 1'"]))
 
diff --git a/test/keystrokes/firefox/line_nav_empty_block_link.py 
b/test/keystrokes/firefox/line_nav_empty_block_link.py
index b35faea..5bde4fd 100644
--- a/test/keystrokes/firefox/line_nav_empty_block_link.py
+++ b/test/keystrokes/firefox/line_nav_empty_block_link.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_empty_textarea.py 
b/test/keystrokes/firefox/line_nav_empty_textarea.py
index fafbf2b..6d0cf3a 100644
--- a/test/keystrokes/firefox/line_nav_empty_textarea.py
+++ b/test/keystrokes/firefox/line_nav_empty_textarea.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_enter_bug.py b/test/keystrokes/firefox/line_nav_enter_bug.py
index 05a9345..c792634 100644
--- a/test/keystrokes/firefox/line_nav_enter_bug.py
+++ b/test/keystrokes/firefox/line_nav_enter_bug.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("Tab"))
 
 sequence.append(utils.StartRecordingAction())
@@ -25,21 +26,29 @@ sequence.append(utils.AssertPresentationAction(
     "2. 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.'",
+     "SPEECH OUTPUT: 'New bug'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Browse link.'",
+     "SPEECH OUTPUT: 'Browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Search link.'",
+     "SPEECH OUTPUT: 'Search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Reports link.'",
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Account link.'",
+     "SPEECH OUTPUT: 'Account'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Admin link.'",
+     "SPEECH OUTPUT: 'Admin'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Help link.'",
+     "SPEECH OUTPUT: 'Help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Logged In joanmarie diggs gmail com |'",
-     "SPEECH OUTPUT: 'Log Out link.'"]))
+     "SPEECH OUTPUT: 'Log Out'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -64,7 +73,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines,'",
      "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
      "SPEECH OUTPUT: 'Before reporting a bug, please read the.'",
-     "SPEECH OUTPUT: 'bug writing guidelines link.'",
+     "SPEECH OUTPUT: 'bug writing guidelines'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ',.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -74,7 +84,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'please look at the list of most frequently reported bugs, and please'",
      "     VISIBLE:  'please look at the list of most ', cursor=1",
      "SPEECH OUTPUT: 'please look at the list of.'",
-     "SPEECH OUTPUT: 'most frequently reported bugs link.'",
+     "SPEECH OUTPUT: 'most frequently reported bugs'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', and please.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -83,9 +94,11 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  'search or browse for the bug.'",
      "     VISIBLE:  'search or browse for the bug.', cursor=1",
-     "SPEECH OUTPUT: 'search link.'",
+     "SPEECH OUTPUT: 'search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'or.'",
-     "SPEECH OUTPUT: 'browse link.'",
+     "SPEECH OUTPUT: 'browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for the bug.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -111,9 +124,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
-    ["BRAILLE LINE:  '2.21.x  list box'",
-     "     VISIBLE:  '2.21.x  list box', cursor=1",
-     "SPEECH OUTPUT: '2.21.x .'",
+    ["BRAILLE LINE:  '2.21.x list box'",
+     "     VISIBLE:  '2.21.x list box', cursor=1",
+     "SPEECH OUTPUT: '2.21.x.'",
      "SPEECH OUTPUT: 'List with 9 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -122,16 +135,16 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
     ["BRAILLE LINE:  'Component:'",
      "     VISIBLE:  'Component:', cursor=1",
-     "SPEECH OUTPUT: 'Component link.'",
+     "SPEECH OUTPUT: 'Component'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
-    ["BRAILLE LINE:  'braille  list box'",
-     "     VISIBLE:  'braille  list box', cursor=1",
-     "SPEECH OUTPUT: 'braille .'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'List with 5 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -167,7 +180,8 @@ sequence.append(utils.AssertPresentationAction(
     "16. Line Down",
     ["BRAILLE LINE:  'OS: Linux combo box'",
      "     VISIBLE:  'OS: Linux combo box', cursor=1",
-     "SPEECH OUTPUT: 'OS link.'",
+     "SPEECH OUTPUT: 'OS'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'",
      "SPEECH OUTPUT: 'Linux combo box.'"]))
 
@@ -177,7 +191,8 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Down",
     ["BRAILLE LINE:  'Severity: normal combo box'",
      "     VISIBLE:  'Severity: normal combo box', cursor=1",
-     "SPEECH OUTPUT: 'Severity link.'",
+     "SPEECH OUTPUT: 'Severity'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'",
      "SPEECH OUTPUT: 'normal combo box.'"]))
 
@@ -227,29 +242,29 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "23. Line Down",
-    ["BRAILLE LINE:  'Keywords:  $l'",
-     "     VISIBLE:  'Keywords:  $l', cursor=1",
-     "SPEECH OUTPUT: 'Keywords link.'",
-     "SPEECH OUTPUT: ':.'",
-     "SPEECH OUTPUT: 'entry'"]))
+    ["BRAILLE LINE:  'Keywords:'",
+     "     VISIBLE:  'Keywords:', cursor=1",
+     "SPEECH OUTPUT: 'Keywords'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: ':.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "24. Line Down",
-    ["BRAILLE LINE:  'Depends'",
-     "     VISIBLE:  'Depends', cursor=1",
-     "SPEECH OUTPUT: 'Depends.'"]))
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "SPEECH OUTPUT: 'entry'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "25. Line Up",
-    ["BRAILLE LINE:  'Keywords:  $l'",
-     "     VISIBLE:  'Keywords:  $l', cursor=1",
-     "SPEECH OUTPUT: 'Keywords link.'",
-     "SPEECH OUTPUT: ':.'",
-     "SPEECH OUTPUT: 'entry'"]))
+    ["BRAILLE LINE:  'Keywords:'",
+     "     VISIBLE:  'Keywords:', cursor=1",
+     "SPEECH OUTPUT: 'Keywords'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: ':.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -299,7 +314,8 @@ sequence.append(utils.AssertPresentationAction(
     "31. Line Up",
     ["BRAILLE LINE:  'Severity: normal combo box'",
      "     VISIBLE:  'Severity: normal combo box', cursor=1",
-     "SPEECH OUTPUT: 'Severity link.'",
+     "SPEECH OUTPUT: 'Severity'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'",
      "SPEECH OUTPUT: 'normal combo box.'"]))
 
@@ -309,7 +325,8 @@ sequence.append(utils.AssertPresentationAction(
     "32. Line Up",
     ["BRAILLE LINE:  'OS: Linux combo box'",
      "     VISIBLE:  'OS: Linux combo box', cursor=1",
-     "SPEECH OUTPUT: 'OS link.'",
+     "SPEECH OUTPUT: 'OS'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'",
      "SPEECH OUTPUT: 'Linux combo box.'"]))
 
@@ -344,9 +361,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "36. Line Up",
-    ["BRAILLE LINE:  'braille  list box'",
-     "     VISIBLE:  'braille  list box', cursor=1",
-     "SPEECH OUTPUT: 'braille .'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'List with 5 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -355,16 +371,17 @@ sequence.append(utils.AssertPresentationAction(
     "37. Line Up",
     ["BRAILLE LINE:  'Component:'",
      "     VISIBLE:  'Component:', cursor=1",
-     "SPEECH OUTPUT: 'Component link.'",
+     "SPEECH OUTPUT: 'Component'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ':.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "38. Line Up",
-    ["BRAILLE LINE:  '2.21.x  list box'",
-     "     VISIBLE:  '2.21.x  list box', cursor=1",
-     "SPEECH OUTPUT: '2.21.x .'",
+    ["BRAILLE LINE:  '2.21.x list box'",
+     "     VISIBLE:  '2.21.x list box', cursor=1",
+     "SPEECH OUTPUT: '2.21.x.'",
      "SPEECH OUTPUT: 'List with 9 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -392,9 +409,11 @@ sequence.append(utils.AssertPresentationAction(
     "41. Line Up",
     ["BRAILLE LINE:  'search or browse for the bug.'",
      "     VISIBLE:  'search or browse for the bug.', cursor=1",
-     "SPEECH OUTPUT: 'search link.'",
+     "SPEECH OUTPUT: 'search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'or.'",
-     "SPEECH OUTPUT: 'browse link.'",
+     "SPEECH OUTPUT: 'browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for the bug.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -404,7 +423,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'please look at the list of most frequently reported bugs, and please'",
      "     VISIBLE:  'please look at the list of most ', cursor=1",
      "SPEECH OUTPUT: 'please look at the list of.'",
-     "SPEECH OUTPUT: 'most frequently reported bugs link.'",
+     "SPEECH OUTPUT: 'most frequently reported bugs'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', and please.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -414,7 +434,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Before reporting a bug, please read the bug writing guidelines,'",
      "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
      "SPEECH OUTPUT: 'Before reporting a bug, please read the.'",
-     "SPEECH OUTPUT: 'bug writing guidelines link.'",
+     "SPEECH OUTPUT: 'bug writing guidelines'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ',.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -439,21 +460,29 @@ sequence.append(utils.AssertPresentationAction(
     "46. 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.'",
+     "SPEECH OUTPUT: 'New bug'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Browse link.'",
+     "SPEECH OUTPUT: 'Browse'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Search link.'",
+     "SPEECH OUTPUT: 'Search'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Reports link.'",
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Account link.'",
+     "SPEECH OUTPUT: 'Account'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Admin link.'",
+     "SPEECH OUTPUT: 'Admin'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '·'",
-     "SPEECH OUTPUT: 'Help link.'",
+     "SPEECH OUTPUT: 'Help'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'Logged In joanmarie diggs gmail com |'",
-     "SPEECH OUTPUT: 'Log Out link.'"]))
+     "SPEECH OUTPUT: 'Log Out'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_entries.py b/test/keystrokes/firefox/line_nav_entries.py
index 8930a62..f022ec9 100644
--- a/test/keystrokes/firefox/line_nav_entries.py
+++ b/test/keystrokes/firefox/line_nav_entries.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -28,9 +29,11 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  'Type something rather amusing he', cursor=1",
      "SPEECH OUTPUT: 'Type'",
-     "SPEECH OUTPUT: 'something link.'",
+     "SPEECH OUTPUT: 'something'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'rather'",
-     "SPEECH OUTPUT: 'amusing link.'",
+     "SPEECH OUTPUT: 'amusing'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'here:'",
      "SPEECH OUTPUT: 'entry'"]))
 
@@ -203,7 +206,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Last name'",
      "     VISIBLE:  'Last name', cursor=1",
      "SPEECH OUTPUT: 'Last.'",
-     "SPEECH OUTPUT: 'name link.'"]))
+     "SPEECH OUTPUT: 'name'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -244,7 +248,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Last name'",
      "     VISIBLE:  'Last name', cursor=1",
      "SPEECH OUTPUT: 'Last.'",
-     "SPEECH OUTPUT: 'name link.'"]))
+     "SPEECH OUTPUT: 'name'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -298,7 +303,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Last name'",
      "     VISIBLE:  'Last name', cursor=1",
      "SPEECH OUTPUT: 'Last.'",
-     "SPEECH OUTPUT: 'name link.'"]))
+     "SPEECH OUTPUT: 'name'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -339,7 +345,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Last name'",
      "     VISIBLE:  'Last name', cursor=1",
      "SPEECH OUTPUT: 'Last.'",
-     "SPEECH OUTPUT: 'name link.'"]))
+     "SPEECH OUTPUT: 'name'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -510,9 +517,11 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Type something rather amusing here:  $l'",
      "     VISIBLE:  'Type something rather amusing he', cursor=1",
      "SPEECH OUTPUT: 'Type'",
-     "SPEECH OUTPUT: 'something link.'",
+     "SPEECH OUTPUT: 'something'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'rather'",
-     "SPEECH OUTPUT: 'amusing link.'",
+     "SPEECH OUTPUT: 'amusing'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'here:'",
      "SPEECH OUTPUT: 'entry'"]))
 
diff --git a/test/keystrokes/firefox/line_nav_focused_link.py 
b/test/keystrokes/firefox/line_nav_focused_link.py
index 297c93e..1ae7cb4 100644
--- a/test/keystrokes/firefox/line_nav_focused_link.py
+++ b/test/keystrokes/firefox/line_nav_focused_link.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -34,7 +35,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '[Line 2]'",
      "     VISIBLE:  '[Line 2]', cursor=1",
      "SPEECH OUTPUT: '['",
-     "SPEECH OUTPUT: 'Line 2 link.'",
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ']'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_follow_same_page_link.py 
b/test/keystrokes/firefox/line_nav_follow_same_page_link.py
index 59d3357..fc5cfcb 100644
--- a/test/keystrokes/firefox/line_nav_follow_same_page_link.py
+++ b/test/keystrokes/firefox/line_nav_follow_same_page_link.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_follow_same_page_link_2.py 
b/test/keystrokes/firefox/line_nav_follow_same_page_link_2.py
index be85ce2..db1f9a0 100644
--- a/test/keystrokes/firefox/line_nav_follow_same_page_link_2.py
+++ b/test/keystrokes/firefox/line_nav_follow_same_page_link_2.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("H"))
 sequence.append(KeyComboAction("H"))
diff --git a/test/keystrokes/firefox/line_nav_follow_same_page_link_3.py 
b/test/keystrokes/firefox/line_nav_follow_same_page_link_3.py
index 8001926..11515cb 100644
--- a/test/keystrokes/firefox/line_nav_follow_same_page_link_3.py
+++ b/test/keystrokes/firefox/line_nav_follow_same_page_link_3.py
@@ -7,8 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
-sequence.append(PauseAction(3000))
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/line_nav_fontawesome_link.py 
b/test/keystrokes/firefox/line_nav_fontawesome_link.py
index e4faf21..d7ef1c0 100644
--- a/test/keystrokes/firefox/line_nav_fontawesome_link.py
+++ b/test/keystrokes/firefox/line_nav_fontawesome_link.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
diff --git a/test/keystrokes/firefox/line_nav_heading_section.py 
b/test/keystrokes/firefox/line_nav_heading_section.py
index df0a0ee..d352ec5 100644
--- a/test/keystrokes/firefox/line_nav_heading_section.py
+++ b/test/keystrokes/firefox/line_nav_heading_section.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_hidden_buttons.py 
b/test/keystrokes/firefox/line_nav_hidden_buttons.py
index a4f5029..2a94a1e 100644
--- a/test/keystrokes/firefox/line_nav_hidden_buttons.py
+++ b/test/keystrokes/firefox/line_nav_hidden_buttons.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_hidden_elements.py 
b/test/keystrokes/firefox/line_nav_hidden_elements.py
index a815b56..1201132 100644
--- a/test/keystrokes/firefox/line_nav_hidden_elements.py
+++ b/test/keystrokes/firefox/line_nav_hidden_elements.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_hidden_float.py 
b/test/keystrokes/firefox/line_nav_hidden_float.py
index 926f9f7..b8a8b83 100644
--- a/test/keystrokes/firefox/line_nav_hidden_float.py
+++ b/test/keystrokes/firefox/line_nav_hidden_float.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_hidden_label.py 
b/test/keystrokes/firefox/line_nav_hidden_label.py
index 8a802aa..2470a41 100644
--- a/test/keystrokes/firefox/line_nav_hidden_label.py
+++ b/test/keystrokes/firefox/line_nav_hidden_label.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_hidden_links.py 
b/test/keystrokes/firefox/line_nav_hidden_links.py
index f3921fd..293cba3 100644
--- a/test/keystrokes/firefox/line_nav_hidden_links.py
+++ b/test/keystrokes/firefox/line_nav_hidden_links.py
@@ -7,7 +7,12 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
+
+# Work around some new quirk in Gecko that causes this test to fail if
+# run via the test harness rather than manually.
+sequence.append(KeyComboAction("<Control>r"))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -23,7 +28,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'up vote'",
      "     VISIBLE:  'up vote', cursor=1",
-     "SPEECH OUTPUT: 'up vote link.'"]))
+     "SPEECH OUTPUT: 'up vote'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -39,7 +45,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'down vote'",
      "     VISIBLE:  'down vote', cursor=1",
-     "SPEECH OUTPUT: 'down vote link.'"]))
+     "SPEECH OUTPUT: 'down vote'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -71,7 +78,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
     ["BRAILLE LINE:  'down vote'",
      "     VISIBLE:  'down vote', cursor=1",
-     "SPEECH OUTPUT: 'down vote link.'"]))
+     "SPEECH OUTPUT: 'down vote'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -87,7 +95,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Line Up",
     ["BRAILLE LINE:  'up vote'",
      "     VISIBLE:  'up vote', cursor=1",
-     "SPEECH OUTPUT: 'up vote link.'"]))
+     "SPEECH OUTPUT: 'up vote'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_iframes_blogger.py 
b/test/keystrokes/firefox/line_nav_iframes_blogger.py
index 2231a28..f524461 100644
--- a/test/keystrokes/firefox/line_nav_iframes_blogger.py
+++ b/test/keystrokes/firefox/line_nav_iframes_blogger.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(KeyComboAction("<Control>Home"))
 
@@ -64,10 +65,14 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'clickable'",
      "SPEECH OUTPUT: 'Click here to publicly +1 this. toggle button not pressed'",
      "SPEECH OUTPUT: '15'",
-     "SPEECH OUTPUT: 'More link.'",
-     "SPEECH OUTPUT: 'Next Blog» link.'",
-     "SPEECH OUTPUT: 'Create Blog link.'",
-     "SPEECH OUTPUT: 'Sign In link.'"]))
+     "SPEECH OUTPUT: 'More'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Next Blog»'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Create Blog'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Sign In'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
diff --git a/test/keystrokes/firefox/line_nav_iframes_in_inline_block.py 
b/test/keystrokes/firefox/line_nav_iframes_in_inline_block.py
index b79503c..dd68d78 100644
--- a/test/keystrokes/firefox/line_nav_iframes_in_inline_block.py
+++ b/test/keystrokes/firefox/line_nav_iframes_in_inline_block.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_iframes_in_inline_block2.py 
b/test/keystrokes/firefox/line_nav_iframes_in_inline_block2.py
index d4f85b9..f7a1964 100644
--- a/test/keystrokes/firefox/line_nav_iframes_in_inline_block2.py
+++ b/test/keystrokes/firefox/line_nav_iframes_in_inline_block2.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_iframes_nested.py 
b/test/keystrokes/firefox/line_nav_iframes_nested.py
index b641f29..a5bb534 100644
--- a/test/keystrokes/firefox/line_nav_iframes_nested.py
+++ b/test/keystrokes/firefox/line_nav_iframes_nested.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_image_in_link.py 
b/test/keystrokes/firefox/line_nav_image_in_link.py
index 78668b3..d63e05d 100644
--- a/test/keystrokes/firefox/line_nav_image_in_link.py
+++ b/test/keystrokes/firefox/line_nav_image_in_link.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -36,7 +37,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  ' Before Line After'",
      "     VISIBLE:  ' Before Line After', cursor=1",
      "SPEECH OUTPUT: 'Before'",
-     "SPEECH OUTPUT: 'Line link.'",
+     "SPEECH OUTPUT: 'Line'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'After'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -54,7 +56,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  ' Before Line After'",
      "     VISIBLE:  ' Before Line After', cursor=1",
      "SPEECH OUTPUT: 'Before'",
-     "SPEECH OUTPUT: 'Line link.'",
+     "SPEECH OUTPUT: 'Line'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'After'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_imagemap.py b/test/keystrokes/firefox/line_nav_imagemap.py
index 3511be9..c0e94c3 100644
--- a/test/keystrokes/firefox/line_nav_imagemap.py
+++ b/test/keystrokes/firefox/line_nav_imagemap.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_images_in_links.py 
b/test/keystrokes/firefox/line_nav_images_in_links.py
index 27c5077..9ecf9ef 100644
--- a/test/keystrokes/firefox/line_nav_images_in_links.py
+++ b/test/keystrokes/firefox/line_nav_images_in_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -153,7 +154,8 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Down",
     ["BRAILLE LINE:  'silly link'",
      "     VISIBLE:  'silly link', cursor=1",
-     "SPEECH OUTPUT: 'silly link link.'"]))
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -197,7 +199,8 @@ sequence.append(utils.AssertPresentationAction(
     "22. Line Down",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
-     "SPEECH OUTPUT: 'After the paragraph link.'"]))
+     "SPEECH OUTPUT: 'After the paragraph'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -214,7 +217,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'the paragraph: Before the paragraph'",
      "     VISIBLE:  'the paragraph: Before the paragr', cursor=1",
      "SPEECH OUTPUT: 'the paragraph:'",
-     "SPEECH OUTPUT: 'Before the paragraph link.'"]))
+     "SPEECH OUTPUT: 'Before the paragraph'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -230,7 +234,8 @@ sequence.append(utils.AssertPresentationAction(
     "26. Line Down",
     ["BRAILLE LINE:  'silly link'",
      "     VISIBLE:  'silly link', cursor=1",
-     "SPEECH OUTPUT: 'silly link link.'"]))
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -246,7 +251,8 @@ sequence.append(utils.AssertPresentationAction(
     "28. Line Down",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
-     "SPEECH OUTPUT: 'After the paragraph link.'"]))
+     "SPEECH OUTPUT: 'After the paragraph'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -262,7 +268,8 @@ sequence.append(utils.AssertPresentationAction(
     "30. Line Up",
     ["BRAILLE LINE:  'silly link'",
      "     VISIBLE:  'silly link', cursor=1",
-     "SPEECH OUTPUT: 'silly link link.'"]))
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -279,7 +286,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'the paragraph: Before the paragraph'",
      "     VISIBLE:  'the paragraph: Before the paragr', cursor=1",
      "SPEECH OUTPUT: 'the paragraph:'",
-     "SPEECH OUTPUT: 'Before the paragraph link.'"]))
+     "SPEECH OUTPUT: 'Before the paragraph'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -295,7 +303,8 @@ sequence.append(utils.AssertPresentationAction(
     "34. Line Up",
     ["BRAILLE LINE:  'After the paragraph'",
      "     VISIBLE:  'After the paragraph', cursor=1",
-     "SPEECH OUTPUT: 'After the paragraph link.'"]))
+     "SPEECH OUTPUT: 'After the paragraph'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -339,7 +348,8 @@ sequence.append(utils.AssertPresentationAction(
     "39. Line Up",
     ["BRAILLE LINE:  'silly link'",
      "     VISIBLE:  'silly link', cursor=1",
-     "SPEECH OUTPUT: 'silly link link.'"]))
+     "SPEECH OUTPUT: 'silly link'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_images_in_table_and_floating_div.py 
b/test/keystrokes/firefox/line_nav_images_in_table_and_floating_div.py
index a44ce28..04bcc2f 100644
--- a/test/keystrokes/firefox/line_nav_images_in_table_and_floating_div.py
+++ b/test/keystrokes/firefox/line_nav_images_in_table_and_floating_div.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_inline_block_spans.py 
b/test/keystrokes/firefox/line_nav_inline_block_spans.py
index 12304c6..990b2ad 100644
--- a/test/keystrokes/firefox/line_nav_inline_block_spans.py
+++ b/test/keystrokes/firefox/line_nav_inline_block_spans.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_link_position_relative_on_focus.py 
b/test/keystrokes/firefox/line_nav_link_position_relative_on_focus.py
index a9ec2f8..0b3d78a 100644
--- a/test/keystrokes/firefox/line_nav_link_position_relative_on_focus.py
+++ b/test/keystrokes/firefox/line_nav_link_position_relative_on_focus.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -25,7 +26,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'Line 2'",
      "     VISIBLE:  'Line 2', cursor=1",
-     "SPEECH OUTPUT: 'Line 2 link.'"]))
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -41,7 +43,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Up",
     ["BRAILLE LINE:  'Line 2'",
      "     VISIBLE:  'Line 2', cursor=1",
-     "SPEECH OUTPUT: 'Line 2 link.'"]))
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_lists.py b/test/keystrokes/firefox/line_nav_lists.py
index ebf2105..0006416 100644
--- a/test/keystrokes/firefox/line_nav_lists.py
+++ b/test/keystrokes/firefox/line_nav_lists.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -181,7 +182,7 @@ sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "21. Line Up",
     ["BRAILLE LINE:  '1. remember what the heck we are doing each day'",
-     "     VISIBLE:  '1. remember what the heck we are', cursor=1",
+     "     VISIBLE:  ' the heck we are doing each day', cursor=32",
      "SPEECH OUTPUT: '1. remember what the heck we are doing each day.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_lists_broken.py 
b/test/keystrokes/firefox/line_nav_lists_broken.py
index c3e4472..a402466 100644
--- a/test/keystrokes/firefox/line_nav_lists_broken.py
+++ b/test/keystrokes/firefox/line_nav_lists_broken.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_lists_without_items.py 
b/test/keystrokes/firefox/line_nav_lists_without_items.py
index 05744eb..ef8fe47 100644
--- a/test/keystrokes/firefox/line_nav_lists_without_items.py
+++ b/test/keystrokes/firefox/line_nav_lists_without_items.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -34,7 +35,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Line 3'",
      "     VISIBLE:  'Line 3', cursor=1",
      "SPEECH OUTPUT: 'Line'",
-     "SPEECH OUTPUT: '3 link.'"]))
+     "SPEECH OUTPUT: '3'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -67,7 +69,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Line 3'",
      "     VISIBLE:  'Line 3', cursor=1",
      "SPEECH OUTPUT: 'Line'",
-     "SPEECH OUTPUT: '3 link.'"]))
+     "SPEECH OUTPUT: '3'",
+     "SPEECH OUTPUT: '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 63d8eb0..33feac3 100644
--- a/test/keystrokes/firefox/line_nav_multi_line_text.py
+++ b/test/keystrokes/firefox/line_nav_multi_line_text.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -77,7 +78,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• This is a test that is not very interesting.'",
      "     VISIBLE:  '• This is a test that is not ver', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'This is a test link.'",
+     "SPEECH OUTPUT: 'This is a test'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -87,7 +89,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• But it looks like a real-world example.'",
      "     VISIBLE:  '• But it looks like a real-world', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'But it looks like link.'",
+     "SPEECH OUTPUT: 'But it looks like'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -97,7 +100,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• And that's why this silly test is here.'",
      "     VISIBLE:  '• And that's why this silly test', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'And that's link.'",
+     "SPEECH OUTPUT: 'And that's'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -107,7 +111,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'So it's far more interesting than it looks.'",
      "     VISIBLE:  'So it's far more interesting tha', cursor=1",
      "SPEECH OUTPUT: 'So it's'",
-     "SPEECH OUTPUT: 'far more interesting link.'",
+     "SPEECH OUTPUT: 'far more interesting'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'than it looks.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -125,7 +130,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• The thing is we can't copy content.'",
      "     VISIBLE:  '• The thing is we can't copy con', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'The thing is link.'",
+     "SPEECH OUTPUT: 'The thing is'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -135,7 +141,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• So we must create silly tests.'",
      "     VISIBLE:  '• So we must create silly tests.', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'So we must link.'",
+     "SPEECH OUTPUT: 'So we must'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -145,7 +152,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Oh well.'",
      "     VISIBLE:  '• Oh well.', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Oh link.'",
+     "SPEECH OUTPUT: 'Oh'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'well.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -155,7 +163,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'At least it's over.'",
      "     VISIBLE:  'At least it's over.', cursor=1",
      "SPEECH OUTPUT: 'At least it's'",
-     "SPEECH OUTPUT: 'over link.'",
+     "SPEECH OUTPUT: 'over'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -165,7 +174,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Oh well.'",
      "     VISIBLE:  '• Oh well.', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Oh link.'",
+     "SPEECH OUTPUT: 'Oh'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'well.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -175,7 +185,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• So we must create silly tests.'",
      "     VISIBLE:  '• So we must create silly tests.', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'So we must link.'",
+     "SPEECH OUTPUT: 'So we must'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'create silly tests.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -185,7 +196,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• The thing is we can't copy content.'",
      "     VISIBLE:  '• The thing is we can't copy con', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'The thing is link.'",
+     "SPEECH OUTPUT: 'The thing is'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'we can't copy content.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -203,7 +215,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'So it's far more interesting than it looks.'",
      "     VISIBLE:  'So it's far more interesting tha', cursor=1",
      "SPEECH OUTPUT: 'So it's'",
-     "SPEECH OUTPUT: 'far more interesting link.'",
+     "SPEECH OUTPUT: 'far more interesting'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'than it looks.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -213,7 +226,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• And that's why this silly test is here.'",
      "     VISIBLE:  '• And that's why this silly test', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'And that's link.'",
+     "SPEECH OUTPUT: 'And that's'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'why this silly test is here.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -223,7 +237,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• But it looks like a real-world example.'",
      "     VISIBLE:  '• But it looks like a real-world', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'But it looks like link.'",
+     "SPEECH OUTPUT: 'But it looks like'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'a real-world example.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -233,7 +248,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• This is a test that is not very interesting.'",
      "     VISIBLE:  '• This is a test that is not ver', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'This is a test link.'",
+     "SPEECH OUTPUT: 'This is a test'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'that is not very interesting.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_nested_tables.py 
b/test/keystrokes/firefox/line_nav_nested_tables.py
index 6e4e8a2..0dbd127 100644
--- a/test/keystrokes/firefox/line_nav_nested_tables.py
+++ b/test/keystrokes/firefox/line_nav_nested_tables.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -27,13 +28,17 @@ sequence.append(utils.AssertPresentationAction(
     "2. line Down",
     ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports'",
      "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
-     "SPEECH OUTPUT: 'Campus link.'",
+     "SPEECH OUTPUT: 'Campus'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Classroom link.'",
+     "SPEECH OUTPUT: 'Classroom'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Communicate link.'",
+     "SPEECH OUTPUT: 'Communicate'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Reports link.'"]))
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -65,7 +70,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. line Down",
     ["BRAILLE LINE:  'Take Course'",
      "     VISIBLE:  'Take Course', cursor=1",
-     "SPEECH OUTPUT: 'Take Course link.'"]))
+     "SPEECH OUTPUT: 'Take Course'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -97,7 +103,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. line Down",
     ["BRAILLE LINE:  'Take Course'",
      "     VISIBLE:  'Take Course', cursor=1",
-     "SPEECH OUTPUT: 'Take Course link.'"]))
+     "SPEECH OUTPUT: 'Take Course'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -129,7 +136,8 @@ sequence.append(utils.AssertPresentationAction(
     "14. line Up",
     ["BRAILLE LINE:  'Take Course'",
      "     VISIBLE:  'Take Course', cursor=1",
-     "SPEECH OUTPUT: 'Take Course link.'"]))
+     "SPEECH OUTPUT: 'Take Course'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -161,7 +169,8 @@ sequence.append(utils.AssertPresentationAction(
     "18. line Up",
     ["BRAILLE LINE:  'Take Course'",
      "     VISIBLE:  'Take Course', cursor=1",
-     "SPEECH OUTPUT: 'Take Course link.'"]))
+     "SPEECH OUTPUT: 'Take Course'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -193,13 +202,17 @@ sequence.append(utils.AssertPresentationAction(
     "22. line Up",
     ["BRAILLE LINE:  'Campus  .  Classroom  .  Communicate  .  Reports'",
      "     VISIBLE:  'Campus  .  Classroom  .  Communi', cursor=1",
-     "SPEECH OUTPUT: 'Campus link.'",
+     "SPEECH OUTPUT: 'Campus'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Classroom link.'",
+     "SPEECH OUTPUT: 'Classroom'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Communicate link.'",
+     "SPEECH OUTPUT: 'Communicate'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'",
-     "SPEECH OUTPUT: 'Reports link.'"]))
+     "SPEECH OUTPUT: 'Reports'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_offscreen_text_with_tiny_width.py 
b/test/keystrokes/firefox/line_nav_offscreen_text_with_tiny_width.py
index 932faa2..e9601ef 100644
--- a/test/keystrokes/firefox/line_nav_offscreen_text_with_tiny_width.py
+++ b/test/keystrokes/firefox/line_nav_offscreen_text_with_tiny_width.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_paragraphs_in_links.py 
b/test/keystrokes/firefox/line_nav_paragraphs_in_links.py
index 4e74a59..9503c32 100644
--- a/test/keystrokes/firefox/line_nav_paragraphs_in_links.py
+++ b/test/keystrokes/firefox/line_nav_paragraphs_in_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_pre_lines.py b/test/keystrokes/firefox/line_nav_pre_lines.py
index e00a8cd..7dd9eec 100644
--- a/test/keystrokes/firefox/line_nav_pre_lines.py
+++ b/test/keystrokes/firefox/line_nav_pre_lines.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_pre_links.py b/test/keystrokes/firefox/line_nav_pre_links.py
index 7e92a67..e5eb68d 100644
--- a/test/keystrokes/firefox/line_nav_pre_links.py
+++ b/test/keystrokes/firefox/line_nav_pre_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -27,7 +28,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
     ["BRAILLE LINE:  'Line 2'",
      "     VISIBLE:  'Line 2', cursor=1",
-     "SPEECH OUTPUT: 'Line 2 link.'"]))
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -43,7 +45,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'Line 4'",
      "     VISIBLE:  'Line 4', cursor=1",
-     "SPEECH OUTPUT: 'Line 4 link.'"]))
+     "SPEECH OUTPUT: 'Line 4'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -59,7 +62,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Line Up",
     ["BRAILLE LINE:  'Line 4'",
      "     VISIBLE:  'Line 4', cursor=1",
-     "SPEECH OUTPUT: 'Line 4 link.'"]))
+     "SPEECH OUTPUT: 'Line 4'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -75,7 +79,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
     ["BRAILLE LINE:  'Line 2'",
      "     VISIBLE:  'Line 2', cursor=1",
-     "SPEECH OUTPUT: 'Line 2 link.'"]))
+     "SPEECH OUTPUT: 'Line 2'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_role_application.py 
b/test/keystrokes/firefox/line_nav_role_application.py
index 6643366..d0d29f6 100644
--- a/test/keystrokes/firefox/line_nav_role_application.py
+++ b/test/keystrokes/firefox/line_nav_role_application.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_roledescriptions.py 
b/test/keystrokes/firefox/line_nav_roledescriptions.py
index e414124..43a42c4 100644
--- a/test/keystrokes/firefox/line_nav_roledescriptions.py
+++ b/test/keystrokes/firefox/line_nav_roledescriptions.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_simple_form.py b/test/keystrokes/firefox/line_nav_simple_form.py
index c490c8b..5050373 100644
--- a/test/keystrokes/firefox/line_nav_simple_form.py
+++ b/test/keystrokes/firefox/line_nav_simple_form.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -45,8 +46,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. line Down",
-    ["KNOWN ISSUE: When the test is run, we sometimes get extra presentation which doesn't happen in real 
use.",
-     "BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
+    ["BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
      "     VISIBLE:  'I am a monkey with a long tail. ', cursor=1",
      "SPEECH OUTPUT: 'entry I am a monkey with a long tail.  I like '"]))
 
@@ -107,9 +107,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. line Down",
-    ["BRAILLE LINE:  'Hockey list box'",
-     "     VISIBLE:  'Hockey list box', cursor=1",
-     "SPEECH OUTPUT: 'Hockey.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 4 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -144,9 +143,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "15. line Up",
-    ["BRAILLE LINE:  'Hockey list box'",
-     "     VISIBLE:  'Hockey list box', cursor=1",
-     "SPEECH OUTPUT: 'Hockey.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 4 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_slash_test.py b/test/keystrokes/firefox/line_nav_slash_test.py
index 773dc8c..24ef00c 100644
--- a/test/keystrokes/firefox/line_nav_slash_test.py
+++ b/test/keystrokes/firefox/line_nav_slash_test.py
@@ -7,7 +7,9 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
+sequence.append(PauseAction(3000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -37,7 +39,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'Science h4'",
      "     VISIBLE:  'Science h4', cursor=1",
-     "SPEECH OUTPUT: 'Science link heading level 4.'"]))
+     "SPEECH OUTPUT: 'Science'",
+     "SPEECH OUTPUT: 'link heading level 4.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -45,7 +48,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'Recent Tags h4'",
      "     VISIBLE:  'Recent Tags h4', cursor=1",
-     "SPEECH OUTPUT: 'Recent Tags link heading level 4.'"]))
+     "SPEECH OUTPUT: 'Recent Tags'",
+     "SPEECH OUTPUT: 'link heading level 4.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -79,9 +83,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. Line Down",
-    ["BRAILLE LINE:  'What is your favorite poison?'",
-     "     VISIBLE:  'What is your favorite poison?', cursor=1",
-     "SPEECH OUTPUT: 'What is your favorite poison?"]))
+    ["BRAILLE LINE:  'Poll What is your favorite poison?'",
+     "     VISIBLE:  'Poll What is your favorite poiso', cursor=6",
+     "SPEECH OUTPUT: 'What is your favorite poison? panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -98,7 +102,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
     ["BRAILLE LINE:  'Book Reviews h4'",
      "     VISIBLE:  'Book Reviews h4', cursor=1",
-     "SPEECH OUTPUT: 'Book Reviews link heading level 4.'"]))
+     "SPEECH OUTPUT: 'Book Reviews'",
+     "SPEECH OUTPUT: 'link heading level 4.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -113,9 +118,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "12. Line Up",
-    ["BRAILLE LINE:  'What is your favorite poison?'",
-     "     VISIBLE:  'What is your favorite poison?', cursor=1",
-     "SPEECH OUTPUT: 'What is your favorite poison?"]))
+    ["BRAILLE LINE:  'Poll What is your favorite poison?'",
+     "     VISIBLE:  'Poll What is your favorite poiso', cursor=6",
+     "SPEECH OUTPUT: 'What is your favorite poison? panel'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -151,7 +156,8 @@ sequence.append(utils.AssertPresentationAction(
     "16. Line Up",
     ["BRAILLE LINE:  'Recent Tags h4'",
      "     VISIBLE:  'Recent Tags h4', cursor=1",
-     "SPEECH OUTPUT: 'Recent Tags link heading level 4.'"]))
+     "SPEECH OUTPUT: 'Recent Tags'",
+     "SPEECH OUTPUT: 'link heading level 4.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -159,7 +165,8 @@ sequence.append(utils.AssertPresentationAction(
     "17. Line Up",
     ["BRAILLE LINE:  'Science h4'",
      "     VISIBLE:  'Science h4', cursor=1",
-     "SPEECH OUTPUT: 'Science link heading level 4.'"]))
+     "SPEECH OUTPUT: 'Science'",
+     "SPEECH OUTPUT: 'link heading level 4.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_sun_java.py b/test/keystrokes/firefox/line_nav_sun_java.py
index bfb2ab0..8dac9d5 100644
--- a/test/keystrokes/firefox/line_nav_sun_java.py
+++ b/test/keystrokes/firefox/line_nav_sun_java.py
@@ -7,7 +7,9 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
+sequence.append(PauseAction(3000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -21,7 +23,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '» search tips Search $l Submit Search push button'",
      "     VISIBLE:  '» search tips Search $l Submit S', cursor=1",
      "SPEECH OUTPUT: '»'",
-     "SPEECH OUTPUT: 'search tips link.'",
+     "SPEECH OUTPUT: 'search tips'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'entry Search'",
      "SPEECH OUTPUT: 'Submit Search push button'"]))
 
@@ -40,12 +43,18 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'APIs Downloads Products Support Training Participate'",
      "     VISIBLE:  'APIs Downloads Products Support ', cursor=1",
-     "SPEECH OUTPUT: 'APIs link.'",
-     "SPEECH OUTPUT: 'Downloads link.'",
-     "SPEECH OUTPUT: 'Products link.'",
-     "SPEECH OUTPUT: 'Support link.'",
-     "SPEECH OUTPUT: 'Training link.'",
-     "SPEECH OUTPUT: 'Participate link.'"]))
+     "SPEECH OUTPUT: 'APIs'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Downloads'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Products'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Support'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Training'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Participate'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -77,7 +86,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  'JDK Documentation'",
      "     VISIBLE:  'JDK Documentation', cursor=1",
-     "SPEECH OUTPUT: 'JDK Documentation link.'"]))
+     "SPEECH OUTPUT: 'JDK Documentation'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -93,7 +103,8 @@ sequence.append(utils.AssertPresentationAction(
     "9. Line Down",
     ["BRAILLE LINE:  'System Requirements'",
      "     VISIBLE:  'System Requirements', cursor=1",
-     "SPEECH OUTPUT: 'System Requirements link.'"]))
+     "SPEECH OUTPUT: 'System Requirements'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -101,7 +112,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Line Down",
     ["BRAILLE LINE:  'JDK Installation Instructions'",
      "     VISIBLE:  'JDK Installation Instructions', cursor=1",
-     "SPEECH OUTPUT: 'JDK Installation Instructions link.'"]))
+     "SPEECH OUTPUT: 'JDK Installation Instructions'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -109,7 +121,8 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Down",
     ["BRAILLE LINE:  'Installation of Self-Extracting Binary'",
      "     VISIBLE:  'Installation of Self-Extracting ', cursor=0",
-     "SPEECH OUTPUT: 'Installation of Self-Extracting Binary link.'"]))
+     "SPEECH OUTPUT: 'Installation of Self-Extracting Binary'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -117,7 +130,8 @@ sequence.append(utils.AssertPresentationAction(
     "12. Line Down",
     ["BRAILLE LINE:  'Installation of RPM File'",
      "     VISIBLE:  'Installation of RPM File', cursor=0",
-     "SPEECH OUTPUT: 'Installation of RPM File link.'"]))
+     "SPEECH OUTPUT: 'Installation of RPM File'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -125,7 +139,8 @@ sequence.append(utils.AssertPresentationAction(
     "13. Line Down",
     ["BRAILLE LINE:  'Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  'Java Plugin Browser Registration', cursor=1",
-     "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions link.'"]))
+     "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -133,7 +148,8 @@ sequence.append(utils.AssertPresentationAction(
     "14. Line Down",
     ["BRAILLE LINE:  'Java Web Start Installation Notes'",
      "     VISIBLE:  'Java Web Start Installation Note', cursor=1",
-     "SPEECH OUTPUT: 'Java Web Start Installation Notes link.'"]))
+     "SPEECH OUTPUT: 'Java Web Start Installation Notes'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -141,7 +157,8 @@ sequence.append(utils.AssertPresentationAction(
     "15. Line Down",
     ["BRAILLE LINE:  'Troubleshooting'",
      "     VISIBLE:  'Troubleshooting', cursor=1",
-     "SPEECH OUTPUT: 'Troubleshooting link.'"]))
+     "SPEECH OUTPUT: 'Troubleshooting'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -158,7 +175,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'See supported System Configurations for information about supported platforms, 
operating systems, desktop managers, and browsers.'",
      "     VISIBLE:  'See supported System Configurati', cursor=1",
      "SPEECH OUTPUT: 'See supported.'",
-     "SPEECH OUTPUT: 'System Configurations link.'",
+     "SPEECH OUTPUT: 'System Configurations'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for information about supported platforms, operating systems, desktop managers, and 
browsers.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -168,7 +186,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'For issues, see the Troubleshooting section below.'",
      "     VISIBLE:  'For issues, see the Troubleshoot', cursor=1",
      "SPEECH OUTPUT: 'For issues, see the'",
-     "SPEECH OUTPUT: 'Troubleshooting link.'",
+     "SPEECH OUTPUT: 'Troubleshooting'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'section below.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -194,7 +213,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Java Plugin Browser Registration Instructions'",
      "     VISIBLE:  '• Java Plugin Browser Registrati', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions link.'"]))
+     "SPEECH OUTPUT: 'Java Plugin Browser Registration Instructions'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -203,7 +223,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Java Web Start Installation Notes'",
      "     VISIBLE:  '• Java Web Start Installation No', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Java Web Start Installation Notes link.'"]))
+     "SPEECH OUTPUT: 'Java Web Start Installation Notes'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -235,7 +256,8 @@ sequence.append(utils.AssertPresentationAction(
     "26. Line Down",
     ["BRAILLE LINE:  'Installation of Self-Extracting Binary below.'",
      "     VISIBLE:  'Installation of Self-Extracting ', cursor=1",
-     "SPEECH OUTPUT: 'Installation of Self-Extracting Binary link.'",
+     "SPEECH OUTPUT: 'Installation of Self-Extracting Binary'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'below.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -253,7 +275,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'installation on Linux. To use this bundle, see Installation of RPM File below.'",
      "     VISIBLE:  'installation on Linux. To use th', cursor=1",
      "SPEECH OUTPUT: 'installation on Linux. To use this bundle, see.'",
-     "SPEECH OUTPUT: 'Installation of RPM File link.'",
+     "SPEECH OUTPUT: 'Installation of RPM File'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'below.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -327,7 +350,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Use these instructions if you want to use the self-extracting binary file to install 
the JDK. If you want to install RPM packages instead, see Installation of RPM File.'",
      "     VISIBLE:  'Use these instructions if you wa', cursor=1",
      "SPEECH OUTPUT: 'Use these instructions if you want to use the self-extracting binary file to install 
the JDK. If you want to install RPM packages instead, see.'",
-     "SPEECH OUTPUT: 'Installation of RPM File link.'",
+     "SPEECH OUTPUT: 'Installation of RPM File'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/line_nav_table_captions.py 
b/test/keystrokes/firefox/line_nav_table_captions.py
index e8ca6bc..b3eb2c9 100644
--- a/test/keystrokes/firefox/line_nav_table_captions.py
+++ b/test/keystrokes/firefox/line_nav_table_captions.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_table_cell_links.py 
b/test/keystrokes/firefox/line_nav_table_cell_links.py
index abe1045..3a9f8e6 100644
--- a/test/keystrokes/firefox/line_nav_table_cell_links.py
+++ b/test/keystrokes/firefox/line_nav_table_cell_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -35,7 +36,8 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  '<!-->'",
      "     VISIBLE:  '<!-->', cursor=1",
-     "SPEECH OUTPUT: '<!--> link.'"]))
+     "SPEECH OUTPUT: '<!-->'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -43,7 +45,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  '<!DOCTYPE>'",
      "     VISIBLE:  '<!DOCTYPE>', cursor=1",
-     "SPEECH OUTPUT: '<!DOCTYPE> link.'"]))
+     "SPEECH OUTPUT: '<!DOCTYPE>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -51,7 +54,8 @@ sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
     ["BRAILLE LINE:  '<a>'",
      "     VISIBLE:  '<a>', cursor=1",
-     "SPEECH OUTPUT: '<a> link.'"]))
+     "SPEECH OUTPUT: '<a>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -59,7 +63,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
     ["BRAILLE LINE:  '<abbr>'",
      "     VISIBLE:  '<abbr>', cursor=1",
-     "SPEECH OUTPUT: '<abbr> link.'"]))
+     "SPEECH OUTPUT: '<abbr>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -67,7 +72,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Down",
     ["BRAILLE LINE:  '<acronym>'",
      "     VISIBLE:  '<acronym>', cursor=1",
-     "SPEECH OUTPUT: '<acronym> link.'"]))
+     "SPEECH OUTPUT: '<acronym>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -75,7 +81,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
     ["BRAILLE LINE:  '<abbr>'",
      "     VISIBLE:  '<abbr>', cursor=1",
-     "SPEECH OUTPUT: '<abbr> link.'"]))
+     "SPEECH OUTPUT: '<abbr>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -83,7 +90,8 @@ sequence.append(utils.AssertPresentationAction(
     "9. Line Up",
     ["BRAILLE LINE:  '<a>'",
      "     VISIBLE:  '<a>', cursor=1",
-     "SPEECH OUTPUT: '<a> link.'"]))
+     "SPEECH OUTPUT: '<a>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -91,7 +99,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Line Up",
     ["BRAILLE LINE:  '<!DOCTYPE>'",
      "     VISIBLE:  '<!DOCTYPE>', cursor=1",
-     "SPEECH OUTPUT: '<!DOCTYPE> link.'"]))
+     "SPEECH OUTPUT: '<!DOCTYPE>'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -99,7 +108,8 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
     ["BRAILLE LINE:  '<!-->'",
      "     VISIBLE:  '<!-->', cursor=1",
-     "SPEECH OUTPUT: '<!--> link.'"]))
+     "SPEECH OUTPUT: '<!-->'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/line_nav_textarea_last_line.py 
b/test/keystrokes/firefox/line_nav_textarea_last_line.py
index 9e302ce..201591c 100644
--- a/test/keystrokes/firefox/line_nav_textarea_last_line.py
+++ b/test/keystrokes/firefox/line_nav_textarea_last_line.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/line_nav_twitter_bug.py b/test/keystrokes/firefox/line_nav_twitter_bug.py
index 01a8cc9..c87a320 100644
--- a/test/keystrokes/firefox/line_nav_twitter_bug.py
+++ b/test/keystrokes/firefox/line_nav_twitter_bug.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/line_nav_wiki_down.py b/test/keystrokes/firefox/line_nav_wiki_down.py
index cf09ea3..9c98ef8 100644
--- a/test/keystrokes/firefox/line_nav_wiki_down.py
+++ b/test/keystrokes/firefox/line_nav_wiki_down.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -23,20 +24,27 @@ sequence.append(utils.AssertPresentationAction(
     "1. Line Down",
     ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
      "     VISIBLE:  'Home News Projects Art Support D', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
-     "SPEECH OUTPUT: 'News link.'",
-     "SPEECH OUTPUT: 'Projects link.'",
-     "SPEECH OUTPUT: 'Art link.'",
-     "SPEECH OUTPUT: 'Support link.'",
-     "SPEECH OUTPUT: 'Development link.'",
-     "SPEECH OUTPUT: 'Community link.'"]))
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'News'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Projects'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Art'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Support'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Development'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Community'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Line Down",
-    ["BRAILLE LINE:  'live.gnome.org  h1 Search $l Titles push button Text push button'",
-     "     VISIBLE:  'live.gnome.org  h1 Search $l Tit', cursor=1",
+    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles push button Text push button'",
+     "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
      "SPEECH OUTPUT: 'live.gnome.org heading level 1'",
      "SPEECH OUTPUT: 'entry Search'",
      "SPEECH OUTPUT: 'Titles push button'",
@@ -48,11 +56,16 @@ sequence.append(utils.AssertPresentationAction(
     "3. Line Down",
     ["BRAILLE LINE:  'Home RecentChanges FindPage HelpContents Orca'",
      "     VISIBLE:  'Home RecentChanges FindPage Help', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
-     "SPEECH OUTPUT: 'RecentChanges link.'",
-     "SPEECH OUTPUT: 'FindPage link.'",
-     "SPEECH OUTPUT: 'HelpContents link.'",
-     "SPEECH OUTPUT: 'Orca link.'"]))
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'RecentChanges'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'FindPage'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'HelpContents'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Orca'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -60,7 +73,8 @@ sequence.append(utils.AssertPresentationAction(
     "4. Line Down",
     ["BRAILLE LINE:  'en Español'",
      "     VISIBLE:  'en Español', cursor=1",
-     "SPEECH OUTPUT: 'en Español link.'"]))
+     "SPEECH OUTPUT: 'en Español'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -68,15 +82,20 @@ sequence.append(utils.AssertPresentationAction(
     "5. Line Down",
     ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing 
List \('",
      "     VISIBLE:  'Home | Download/Installation | C', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Download/Installation link.'",
+     "SPEECH OUTPUT: 'Download/Installation'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Configuration/Use link.'",
+     "SPEECH OUTPUT: 'Configuration/Use'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Accessible Applications link.'",
+     "SPEECH OUTPUT: 'Accessible Applications'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Mailing List link.'",
+     "SPEECH OUTPUT: 'Mailing List'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -85,11 +104,14 @@ sequence.append(utils.AssertPresentationAction(
     "6. Line Down",
     ["BRAILLE LINE:  'Archives\) | FAQ | DocIndex'",
      "     VISIBLE:  'Archives\) | FAQ | DocIndex', cursor=1",
-     "SPEECH OUTPUT: 'Archives link.'",
+     "SPEECH OUTPUT: 'Archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ') |'",
-     "SPEECH OUTPUT: 'FAQ link.'",
+     "SPEECH OUTPUT: 'FAQ'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'DocIndex link.'"]))
+     "SPEECH OUTPUT: 'DocIndex'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -114,7 +136,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
      "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
      "SPEECH OUTPUT: 'HOT HOT HOT: Notes on'",
-     "SPEECH OUTPUT: 'access to Firefox 3.0 link.'"]))
+     "SPEECH OUTPUT: 'access to Firefox 3.0'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -131,7 +154,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '1. Welcome to Orca!'",
      "     VISIBLE:  '1. Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1.'",
-     "SPEECH OUTPUT: 'Welcome to Orca! link.'"]))
+     "SPEECH OUTPUT: 'Welcome to Orca!'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -140,7 +164,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '2. About'",
      "     VISIBLE:  '2. About', cursor=1",
      "SPEECH OUTPUT: '2.'",
-     "SPEECH OUTPUT: 'About link.'"]))
+     "SPEECH OUTPUT: 'About'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -149,7 +174,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '3. Audio Guides'",
      "     VISIBLE:  '3. Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3.'",
-     "SPEECH OUTPUT: 'Audio Guides link.'"]))
+     "SPEECH OUTPUT: 'Audio Guides'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -158,7 +184,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '4. Download/Installation'",
      "     VISIBLE:  '4. Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4.'",
-     "SPEECH OUTPUT: 'Download/Installation link.'"]))
+     "SPEECH OUTPUT: 'Download/Installation'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -167,7 +194,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '5. Configuration/Use'",
      "     VISIBLE:  '5. Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5.'",
-     "SPEECH OUTPUT: 'Configuration/Use link.'"]))
+     "SPEECH OUTPUT: 'Configuration/Use'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -176,7 +204,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '6. Accessible Applications'",
      "     VISIBLE:  '6. Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6.'",
-     "SPEECH OUTPUT: 'Accessible Applications link.'"]))
+     "SPEECH OUTPUT: 'Accessible Applications'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -185,7 +214,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '7. How Can I Help?'",
      "     VISIBLE:  '7. How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7.'",
-     "SPEECH OUTPUT: 'How Can I Help? link.'"]))
+     "SPEECH OUTPUT: 'How Can I Help?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -194,7 +224,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '8. More Information'",
      "     VISIBLE:  '8. More Information', cursor=1",
      "SPEECH OUTPUT: '8.'",
-     "SPEECH OUTPUT: 'More Information link.'"]))
+     "SPEECH OUTPUT: 'More Information'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -299,7 +330,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'problems in other components, is maintained in Bugzilla \(please see our notes on how 
we'",
      "     VISIBLE:  'problems in other components, is', cursor=1",
      "SPEECH OUTPUT: 'problems in other components, is maintained in'",
-     "SPEECH OUTPUT: 'Bugzilla link.'",
+     "SPEECH OUTPUT: 'Bugzilla'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '\(please see our'",
      "SPEECH OUTPUT: 'notes on how we'",
      "SPEECH OUTPUT: 'link.'"]))
@@ -321,9 +353,11 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, 
and'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the'",
-     "SPEECH OUTPUT: 'Orca mailing list link.'",
+     "SPEECH OUTPUT: 'Orca mailing list'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'archives link.'",
+     "SPEECH OUTPUT: 'archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '): it's a helpful, kind, and'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -348,7 +382,8 @@ sequence.append(utils.AssertPresentationAction(
     "35. Line Down",
     ["BRAILLE LINE:  'Darragh Ó Héiligh has created several audio guides for Orca. This is a fantastic'",
      "     VISIBLE:  'Darragh Ó Héiligh has created se', cursor=1",
-     "SPEECH OUTPUT: 'Darragh Ó Héiligh link.'",
+     "SPEECH OUTPUT: 'Darragh Ó Héiligh'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'has created several audio guides for Orca. This is a fantastic'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -378,7 +413,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "     VISIBLE:  '• Walk through of the installati', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial link.'"]))
+     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -387,7 +423,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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: '•.'",
-     "SPEECH OUTPUT: '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'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -396,7 +433,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Guide to installing the latest versions of Firefox and Orca'",
      "     VISIBLE:  '• Guide to installing the latest', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca link.'"]))
+     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -421,7 +459,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including Open 
Solaris'",
      "     VISIBLE:  'provided by default on a number ', cursor=1",
      "SPEECH OUTPUT: 'provided by default on a number of operating system distributions, including'",
-     "SPEECH OUTPUT: 'Open Solaris link.'"]))
+     "SPEECH OUTPUT: 'Open Solaris'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -430,7 +469,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'and Ubuntu.'",
      "     VISIBLE:  'and Ubuntu.', cursor=1",
      "SPEECH OUTPUT: 'and'",
-     "SPEECH OUTPUT: 'Ubuntu link.'",
+     "SPEECH OUTPUT: 'Ubuntu'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -440,7 +480,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Please also refer to the Download/Installation page for detailed information on 
various'",
      "     VISIBLE:  'Please also refer to the Downloa', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the'",
-     "SPEECH OUTPUT: 'Download/Installation page link.'",
+     "SPEECH OUTPUT: 'Download/Installation page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information on various'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -530,8 +571,10 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'mode to examine a window. Refer to Orca Keyboard Commands (Laptop Layout) for more'",
      "     VISIBLE:  'mode to examine a window. Refer ', cursor=1",
      "SPEECH OUTPUT: 'mode to examine a window. Refer to'",
-     "SPEECH OUTPUT: 'Orca Keyboard Commands link.'",
-     "SPEECH OUTPUT: '(Laptop Layout) link.'",
+     "SPEECH OUTPUT: 'Orca Keyboard Commands'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: '(Laptop Layout)'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for more'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -541,7 +584,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'information on Orca-specific keyboard commands. The Orca Configuration GUI also'",
      "     VISIBLE:  'information on Orca-specific key', cursor=1",
      "SPEECH OUTPUT: 'information on Orca-specific keyboard commands. The'",
-     "SPEECH OUTPUT: 'Orca Configuration GUI link.'",
+     "SPEECH OUTPUT: 'Orca Configuration GUI'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'also'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -559,7 +603,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Configuration/Use page link.'",
+     "SPEECH OUTPUT: 'Configuration/Use page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -593,7 +638,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'applications, OpenOffice, Firefox, and the Java platform. Some applications work 
better'",
      "     VISIBLE:  'applications, OpenOffice, Firefo', cursor=1",
      "SPEECH OUTPUT: 'applications,'",
-     "SPEECH OUTPUT: 'OpenOffice link.'",
+     "SPEECH OUTPUT: 'OpenOffice'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', Firefox, and the Java platform. Some applications work better'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -619,7 +665,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'On the Accessible Applications page, you will find a growing list of information 
regarding'",
      "     VISIBLE:  'On the Accessible Applications p', cursor=1",
      "SPEECH OUTPUT: 'On the'",
-     "SPEECH OUTPUT: 'Accessible Applications page link.'",
+     "SPEECH OUTPUT: 'Accessible Applications page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', you will find a growing list of information regarding'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -661,7 +708,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Application Specific Settings link.'",
+     "SPEECH OUTPUT: 'Application Specific Settings'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'page for how to configure settings specific to an'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -679,7 +727,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Accessible Applications page link.'",
+     "SPEECH OUTPUT: 'Accessible Applications page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -697,7 +746,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page for detailed'",
      "     VISIBLE:  'There's a bunch you can do! Plea', cursor=1",
      "SPEECH OUTPUT: 'There's a bunch you can do! Please refer to the'",
-     "SPEECH OUTPUT: 'How Can I Help page link.'",
+     "SPEECH OUTPUT: 'How Can I Help page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -724,7 +774,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Frequently Asked Questions:'",
-     "SPEECH OUTPUT: 'FAQ link.'"]))
+     "SPEECH OUTPUT: 'FAQ'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -734,9 +785,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Mailing list: orca-list gnome ', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Mailing list:'",
-     "SPEECH OUTPUT: 'orca-list gnome org link.'",
+     "SPEECH OUTPUT: 'orca-list gnome org'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'Archives link.'",
+     "SPEECH OUTPUT: 'Archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -747,9 +800,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Bug database:'",
-     "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla) link.'",
+     "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla)'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'current bug list link.'",
+     "SPEECH OUTPUT: 'current bug list'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -760,7 +815,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Design documents:'",
-     "SPEECH OUTPUT: 'Orca Documentation Series link.'"]))
+     "SPEECH OUTPUT: 'Orca Documentation Series'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -769,7 +825,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Dive Into Python, Mark Pilgrim'",
      "     VISIBLE:  '• Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim link.'"]))
+     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -778,7 +835,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Python in a Nutshell, Alex Martelli'",
      "     VISIBLE:  '• Python in a Nutshell, Alex Mar', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli link.'"]))
+     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -787,7 +845,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Python Pocket Reference, Mark Lutz'",
      "     VISIBLE:  '• Python Pocket Reference, Mark ', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz link.'"]))
+     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -835,7 +894,8 @@ sequence.append(utils.AssertPresentationAction(
     "89. Line Down",
     ["BRAILLE LINE:  'CategoryAccessibility'",
      "     VISIBLE:  'CategoryAccessibility', cursor=1",
-     "SPEECH OUTPUT: 'CategoryAccessibility link.'"]))
+     "SPEECH OUTPUT: 'CategoryAccessibility'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -844,7 +904,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'WillieWalker link.'",
+     "SPEECH OUTPUT: 'WillieWalker'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -861,7 +922,8 @@ sequence.append(utils.AssertPresentationAction(
     "92. Line Down",
     ["BRAILLE LINE:  'Login'",
      "     VISIBLE:  'Login', cursor=1",
-     "SPEECH OUTPUT: 'Login link.'"]))
+     "SPEECH OUTPUT: 'Login'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -885,7 +947,8 @@ sequence.append(utils.AssertPresentationAction(
     "95. Line Down",
     ["BRAILLE LINE:  'Info'",
      "     VISIBLE:  'Info', cursor=1",
-     "SPEECH OUTPUT: 'Info link.'"]))
+     "SPEECH OUTPUT: 'Info'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -893,7 +956,8 @@ sequence.append(utils.AssertPresentationAction(
     "96. Line Down",
     ["BRAILLE LINE:  'Attachments'",
      "     VISIBLE:  'Attachments', cursor=1",
-     "SPEECH OUTPUT: 'Attachments link.'"]))
+     "SPEECH OUTPUT: 'Attachments'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -934,7 +998,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Copyright \xa9 2005, 2006, 2007 The GNOME Project.'",
      "     VISIBLE:  'Copyright \xa9 2005, 2006, 2007 The', cursor=1",
      "SPEECH OUTPUT: 'Copyright \xa9 2005, 2006, 2007'",
-     "SPEECH OUTPUT: 'The GNOME Project link.'",
+     "SPEECH OUTPUT: 'The GNOME Project'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -944,7 +1009,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Hosted by Red Hat.'",
      "     VISIBLE:  'Hosted by Red Hat.', cursor=1",
      "SPEECH OUTPUT: 'Hosted by'",
-     "SPEECH OUTPUT: 'Red Hat link.'",
+     "SPEECH OUTPUT: 'Red Hat'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/firefox/line_nav_wiki_up.py b/test/keystrokes/firefox/line_nav_wiki_up.py
index 8338122..36fd571 100644
--- a/test/keystrokes/firefox/line_nav_wiki_up.py
+++ b/test/keystrokes/firefox/line_nav_wiki_up.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -23,7 +24,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Hosted by Red Hat.'",
      "     VISIBLE:  'Hosted by Red Hat.', cursor=0",
      "SPEECH OUTPUT: 'Hosted by'",
-     "SPEECH OUTPUT: 'Red Hat link.'",
+     "SPEECH OUTPUT: 'Red Hat'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -33,7 +35,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Copyright \xa9 2005, 2006, 2007 The GNOME Project.'",
      "     VISIBLE:  'Copyright \xa9 2005, 2006, 2007 The', cursor=1",
      "SPEECH OUTPUT: 'Copyright \xa9 2005, 2006, 2007'",
-     "SPEECH OUTPUT: 'The GNOME Project link.'",
+     "SPEECH OUTPUT: 'The GNOME Project'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -74,7 +77,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Line Up",
     ["BRAILLE LINE:  'Attachments'",
      "     VISIBLE:  'Attachments', cursor=1",
-     "SPEECH OUTPUT: 'Attachments link.'"]))
+     "SPEECH OUTPUT: 'Attachments'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -82,7 +86,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. Line Up",
     ["BRAILLE LINE:  'Info'",
      "     VISIBLE:  'Info', cursor=1",
-     "SPEECH OUTPUT: 'Info link.'"]))
+     "SPEECH OUTPUT: 'Info'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -106,7 +111,8 @@ sequence.append(utils.AssertPresentationAction(
     "11. Line Up",
     ["BRAILLE LINE:  'Login'",
      "     VISIBLE:  'Login', cursor=1",
-     "SPEECH OUTPUT: 'Login link.'"]))
+     "SPEECH OUTPUT: 'Login'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -123,7 +129,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'WillieWalker link.'",
+     "SPEECH OUTPUT: 'WillieWalker'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -132,7 +139,8 @@ sequence.append(utils.AssertPresentationAction(
     "14. Line Up",
     ["BRAILLE LINE:  'CategoryAccessibility'",
      "     VISIBLE:  'CategoryAccessibility', cursor=1",
-     "SPEECH OUTPUT: 'CategoryAccessibility link.'"]))
+     "SPEECH OUTPUT: 'CategoryAccessibility'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -181,7 +189,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Python Pocket Reference, Mark Lutz'",
      "     VISIBLE:  '• Python Pocket Reference, Mark ', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz link.'"]))
+     "SPEECH OUTPUT: 'Python Pocket Reference, Mark Lutz'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -190,7 +199,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Python in a Nutshell, Alex Martelli'",
      "     VISIBLE:  '• Python in a Nutshell, Alex Mar', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli link.'"]))
+     "SPEECH OUTPUT: 'Python in a Nutshell, Alex Martelli'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -199,7 +209,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Dive Into Python, Mark Pilgrim'",
      "     VISIBLE:  '• Dive Into Python, Mark Pilgrim', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim link.'"]))
+     "SPEECH OUTPUT: 'Dive Into Python, Mark Pilgrim'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -209,7 +220,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Design documents: Orca Documen', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Design documents:'",
-     "SPEECH OUTPUT: 'Orca Documentation Series link.'"]))
+     "SPEECH OUTPUT: 'Orca Documentation Series'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -219,9 +231,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Bug database: GNOME Bug Tracki', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Bug database:'",
-     "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla) link.'",
+     "SPEECH OUTPUT: 'GNOME Bug Tracking System (Bugzilla)'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'current bug list link.'",
+     "SPEECH OUTPUT: 'current bug list'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -232,9 +246,11 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Mailing list: orca-list gnome ', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Mailing list:'",
-     "SPEECH OUTPUT: 'orca-list gnome org link.'",
+     "SPEECH OUTPUT: 'orca-list gnome org'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'Archives link.'",
+     "SPEECH OUTPUT: 'Archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ')'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -245,7 +261,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '• Frequently Asked Questions: FA', cursor=1",
      "SPEECH OUTPUT: '•.'",
      "SPEECH OUTPUT: 'Frequently Asked Questions:'",
-     "SPEECH OUTPUT: 'FAQ link.'"]))
+     "SPEECH OUTPUT: 'FAQ'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -270,7 +287,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'There's a bunch you can do! Please refer to the How Can I Help page for detailed'",
      "     VISIBLE:  'There's a bunch you can do! Plea', cursor=1",
      "SPEECH OUTPUT: 'There's a bunch you can do! Please refer to the'",
-     "SPEECH OUTPUT: 'How Can I Help page link.'",
+     "SPEECH OUTPUT: 'How Can I Help page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -288,7 +306,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Accessible Applications page link.'",
+     "SPEECH OUTPUT: 'Accessible Applications page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -306,7 +325,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Application Specific Settings link.'",
+     "SPEECH OUTPUT: 'Application Specific Settings'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'page for how to configure settings specific to an'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -348,7 +368,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'On the Accessible Applications page, you will find a growing list of information 
regarding'",
      "     VISIBLE:  'On the Accessible Applications p', cursor=1",
      "SPEECH OUTPUT: 'On the'",
-     "SPEECH OUTPUT: 'Accessible Applications page link.'",
+     "SPEECH OUTPUT: 'Accessible Applications page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', you will find a growing list of information regarding'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -374,7 +395,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'applications, OpenOffice, Firefox, and the Java platform. Some applications work 
better'",
      "     VISIBLE:  'applications, OpenOffice, Firefo', cursor=1",
      "SPEECH OUTPUT: 'applications,'",
-     "SPEECH OUTPUT: 'OpenOffice link.'",
+     "SPEECH OUTPUT: 'OpenOffice'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: ', Firefox, and the Java platform. Some applications work better'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -408,7 +430,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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'",
-     "SPEECH OUTPUT: 'Configuration/Use page link.'",
+     "SPEECH OUTPUT: 'Configuration/Use page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -426,7 +449,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'information on Orca-specific keyboard commands. The Orca Configuration GUI also'",
      "     VISIBLE:  'information on Orca-specific key', cursor=1",
      "SPEECH OUTPUT: 'information on Orca-specific keyboard commands. The'",
-     "SPEECH OUTPUT: 'Orca Configuration GUI link.'",
+     "SPEECH OUTPUT: 'Orca Configuration GUI'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'also'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -436,8 +460,10 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'mode to examine a window. Refer to Orca Keyboard Commands \(Laptop Layout\) for more'",
      "     VISIBLE:  'mode to examine a window. Refer ', cursor=1",
      "SPEECH OUTPUT: 'mode to examine a window. Refer to'",
-     "SPEECH OUTPUT: 'Orca Keyboard Commands link.'",
-     "SPEECH OUTPUT: '\(Laptop Layout\) link.'",
+     "SPEECH OUTPUT: 'Orca Keyboard Commands'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: '\(Laptop Layout\)'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for more'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -527,7 +553,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Please also refer to the Download/Installation page for detailed information on 
various'",
      "     VISIBLE:  'Please also refer to the Downloa', cursor=1",
      "SPEECH OUTPUT: 'Please also refer to the'",
-     "SPEECH OUTPUT: 'Download/Installation page link.'",
+     "SPEECH OUTPUT: 'Download/Installation page'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'for detailed information on various'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -537,7 +564,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'and Ubuntu.'",
      "     VISIBLE:  'and Ubuntu.', cursor=1",
      "SPEECH OUTPUT: 'and'",
-     "SPEECH OUTPUT: 'Ubuntu link.'",
+     "SPEECH OUTPUT: 'Ubuntu'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -547,7 +575,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'provided by default on a number of operating system distributions, including Open 
Solaris'",
      "     VISIBLE:  'provided by default on a number ', cursor=1",
      "SPEECH OUTPUT: 'provided by default on a number of operating system distributions, including'",
-     "SPEECH OUTPUT: 'Open Solaris link.'"]))
+     "SPEECH OUTPUT: 'Open Solaris'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -572,7 +601,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Guide to installing the latest versions of Firefox and Orca'",
      "     VISIBLE:  '• Guide to installing the latest', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca link.'"]))
+     "SPEECH OUTPUT: 'Guide to installing the latest versions of Firefox and Orca'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -581,7 +611,8 @@ sequence.append(utils.AssertPresentationAction(
     ["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: '•.'",
-     "SPEECH OUTPUT: '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'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -590,7 +621,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '• Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
      "     VISIBLE:  '• Walk through of the installati', cursor=1",
      "SPEECH OUTPUT: '•.'",
-     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial link.'"]))
+     "SPEECH OUTPUT: 'Walk through of the installation of Ubuntu 7.4. Very helpful tutorial'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -618,7 +650,8 @@ sequence.append(utils.AssertPresentationAction(
     "68. Line Up",
     ["BRAILLE LINE:  'Darragh Ó Héiligh has created several audio guides for Orca. This is a fantastic'",
      "     VISIBLE:  'Darragh Ó Héiligh has created se', cursor=1",
-     "SPEECH OUTPUT: 'Darragh Ó Héiligh link.'",
+     "SPEECH OUTPUT: 'Darragh Ó Héiligh'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'has created several audio guides for Orca. This is a fantastic'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -644,9 +677,11 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'Please join and participate on the Orca mailing list (archives): it's a helpful, kind, 
and'",
      "     VISIBLE:  'Please join and participate on t', cursor=1",
      "SPEECH OUTPUT: 'Please join and participate on the'",
-     "SPEECH OUTPUT: 'Orca mailing list link.'",
+     "SPEECH OUTPUT: 'Orca mailing list'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('",
-     "SPEECH OUTPUT: 'archives link.'",
+     "SPEECH OUTPUT: 'archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '): it's a helpful, kind, and'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -666,7 +701,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'problems in other components, is maintained in Bugzilla \(please see our notes on how 
we'",
      "     VISIBLE:  'problems in other components, is', cursor=1",
      "SPEECH OUTPUT: 'problems in other components, is maintained in'",
-     "SPEECH OUTPUT: 'Bugzilla link.'",
+     "SPEECH OUTPUT: 'Bugzilla'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '\(please see our'",
      "SPEECH OUTPUT: 'notes on how we'",
      "SPEECH OUTPUT: 'link.'"]))
@@ -774,7 +810,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '8. More Information'",
      "     VISIBLE:  '8. More Information', cursor=1",
      "SPEECH OUTPUT: '8.'",
-     "SPEECH OUTPUT: 'More Information link.'"]))
+     "SPEECH OUTPUT: 'More Information'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -783,7 +820,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '7. How Can I Help?'",
      "     VISIBLE:  '7. How Can I Help?', cursor=1",
      "SPEECH OUTPUT: '7.'",
-     "SPEECH OUTPUT: 'How Can I Help? link.'"]))
+     "SPEECH OUTPUT: 'How Can I Help?'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -792,7 +830,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '6. Accessible Applications'",
      "     VISIBLE:  '6. Accessible Applications', cursor=1",
      "SPEECH OUTPUT: '6.'",
-     "SPEECH OUTPUT: 'Accessible Applications link.'"]))
+     "SPEECH OUTPUT: 'Accessible Applications'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -801,7 +840,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '5. Configuration/Use'",
      "     VISIBLE:  '5. Configuration/Use', cursor=1",
      "SPEECH OUTPUT: '5.'",
-     "SPEECH OUTPUT: 'Configuration/Use link.'"]))
+     "SPEECH OUTPUT: 'Configuration/Use'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -810,7 +850,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '4. Download/Installation'",
      "     VISIBLE:  '4. Download/Installation', cursor=1",
      "SPEECH OUTPUT: '4.'",
-     "SPEECH OUTPUT: 'Download/Installation link.'"]))
+     "SPEECH OUTPUT: 'Download/Installation'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -819,7 +860,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '3. Audio Guides'",
      "     VISIBLE:  '3. Audio Guides', cursor=1",
      "SPEECH OUTPUT: '3.'",
-     "SPEECH OUTPUT: 'Audio Guides link.'"]))
+     "SPEECH OUTPUT: 'Audio Guides'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -828,7 +870,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '2. About'",
      "     VISIBLE:  '2. About', cursor=1",
      "SPEECH OUTPUT: '2.'",
-     "SPEECH OUTPUT: 'About link.'"]))
+     "SPEECH OUTPUT: 'About'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -837,7 +880,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  '1. Welcome to Orca!'",
      "     VISIBLE:  '1. Welcome to Orca!', cursor=1",
      "SPEECH OUTPUT: '1.'",
-     "SPEECH OUTPUT: 'Welcome to Orca! link.'"]))
+     "SPEECH OUTPUT: 'Welcome to Orca!'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -854,7 +898,8 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'HOT HOT HOT: Notes on access to Firefox 3.0'",
      "     VISIBLE:  'HOT HOT HOT: Notes on access to ', cursor=1",
      "SPEECH OUTPUT: 'HOT HOT HOT: Notes on'",
-     "SPEECH OUTPUT: 'access to Firefox 3.0 link.'"]))
+     "SPEECH OUTPUT: 'access to Firefox 3.0'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -878,11 +923,14 @@ sequence.append(utils.AssertPresentationAction(
     "97. Line Up",
     ["BRAILLE LINE:  'Archives\) | FAQ | DocIndex'",
      "     VISIBLE:  'Archives\) | FAQ | DocIndex', cursor=1",
-     "SPEECH OUTPUT: 'Archives link.'",
+     "SPEECH OUTPUT: 'Archives'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '\) |'",
-     "SPEECH OUTPUT: 'FAQ link.'",
+     "SPEECH OUTPUT: 'FAQ'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'DocIndex link.'"]))
+     "SPEECH OUTPUT: 'DocIndex'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -890,15 +938,20 @@ sequence.append(utils.AssertPresentationAction(
     "98. Line Up",
     ["BRAILLE LINE:  'Home | Download/Installation | Configuration/Use | Accessible Applications | Mailing 
List \('",
      "     VISIBLE:  'Home | Download/Installation | C', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Download/Installation link.'",
+     "SPEECH OUTPUT: 'Download/Installation'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Configuration/Use link.'",
+     "SPEECH OUTPUT: 'Configuration/Use'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Accessible Applications link.'",
+     "SPEECH OUTPUT: 'Accessible Applications'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '|'",
-     "SPEECH OUTPUT: 'Mailing List link.'",
+     "SPEECH OUTPUT: 'Mailing List'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '('"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -907,7 +960,8 @@ sequence.append(utils.AssertPresentationAction(
     "99. Line Up",
     ["BRAILLE LINE:  'en Español'",
      "     VISIBLE:  'en Español', cursor=1",
-     "SPEECH OUTPUT: 'en Español link.'"]))
+     "SPEECH OUTPUT: 'en Español'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -915,18 +969,23 @@ sequence.append(utils.AssertPresentationAction(
     "100. Line Up",
     ["BRAILLE LINE:  'Home RecentChanges FindPage HelpContents Orca'",
      "     VISIBLE:  'Home RecentChanges FindPage Help', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
-     "SPEECH OUTPUT: 'RecentChanges link.'",
-     "SPEECH OUTPUT: 'FindPage link.'",
-     "SPEECH OUTPUT: 'HelpContents link.'",
-     "SPEECH OUTPUT: 'Orca link.'"]))
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'RecentChanges'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'FindPage'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'HelpContents'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Orca'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "101. Line Up",
-    ["BRAILLE LINE:  'live.gnome.org  h1 Search $l Titles push button Text push button'",
-     "     VISIBLE:  'live.gnome.org  h1 Search $l Tit', cursor=1",
+    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles push button Text push button'",
+     "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
      "SPEECH OUTPUT: 'live.gnome.org heading level 1'",
      "SPEECH OUTPUT: 'entry Search'",
      "SPEECH OUTPUT: 'Titles push button'",
@@ -938,13 +997,20 @@ sequence.append(utils.AssertPresentationAction(
     "102. Line Up",
     ["BRAILLE LINE:  'Home News Projects Art Support Development Community'",
      "     VISIBLE:  'Home News Projects Art Support D', cursor=1",
-     "SPEECH OUTPUT: 'Home link.'",
-     "SPEECH OUTPUT: 'News link.'",
-     "SPEECH OUTPUT: 'Projects link.'",
-     "SPEECH OUTPUT: 'Art link.'",
-     "SPEECH OUTPUT: 'Support link.'",
-     "SPEECH OUTPUT: 'Development link.'",
-     "SPEECH OUTPUT: 'Community link.'"]))
+     "SPEECH OUTPUT: 'Home'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'News'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Projects'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Art'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Support'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Development'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'Community'",
+     "SPEECH OUTPUT: 'link.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/link_where_am_i.py b/test/keystrokes/firefox/link_where_am_i.py
index 0e2da66..fae094c 100644
--- a/test/keystrokes/firefox/link_where_am_i.py
+++ b/test/keystrokes/firefox/link_where_am_i.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Shift>Tab"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/longdesc_1.py b/test/keystrokes/firefox/longdesc_1.py
index 6febe3e..c8f91bc 100644
--- a/test/keystrokes/firefox/longdesc_1.py
+++ b/test/keystrokes/firefox/longdesc_1.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_10.py b/test/keystrokes/firefox/longdesc_10.py
index 1a60432..c08b312 100644
--- a/test/keystrokes/firefox/longdesc_10.py
+++ b/test/keystrokes/firefox/longdesc_10.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_11.py b/test/keystrokes/firefox/longdesc_11.py
index ce5ab58..9a1c827 100644
--- a/test/keystrokes/firefox/longdesc_11.py
+++ b/test/keystrokes/firefox/longdesc_11.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -20,7 +21,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_12.py b/test/keystrokes/firefox/longdesc_12.py
index 531963c..c7c82f6 100644
--- a/test/keystrokes/firefox/longdesc_12.py
+++ b/test/keystrokes/firefox/longdesc_12.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
@@ -21,7 +22,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_13.py b/test/keystrokes/firefox/longdesc_13.py
index 1af6895..7048719 100644
--- a/test/keystrokes/firefox/longdesc_13.py
+++ b/test/keystrokes/firefox/longdesc_13.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("g"))
@@ -27,7 +28,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_14.py b/test/keystrokes/firefox/longdesc_14.py
index 6febe3e..c8f91bc 100644
--- a/test/keystrokes/firefox/longdesc_14.py
+++ b/test/keystrokes/firefox/longdesc_14.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_15.py b/test/keystrokes/firefox/longdesc_15.py
index 6febe3e..c8f91bc 100644
--- a/test/keystrokes/firefox/longdesc_15.py
+++ b/test/keystrokes/firefox/longdesc_15.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_2.py b/test/keystrokes/firefox/longdesc_2.py
index 6febe3e..c8f91bc 100644
--- a/test/keystrokes/firefox/longdesc_2.py
+++ b/test/keystrokes/firefox/longdesc_2.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_3.py b/test/keystrokes/firefox/longdesc_3.py
index 35539ba..c3aa7c3 100644
--- a/test/keystrokes/firefox/longdesc_3.py
+++ b/test/keystrokes/firefox/longdesc_3.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_4.py b/test/keystrokes/firefox/longdesc_4.py
index 8c83a68..354ca85 100644
--- a/test/keystrokes/firefox/longdesc_4.py
+++ b/test/keystrokes/firefox/longdesc_4.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -20,7 +21,8 @@ sequence.append(utils.AssertPresentationAction(
 #sequence.append(KeyComboAction("KP_Multiply"))
 #sequence.append(PauseAction(3000))
 #sequence.append(KeyComboAction("d"))
-#sequence.append(WaitForDocLoad())
+##sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 #
 #sequence.append(utils.StartRecordingAction())
 #sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_5.py b/test/keystrokes/firefox/longdesc_5.py
index 8c83a68..354ca85 100644
--- a/test/keystrokes/firefox/longdesc_5.py
+++ b/test/keystrokes/firefox/longdesc_5.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -20,7 +21,8 @@ sequence.append(utils.AssertPresentationAction(
 #sequence.append(KeyComboAction("KP_Multiply"))
 #sequence.append(PauseAction(3000))
 #sequence.append(KeyComboAction("d"))
-#sequence.append(WaitForDocLoad())
+##sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 #
 #sequence.append(utils.StartRecordingAction())
 #sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_6.py b/test/keystrokes/firefox/longdesc_6.py
index 8c83a68..354ca85 100644
--- a/test/keystrokes/firefox/longdesc_6.py
+++ b/test/keystrokes/firefox/longdesc_6.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -20,7 +21,8 @@ sequence.append(utils.AssertPresentationAction(
 #sequence.append(KeyComboAction("KP_Multiply"))
 #sequence.append(PauseAction(3000))
 #sequence.append(KeyComboAction("d"))
-#sequence.append(WaitForDocLoad())
+##sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 #
 #sequence.append(utils.StartRecordingAction())
 #sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_7.py b/test/keystrokes/firefox/longdesc_7.py
index 35539ba..c3aa7c3 100644
--- a/test/keystrokes/firefox/longdesc_7.py
+++ b/test/keystrokes/firefox/longdesc_7.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_8.py b/test/keystrokes/firefox/longdesc_8.py
index ce5ab58..9a1c827 100644
--- a/test/keystrokes/firefox/longdesc_8.py
+++ b/test/keystrokes/firefox/longdesc_8.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -20,7 +21,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/longdesc_9.py b/test/keystrokes/firefox/longdesc_9.py
index 35539ba..c3aa7c3 100644
--- a/test/keystrokes/firefox/longdesc_9.py
+++ b/test/keystrokes/firefox/longdesc_9.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -19,7 +20,8 @@ sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("KP_Multiply"))
 sequence.append(PauseAction(3000))
 sequence.append(KeyComboAction("d"))
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
diff --git a/test/keystrokes/firefox/math_line_nav_fraction.py 
b/test/keystrokes/firefox/math_line_nav_fraction.py
index c7b5acc..6c4834d 100644
--- a/test/keystrokes/firefox/math_line_nav_fraction.py
+++ b/test/keystrokes/firefox/math_line_nav_fraction.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_math_in_dialog.py 
b/test/keystrokes/firefox/math_line_nav_math_in_dialog.py
index 31ba13e..e51ab9c 100644
--- a/test/keystrokes/firefox/math_line_nav_math_in_dialog.py
+++ b/test/keystrokes/firefox/math_line_nav_math_in_dialog.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_mathvariant.py 
b/test/keystrokes/firefox/math_line_nav_mathvariant.py
index 465cd3a..3d077e5 100644
--- a/test/keystrokes/firefox/math_line_nav_mathvariant.py
+++ b/test/keystrokes/firefox/math_line_nav_mathvariant.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_menclose.py 
b/test/keystrokes/firefox/math_line_nav_menclose.py
index e610d1c..bdfb6fd 100644
--- a/test/keystrokes/firefox/math_line_nav_menclose.py
+++ b/test/keystrokes/firefox/math_line_nav_menclose.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_mfenced.py 
b/test/keystrokes/firefox/math_line_nav_mfenced.py
index 64ae834..ec1a692 100644
--- a/test/keystrokes/firefox/math_line_nav_mfenced.py
+++ b/test/keystrokes/firefox/math_line_nav_mfenced.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_mroot.py b/test/keystrokes/firefox/math_line_nav_mroot.py
index d2c70dc..87b1888 100644
--- a/test/keystrokes/firefox/math_line_nav_mroot.py
+++ b/test/keystrokes/firefox/math_line_nav_mroot.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_mrow.py b/test/keystrokes/firefox/math_line_nav_mrow.py
index a264f4e..fb3c524 100644
--- a/test/keystrokes/firefox/math_line_nav_mrow.py
+++ b/test/keystrokes/firefox/math_line_nav_mrow.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_scripts.py 
b/test/keystrokes/firefox/math_line_nav_scripts.py
index f233aa8..3647342 100644
--- a/test/keystrokes/firefox/math_line_nav_scripts.py
+++ b/test/keystrokes/firefox/math_line_nav_scripts.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_table.py b/test/keystrokes/firefox/math_line_nav_table.py
index dd1bfb0..5a02e86 100644
--- a/test/keystrokes/firefox/math_line_nav_table.py
+++ b/test/keystrokes/firefox/math_line_nav_table.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/firefox/math_line_nav_torture_test.py 
b/test/keystrokes/firefox/math_line_nav_torture_test.py
index 379ab27..5b95783 100644
--- a/test/keystrokes/firefox/math_line_nav_torture_test.py
+++ b/test/keystrokes/firefox/math_line_nav_torture_test.py
@@ -5,7 +5,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
@@ -227,7 +228,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'over partial differential y.'",
      "SPEECH OUTPUT: 'superscript 2.'",
      "SPEECH OUTPUT: 'fraction end.'",
-     "SPEECH OUTPUT: 'right paren vertical bar φ  left paren x plus i y right paren vertical bar.'",
+     "SPEECH OUTPUT: 'right paren vertical bar φ left paren x plus i y right paren vertical bar.'",
      "SPEECH OUTPUT: 'superscript 2.'",
      "SPEECH OUTPUT: 'equals 0'"]))
 
diff --git a/test/keystrokes/firefox/mouseover_javascript_alert.py 
b/test/keystrokes/firefox/mouseover_javascript_alert.py
index 233cfac..7e44491 100644
--- a/test/keystrokes/firefox/mouseover_javascript_alert.py
+++ b/test/keystrokes/firefox/mouseover_javascript_alert.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("Down"))
 
diff --git a/test/keystrokes/firefox/object_nav_descriptions_down.py 
b/test/keystrokes/firefox/object_nav_descriptions_down.py
index 9bbda79..1f7d29e 100644
--- a/test/keystrokes/firefox/object_nav_descriptions_down.py
+++ b/test/keystrokes/firefox/object_nav_descriptions_down.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/object_nav_descriptions_up.py 
b/test/keystrokes/firefox/object_nav_descriptions_up.py
index a076c85..f10a346 100644
--- a/test/keystrokes/firefox/object_nav_descriptions_up.py
+++ b/test/keystrokes/firefox/object_nav_descriptions_up.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/object_nav_link_in_quotes.py 
b/test/keystrokes/firefox/object_nav_link_in_quotes.py
index 1a66c19..20c6c59 100644
--- a/test/keystrokes/firefox/object_nav_link_in_quotes.py
+++ b/test/keystrokes/firefox/object_nav_link_in_quotes.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/object_nav_links_in_text.py 
b/test/keystrokes/firefox/object_nav_links_in_text.py
index 62552b6..9bab0f6 100644
--- a/test/keystrokes/firefox/object_nav_links_in_text.py
+++ b/test/keystrokes/firefox/object_nav_links_in_text.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/object_nav_links_on_line.py 
b/test/keystrokes/firefox/object_nav_links_on_line.py
index f8a5ba5..a188fa4 100644
--- a/test/keystrokes/firefox/object_nav_links_on_line.py
+++ b/test/keystrokes/firefox/object_nav_links_on_line.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/object_nav_simple_form_down.py 
b/test/keystrokes/firefox/object_nav_simple_form_down.py
index 9b7924c..811a245 100644
--- a/test/keystrokes/firefox/object_nav_simple_form_down.py
+++ b/test/keystrokes/firefox/object_nav_simple_form_down.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -93,17 +94,17 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "10. line Down",
-    ["BRAILLE LINE:  'I've recently taken up typing and plan to  $l'",
+    ["BRAILLE LINE:  'I've recently taken up typing and plan  $l'",
      "     VISIBLE:  'I've recently taken up typing an', cursor=1",
-     "SPEECH OUTPUT: 'I've recently taken up typing and plan to '"]))
+     "SPEECH OUTPUT: 'I've recently taken up typing and plan '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "11. line Down",
-    ["BRAILLE LINE:  'write my memoirs. $l'",
-     "     VISIBLE:  'write my memoirs. $l', cursor=1",
-     "SPEECH OUTPUT: 'write my memoirs.",
+    ["BRAILLE LINE:  'to write my memoirs. $l'",
+     "     VISIBLE:  'to write my memoirs. $l', cursor=1",
+     "SPEECH OUTPUT: 'to write my memoirs.",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -190,9 +191,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "22. line Down",
-    ["BRAILLE LINE:  'Hockey list box'",
-     "     VISIBLE:  'Hockey list box', cursor=1",
-     "SPEECH OUTPUT: 'Hockey.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 4 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/object_nav_simple_form_up.py 
b/test/keystrokes/firefox/object_nav_simple_form_up.py
index e9aaf80..5327b97 100644
--- a/test/keystrokes/firefox/object_nav_simple_form_up.py
+++ b/test/keystrokes/firefox/object_nav_simple_form_up.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -67,9 +68,8 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "7. line Up",
-    ["BRAILLE LINE:  'Hockey list box'",
-     "     VISIBLE:  'Hockey list box', cursor=1",
-     "SPEECH OUTPUT: 'Hockey.'",
+    ["BRAILLE LINE:  'list box'",
+     "     VISIBLE:  'list box', cursor=1",
      "SPEECH OUTPUT: 'multi-select List with 4 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -156,18 +156,18 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "18. line Up",
-    ["BRAILLE LINE:  'write my memoirs. $l'",
-     "     VISIBLE:  'write my memoirs. $l', cursor=1",
-     "SPEECH OUTPUT: 'write my memoirs.",
+    ["BRAILLE LINE:  'to write my memoirs. $l'",
+     "     VISIBLE:  'to write my memoirs. $l', cursor=1",
+     "SPEECH OUTPUT: 'to write my memoirs.",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "19. line Up",
-    ["BRAILLE LINE:  'I've recently taken up typing and plan to  $l'",
+    ["BRAILLE LINE:  'I've recently taken up typing and plan  $l'",
      "     VISIBLE:  'I've recently taken up typing an', cursor=1",
-     "SPEECH OUTPUT: 'I've recently taken up typing and plan to '"]))
+     "SPEECH OUTPUT: 'I've recently taken up typing and plan '"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
diff --git a/test/keystrokes/firefox/say_all_blockquote.py b/test/keystrokes/firefox/say_all_blockquote.py
index a6bf892..08c7f3a 100644
--- a/test/keystrokes/firefox/say_all_blockquote.py
+++ b/test/keystrokes/firefox/say_all_blockquote.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_bug_511389.py b/test/keystrokes/firefox/say_all_bug_511389.py
index 3be5c13..f61eb05 100644
--- a/test/keystrokes/firefox/say_all_bug_511389.py
+++ b/test/keystrokes/firefox/say_all_bug_511389.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_bug_591351_1.py b/test/keystrokes/firefox/say_all_bug_591351_1.py
index 61be46f..0885071 100644
--- a/test/keystrokes/firefox/say_all_bug_591351_1.py
+++ b/test/keystrokes/firefox/say_all_bug_591351_1.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_bugzilla_search.py 
b/test/keystrokes/firefox/say_all_bugzilla_search.py
index ca90124..9e9b332 100644
--- a/test/keystrokes/firefox/say_all_bugzilla_search.py
+++ b/test/keystrokes/firefox/say_all_bugzilla_search.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Shift>Tab"))
 sequence.append(KeyComboAction("<Shift>Tab"))
 sequence.append(KeyComboAction("<Control>Home"))
@@ -44,7 +45,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '|'",
      "SPEECH OUTPUT: 'Log Out'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'Short Bug Search Form '",
+     "SPEECH OUTPUT: 'Short Bug Search Form'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: 'Complicated Bug Search Form'",
      "SPEECH OUTPUT: 'Give me some help'",
@@ -59,29 +60,24 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'push button'",
      "SPEECH OUTPUT: 'Classification:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'Admin '",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 8 items'",
      "SPEECH OUTPUT: 'Product:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'accerciser'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 379 items'",
      "SPEECH OUTPUT: 'Component'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: ':'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'abiscan'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 1248 items'",
      "SPEECH OUTPUT: 'Version:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: '0.0.1'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 857 items'",
      "SPEECH OUTPUT: 'Target Milestone:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: '---'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 555 items'",
      "SPEECH OUTPUT: 'A Comment:'",
@@ -113,25 +109,21 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'List with 8 items'",
      "SPEECH OUTPUT: 'Resolution:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'FIXED'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 12 items'",
      "SPEECH OUTPUT: 'Severity:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'blocker'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 7 items'",
      "SPEECH OUTPUT: 'Priority:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'Immediate'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 5 items'",
      "SPEECH OUTPUT: 'OS:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'All'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 21 items'",
-     "SPEECH OUTPUT: 'Email and Numbering '",
+     "SPEECH OUTPUT: 'Email and Numbering'",
      "SPEECH OUTPUT: 'Any one of:'",
      "SPEECH OUTPUT: 'check box'",
      "SPEECH OUTPUT: 'checked'",
@@ -184,19 +176,16 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Now'",
      "SPEECH OUTPUT: '(YYYY-MM-DD or relative dates)'",
      "SPEECH OUTPUT: 'where one or more of the following changed:'",
-     "SPEECH OUTPUT: '[Bug creation]'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 26 items'",
      "SPEECH OUTPUT: 'and the new value was:'",
      "SPEECH OUTPUT: 'entry'",
      "SPEECH OUTPUT: 'GNOME version:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'Unspecified'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 14 items'",
      "SPEECH OUTPUT: 'GNOME target:'",
      "SPEECH OUTPUT: 'column header'",
-     "SPEECH OUTPUT: 'Unspecified'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 12 items'",
      "SPEECH OUTPUT: 'Sort results by:'",
diff --git a/test/keystrokes/firefox/say_all_empty_anchor.py b/test/keystrokes/firefox/say_all_empty_anchor.py
index a137ee9..f820449 100644
--- a/test/keystrokes/firefox/say_all_empty_anchor.py
+++ b/test/keystrokes/firefox/say_all_empty_anchor.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_enter_bug.py b/test/keystrokes/firefox/say_all_enter_bug.py
index 1f16f73..e975350 100644
--- a/test/keystrokes/firefox/say_all_enter_bug.py
+++ b/test/keystrokes/firefox/say_all_enter_bug.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
@@ -15,7 +16,6 @@ sequence.append(utils.AssertPresentationAction(
     "1. KP_Add to do a SayAll",
     ["SPEECH OUTPUT: 'Home'",
      "SPEECH OUTPUT: 'link'",
-     "SPEECH OUTPUT: 'Back to the Gnome Bugzilla home page'",
      "SPEECH OUTPUT: 'Bugzilla'",
      "SPEECH OUTPUT: 'New bug'",
      "SPEECH OUTPUT: 'link'",
@@ -61,12 +61,11 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Product:'",
      "SPEECH OUTPUT: 'orca'",
      "SPEECH OUTPUT: 'Version:'",
-     "SPEECH OUTPUT: '2.21.x '",
+     "SPEECH OUTPUT: '2.21.x'",
      "SPEECH OUTPUT: 'List with 9 items'",
      "SPEECH OUTPUT: 'Component'",
      "SPEECH OUTPUT: 'link'",
      "SPEECH OUTPUT: ':'",
-     "SPEECH OUTPUT: 'braille '",
      "SPEECH OUTPUT: 'List with 5 items'",
      "SPEECH OUTPUT: 'GNOME version'",
      "SPEECH OUTPUT: 'link'",
diff --git a/test/keystrokes/firefox/say_all_entries.py b/test/keystrokes/firefox/say_all_entries.py
index 5e69d63..982752c 100644
--- a/test/keystrokes/firefox/say_all_entries.py
+++ b/test/keystrokes/firefox/say_all_entries.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_heading_section.py 
b/test/keystrokes/firefox/say_all_heading_section.py
index 70e8e0f..94b996e 100644
--- a/test/keystrokes/firefox/say_all_heading_section.py
+++ b/test/keystrokes/firefox/say_all_heading_section.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_hidden_elements.py 
b/test/keystrokes/firefox/say_all_hidden_elements.py
index 6fc7103..26ed911 100644
--- a/test/keystrokes/firefox/say_all_hidden_elements.py
+++ b/test/keystrokes/firefox/say_all_hidden_elements.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_imagemap.py b/test/keystrokes/firefox/say_all_imagemap.py
index c8aed12..a85c58a 100644
--- a/test/keystrokes/firefox/say_all_imagemap.py
+++ b/test/keystrokes/firefox/say_all_imagemap.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_multi_line_text.py 
b/test/keystrokes/firefox/say_all_multi_line_text.py
index 5901f42..2279b55 100644
--- a/test/keystrokes/firefox/say_all_multi_line_text.py
+++ b/test/keystrokes/firefox/say_all_multi_line_text.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/say_all_nested_tables.py 
b/test/keystrokes/firefox/say_all_nested_tables.py
index 579e722..f143d46 100644
--- a/test/keystrokes/firefox/say_all_nested_tables.py
+++ b/test/keystrokes/firefox/say_all_nested_tables.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
@@ -27,6 +28,7 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '.'",
      "SPEECH OUTPUT: 'Reports'",
      "SPEECH OUTPUT: 'link'",
+     "SPEECH OUTPUT: 'table row'",
      "SPEECH OUTPUT: 'Your Learning Plan'",
      "SPEECH OUTPUT: 'Below is a list of the courses that make up your learning plan.'",
      "SPEECH OUTPUT: 'UNIX 2007'",
diff --git a/test/keystrokes/firefox/say_all_onmouseup.py b/test/keystrokes/firefox/say_all_onmouseup.py
index 94c5584..b7dc584 100644
--- a/test/keystrokes/firefox/say_all_onmouseup.py
+++ b/test/keystrokes/firefox/say_all_onmouseup.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_role_combo_box.py 
b/test/keystrokes/firefox/say_all_role_combo_box.py
index c157a42..b186694 100644
--- a/test/keystrokes/firefox/say_all_role_combo_box.py
+++ b/test/keystrokes/firefox/say_all_role_combo_box.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_role_links.py b/test/keystrokes/firefox/say_all_role_links.py
index 6f98e32..c9c8193 100644
--- a/test/keystrokes/firefox/say_all_role_links.py
+++ b/test/keystrokes/firefox/say_all_role_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_role_lists.py b/test/keystrokes/firefox/say_all_role_lists.py
index 07b6770..735843c 100644
--- a/test/keystrokes/firefox/say_all_role_lists.py
+++ b/test/keystrokes/firefox/say_all_role_lists.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_simple_form.py b/test/keystrokes/firefox/say_all_simple_form.py
index edc98be..f79f132 100644
--- a/test/keystrokes/firefox/say_all_simple_form.py
+++ b/test/keystrokes/firefox/say_all_simple_form.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
@@ -26,7 +27,8 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: '  I like to swing from trees and eat bananas. '",
      "SPEECH OUTPUT: '  I've recently taken up typing and plan to write my memoirs.",
      "'",
-     "SPEECH OUTPUT: '     '",
+     "SPEECH OUTPUT: '",
+     "     '",
      "SPEECH OUTPUT: 'Check one or more:'",
      "SPEECH OUTPUT: 'Red'",
      "SPEECH OUTPUT: 'check box'",
@@ -44,7 +46,6 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Water'",
      "SPEECH OUTPUT: 'combo box'",
      "SPEECH OUTPUT: 'Which sports do you like?'",
-     "SPEECH OUTPUT: 'Hockey'",
      "SPEECH OUTPUT: 'multi-select'",
      "SPEECH OUTPUT: 'List with 4 items'",
      "SPEECH OUTPUT: 'Dashing picture of Willie Walker'",
diff --git a/test/keystrokes/firefox/say_all_table_caption.py 
b/test/keystrokes/firefox/say_all_table_caption.py
index 77e1b91..fb9a8f7 100644
--- a/test/keystrokes/firefox/say_all_table_caption.py
+++ b/test/keystrokes/firefox/say_all_table_caption.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_table_cell_links.py 
b/test/keystrokes/firefox/say_all_table_cell_links.py
index 33072f7..3fed550 100644
--- a/test/keystrokes/firefox/say_all_table_cell_links.py
+++ b/test/keystrokes/firefox/say_all_table_cell_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/say_all_wiki.py b/test/keystrokes/firefox/say_all_wiki.py
index 136ca6f..1a783c1 100644
--- a/test/keystrokes/firefox/say_all_wiki.py
+++ b/test/keystrokes/firefox/say_all_wiki.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Add"))
diff --git a/test/keystrokes/firefox/spelling_errors.py b/test/keystrokes/firefox/spelling_errors.py
index 9b15ae8..65edf66 100644
--- a/test/keystrokes/firefox/spelling_errors.py
+++ b/test/keystrokes/firefox/spelling_errors.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
@@ -349,7 +350,10 @@ sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "41. Insert+f",
     ["SPEECH OUTPUT: 'size: 9' voice=system",
-     "SPEECH OUTPUT: 'family name: DejaVu Sans Mono' voice=system"]))
+     "SPEECH OUTPUT: 'family name: DejaVu Sans Mono' voice=system",
+     "SPEECH OUTPUT: 'misspelled' voice=system",
+     "SPEECH OUTPUT: 'foreground color: black' voice=system",
+     "SPEECH OUTPUT: 'background color: white' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Right"))
@@ -391,7 +395,9 @@ sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "46. Insert+f",
     ["SPEECH OUTPUT: 'size: 9' voice=system",
-     "SPEECH OUTPUT: 'family name: DejaVu Sans Mono' voice=system"]))
+     "SPEECH OUTPUT: 'family name: DejaVu Sans Mono' voice=system",
+     "SPEECH OUTPUT: 'foreground color: black' voice=system",
+     "SPEECH OUTPUT: 'background color: white' voice=system"]))
 
 sequence.append(utils.AssertionSummaryAction())
 sequence.start()
diff --git a/test/keystrokes/firefox/ui_doc_tabs.py b/test/keystrokes/firefox/ui_doc_tabs.py
index 14d0d1d..5d5cf95 100644
--- a/test/keystrokes/firefox/ui_doc_tabs.py
+++ b/test/keystrokes/firefox/ui_doc_tabs.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
diff --git a/test/keystrokes/firefox/ui_role_radio_button.py b/test/keystrokes/firefox/ui_role_radio_button.py
index d0afe32..c31671e 100644
--- a/test/keystrokes/firefox/ui_role_radio_button.py
+++ b/test/keystrokes/firefox/ui_role_radio_button.py
@@ -17,7 +17,6 @@ sequence.append(utils.AssertPresentationAction(
     "1. Alt a to radio button group",
     ["BRAILLE LINE:  'Firefox application Print dialog General page tab Range Range &=y All Pages radio 
button'",
      "     VISIBLE:  '&=y All Pages radio button', cursor=1",
-     "SPEECH OUTPUT: 'General page tab.'",
      "SPEECH OUTPUT: 'Range panel'",
      "SPEECH OUTPUT: 'All Pages.'",
      "SPEECH OUTPUT: 'selected radio button'"]))
diff --git a/test/keystrokes/firefox/ui_role_radio_menu_item.py 
b/test/keystrokes/firefox/ui_role_radio_menu_item.py
index 41e15de..4e78bfa 100644
--- a/test/keystrokes/firefox/ui_role_radio_menu_item.py
+++ b/test/keystrokes/firefox/ui_role_radio_menu_item.py
@@ -16,7 +16,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. y for the Page Style menu",
     ["BRAILLE LINE:  'Firefox application (Mozilla Firefox|Nightly) frame Menu Bar tool bar Application menu 
bar View menu & y No Style radio menu item'",
      "     VISIBLE:  '& y No Style radio menu item', cursor=1",
-     "SPEECH OUTPUT: 'Page Style menu(\.|)'",
+     "SPEECH OUTPUT: 'Page Style menu.'",
      "SPEECH OUTPUT: 'No Style not selected radio menu item'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/word_nav_links.py b/test/keystrokes/firefox/word_nav_links.py
index 244581b..97200c6 100644
--- a/test/keystrokes/firefox/word_nav_links.py
+++ b/test/keystrokes/firefox/word_nav_links.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 
 # Work around some new quirk in Gecko that causes this test to fail if
 # run via the test harness rather than manually.
@@ -30,10 +31,14 @@ sequence.append(utils.AssertPresentationAction(
     "2. Next Word",
     ["BRAILLE LINE:  'Hello W o r l d. Go odbye w orld.'",
      "     VISIBLE:  'd. Go odbye w orld.', cursor=3",
-     "SPEECH OUTPUT: 'W link.'",
-     "SPEECH OUTPUT: 'o link.'",
-     "SPEECH OUTPUT: 'r link.'",
-     "SPEECH OUTPUT: 'l link.'",
+     "SPEECH OUTPUT: 'W'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'o'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'r'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'l'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'd.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -70,7 +75,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Next Word",
     ["BRAILLE LINE:  'More stuff! Yay!'",
      "     VISIBLE:  'More stuff! Yay!', cursor=12",
-     "SPEECH OUTPUT: 'stuff link.'",
+     "SPEECH OUTPUT: 'stuff'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '!'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -79,7 +85,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Previous Word",
     ["BRAILLE LINE:  'More stuff! Yay!'",
      "     VISIBLE:  'More stuff! Yay!', cursor=6",
-     "SPEECH OUTPUT: 'stuff link.'",
+     "SPEECH OUTPUT: 'stuff'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: '!'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -116,10 +123,14 @@ sequence.append(utils.AssertPresentationAction(
     "11. Previous Word",
     ["BRAILLE LINE:  'Hello W o r l d. Go odbye w orld.'",
      "     VISIBLE:  'W o r l d. Go odbye w orld.', cursor=1",
-     "SPEECH OUTPUT: 'W link.'",
-     "SPEECH OUTPUT: 'o link.'",
-     "SPEECH OUTPUT: 'r link.'",
-     "SPEECH OUTPUT: 'l link.'",
+     "SPEECH OUTPUT: 'W'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'o'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'r'",
+     "SPEECH OUTPUT: 'link.'",
+     "SPEECH OUTPUT: 'l'",
+     "SPEECH OUTPUT: 'link.'",
      "SPEECH OUTPUT: 'd.'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/firefox/word_nav_list_items.py b/test/keystrokes/firefox/word_nav_list_items.py
index bcf3936..29d107a 100644
--- a/test/keystrokes/firefox/word_nav_list_items.py
+++ b/test/keystrokes/firefox/word_nav_list_items.py
@@ -7,7 +7,8 @@ import utils
 
 sequence = MacroSequence()
 
-sequence.append(WaitForDocLoad())
+#sequence.append(WaitForDocLoad())
+sequence.append(PauseAction(5000))
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(KeyComboAction("Down"))
 
@@ -17,14 +18,14 @@ sequence.append(utils.AssertPresentationAction(
     "1. Line Down",
     ["BRAILLE LINE:  '1. This is a short list item.'",
      "     VISIBLE:  '1. This is a short list item.', cursor=1",
-     "SPEECH OUTPUT: '1. This is a short list item. .'"]))
+     "SPEECH OUTPUT: '1. This is a short list item.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "2. Next Word",
     ["BRAILLE LINE:  '1. This is a short list item.'",
-     "     VISIBLE:  '1. This is a short list item.', cursor=1",
+     "     VISIBLE:  '1. This is a short list item.', cursor=3",
      "SPEECH OUTPUT: '1.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -32,7 +33,7 @@ sequence.append(KeyComboAction("<Control>Right"))
 sequence.append(utils.AssertPresentationAction(
     "3. Next Word",
     ["BRAILLE LINE:  '1. This is a short list item.'",
-     "     VISIBLE:  '1. This is a short list item.', cursor=1",
+     "     VISIBLE:  '1. This is a short list item.', cursor=8",
      "SPEECH OUTPUT: 'This.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -64,7 +65,7 @@ sequence.append(KeyComboAction("<Control>Left"))
 sequence.append(utils.AssertPresentationAction(
     "7. Previous Word",
     ["BRAILLE LINE:  '1. This is a short list item.'",
-     "     VISIBLE:  '1. This is a short list item.', cursor=1",
+     "     VISIBLE:  '1. This is a short list item.', cursor=9",
      "SPEECH OUTPUT: 'is.'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -72,7 +73,7 @@ sequence.append(KeyComboAction("<Control>Left"))
 sequence.append(utils.AssertPresentationAction(
     "8. Previous Word",
     ["BRAILLE LINE:  '1. This is a short list item.'",
-     "     VISIBLE:  '1. This is a short list item.', cursor=1",
+     "     VISIBLE:  '1. This is a short list item.', cursor=4",
      "SPEECH OUTPUT: 'This.'"]))
 
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/gtk-demo/role_accel_label.py b/test/keystrokes/gtk-demo/role_accel_label.py
index fd0f09f..1bac23f 100644
--- a/test/keystrokes/gtk-demo/role_accel_label.py
+++ b/test/keystrokes/gtk-demo/role_accel_label.py
@@ -20,8 +20,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Preferences menu', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Application Window frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Preferences menu.'",
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -31,7 +31,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Color menu', cursor=1",
      "SPEECH OUTPUT: 'Application Window frame'",
      "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Color menu 1 of 3.'",
+     "SPEECH OUTPUT: 'Color menu.'",
+     "SPEECH OUTPUT: '1 of 4.'",
      "SPEECH OUTPUT: 'C'"]))
 
 sequence.append(KeyComboAction("Escape"))
diff --git a/test/keystrokes/gtk-demo/role_alert.py b/test/keystrokes/gtk-demo/role_alert.py
index 9ef2b36..db1be65 100644
--- a/test/keystrokes/gtk-demo/role_alert.py
+++ b/test/keystrokes/gtk-demo/role_alert.py
@@ -19,7 +19,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Information alert', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Information alert OK push button'",
      "     VISIBLE:  'OK push button', cursor=1",
-     "SPEECH OUTPUT: 'Information This message box has been popped up the following",
+     "SPEECH OUTPUT: 'Information alert.'",
+     "SPEECH OUTPUT: 'This message box has been popped up the following",
      "number of times: 1'",
      "SPEECH OUTPUT: 'OK push button'"]))
 
@@ -41,7 +42,8 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'gtk-demo application Interactive Dialog dialog Entry 1 Testing $l'",
      "     VISIBLE:  'Entry 1 Testing $l', cursor=16",
      "SPEECH OUTPUT: 'Interactive Dialog'",
-     "SPEECH OUTPUT: 'Entry 1 text Testing selected'"]))
+     "SPEECH OUTPUT: 'Entry 1 text.'",
+     "SPEECH OUTPUT: 'Testing selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -51,7 +53,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Entry 2 Again $l', cursor=14",
      "BRAILLE LINE:  'gtk-demo application Interactive Dialog dialog Entry 2 Again $l'",
      "     VISIBLE:  'Entry 2 Again $l', cursor=14",
-     "SPEECH OUTPUT: 'Entry 2 text Again selected'"]))
+     "SPEECH OUTPUT: 'Entry 2 text.'",
+     "SPEECH OUTPUT: 'Again selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
diff --git a/test/keystrokes/gtk-demo/role_check_menu_item.py 
b/test/keystrokes/gtk-demo/role_check_menu_item.py
index f74d9e1..23bd830 100644
--- a/test/keystrokes/gtk-demo/role_check_menu_item.py
+++ b/test/keystrokes/gtk-demo/role_check_menu_item.py
@@ -20,7 +20,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Arrow to check menu item - checked",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame <x> Bold check menu item(Ctrl+B)'",
      "     VISIBLE:  '<x> Bold check menu item(Ctrl+B)', cursor=1",
-     "SPEECH OUTPUT: 'Bold check menu item checked Ctrl+B'"]))
+     "SPEECH OUTPUT: 'Bold check menu item checked Ctrl+B.'"]))
 
 sequence.append(KeyComboAction("Return"))
 sequence.append(KeyComboAction("Escape"))
@@ -33,7 +33,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Arrow to check menu item - not checked",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame < > Bold check menu item(Ctrl+B)'",
      "     VISIBLE:  '< > Bold check menu item(Ctrl+B)', cursor=1",
-     "SPEECH OUTPUT: 'Bold check menu item not checked Ctrl+B'"]))
+     "SPEECH OUTPUT: 'Bold check menu item not checked Ctrl+B.'"]))
 
 sequence.append(KeyComboAction("Return"))
 sequence.append(KeyComboAction("Escape"))
@@ -46,7 +46,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Arrow to check menu item - checked",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame <x> Bold check menu item(Ctrl+B)'",
      "     VISIBLE:  '<x> Bold check menu item(Ctrl+B)', cursor=1",
-     "SPEECH OUTPUT: 'Bold check menu item checked Ctrl+B'"]))
+     "SPEECH OUTPUT: 'Bold check menu item checked Ctrl+B.'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk-demo/role_column_header.py b/test/keystrokes/gtk-demo/role_column_header.py
index 824a853..4a148d5 100644
--- a/test/keystrokes/gtk-demo/role_column_header.py
+++ b/test/keystrokes/gtk-demo/role_column_header.py
@@ -20,7 +20,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Bug number column header",
     ["BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Bug number table column header'",
      "     VISIBLE:  'Bug number table column header', cursor=1",
-     "SPEECH OUTPUT: 'Bug number table column header'"]))
+     "SPEECH OUTPUT: 'Bug number table column header not selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -46,8 +46,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'scrollable notebooks and hidden ', cursor=1",
      "BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Fixed? column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs '",
      "     VISIBLE:  '< > Fixed? 60482 Normal scrollab', cursor=1",
-     "SPEECH OUTPUT: 'Fixed? check box not checked 60482 Normal scrollable notebooks and hidden tabs'",
-     "SPEECH OUTPUT: 'Fixed? column header check box not checked'"]))
+     "SPEECH OUTPUT: 'Fixed? check box not checked 60482 Normal scrollable notebooks and hidden tabs.'",
+     "SPEECH OUTPUT: 'Fixed? column header check box not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -55,7 +55,7 @@ sequence.append(utils.AssertPresentationAction(
     "5. Normal cell",
     ["BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'Severity column header Normal'"]))
+     "SPEECH OUTPUT: 'Severity column header Normal.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -63,7 +63,12 @@ sequence.append(utils.AssertPresentationAction(
     "6. Normal cell basic Where Am I",
     ["BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 5 row 1 of 14'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 5'",
+     "SPEECH OUTPUT: 'row 1 of 14.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -74,8 +79,20 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
      "BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 5 row 1 of 14'",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 5 row 1 of 14 Fixed? check box not 
checked 60482 Normal scrollable notebooks and hidden tabs'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 5'",
+     "SPEECH OUTPUT: 'row 1 of 14.'",
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 5'",
+     "SPEECH OUTPUT: 'row 1 of 14.'",
+     "SPEECH OUTPUT: 'Fixed?'",
+     "SPEECH OUTPUT: 'check box not checked 60482 Normal scrollable notebooks and hidden tabs.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
@@ -83,7 +100,7 @@ sequence.append(utils.AssertPresentationAction(
     "8. 60482 cell",
     ["BRAILLE LINE:  'gtk-demo application GtkListStore demo frame table Bug number column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs '",
      "     VISIBLE:  '60482 Normal scrollable notebook', cursor=1",
-     "SPEECH OUTPUT: 'Bug number column header 60482'"]))
+     "SPEECH OUTPUT: 'Bug number column header 60482.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_combo_box.py b/test/keystrokes/gtk-demo/role_combo_box.py
index 243ad57..d190808 100644
--- a/test/keystrokes/gtk-demo/role_combo_box.py
+++ b/test/keystrokes/gtk-demo/role_combo_box.py
@@ -20,7 +20,7 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'gtk-demo application Combo boxes frame Some stock icons panel Warning combo box 
Warning'",
      "     VISIBLE:  'Warning', cursor=1",
      "SPEECH OUTPUT: 'window'",
-     "SPEECH OUTPUT: 'Warning'"]))
+     "SPEECH OUTPUT: 'Warning.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -30,7 +30,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Warning', cursor=1",
      "SPEECH OUTPUT: 'Combo boxes frame'",
      "SPEECH OUTPUT: 'Some stock icons panel'",
-     "SPEECH OUTPUT: 'combo box Warning 1 of 5'"]))
+     "SPEECH OUTPUT: 'Warning.'",
+     "SPEECH OUTPUT: '1 of 5'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -38,7 +39,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. New combo box item",
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Some stock icons panel Warning combo box New'",
      "     VISIBLE:  'New', cursor=1",
-     "SPEECH OUTPUT: 'New'"]))
+     "SPEECH OUTPUT: 'New.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -48,7 +49,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'New', cursor=1",
      "SPEECH OUTPUT: 'Combo boxes frame'",
      "SPEECH OUTPUT: 'Some stock icons panel'",
-     "SPEECH OUTPUT: 'combo box New 3 of 5'"]))
+     "SPEECH OUTPUT: 'New.'",
+     "SPEECH OUTPUT: '3 of 5'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("Tab"))
@@ -60,7 +62,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Editable panel  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Editable panel'",
-     "SPEECH OUTPUT: 'text'"]))
+     "SPEECH OUTPUT: 'text.'"]))
 
 sequence.append(TypeAction("Fou"))
 sequence.append(utils.StartRecordingAction())
@@ -78,7 +80,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. Editable text combo box Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -86,7 +89,7 @@ sequence.append(utils.AssertPresentationAction(
     "8. Editable text combo box open button",
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Editable panel Four $l combo box'",
      "     VISIBLE:  'Four $l combo box', cursor=5",
-     "SPEECH OUTPUT: 'Four combo box'"]))
+     "SPEECH OUTPUT: 'Four combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>ISO_Left_Tab"))
@@ -96,7 +99,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Four $l', cursor=5",
      "BRAILLE LINE:  'gtk-demo application Combo boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -104,7 +108,8 @@ sequence.append(utils.AssertPresentationAction(
     "10. Editable text combo box with selected text Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four selected.'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("Tab"))
@@ -117,7 +122,7 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'gtk-demo application Combo boxes frame Where are we ? panel Boston combo box'",
      "     VISIBLE:  'Boston combo box', cursor=1",
      "SPEECH OUTPUT: 'Where are we ? panel'",
-     "SPEECH OUTPUT: 'Boston combo box'"]))
+     "SPEECH OUTPUT: 'Boston combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -133,7 +138,8 @@ sequence.append(utils.AssertPresentationAction(
     ["KNOWN ISSUE: The count is wrong due to a Gtk+ 2 bug which has been fixed in Gtk+ 3",
      "BRAILLE LINE:  'gtk-demo application Combo boxes frame Where are we ? panel Carson City combo box'",
      "     VISIBLE:  'Carson City combo box', cursor=1",
-     "SPEECH OUTPUT: 'combo box Carson City 1 of 1'"]))
+     "SPEECH OUTPUT: 'combo box.'",
+     "SPEECH OUTPUT: 'Carson City 1 of 1'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 sequence.append(utils.AssertionSummaryAction())
diff --git a/test/keystrokes/gtk-demo/role_combo_box2.py b/test/keystrokes/gtk-demo/role_combo_box2.py
index 65be1aa..d731882 100644
--- a/test/keystrokes/gtk-demo/role_combo_box2.py
+++ b/test/keystrokes/gtk-demo/role_combo_box2.py
@@ -20,15 +20,16 @@ sequence.append(utils.AssertPresentationAction(
     "1. Combo box",
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab Only print: All sheets combo 
box'",
      "     VISIBLE:  'Only print: All sheets combo box', cursor=1",
-     "SPEECH OUTPUT: 'Only print: All sheets combo box'"]))
+     "SPEECH OUTPUT: 'Only print: All sheets combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab Only print: All sheets combo 
box'",
-     "     VISIBLE:  'Only print: All sheets combo box', cursor=1",
-     "SPEECH OUTPUT: 'Only print: combo box All sheets 1 of 3.'",
+     "     VISIBLE:  'Only print: All sheets combo box', cursor=13",
+     "SPEECH OUTPUT: 'Only print: combo box.'",
+     "SPEECH OUTPUT: 'All sheets 1 of 3.'",
      "SPEECH OUTPUT: 'Alt+O'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -37,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Change selection",
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab Only print: Even sheets combo 
box Even sheets'",
      "     VISIBLE:  'Even sheets', cursor=1",
-     "SPEECH OUTPUT: 'Even sheets'"]))
+     "SPEECH OUTPUT: 'Even sheets.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -46,8 +47,9 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab Only print: Even sheets combo 
box Even sheets'",
      "     VISIBLE:  'Even sheets', cursor=1",
      "SPEECH OUTPUT: 'Print'",
-     "SPEECH OUTPUT: 'Page Setup page tab'",
-     "SPEECH OUTPUT: 'combo box Even sheets 2 of 3'"]))
+     "SPEECH OUTPUT: 'Page Setup page tab.'",
+     "SPEECH OUTPUT: 'Even sheets.'",
+     "SPEECH OUTPUT: '2 of 3'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_icon.py b/test/keystrokes/gtk-demo/role_icon.py
index 2d88d3f..00de5f2 100644
--- a/test/keystrokes/gtk-demo/role_icon.py
+++ b/test/keystrokes/gtk-demo/role_icon.py
@@ -21,7 +21,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. bin icon",
     ["BRAILLE LINE:  'gtk-demo application GtkIconView demo frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'bin icon'"]))
+     "SPEECH OUTPUT: 'bin icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -29,8 +29,9 @@ sequence.append(utils.AssertPresentationAction(
     "2. bin icon Where Am I",
     ["BRAILLE LINE:  'gtk-demo application GtkIconView demo frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'Icon panel'",
-     "SPEECH OUTPUT: 'bin 1 of 20 items selected on 1 of 20'"]))
+     "SPEECH OUTPUT: 'Icon panel.'",
+     "SPEECH OUTPUT: 'bin.'",
+     "SPEECH OUTPUT: '1 of 20 items selected on 1 of 20.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -38,7 +39,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. boot icon",
     ["BRAILLE LINE:  'gtk-demo application GtkIconView demo frame boot icon'",
      "     VISIBLE:  'boot icon', cursor=1",
-     "SPEECH OUTPUT: 'boot icon'"]))
+     "SPEECH OUTPUT: 'boot icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Left"))
@@ -46,7 +47,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. icon selection",
     ["BRAILLE LINE:  'gtk-demo application GtkIconView demo frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'bin icon'"]))
+     "SPEECH OUTPUT: 'bin icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -54,8 +55,9 @@ sequence.append(utils.AssertPresentationAction(
     "5. icon selection Where Am I",
     ["BRAILLE LINE:  'gtk-demo application GtkIconView demo frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'Icon panel'",
-     "SPEECH OUTPUT: 'bin 2 of 20 items selected on 1 of 20'"]))
+     "SPEECH OUTPUT: 'Icon panel.'",
+     "SPEECH OUTPUT: 'bin.'",
+     "SPEECH OUTPUT: '2 of 20 items selected on 1 of 20.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_menu.py b/test/keystrokes/gtk-demo/role_menu.py
index e98a2fe..ad738ad 100644
--- a/test/keystrokes/gtk-demo/role_menu.py
+++ b/test/keystrokes/gtk-demo/role_menu.py
@@ -20,8 +20,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Preferences menu', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Application Window frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Preferences menu.'",
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -29,7 +29,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Get into Color menu",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame Preferences menu <x> Red check menu 
item(Ctrl+R)'",
      "     VISIBLE:  '<x> Red check menu item(Ctrl+R)', cursor=1",
-     "SPEECH OUTPUT: 'Red check menu item checked Ctrl+R'"]))
+     "SPEECH OUTPUT: 'Red check menu item checked Ctrl+R.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -40,7 +40,9 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Application Window frame'",
      "SPEECH OUTPUT: 'Preferences menu'",
      "SPEECH OUTPUT: 'Color menu'",
-     "SPEECH OUTPUT: 'Red check menu item checked Ctrl+R 1 of 3.'",
+     "SPEECH OUTPUT: 'Red check menu item checked.'",
+     "SPEECH OUTPUT: 'Ctrl+R.'",
+     "SPEECH OUTPUT: '1 of 4.'",
      "SPEECH OUTPUT: 'R'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -49,7 +51,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. Get out of Color menu",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk-demo/role_page_tab.py b/test/keystrokes/gtk-demo/role_page_tab.py
index f1bb840..87ea927 100644
--- a/test/keystrokes/gtk-demo/role_page_tab.py
+++ b/test/keystrokes/gtk-demo/role_page_tab.py
@@ -17,7 +17,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Right Arrow to Page Setup page tab",
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab'",
      "     VISIBLE:  'Page Setup page tab', cursor=1",
-     "SPEECH OUTPUT: 'Page Setup page tab'"]))
+     "SPEECH OUTPUT: 'Page Setup page tab.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -25,7 +25,9 @@ sequence.append(utils.AssertPresentationAction(
     "2. Page Setup page tab Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Print dialog Page Setup page tab'",
      "     VISIBLE:  'Page Setup page tab', cursor=1",
-     "SPEECH OUTPUT: 'page tab list Page Setup page tab 2 of [0-9]'"]))
+     "SPEECH OUTPUT: 'page tab list.'",
+     "SPEECH OUTPUT: 'Page Setup page tab.'",
+     "SPEECH OUTPUT: '2 of [0-9]'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_radio_button.py b/test/keystrokes/gtk-demo/role_radio_button.py
index a82903a..8574443 100644
--- a/test/keystrokes/gtk-demo/role_radio_button.py
+++ b/test/keystrokes/gtk-demo/role_radio_button.py
@@ -18,8 +18,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. All Pages radio button",
     ["BRAILLE LINE:  'gtk-demo application Print dialog General page tab &=y All Pages radio button'",
      "     VISIBLE:  '&=y All Pages radio button', cursor=1",
-     "SPEECH OUTPUT: 'General page tab'",
-     "SPEECH OUTPUT: 'All Pages selected radio button'"]))
+     "SPEECH OUTPUT: 'All Pages.'",
+     "SPEECH OUTPUT: 'selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -27,7 +27,9 @@ sequence.append(utils.AssertPresentationAction(
     "2. All Pages radio button Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Print dialog General page tab &=y All Pages radio button'",
      "     VISIBLE:  '&=y All Pages radio button', cursor=1",
-     "SPEECH OUTPUT: 'All Pages radio button selected 1 of 3.'",
+     "SPEECH OUTPUT: 'All Pages radio button.'",
+     "SPEECH OUTPUT: 'selected.'",
+     "SPEECH OUTPUT: '1 of 3.'",
      "SPEECH OUTPUT: 'Alt+A'"]))
 
 sequence.append(KeyComboAction("Down"))
@@ -37,7 +39,10 @@ sequence.append(utils.AssertPresentationAction(
     "3. Range radio button",
     ["BRAILLE LINE:  'gtk-demo application Print dialog General page tab &=y Pages: radio button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Pages: selected radio button'"]))
+     "SPEECH OUTPUT: 'Pages:.'",
+     "SPEECH OUTPUT: 'selected radio button'",
+     "SPEECH OUTPUT: 'Specify one or more page ranges,",
+     " e.g. 1-3,7,11'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -45,7 +50,9 @@ sequence.append(utils.AssertPresentationAction(
     "4. Range radio button Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Print dialog General page tab &=y Pages: radio button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Pages: radio button selected 3 of 3.'",
+     "SPEECH OUTPUT: 'Pages: radio button.'",
+     "SPEECH OUTPUT: 'selected.'",
+     "SPEECH OUTPUT: '3 of 3.'",
      "SPEECH OUTPUT: 'Alt+E'",
      "SPEECH OUTPUT: 'Specify one or more page ranges,",
      " e.g. 1-3,7,11'"]))
diff --git a/test/keystrokes/gtk-demo/role_spin_button.py b/test/keystrokes/gtk-demo/role_spin_button.py
index 6c69ad6..9abac6c 100644
--- a/test/keystrokes/gtk-demo/role_spin_button.py
+++ b/test/keystrokes/gtk-demo/role_spin_button.py
@@ -19,7 +19,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Copies: 1 $l', cursor=10",
      "BRAILLE LINE:  'gtk-demo application Print dialog General page tab Copies: 1 $l'",
      "     VISIBLE:  'Copies: 1 $l', cursor=10",
-     "SPEECH OUTPUT: 'General page tab'",
+     "SPEECH OUTPUT: 'General page tab.'",
      "SPEECH OUTPUT: 'Copies: 1 selected spin button'"]))
 
 sequence.append(utils.StartRecordingAction())
diff --git a/test/keystrokes/gtk-demo/role_table.py b/test/keystrokes/gtk-demo/role_table.py
index 937efeb..6ba4e83 100644
--- a/test/keystrokes/gtk-demo/role_table.py
+++ b/test/keystrokes/gtk-demo/role_table.py
@@ -19,7 +19,12 @@ sequence.append(utils.AssertPresentationAction(
     "1. Table Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Shopping list frame table Number column header 3 bottles of 
coke'",
      "     VISIBLE:  '3 bottles of coke', cursor=1",
-     "SPEECH OUTPUT: 'table Number table cell 3 column 1 of 3 row 1 of 5'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Number.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: '3.'",
+     "SPEECH OUTPUT: 'column 1 of 3'",
+     "SPEECH OUTPUT: 'row 1 of 5.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -27,7 +32,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Next row",
     ["BRAILLE LINE:  'gtk-demo application Shopping list frame table Number column header 5 packages of 
noodles'",
      "     VISIBLE:  '5 packages of noodles', cursor=1",
-     "SPEECH OUTPUT: '5 packages of noodles'"]))
+     "SPEECH OUTPUT: '5 packages of noodles.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -35,7 +40,12 @@ sequence.append(utils.AssertPresentationAction(
     "3. Table Where Am I (again)",
     ["BRAILLE LINE:  'gtk-demo application Shopping list frame table Number column header 5 packages of 
noodles'",
      "     VISIBLE:  '5 packages of noodles', cursor=1",
-     "SPEECH OUTPUT: 'table Number table cell 5 column 1 of 3 row 2 of 5'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Number.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: '5.'",
+     "SPEECH OUTPUT: 'column 1 of 3'",
+     "SPEECH OUTPUT: 'row 2 of 5.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -55,7 +65,7 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '5 packages of noodles', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Shopping list frame table Product column header packages of 
noodles table cell'",
      "     VISIBLE:  'packages of noodles table cell', cursor=1",
-     "SPEECH OUTPUT: 'Product column header packages of noodles'"]))
+     "SPEECH OUTPUT: 'Product column header packages of noodles.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
@@ -63,7 +73,7 @@ sequence.append(utils.AssertPresentationAction(
     "6. Table up to bottles of coke",
     ["BRAILLE LINE:  'gtk-demo application Shopping list frame table Product column header bottles of coke 
table cell'",
      "     VISIBLE:  'bottles of coke table cell', cursor=1",
-     "SPEECH OUTPUT: 'bottles of coke'"]))
+     "SPEECH OUTPUT: 'bottles of coke.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_text_multiline.py b/test/keystrokes/gtk-demo/role_text_multiline.py
index f193b02..bebd165 100644
--- a/test/keystrokes/gtk-demo/role_text_multiline.py
+++ b/test/keystrokes/gtk-demo/role_text_multiline.py
@@ -146,7 +146,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Application Window frame This is a test. $l'",
      "     VISIBLE:  'This is a test. $l', cursor=11",
-     "SPEECH OUTPUT: 'text  is a  selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a  selected.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Down"))
@@ -173,8 +174,9 @@ sequence.append(utils.AssertPresentationAction(
     "9. Basic Where Am I multiline selection",
     ["BRAILLE LINE:  'Here is another test. $l'",
      "     VISIBLE:  'Here is another test. $l', cursor=22",
-     "SPEECH OUTPUT: 'text  is a test.",
-     "Here is another test. selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a test.",
+     "Here is another test. selected.'"]))
 
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.StartRecordingAction())
@@ -183,8 +185,9 @@ sequence.append(utils.AssertPresentationAction(
     "10. Detailed Where Am I multiline selection",
     ["BRAILLE LINE:  'Here is another test. $l'",
      "     VISIBLE:  'Here is another test. $l', cursor=22",
-     "SPEECH OUTPUT: 'text  is a test.",
-     "Here is another test. selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a test.",
+     "Here is another test. selected.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/gtk-demo/role_text_multiline_flatreview.py 
b/test/keystrokes/gtk-demo/role_text_multiline_flatreview.py
index 9034ed5..bd8f13c 100644
--- a/test/keystrokes/gtk-demo/role_text_multiline_flatreview.py
+++ b/test/keystrokes/gtk-demo/role_text_multiline_flatreview.py
@@ -241,10 +241,10 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_7"))
 sequence.append(utils.AssertPresentationAction(
     "14. KP_7 to flat review 'This is a test.' and the scrollbar",
-    ["BRAILLE LINE:  'This is a test.  vertical scroll bar 0% $l'",
-     "     VISIBLE:  'This is a test.  vertical scroll', cursor=1",
+    ["BRAILLE LINE:  'This is a test.  $l'",
+     "     VISIBLE:  'This is a test.  $l', cursor=1",
      "SPEECH OUTPUT: 'This is a test. ",
-     " vertical scroll bar 0 percent.'"]))
+     "'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_7"))
@@ -284,7 +284,7 @@ sequence.append(KeyComboAction("KP_5"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "19. Insert+KP_5 to flat review 'Help' accessible",
-    ["SPEECH OUTPUT: 'Help menu'"]))
+    ["SPEECH OUTPUT: 'Help menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
diff --git a/test/keystrokes/gtk-demo/role_text_multiline_navigation.py 
b/test/keystrokes/gtk-demo/role_text_multiline_navigation.py
index 386b222..eeb1905 100644
--- a/test/keystrokes/gtk-demo/role_text_multiline_navigation.py
+++ b/test/keystrokes/gtk-demo/role_text_multiline_navigation.py
@@ -253,8 +253,10 @@ sequence.append(TypeAction("f"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "27. Insert+f for text attributes",
-    ["SPEECH OUTPUT: 'size 11' voice=system",
-     "SPEECH OUTPUT: 'family name Cantarell' voice=system"]))
+    ["SPEECH OUTPUT: 'size: 11' voice=system",
+     "SPEECH OUTPUT: 'family name: Cantarell' voice=system",
+     "SPEECH OUTPUT: 'foreground color: dark slate gray' voice=system",
+     "SPEECH OUTPUT: 'background color: white' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
diff --git a/test/keystrokes/gtk-demo/role_tooltip.py b/test/keystrokes/gtk-demo/role_tooltip.py
index b6c01ad..60771db 100644
--- a/test/keystrokes/gtk-demo/role_tooltip.py
+++ b/test/keystrokes/gtk-demo/role_tooltip.py
@@ -30,9 +30,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Hide tooltip",
     ["BRAILLE LINE:  'gtk-demo application Print dialog General page tab &=y Pages: radio button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Print'",
-     "SPEECH OUTPUT: 'General page tab'",
-     "SPEECH OUTPUT: 'Pages: selected radio button'"]))
+     "SPEECH OUTPUT: 'Pages:.'",
+     "SPEECH OUTPUT: 'selected radio button'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk-demo/role_tree_table.py b/test/keystrokes/gtk-demo/role_tree_table.py
index 5091923..8f8a7bd 100644
--- a/test/keystrokes/gtk-demo/role_tree_table.py
+++ b/test/keystrokes/gtk-demo/role_tree_table.py
@@ -24,7 +24,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. January cell focus",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked tree level 1'"]))
+     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'tree level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -32,7 +33,14 @@ sequence.append(utils.AssertPresentationAction(
     "2. January cell basic Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 expanded tree level 
1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -43,8 +51,23 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 expanded tree level 
1'",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 January expanded 3 
items Alex check box not checked Havoc check box not checked Tim check box not checked Owen check box not 
checked Dave check box not checked expanded tree level 1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Left"))
@@ -52,7 +75,7 @@ sequence.append(utils.AssertPresentationAction(
     "4. January cell collapsed",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'collapsed'"]))
+     "SPEECH OUTPUT: 'collapsed.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -60,7 +83,14 @@ sequence.append(utils.AssertPresentationAction(
     "5. January cell collapsed basic Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 collapsed tree level 
1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -71,8 +101,23 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 collapsed tree level 
1'",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 January collapsed Alex 
check box not checked Havoc check box not checked Tim check box not checked Owen check box not checked Dave 
check box not checked collapsed tree level 1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'January collapsed Alex check box not checked Havoc check box not checked Tim check box 
not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Right"))
@@ -80,7 +125,8 @@ sequence.append(utils.AssertPresentationAction(
     "7. January cell expanded",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
     "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-    "SPEECH OUTPUT: 'expanded 3 items'"]))
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: '3 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -88,7 +134,8 @@ sequence.append(utils.AssertPresentationAction(
     "8. New Year's Day cell",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Holiday column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave TREE LEVEL 2'",
      "     VISIBLE:  'New Years Day <x> Alex <x> Havoc', cursor=1",
-     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked tree level 2'"]))
+     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'tree level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -96,7 +143,7 @@ sequence.append(utils.AssertPresentationAction(
     "9. Alex checkbox cell",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Alex column header New Years 
Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'Alex column header check box checked'"]))
+     "SPEECH OUTPUT: 'Alex column header check box checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -104,7 +151,12 @@ sequence.append(utils.AssertPresentationAction(
     "10. Alex checkbox cell basic Where Am I",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Alex column header New Years 
Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -115,8 +167,19 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
      "BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Alex column header New Years 
Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53'",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53 New Years Day 
Alex check box checked Havoc check box checked Tim check box checked Owen check box checked Dave check box 
not checked'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'",
+     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
@@ -124,7 +187,7 @@ sequence.append(utils.AssertPresentationAction(
     "12. Alex checkbox cell unchecked",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Alex column header New Years 
Day < > Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '< > Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'not checked'"]))
+     "SPEECH OUTPUT: 'not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
@@ -132,7 +195,7 @@ sequence.append(utils.AssertPresentationAction(
     "13. Alex checkbox cell checked",
     ["BRAILLE LINE:  'gtk-demo application Card planning sheet frame tree table Alex column header New Years 
Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'checked'"]))
+     "SPEECH OUTPUT: 'checked.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_accel_label.py b/test/keystrokes/gtk3-demo/role_accel_label.py
index 98a2e74..85840d1 100644
--- a/test/keystrokes/gtk3-demo/role_accel_label.py
+++ b/test/keystrokes/gtk3-demo/role_accel_label.py
@@ -21,8 +21,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Preferences menu', cursor=1",
      "BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Prefer Dark Theme check 
menu item'",
      "     VISIBLE:  '< > Prefer Dark Theme check menu', cursor=1",
-     "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Prefer Dark Theme check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Preferences menu.'",
+     "SPEECH OUTPUT: 'Prefer Dark Theme check menu item not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -30,7 +30,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Next menu item",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Hide Titlebar when 
maximized check menu item'",
      "     VISIBLE:  '< > Hide Titlebar when maximized', cursor=1",
-     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -38,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Next menu item",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -48,7 +48,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Color menu', cursor=1",
      "SPEECH OUTPUT: 'Application Class frame'",
      "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Color menu 3 of 5.'",
+     "SPEECH OUTPUT: 'Color menu.'",
+     "SPEECH OUTPUT: '3 of 5.'",
      "SPEECH OUTPUT: 'C'"]))
 
 sequence.append(KeyComboAction("Escape"))
diff --git a/test/keystrokes/gtk3-demo/role_alert.py b/test/keystrokes/gtk3-demo/role_alert.py
index 9ccdf5e..461eb73 100644
--- a/test/keystrokes/gtk3-demo/role_alert.py
+++ b/test/keystrokes/gtk3-demo/role_alert.py
@@ -16,11 +16,11 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
 sequence.append(utils.AssertPresentationAction(
     "1. Initial dialog",
-    ["BRAILLE LINE:  'gtk3-demo application Dialogs frame'",
-     "     VISIBLE:  'Dialogs frame', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Dialogs frame Dialogs panel Message Dialog push button'",
+    ["BRAILLE LINE:  'gtk3-demo application Dialogs and Message Boxes frame'",
+     "     VISIBLE:  'Dialogs and Message Boxes frame', cursor=1",
+     "BRAILLE LINE:  'gtk3-demo application Dialogs and Message Boxes frame Dialogs panel Message Dialog 
push button'",
      "     VISIBLE:  'Message Dialog push button', cursor=1",
-     "SPEECH OUTPUT: 'Dialogs frame'",
+     "SPEECH OUTPUT: 'Dialogs and Message Boxes frame'",
      "SPEECH OUTPUT: 'Dialogs panel'",
      "SPEECH OUTPUT: 'Message Dialog push button'"]))
 
@@ -32,7 +32,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Information alert', cursor=1",
      "BRAILLE LINE:  'gtk3-demo application Information alert Cancel push button'",
      "     VISIBLE:  'Cancel push button', cursor=1",
-     "SPEECH OUTPUT: 'Information   This message box has been popped up the following",
+     "SPEECH OUTPUT: 'Information alert.'",
+     "SPEECH OUTPUT: '  This message box has been popped up the following",
      "number of times: 1'",
      "SPEECH OUTPUT: 'Cancel push button'"]))
 
@@ -54,7 +55,8 @@ sequence.append(utils.AssertPresentationAction(
      "BRAILLE LINE:  'gtk3-demo application Interactive Dialog dialog Entry 1 Testing $l'",
      "     VISIBLE:  'Entry 1 Testing $l', cursor=16",
      "SPEECH OUTPUT: 'Interactive Dialog'",
-     "SPEECH OUTPUT: 'Entry 1 text Testing selected'"]))
+     "SPEECH OUTPUT: 'Entry 1 text.'",
+     "SPEECH OUTPUT: 'Testing selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
@@ -64,7 +66,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Entry 2 Again $l', cursor=14",
      "BRAILLE LINE:  'gtk3-demo application Interactive Dialog dialog Entry 2 Again $l'",
      "     VISIBLE:  'Entry 2 Again $l', cursor=14",
-     "SPEECH OUTPUT: 'Entry 2 text Again selected'"]))
+     "SPEECH OUTPUT: 'Entry 2 text.'",
+     "SPEECH OUTPUT: 'Again selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
diff --git a/test/keystrokes/gtk3-demo/role_check_box.py b/test/keystrokes/gtk3-demo/role_check_box.py
index b19375e..a40a1e3 100644
--- a/test/keystrokes/gtk3-demo/role_check_box.py
+++ b/test/keystrokes/gtk3-demo/role_check_box.py
@@ -17,7 +17,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Tab to first checkbox",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Horizontal panel < > Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Horizontal panel < > Resize check box'",
      "     VISIBLE:  '< > Resize check box', cursor=1",
      "SPEECH OUTPUT: 'Horizontal panel'",
      "SPEECH OUTPUT: 'Resize check box not checked'"]))
@@ -26,7 +26,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Horizontal panel < > Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Horizontal panel < > Resize check box'",
      "     VISIBLE:  '< > Resize check box', cursor=1",
      "SPEECH OUTPUT: 'Horizontal Resize check box not checked.'",
      "SPEECH OUTPUT: 'Alt+R'"]))
@@ -35,7 +35,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "3. Toggle its state",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Horizontal panel <x> Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Horizontal panel <x> Resize check box'",
      "     VISIBLE:  '<x> Resize check box', cursor=1",
      "SPEECH OUTPUT: 'checked'"]))
 
@@ -43,7 +43,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "4. Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Horizontal panel <x> Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Horizontal panel <x> Resize check box'",
      "     VISIBLE:  '<x> Resize check box', cursor=1",
      "SPEECH OUTPUT: 'Horizontal Resize check box checked.'",
      "SPEECH OUTPUT: 'Alt+R'"]))
@@ -52,7 +52,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "5. Toggle its state back",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Horizontal panel < > Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Horizontal panel < > Resize check box'",
      "     VISIBLE:  '< > Resize check box', cursor=1",
      "SPEECH OUTPUT: 'not checked'"]))
 
@@ -64,7 +64,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "6. Tab to first checkbox in next panel",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame Vertical panel < > Resize check box'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame Vertical panel < > Resize check box'",
      "     VISIBLE:  '< > Resize check box', cursor=1",
      "SPEECH OUTPUT: 'Vertical panel'",
      "SPEECH OUTPUT: 'Resize check box not checked'"]))
diff --git a/test/keystrokes/gtk3-demo/role_check_menu_item.py 
b/test/keystrokes/gtk3-demo/role_check_menu_item.py
index 27c87f4..379da4f 100644
--- a/test/keystrokes/gtk3-demo/role_check_menu_item.py
+++ b/test/keystrokes/gtk3-demo/role_check_menu_item.py
@@ -20,7 +20,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Arrow to first check menu item - not checked",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Hide Titlebar when 
maximized check menu item'",
      "     VISIBLE:  '< > Hide Titlebar when maximized', cursor=1",
-     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked.'"]))
 
 sequence.append(KeyComboAction("Return"))
 sequence.append(KeyComboAction("Escape"))
@@ -32,7 +32,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Arrow to first check menu item - checked",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame <x> Hide Titlebar when 
maximized check menu item'",
      "     VISIBLE:  '<x> Hide Titlebar when maximized', cursor=1",
-     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item checked'"]))
+     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item checked.'"]))
 
 sequence.append(KeyComboAction("Return"))
 sequence.append(KeyComboAction("Escape"))
@@ -44,7 +44,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Arrow to first check menu item - not checked",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Hide Titlebar when 
maximized check menu item'",
      "     VISIBLE:  '< > Hide Titlebar when maximized', cursor=1",
-     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked.'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk3-demo/role_color_chooser.py b/test/keystrokes/gtk3-demo/role_color_chooser.py
index c96308e..fd5d620 100644
--- a/test/keystrokes/gtk3-demo/role_color_chooser.py
+++ b/test/keystrokes/gtk3-demo/role_color_chooser.py
@@ -20,7 +20,8 @@ sequence.append(utils.AssertPresentationAction(
     "1. Arrow to the next swatch",
     ["BRAILLE LINE:  'gtk3-demo application Changing color dialog & y Light Orange radio button'",
      "     VISIBLE:  '& y Light Orange radio button', cursor=1",
-     "SPEECH OUTPUT: 'Light Orange not selected radio button'"]))
+     "SPEECH OUTPUT: 'Light Orange.'",
+     "SPEECH OUTPUT: 'not selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("space"))
diff --git a/test/keystrokes/gtk3-demo/role_column_header.py b/test/keystrokes/gtk3-demo/role_column_header.py
index b5554b3..c5cf6c7 100644
--- a/test/keystrokes/gtk3-demo/role_column_header.py
+++ b/test/keystrokes/gtk3-demo/role_column_header.py
@@ -11,6 +11,7 @@ sequence.append(KeyComboAction("End"))
 sequence.append(KeyComboAction("<Shift>Right"))
 sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
 sequence.append(PauseAction(3000))
 
@@ -18,15 +19,15 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>ISO_Left_Tab"))
 sequence.append(utils.AssertPresentationAction(
     "1. Bug number column header",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Bug number table column header'",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Bug number table column header'",
      "     VISIBLE:  'Bug number table column header', cursor=1",
-     "SPEECH OUTPUT: 'Bug number table column header'"]))
+     "SPEECH OUTPUT: 'Bug number table column header not selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "2. Severity column header",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Severity table column header'",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Severity table column header'",
      "     VISIBLE:  'Severity table column header', cursor=1",
      "SPEECH OUTPUT: 'Severity table column header'"]))
 
@@ -34,7 +35,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "3. Description column header",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Description table column header'",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Description table column header'",
      "     VISIBLE:  'Description table column header', cursor=1",
      "SPEECH OUTPUT: 'Description table column header'"]))
 
@@ -42,9 +43,9 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "4. Enter table",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Fixed? column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs  '",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Fixed? column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  '< > Fixed? 60482 Normal scrollab', cursor=1",
-     "SPEECH OUTPUT: 'Fixed? check box not checked 60482 Normal scrollable notebooks and hidden tabs 
image'"]))
+     "SPEECH OUTPUT: 'Fixed? check box not checked 60482 Normal scrollable notebooks and hidden tabs 
image.'"]))
 
 # GtkTreeView swallows this keypress (for all users; not just Orca users).
 sequence.append(KeyComboAction("Left"))
@@ -53,37 +54,54 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "5. Normal cell",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs  '",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Severity column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'Severity column header Normal'"]))
+     "SPEECH OUTPUT: 'Severity column header Normal.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. Normal cell basic Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs  '",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Severity column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 6 row 1 of 14'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 14.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "7. Normal cell detailed Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs  '",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Severity column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Severity column header < > Fixed? 
60482 Normal scrollable notebooks and hidden tabs  '",
+     "BRAILLE LINE:  'gtk3-demo application List Store frame table Severity column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  'Normal scrollable notebooks and ', cursor=1",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 6 row 1 of 14'",
-     "SPEECH OUTPUT: 'table Severity table cell Normal column 3 of 6 row 1 of 14 Fixed? check box not 
checked 60482 Normal scrollable notebooks and hidden tabs'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 14.'",
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Severity.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'Normal.'",
+     "SPEECH OUTPUT: 'column 3 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 14.'",
+     "SPEECH OUTPUT: 'Fixed?'",
+     "SPEECH OUTPUT: 'check box not checked 60482 Normal scrollable notebooks and hidden tabs image.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "8. 60482 cell",
-    ["BRAILLE LINE:  'gtk3-demo application GtkListStore demo frame table Bug number column header < > 
Fixed? 60482 Normal scrollable notebooks and hidden tabs  '",
+    ["BRAILLE LINE:  'gtk3-demo application List Store frame table Bug number column header < > Fixed? 60482 
Normal scrollable notebooks and hidden tabs  '",
      "     VISIBLE:  '60482 Normal scrollable notebook', cursor=1",
-     "SPEECH OUTPUT: 'Bug number column header 60482'"]))
+     "SPEECH OUTPUT: 'Bug number column header 60482.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_combo_box.py b/test/keystrokes/gtk3-demo/role_combo_box.py
index 970591a..8d4eb30 100644
--- a/test/keystrokes/gtk3-demo/role_combo_box.py
+++ b/test/keystrokes/gtk3-demo/role_combo_box.py
@@ -16,39 +16,41 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "1. Warning combo box item",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame'",
-     "     VISIBLE:  'Combo boxes frame', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Combo boxes frame Items with icons panel Warning combo box'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame'",
+     "     VISIBLE:  'Combo Boxes frame', cursor=1",
+     "BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Items with icons panel Warning combo box'",
      "     VISIBLE:  'Warning combo box', cursor=1",
-     "SPEECH OUTPUT: 'Combo boxes frame'",
+     "SPEECH OUTPUT: 'Combo Boxes frame'",
      "SPEECH OUTPUT: 'Items with icons panel'",
-     "SPEECH OUTPUT: 'Warning combo box'"]))
+     "SPEECH OUTPUT: 'Warning combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. Warning combo box item Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Items with icons panel Warning combo box'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Items with icons panel Warning combo box'",
      "     VISIBLE:  'Warning combo box', cursor=1",
-     "SPEECH OUTPUT: 'combo box Warning 1 of 5'"]))
+     "SPEECH OUTPUT: 'combo box.'",
+     "SPEECH OUTPUT: 'Warning 1 of 5'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. New combo box item",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Items with icons panel New combo box New'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Items with icons panel New combo box New'",
      "     VISIBLE:  'New', cursor=1",
-     "SPEECH OUTPUT: 'New'"]))
+     "SPEECH OUTPUT: 'New.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "4. New combo box item Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Items with icons panel New combo box New'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Items with icons panel New combo box New'",
      "     VISIBLE:  'New', cursor=1",
-     "SPEECH OUTPUT: 'Combo boxes frame'",
+     "SPEECH OUTPUT: 'Combo Boxes frame'",
      "SPEECH OUTPUT: 'Items with icons panel'",
-     "SPEECH OUTPUT: 'combo box New 3 of 5'"]))
+     "SPEECH OUTPUT: 'New.'",
+     "SPEECH OUTPUT: '3 of 5'"]))
 
 sequence.append(KeyComboAction("Tab"))
 
@@ -56,54 +58,57 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "5. Editable text combo box",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel  $l'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'Editable panel'",
-     "SPEECH OUTPUT: 'text'"]))
+     "SPEECH OUTPUT: 'text.'"]))
 
 sequence.append(TypeAction("Fou"))
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction("r"))
 sequence.append(utils.AssertPresentationAction(
     "6. Editable text combo box typing",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+     "BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "7. Editable text combo box Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "8. Editable text combo box open button",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l combo box'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l combo box'",
      "     VISIBLE:  'Four $l combo box', cursor=5",
-     "SPEECH OUTPUT: 'Four combo box'"]))
+     "SPEECH OUTPUT: 'Four combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>ISO_Left_Tab"))
 sequence.append(utils.AssertPresentationAction(
     "9. Editable text combo box with selected text",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+     "BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four selected'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "10. Editable text combo box with selected text Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Editable panel Four $l'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Editable panel Four $l'",
      "     VISIBLE:  'Four $l', cursor=5",
-     "SPEECH OUTPUT: 'text Four selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: 'Four selected.'"]))
 
 sequence.append(KeyComboAction("Tab"))
 sequence.append(KeyComboAction("Tab"))
@@ -114,29 +119,30 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Tab"))
 sequence.append(utils.AssertPresentationAction(
     "11. Combo box with multiple levels",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Where are we ? panel Boston combo box'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Where are we ? panel Boston combo box'",
      "     VISIBLE:  'Boston combo box', cursor=1",
      "SPEECH OUTPUT: 'Where are we ? panel'",
-     "SPEECH OUTPUT: 'Boston combo box'"]))
+     "SPEECH OUTPUT: 'Boston combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "12. Down arrow",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Where are we ? panel Carson City combo box 
Carson City'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Where are we ? panel Carson City combo box 
Carson City'",
      "     VISIBLE:  'Carson City', cursor=1",
-     "SPEECH OUTPUT: 'Carson City'"]))
+     "SPEECH OUTPUT: 'Carson City.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "13. Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Combo boxes frame Where are we ? panel Carson City combo box 
Carson City'",
+    ["BRAILLE LINE:  'gtk3-demo application Combo Boxes frame Where are we ? panel Carson City combo box 
Carson City'",
      "     VISIBLE:  'Carson City', cursor=1",
-     "SPEECH OUTPUT: 'Combo boxes frame'",
+     "SPEECH OUTPUT: 'Combo Boxes frame'",
      "SPEECH OUTPUT: 'Where are we ? panel'",
      "SPEECH OUTPUT: 'C - D menu'",
-     "SPEECH OUTPUT: 'combo box Carson City 2 of 10'"]))
+     "SPEECH OUTPUT: 'Carson City.'",
+     "SPEECH OUTPUT: '1 of 9'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_combo_box2.py b/test/keystrokes/gtk3-demo/role_combo_box2.py
index 2a76bec..d0269ae 100644
--- a/test/keystrokes/gtk3-demo/role_combo_box2.py
+++ b/test/keystrokes/gtk3-demo/role_combo_box2.py
@@ -8,20 +8,25 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(KeyComboAction("<Control>f"))
-sequence.append(TypeAction("Printing"))
+sequence.append(TypeAction("Popovers"))
+sequence.append(KeyComboAction("Escape"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("<Shift>Right"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
+sequence.append(PauseAction(3000))
 
 sequence.append(KeyComboAction("Right"))
-sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Alt>o"))
 sequence.append(utils.AssertPresentationAction(
     "1. Combo box",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab Layout panel Only print: All 
sheets combo box'",
-     "     VISIBLE:  'Only print: All sheets combo box', cursor=1",
+     "     VISIBLE:  'Only print: All sheets combo box', cursor=13",
      "SPEECH OUTPUT: 'Layout panel'",
-     "SPEECH OUTPUT: 'Only print: All sheets combo box'"]))
+     "SPEECH OUTPUT: 'Only print: All sheets combo box.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -29,7 +34,8 @@ sequence.append(utils.AssertPresentationAction(
     "2. Where Am I",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab Layout panel Only print: All 
sheets combo box'",
      "     VISIBLE:  'Only print: All sheets combo box', cursor=1",
-     "SPEECH OUTPUT: 'Only print: combo box All sheets 1 of 3.'",
+     "SPEECH OUTPUT: 'Only print: combo box.'",
+     "SPEECH OUTPUT: 'All sheets 1 of 3.'",
      "SPEECH OUTPUT: 'Alt+O'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -38,7 +44,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Change selection",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab Layout panel Only print: Even 
sheets combo box Even sheets'",
      "     VISIBLE:  'Even sheets', cursor=1",
-     "SPEECH OUTPUT: 'Even sheets'"]))
+     "SPEECH OUTPUT: 'Even sheets.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -47,9 +53,10 @@ sequence.append(utils.AssertPresentationAction(
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab Layout panel Only print: Even 
sheets combo box Even sheets'",
      "     VISIBLE:  'Even sheets', cursor=1",
      "SPEECH OUTPUT: 'Print'",
-     "SPEECH OUTPUT: 'Page Setup page tab'",
+     "SPEECH OUTPUT: 'Page Setup page tab.'",
      "SPEECH OUTPUT: 'Layout panel'",
-     "SPEECH OUTPUT: 'combo box Even sheets 2 of 3'"]))
+     "SPEECH OUTPUT: 'Even sheets.'",
+     "SPEECH OUTPUT: '2 of 3'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_dialog.py b/test/keystrokes/gtk3-demo/role_dialog.py
index 34a4bbd..376a93d 100644
--- a/test/keystrokes/gtk3-demo/role_dialog.py
+++ b/test/keystrokes/gtk3-demo/role_dialog.py
@@ -15,20 +15,21 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "1. Dialog automatic reading",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog'",
-     "     VISIBLE:  'GtkExpander dialog', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application GtkExpander dialog & y Details collapsed toggle button'",
-     "     VISIBLE:  '& y Details collapsed toggle but', cursor=1",
-     "SPEECH OUTPUT: 'GtkExpander Expander demo. Click on the triangle for details.'",
-     "SPEECH OUTPUT: 'Details toggle button collapsed'"]))
+    ["BRAILLE LINE:  'gtk3-demo application Error alert'",
+     "     VISIBLE:  'Error alert', cursor=1",
+     "BRAILLE LINE:  'gtk3-demo application Error alert & y Details: collapsed toggle button'",
+     "     VISIBLE:  '& y Details: collapsed toggle bu', cursor=1",
+     "SPEECH OUTPUT: 'Error alert.'",
+     "SPEECH OUTPUT: '  Something went wrong Here are some more details but not the full story.'",
+     "SPEECH OUTPUT: 'Details: toggle button collapsed'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. Dialog Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog & y Details collapsed toggle button'",
-     "     VISIBLE:  '& y Details collapsed toggle but', cursor=1",
-     "SPEECH OUTPUT: 'Details toggle button collapsed'"]))
+    ["BRAILLE LINE:  'gtk3-demo application Error alert & y Details: collapsed toggle button'",
+     "     VISIBLE:  '& y Details: collapsed toggle bu', cursor=1",
+     "SPEECH OUTPUT: 'Details: toggle button collapsed'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_icon.py b/test/keystrokes/gtk3-demo/role_icon.py
index 9a7d2b6..d84f778 100644
--- a/test/keystrokes/gtk3-demo/role_icon.py
+++ b/test/keystrokes/gtk3-demo/role_icon.py
@@ -20,43 +20,45 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. bin icon",
-    ["BRAILLE LINE:  'gtk3-demo application GtkIconView demo frame bin icon'",
+    ["BRAILLE LINE:  'gtk3-demo application Icon View Basics frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'bin icon'"]))
+     "SPEECH OUTPUT: 'bin icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. bin icon Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkIconView demo frame bin icon'",
+    ["BRAILLE LINE:  'gtk3-demo application Icon View Basics frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'Icon panel'",
-     "SPEECH OUTPUT: 'bin 1 of 20 items selected on 1 of 20'"]))
+     "SPEECH OUTPUT: 'Icon panel.'",
+     "SPEECH OUTPUT: 'bin.'",
+     "SPEECH OUTPUT: '1 of 20 items selected on 1 of 20.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "3. boot icon",
-    ["BRAILLE LINE:  'gtk3-demo application GtkIconView demo frame boot icon'",
+    ["BRAILLE LINE:  'gtk3-demo application Icon View Basics frame boot icon'",
      "     VISIBLE:  'boot icon', cursor=1",
-     "SPEECH OUTPUT: 'boot icon'"]))
+     "SPEECH OUTPUT: 'boot icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Left"))
 sequence.append(utils.AssertPresentationAction(
     "4. icon selection",
-    ["BRAILLE LINE:  'gtk3-demo application GtkIconView demo frame bin icon'",
+    ["BRAILLE LINE:  'gtk3-demo application Icon View Basics frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'bin icon'"]))
+     "SPEECH OUTPUT: 'bin icon.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "5. icon selection Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkIconView demo frame bin icon'",
+    ["BRAILLE LINE:  'gtk3-demo application Icon View Basics frame bin icon'",
      "     VISIBLE:  'bin icon', cursor=1",
-     "SPEECH OUTPUT: 'Icon panel'",
-     "SPEECH OUTPUT: 'bin 2 of 20 items selected on 1 of 20'"]))
+     "SPEECH OUTPUT: 'Icon panel.'",
+     "SPEECH OUTPUT: 'bin.'",
+     "SPEECH OUTPUT: '2 of 20 items selected on 1 of 20.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_info_bar.py b/test/keystrokes/gtk3-demo/role_info_bar.py
index f6c306e..2bcca58 100644
--- a/test/keystrokes/gtk3-demo/role_info_bar.py
+++ b/test/keystrokes/gtk3-demo/role_info_bar.py
@@ -35,7 +35,10 @@ sequence.append(utils.AssertPresentationAction(
     "1. Show the Message info bar",
     ["BRAILLE LINE:  'gtk3-demo application Info Bars frame Info bars panel &=y Message toggle button'",
      "     VISIBLE:  '&=y Message toggle button', cursor=1",
-     "SPEECH OUTPUT: 'pressed'"]))
+     "BRAILLE LINE:  'gtk3-demo application Info Bars frame Information info bar'",
+     "     VISIBLE:  'Information info bar', cursor=1",
+     "SPEECH OUTPUT: 'pressed'",
+     "SPEECH OUTPUT: 'Information This is an info bar with message type GTK_MESSAGE_INFO'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
diff --git a/test/keystrokes/gtk3-demo/role_menu.py b/test/keystrokes/gtk3-demo/role_menu.py
index 59c6088..328bd1d 100644
--- a/test/keystrokes/gtk3-demo/role_menu.py
+++ b/test/keystrokes/gtk3-demo/role_menu.py
@@ -21,8 +21,8 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Preferences menu', cursor=1",
      "BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Prefer Dark Theme check 
menu item'",
      "     VISIBLE:  '< > Prefer Dark Theme check menu', cursor=1",
-     "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Prefer Dark Theme check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Preferences menu.'",
+     "SPEECH OUTPUT: 'Prefer Dark Theme check menu item not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -30,7 +30,7 @@ sequence.append(utils.AssertPresentationAction(
     "2. Next menu item",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame < > Hide Titlebar when 
maximized check menu item'",
      "     VISIBLE:  '< > Hide Titlebar when maximized', cursor=1",
-     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked'"]))
+     "SPEECH OUTPUT: 'Hide Titlebar when maximized check menu item not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
@@ -38,7 +38,7 @@ sequence.append(utils.AssertPresentationAction(
     "3. Next menu item",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -48,27 +48,28 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Color menu', cursor=1",
      "SPEECH OUTPUT: 'Application Class frame'",
      "SPEECH OUTPUT: 'Preferences menu'",
-     "SPEECH OUTPUT: 'Color menu 3 of 5.'",
+     "SPEECH OUTPUT: 'Color menu.'",
+     "SPEECH OUTPUT: '3 of 5.'",
      "SPEECH OUTPUT: 'C'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "5. Get into Color menu",
-    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu &=y Red 
radio menu item(Ctrl+R)'",
-     "     VISIBLE:  '&=y Red radio menu item(Ctrl+R)', cursor=1",
-     "SPEECH OUTPUT: 'Red selected radio menu item Ctrl+R'"]))
+    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu & y Red 
radio menu item(Ctrl+R)'",
+     "     VISIBLE:  '& y Red radio menu item(Ctrl+R)', cursor=1",
+     "SPEECH OUTPUT: 'Red not selected radio menu item Ctrl+R'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu &=y Red 
radio menu item(Ctrl+R)'",
-     "     VISIBLE:  '&=y Red radio menu item(Ctrl+R)', cursor=1",
+    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu & y Red 
radio menu item(Ctrl+R)'",
+     "     VISIBLE:  '& y Red radio menu item(Ctrl+R)', cursor=1",
      "SPEECH OUTPUT: 'Application Class frame'",
      "SPEECH OUTPUT: 'Preferences menu'",
      "SPEECH OUTPUT: 'Color menu'",
-     "SPEECH OUTPUT: 'Red radio menu item selected Ctrl+R 1 of 3.'",
+     "SPEECH OUTPUT: 'Red radio menu item not selected Ctrl+R 1 of 3.'",
      "SPEECH OUTPUT: 'R'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -77,7 +78,7 @@ sequence.append(utils.AssertPresentationAction(
     "7. Get out of Color menu",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Color menu'",
      "     VISIBLE:  'Color menu', cursor=1",
-     "SPEECH OUTPUT: 'Color menu'"]))
+     "SPEECH OUTPUT: 'Color menu.'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk3-demo/role_page_tab.py b/test/keystrokes/gtk3-demo/role_page_tab.py
index 38d2415..13c23c4 100644
--- a/test/keystrokes/gtk3-demo/role_page_tab.py
+++ b/test/keystrokes/gtk3-demo/role_page_tab.py
@@ -8,8 +8,14 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(KeyComboAction("<Control>f"))
-sequence.append(TypeAction("Printing"))
+sequence.append(TypeAction("Popovers"))
+sequence.append(KeyComboAction("Escape"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("<Shift>Right"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
+sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
@@ -17,7 +23,7 @@ sequence.append(utils.AssertPresentationAction(
     "1. Right Arrow to the Page Setup page tab",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab'",
      "     VISIBLE:  'Page Setup page tab', cursor=1",
-     "SPEECH OUTPUT: 'Page Setup page tab'"]))
+     "SPEECH OUTPUT: 'Page Setup page tab.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -25,7 +31,9 @@ sequence.append(utils.AssertPresentationAction(
     "2. Page Setup page tab Where Am I",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog Page Setup page tab'",
      "     VISIBLE:  'Page Setup page tab', cursor=1",
-     "SPEECH OUTPUT: 'page tab list Page Setup page tab 2 of [0-9]'"]))
+     "SPEECH OUTPUT: 'page tab list.'",
+     "SPEECH OUTPUT: 'Page Setup page tab.'",
+     "SPEECH OUTPUT: '2 of [0-9]'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_radio_button.py b/test/keystrokes/gtk3-demo/role_radio_button.py
index 5541dc7..f8a6c28 100644
--- a/test/keystrokes/gtk3-demo/role_radio_button.py
+++ b/test/keystrokes/gtk3-demo/role_radio_button.py
@@ -8,7 +8,12 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(KeyComboAction("<Control>f"))
-sequence.append(TypeAction("Printing"))
+sequence.append(TypeAction("Popovers"))
+sequence.append(KeyComboAction("Escape"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("<Shift>Right"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
 sequence.append(PauseAction(3000))
 
@@ -18,9 +23,9 @@ sequence.append(utils.AssertPresentationAction(
     "1. All Pages radio button",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y All Pages 
radio button'",
      "     VISIBLE:  '&=y All Pages radio button', cursor=1",
-     "SPEECH OUTPUT: 'General page tab'",
      "SPEECH OUTPUT: 'Range panel'",
-     "SPEECH OUTPUT: 'All Pages selected radio button'"]))
+     "SPEECH OUTPUT: 'All Pages.'",
+     "SPEECH OUTPUT: 'selected radio button'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -28,7 +33,10 @@ sequence.append(utils.AssertPresentationAction(
     "2. All Pages radio button Where Am I",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y All Pages 
radio button'",
      "     VISIBLE:  '&=y All Pages radio button', cursor=1",
-     "SPEECH OUTPUT: 'Range All Pages radio button selected 1 of 3.'",
+     "SPEECH OUTPUT: 'Range.'",
+     "SPEECH OUTPUT: 'All Pages radio button.'",
+     "SPEECH OUTPUT: 'selected.'",
+     "SPEECH OUTPUT: '1 of 3.'",
      "SPEECH OUTPUT: 'Alt+A'"]))
 
 sequence.append(KeyComboAction("Down"))
@@ -38,7 +46,10 @@ sequence.append(utils.AssertPresentationAction(
     "3. Range radio button",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y Pages: radio 
button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Pages: selected radio button'"]))
+     "SPEECH OUTPUT: 'Pages:.'",
+     "SPEECH OUTPUT: 'selected radio button'",
+     "SPEECH OUTPUT: 'Specify one or more page ranges,",
+     " e.g. 1–3, 7, 11'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
@@ -46,10 +57,13 @@ sequence.append(utils.AssertPresentationAction(
     "4. Range radio button Where Am I",
     ["BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y Pages: radio 
button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Range Pages: radio button selected 3 of 3.'",
+     "SPEECH OUTPUT: 'Range.'",
+     "SPEECH OUTPUT: 'Pages: radio button.'",
+     "SPEECH OUTPUT: 'selected.'",
+     "SPEECH OUTPUT: '3 of 3.'",
      "SPEECH OUTPUT: 'Alt+E'",
      "SPEECH OUTPUT: 'Specify one or more page ranges,",
-     " e.g. 1-3,7,11'"]))
+     " e.g. 1–3, 7, 11'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_radio_menu_item.py 
b/test/keystrokes/gtk3-demo/role_radio_menu_item.py
index 98844e8..c7b838f 100644
--- a/test/keystrokes/gtk3-demo/role_radio_menu_item.py
+++ b/test/keystrokes/gtk3-demo/role_radio_menu_item.py
@@ -24,12 +24,12 @@ sequence.append(utils.AssertPresentationAction(
      "SPEECH OUTPUT: 'Green not selected radio menu item Ctrl+G'"]))
 
 sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Up"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. radio menu item - selected",
-    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu &=y Red 
radio menu item(Ctrl+R)'",
-     "     VISIBLE:  '&=y Red radio menu item(Ctrl+R)', cursor=1",
-     "SPEECH OUTPUT: 'Red selected radio menu item Ctrl+R'"]))
+    ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame Preferences menu &=y Blue 
radio menu item(Ctrl+B)'",
+     "     VISIBLE:  '&=y Blue radio menu item(Ctrl+B)', cursor=1",
+     "SPEECH OUTPUT: 'Blue selected radio menu item Ctrl+B'"]))
 
 sequence.append(KeyComboAction("Escape"))
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk3-demo/role_spin_button.py b/test/keystrokes/gtk3-demo/role_spin_button.py
index 1c9ca43..e1d251c 100644
--- a/test/keystrokes/gtk3-demo/role_spin_button.py
+++ b/test/keystrokes/gtk3-demo/role_spin_button.py
@@ -8,7 +8,12 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(KeyComboAction("<Control>f"))
-sequence.append(TypeAction("Printing"))
+sequence.append(TypeAction("Popovers"))
+sequence.append(KeyComboAction("Escape"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("<Shift>Right"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
 sequence.append(PauseAction(3000))
 
@@ -20,7 +25,6 @@ sequence.append(utils.AssertPresentationAction(
      "     VISIBLE:  'Copies: 1 $l', cursor=10",
      "BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Copies panel Copies: 1 $l'",
      "     VISIBLE:  'Copies: 1 $l', cursor=10",
-     "SPEECH OUTPUT: 'General page tab'",
      "SPEECH OUTPUT: 'Copies panel'",
      "SPEECH OUTPUT: 'Copies: 1 selected spin button'"]))
 
diff --git a/test/keystrokes/gtk3-demo/role_split_pane.py b/test/keystrokes/gtk3-demo/role_split_pane.py
index b901501..852d9c6 100644
--- a/test/keystrokes/gtk3-demo/role_split_pane.py
+++ b/test/keystrokes/gtk3-demo/role_split_pane.py
@@ -17,7 +17,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("F8"))
 sequence.append(utils.AssertPresentationAction(
     "1. Split pane",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame 89 split pane'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame 89 split pane'",
      "     VISIBLE:  '89 split pane', cursor=1",
      "SPEECH OUTPUT: 'split pane 89'"]))
 
@@ -25,7 +25,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "2. Split pane increment value",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame 90 split pane'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame 90 split pane'",
      "     VISIBLE:  '90 split pane', cursor=1",
      "SPEECH OUTPUT: '90'"]))
 
@@ -33,7 +33,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. Split pane Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame 90 split pane'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame 90 split pane'",
      "     VISIBLE:  '90 split pane', cursor=1",
      "SPEECH OUTPUT: 'split pane 90'"]))
 
@@ -41,7 +41,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
 sequence.append(utils.AssertPresentationAction(
     "4. Split pane decrement value",
-    ["BRAILLE LINE:  'gtk3-demo application Panes frame 89 split pane'",
+    ["BRAILLE LINE:  'gtk3-demo application Paned Widgets frame 89 split pane'",
      "     VISIBLE:  '89 split pane', cursor=1",
      "SPEECH OUTPUT: '89'"]))
 
diff --git a/test/keystrokes/gtk3-demo/role_table.py b/test/keystrokes/gtk3-demo/role_table.py
index 866f3dc..f6a47d3 100644
--- a/test/keystrokes/gtk3-demo/role_table.py
+++ b/test/keystrokes/gtk3-demo/role_table.py
@@ -17,25 +17,35 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "1. Table Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Shopping list frame table Number column header 3 bottles of coke 
'",
+    ["BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Number column header 3 bottles of 
coke '",
      "     VISIBLE:  '3 bottles of coke ', cursor=1",
-     "SPEECH OUTPUT: 'table Number table cell 3 column 1 of 3 row 1 of 5'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Number.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: '3.'",
+     "SPEECH OUTPUT: 'column 1 of 3'",
+     "SPEECH OUTPUT: 'row 1 of 5.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Next row",
-    ["BRAILLE LINE:  'gtk3-demo application Shopping list frame table Number column header 5 packages of 
noodles '",
+    ["BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Number column header 5 packages of 
noodles '",
      "     VISIBLE:  '5 packages of noodles ', cursor=1",
-     "SPEECH OUTPUT: '5 packages of noodles'"]))
+     "SPEECH OUTPUT: '5 packages of noodles.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. Table Where Am I (again)",
-    ["BRAILLE LINE:  'gtk3-demo application Shopping list frame table Number column header 5 packages of 
noodles '",
+    ["BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Number column header 5 packages of 
noodles '",
      "     VISIBLE:  '5 packages of noodles ', cursor=1",
-     "SPEECH OUTPUT: 'table Number table cell 5 column 1 of 3 row 2 of 5'"]))
+     "SPEECH OUTPUT: 'table.'",
+     "SPEECH OUTPUT: 'Number.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: '5.'",
+     "SPEECH OUTPUT: 'column 1 of 3'",
+     "SPEECH OUTPUT: 'row 2 of 5.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -51,19 +61,19 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "5. Table Right to the Product column in the packages of noodles row",
-    ["BRAILLE LINE:  'gtk3-demo application Shopping list frame table Number column header 5 packages of 
noodles '",
+    ["BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Number column header 5 packages of 
noodles '",
      "     VISIBLE:  '5 packages of noodles ', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Shopping list frame table Product column header packages of 
noodles table cell'",
+     "BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Product column header packages of 
noodles table cell'",
      "     VISIBLE:  'packages of noodles table cell', cursor=1",
-     "SPEECH OUTPUT: 'Product column header packages of noodles'"]))
+     "SPEECH OUTPUT: 'Product column header packages of noodles.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "6. Table up to bottles of coke",
-    ["BRAILLE LINE:  'gtk3-demo application Shopping list frame table Product column header bottles of coke 
table cell'",
+    ["BRAILLE LINE:  'gtk3-demo application Editable Cells frame table Product column header bottles of coke 
table cell'",
      "     VISIBLE:  'bottles of coke table cell', cursor=1",
-     "SPEECH OUTPUT: 'bottles of coke'"]))
+     "SPEECH OUTPUT: 'bottles of coke.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/gtk3-demo/role_text_multiline.py 
b/test/keystrokes/gtk3-demo/role_text_multiline.py
index 07d94a7..8cf07f7 100644
--- a/test/keystrokes/gtk3-demo/role_text_multiline.py
+++ b/test/keystrokes/gtk3-demo/role_text_multiline.py
@@ -147,7 +147,8 @@ sequence.append(utils.AssertPresentationAction(
     "6. Where Am I",
     ["BRAILLE LINE:  'gtk3-demo-application application Application Class frame This is a test. $l'",
      "     VISIBLE:  'This is a test. $l', cursor=11",
-     "SPEECH OUTPUT: 'text  is a  selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a  selected.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Down"))
@@ -174,8 +175,9 @@ sequence.append(utils.AssertPresentationAction(
     "9. Basic Where Am I multiline selection",
     ["BRAILLE LINE:  'Here is another test. $l'",
      "     VISIBLE:  'Here is another test. $l', cursor=22",
-     "SPEECH OUTPUT: 'text  is a test.",
-     "Here is another test. selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a test.",
+     "Here is another test. selected.'"]))
 
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.StartRecordingAction())
@@ -184,8 +186,9 @@ sequence.append(utils.AssertPresentationAction(
     "10. Detailed Where Am I multiline selection",
     ["BRAILLE LINE:  'Here is another test. $l'",
      "     VISIBLE:  'Here is another test. $l', cursor=22",
-     "SPEECH OUTPUT: 'text  is a test.",
-     "Here is another test. selected'"]))
+     "SPEECH OUTPUT: 'text.'",
+     "SPEECH OUTPUT: ' is a test.",
+     "Here is another test. selected.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
diff --git a/test/keystrokes/gtk3-demo/role_text_multiline_flatreview.py 
b/test/keystrokes/gtk3-demo/role_text_multiline_flatreview.py
index 61d0133..13e1e08 100644
--- a/test/keystrokes/gtk3-demo/role_text_multiline_flatreview.py
+++ b/test/keystrokes/gtk3-demo/role_text_multiline_flatreview.py
@@ -286,7 +286,7 @@ sequence.append(KeyComboAction("KP_5"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "19. Insert+KP_5 to flat review 'Help' accessible",
-    ["SPEECH OUTPUT: 'Help menu'"]))
+    ["SPEECH OUTPUT: 'Help menu.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
diff --git a/test/keystrokes/gtk3-demo/role_text_multiline_navigation.py 
b/test/keystrokes/gtk3-demo/role_text_multiline_navigation.py
index 8365437..79a0a23 100644
--- a/test/keystrokes/gtk3-demo/role_text_multiline_navigation.py
+++ b/test/keystrokes/gtk3-demo/role_text_multiline_navigation.py
@@ -254,8 +254,10 @@ sequence.append(TypeAction("f"))
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "27. Insert+f for text attributes",
-    ["SPEECH OUTPUT: 'size 11' voice=system",
-     "SPEECH OUTPUT: 'family name Cantarell' voice=system"]))
+    ["SPEECH OUTPUT: 'size: 11' voice=system",
+     "SPEECH OUTPUT: 'family name: Cantarell' voice=system",
+     "SPEECH OUTPUT: 'foreground color: black' voice=system",
+     "SPEECH OUTPUT: 'background color: white' voice=system"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Left"))
diff --git a/test/keystrokes/gtk3-demo/role_toggle_button.py b/test/keystrokes/gtk3-demo/role_toggle_button.py
index ca0b199..c821b83 100644
--- a/test/keystrokes/gtk3-demo/role_toggle_button.py
+++ b/test/keystrokes/gtk3-demo/role_toggle_button.py
@@ -16,32 +16,32 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "1. Toggle button Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog & y Details collapsed toggle button'",
-     "     VISIBLE:  '& y Details collapsed toggle but', cursor=1",
-     "SPEECH OUTPUT: 'Details toggle button collapsed'"]))
+    ["BRAILLE LINE:  'gtk3-demo application Error alert & y Details: collapsed toggle button'",
+     "     VISIBLE:  '& y Details: collapsed toggle bu', cursor=1",
+     "SPEECH OUTPUT: 'Details: toggle button collapsed'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "2. Toggle button state changed to expanded",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog &=y Details expanded toggle button'",
-     "     VISIBLE:  '&=y Details expanded toggle butt', cursor=1",
+    ["BRAILLE LINE:  'gtk3-demo application Error alert &=y Details: expanded toggle button'",
+     "     VISIBLE:  '&=y Details: expanded toggle but', cursor=1",
      "SPEECH OUTPUT: 'expanded'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. Toggle button pressed Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog &=y Details expanded toggle button'",
-     "     VISIBLE:  '&=y Details expanded toggle butt', cursor=1",
-     "SPEECH OUTPUT: 'Details toggle button expanded'"]))
+    ["BRAILLE LINE:  'gtk3-demo application Error alert &=y Details: expanded toggle button'",
+     "     VISIBLE:  '&=y Details: expanded toggle but', cursor=1",
+     "SPEECH OUTPUT: 'Details: toggle button expanded'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Return"))
 sequence.append(utils.AssertPresentationAction(
     "4. Toggle button state changed to collapsed",
-    ["BRAILLE LINE:  'gtk3-demo application GtkExpander dialog & y Details collapsed toggle button'",
-     "     VISIBLE:  '& y Details collapsed toggle but', cursor=1",
+    ["BRAILLE LINE:  'gtk3-demo application Error alert & y Details: collapsed toggle button'",
+     "     VISIBLE:  '& y Details: collapsed toggle bu', cursor=1",
      "SPEECH OUTPUT: 'collapsed'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk3-demo/role_tooltip.py b/test/keystrokes/gtk3-demo/role_tooltip.py
index 285bafd..8ba65b6 100644
--- a/test/keystrokes/gtk3-demo/role_tooltip.py
+++ b/test/keystrokes/gtk3-demo/role_tooltip.py
@@ -8,36 +8,36 @@ import utils
 sequence = MacroSequence()
 
 sequence.append(KeyComboAction("<Control>f"))
-sequence.append(TypeAction("Printing"))
+sequence.append(TypeAction("Popovers"))
+sequence.append(KeyComboAction("Escape"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("<Shift>Right"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
 sequence.append(PauseAction(3000))
 
 sequence.append(KeyComboAction("<Alt>e"))
 sequence.append(KeyComboAction("<Shift>ISO_Left_Tab"))
+sequence.append(PauseAction(3000))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>F1"))
 sequence.append(utils.AssertPresentationAction(
     "1. Show tooltip",
     ["BRAILLE LINE:  'Specify one or more page ranges,",
-     " e.g. 1-3,7,11'",
+     " e.g. 1–3, 7, 11'",
      "     VISIBLE:  'Specify one or more page ranges,', cursor=0",
      "SPEECH OUTPUT: 'Specify one or more page ranges,",
-     " e.g. 1-3,7,11'"]))
+     " e.g. 1–3, 7, 11'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>F1"))
 sequence.append(utils.AssertPresentationAction(
     "2. Hide tooltip",
-    ["KNOWN ISSUE: Too much context",
-     "BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y Pages: radio 
button'",
+    ["BRAILLE LINE:  'gtk3-demo application Print dialog General page tab Range panel Range &=y Pages: radio 
button'",
      "     VISIBLE:  '&=y Pages: radio button', cursor=1",
-     "SPEECH OUTPUT: 'Print'",
-     "SPEECH OUTPUT: 'General'",
-     "SPEECH OUTPUT: 'page tab'",
-     "SPEECH OUTPUT: 'Range'",
-     "SPEECH OUTPUT: 'panel'",
-     "SPEECH OUTPUT: 'Pages:'",
+     "SPEECH OUTPUT: 'Pages:.'",
      "SPEECH OUTPUT: 'selected radio button'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
diff --git a/test/keystrokes/gtk3-demo/role_tree_table.py b/test/keystrokes/gtk3-demo/role_tree_table.py
index 247e43d..72c3d2d 100644
--- a/test/keystrokes/gtk3-demo/role_tree_table.py
+++ b/test/keystrokes/gtk3-demo/role_tree_table.py
@@ -12,6 +12,7 @@ sequence.append(KeyComboAction("<Shift>Right"))
 sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Down"))
+sequence.append(KeyComboAction("Down"))
 sequence.append(KeyComboAction("Return"))
 sequence.append(PauseAction(3000))
 
@@ -19,117 +20,180 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. January cell focus",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked tree level 1'"]))
+     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'tree level 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "2. January cell basic Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 expanded tree level 
1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "3. January cell detailed Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+     "BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 expanded tree level 
1'",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 53 January expanded 3 
items Alex check box not checked Havoc check box not checked Tim check box not checked Owen check box not 
checked Dave check box not checked expanded tree level 1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 53.'",
+     "SPEECH OUTPUT: 'January expanded 3 items Alex check box not checked Havoc check box not checked Tim 
check box not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Left"))
 sequence.append(utils.AssertPresentationAction(
     "4. January cell collapsed",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'collapsed'"]))
+     "SPEECH OUTPUT: 'collapsed.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "5. January cell collapsed basic Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 collapsed tree level 
1'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "6. January cell collapsed detailed Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+     "BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
collapsed < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
      "     VISIBLE:  'January collapsed < > Alex < > H', cursor=1",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 collapsed tree level 
1'",
-     "SPEECH OUTPUT: 'tree table Holiday table cell January column 1 of 6 row 1 of 50 January collapsed Alex 
check box not checked Havoc check box not checked Tim check box not checked Owen check box not checked Dave 
check box not checked collapsed tree level 1'"]))
+"SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Holiday.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'January.'",
+     "SPEECH OUTPUT: 'column 1 of 6'",
+     "SPEECH OUTPUT: 'row 1 of 50.'",
+     "SPEECH OUTPUT: 'January collapsed Alex check box not checked Havoc check box not checked Tim check box 
not checked Owen check box not checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'collapsed.'",
+     "SPEECH OUTPUT: 'tree level 1.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Shift>Right"))
 sequence.append(utils.AssertPresentationAction(
     "7. January cell expanded",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header 
January expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
-    "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
-    "SPEECH OUTPUT: 'expanded 3 items'"]))
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header January 
expanded < > Alex < > Havoc < > Tim < > Owen < > Dave TREE LEVEL 1'",
+     "     VISIBLE:  'January expanded < > Alex < > Ha', cursor=1",
+     "SPEECH OUTPUT: 'expanded.'",
+     "SPEECH OUTPUT: '3 items.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "8. New Year's Day cell",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Holiday column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave TREE LEVEL 2'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Holiday column header New Years Day 
<x> Alex <x> Havoc <x> Tim <x> Owen < > Dave TREE LEVEL 2'",
      "     VISIBLE:  'New Years Day <x> Alex <x> Havoc', cursor=1",
-     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked tree level 2'"]))
+     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked.'",
+     "SPEECH OUTPUT: 'tree level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Right"))
 sequence.append(utils.AssertPresentationAction(
     "9. Alex checkbox cell",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day <x> 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'Alex column header check box checked'"]))
+     "SPEECH OUTPUT: 'Alex column header check box checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "10. Alex checkbox cell basic Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day <x> 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(KeyComboAction("KP_Enter"))
 sequence.append(utils.AssertPresentationAction(
     "11. Alex checkbox cell detailed Where Am I",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day <x> 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+     "BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day <x> 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53'",
-     "SPEECH OUTPUT: 'tree table Alex table cell check box checked column 2 of 6 row 2 of 53 New Years Day 
Alex check box checked Havoc check box checked Tim check box checked Owen check box checked Dave check box 
not checked'"]))
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'",
+     "SPEECH OUTPUT: 'tree table.'",
+     "SPEECH OUTPUT: 'Alex.'",
+     "SPEECH OUTPUT: 'table cell.'",
+     "SPEECH OUTPUT: 'check box checked.'",
+     "SPEECH OUTPUT: 'column 2 of 6'",
+     "SPEECH OUTPUT: 'row 2 of 53.'",
+     "SPEECH OUTPUT: 'New Years Day Alex check box checked Havoc check box checked Tim check box checked 
Owen check box checked Dave check box not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "12. Alex checkbox cell unchecked",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day < > Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day < > 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '< > Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'not checked'"]))
+     "SPEECH OUTPUT: 'not checked.'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(TypeAction(" "))
 sequence.append(utils.AssertPresentationAction(
     "13. Alex checkbox cell checked",
-    ["BRAILLE LINE:  'gtk3-demo application Card planning sheet frame tree table Alex column header New 
Years Day <x> Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
+    ["BRAILLE LINE:  'gtk3-demo application Tree Store frame tree table Alex column header New Years Day <x> 
Alex <x> Havoc <x> Tim <x> Owen < > Dave'",
      "     VISIBLE:  '<x> Alex <x> Havoc <x> Tim <x> O', cursor=1",
-     "SPEECH OUTPUT: 'checked'"]))
+     "SPEECH OUTPUT: 'checked.'"]))
 
 sequence.append(KeyComboAction("<Alt>F4"))
 
diff --git a/test/keystrokes/oowriter/document_nav_line.py b/test/keystrokes/oowriter/document_nav_line.py
index 65a58fa..722b447 100644
--- a/test/keystrokes/oowriter/document_nav_line.py
+++ b/test/keystrokes/oowriter/document_nav_line.py
@@ -12,19 +12,22 @@ sequence.append(KeyComboAction("Return"))
 sequence.append(TypeAction("Line 2"))
 sequence.append(KeyComboAction("Return"))
 
+sequence.append(PauseAction(20000))
+
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("<Control>Home"))
 sequence.append(utils.AssertPresentationAction(
     "1. Return to top of document",
-    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Document view Line 1 $l'",
+    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Untitled1 - LibreOffice Document document text Line 1 $l'",
      "     VISIBLE:  'Line 1 $l', cursor=1",
+     "SPEECH OUTPUT: 'Untitled 1 - LibreOffice Writer frame'",
      "SPEECH OUTPUT: 'Line 1'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "2. Arrow down to 'Line 2'",
-    ["BRAILLE LINE:  'Line 2 $l'",
+    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Untitled1 - LibreOffice Document document text Line 2 $l'",
      "     VISIBLE:  'Line 2 $l', cursor=1",
      "SPEECH OUTPUT: 'Line 2'"]))
 
@@ -32,7 +35,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. Arrow down over the empty line",
-    ["BRAILLE LINE:  ' $l'",
+    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Untitled1 - LibreOffice Document document text  $l'",
      "     VISIBLE:  ' $l', cursor=1",
      "SPEECH OUTPUT: 'blank'"]))
 
@@ -40,7 +43,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "4. Arrow up to 'Line 2'",
-    ["BRAILLE LINE:  'Line 2 $l'",
+    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Untitled1 - LibreOffice Document document text Line 2 $l'",
      "     VISIBLE:  'Line 2 $l', cursor=1",
      "SPEECH OUTPUT: 'Line 2'"]))
 
@@ -48,7 +51,7 @@ sequence.append(utils.StartRecordingAction())
 sequence.append(KeyComboAction("Up"))
 sequence.append(utils.AssertPresentationAction(
     "5. Arrow up to 'Line 1'",
-    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Document view Line 1 $l'",
+    ["BRAILLE LINE:  'soffice application Untitled 1 - LibreOffice Writer frame Untitled 1 - LibreOffice 
Writer root pane Untitled1 - LibreOffice Document document text Line 1 $l'",
      "     VISIBLE:  'Line 1 $l', cursor=1",
      "SPEECH OUTPUT: 'Line 1'"]))
 



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