orca r4035 - in trunk: . src/orca src/orca/scripts/toolkits/Gecko test/keystrokes/firefox



Author: joanied
Date: Mon Jul 14 21:33:31 2008
New Revision: 4035
URL: http://svn.gnome.org/viewvc/orca?rev=4035&view=rev

Log:
* src/orca/scripts/toolkits/Gecko/script.py:
  src/orca/default.py:
  test/keystrokes/firefox/moz_menu.py:
  test/keystrokes/firefox/bug_512303.py:
  test/keystrokes/firefox/line_nav_imagemap.py:
  test/keystrokes/firefox/uiuc_button.py:
  test/keystrokes/firefox/bug_511389.py:
  test/keystrokes/firefox/dojo_tree.py:
  test/keystrokes/firefox/html_role_combo_box.py:
  test/keystrokes/firefox/line_nav_wiki.py:
  test/keystrokes/firefox/html_struct_nav_large_obj.py:
  test/keystrokes/firefox/line_nav_multi_line_text.py:
  test/keystrokes/firefox/uiuc_tree.py:
  test/keystrokes/firefox/dojo_tabcontainer.py:
  test/keystrokes/firefox/dojo_spinner.py:
  test/keystrokes/firefox/page_summary.py:
  test/keystrokes/firefox/line_nav_heading_section.py:
  test/keystrokes/firefox/line_nav_table_cell_links.py:
  test/keystrokes/firefox/line_nav_empty_anchor.py:
  test/keystrokes/firefox/html_struct_nav_blockquote.py:
  test/keystrokes/firefox/dojo_dialog.py:
  test/keystrokes/firefox/moz_tabpanel.py:
  test/keystrokes/firefox/label_guess_entries.py:
  test/keystrokes/firefox/html_role_links.py:
  test/keystrokes/firefox/line_nav_simple_form.py:
  test/keystrokes/firefox/line_nav_nested_tables.py
  Fix for bug #541094 - Back out 'silent focus' code.


Modified:
   trunk/ChangeLog
   trunk/src/orca/default.py
   trunk/src/orca/scripts/toolkits/Gecko/script.py
   trunk/test/keystrokes/firefox/bug_511389.py
   trunk/test/keystrokes/firefox/bug_512303.py
   trunk/test/keystrokes/firefox/dojo_dialog.py
   trunk/test/keystrokes/firefox/dojo_spinner.py
   trunk/test/keystrokes/firefox/dojo_tabcontainer.py
   trunk/test/keystrokes/firefox/dojo_tree.py
   trunk/test/keystrokes/firefox/html_role_combo_box.py
   trunk/test/keystrokes/firefox/html_role_links.py
   trunk/test/keystrokes/firefox/html_struct_nav_blockquote.py
   trunk/test/keystrokes/firefox/html_struct_nav_large_obj.py
   trunk/test/keystrokes/firefox/label_guess_entries.py
   trunk/test/keystrokes/firefox/line_nav_empty_anchor.py
   trunk/test/keystrokes/firefox/line_nav_heading_section.py
   trunk/test/keystrokes/firefox/line_nav_imagemap.py
   trunk/test/keystrokes/firefox/line_nav_multi_line_text.py
   trunk/test/keystrokes/firefox/line_nav_nested_tables.py
   trunk/test/keystrokes/firefox/line_nav_simple_form.py
   trunk/test/keystrokes/firefox/line_nav_table_cell_links.py
   trunk/test/keystrokes/firefox/line_nav_wiki.py
   trunk/test/keystrokes/firefox/moz_menu.py
   trunk/test/keystrokes/firefox/moz_tabpanel.py
   trunk/test/keystrokes/firefox/page_summary.py
   trunk/test/keystrokes/firefox/uiuc_button.py
   trunk/test/keystrokes/firefox/uiuc_tree.py

Modified: trunk/src/orca/default.py
==============================================================================
--- trunk/src/orca/default.py	(original)
+++ trunk/src/orca/default.py	Mon Jul 14 21:33:31 2008
@@ -3493,15 +3493,6 @@
         - event: the Event
         """
 
-        # We don't always get focus: events for text areas, so if we
-        # see caret moved events for a focused text area, we silently
-        # set them to be the locus of focus.
-        #
-        if event and event.source and \
-           (event.source != orca_state.locusOfFocus) and \
-            event.source.getState().contains(pyatspi.STATE_FOCUSED):
-            orca.setLocusOfFocus(event, event.source, False)
-
         # Ignore caret movements from non-focused objects, unless the
         # currently focused object is the parent of the object which
         # has the caret.
@@ -3525,15 +3516,6 @@
         - event: the Event
         """
 
-        # We don't always get focus: events for text areas, so if we
-        # see deleted text events for a focused text area, we silently
-        # set them to be the locus of focus..
-        #
-        if event and event.source and \
-           (event.source != orca_state.locusOfFocus) and \
-            event.source.getState().contains(pyatspi.STATE_FOCUSED):
-            orca.setLocusOfFocus(event, event.source, False)
-
         # Ignore text deletions from non-focused objects, unless the
         # currently focused object is the parent of the object from which
         # text was deleted
@@ -3619,15 +3601,6 @@
         - event: the Event
         """
 
-        # We don't always get focus: events for text areas, so if we
-        # see inserted text events for a focused text area, we silently
-        # set them to be the locus of focus..
-        #
-        if event and event.source and \
-           (event.source != orca_state.locusOfFocus) and \
-            event.source.getState().contains(pyatspi.STATE_FOCUSED):
-            orca.setLocusOfFocus(event, event.source, False)
-
         # Ignore text insertions from non-focused objects, unless the
         # currently focused object is the parent of the object from which
         # text was inserted.

Modified: trunk/src/orca/scripts/toolkits/Gecko/script.py
==============================================================================
--- trunk/src/orca/scripts/toolkits/Gecko/script.py	(original)
+++ trunk/src/orca/scripts/toolkits/Gecko/script.py	Mon Jul 14 21:33:31 2008
@@ -102,7 +102,6 @@
         self.speakCellSpanCheckButton = None
         self.speakResultsDuringFindCheckButton = None
         self.structuralNavigationCheckButton = None
-        self.targetCharacterExtents = (0, 0, 0, 0)
 
         # _caretNavigationFunctions are functions that represent fundamental
         # ways to move the caret (e.g., by the arrow keys).
@@ -1087,7 +1086,6 @@
             self.updateBraille(context.obj)
         elif callbackType == speechserver.SayAllContext.COMPLETED:
             #print "COMPLETED", context.utterance, context.currentOffset
-            orca.setLocusOfFocus(None, context.obj, False)
             try:
                 self.setCaretPosition(context.obj, context.currentOffset)
             except:
@@ -1095,6 +1093,48 @@
                 self.setCaretPosition(context.obj, characterCount-1)
             self.updateBraille(context.obj)
 
+    def presentFindResults(self, obj, offset):
+        """Updates the caret context to the match indicated by obj and
+        offset.  Then presents the results according to the user's
+        preferences.
+
+        Arguments:
+        -obj: The accessible object within the document
+        -offset: The offset with obj where the caret should be positioned
+        """
+
+        origObj, origOffset = self.getCaretContext()
+        self.setCaretContext(obj, offset)
+        origExtents = self.getExtents(origObj, origOffset - 1, origOffset)
+        newExtents = self.getExtents(obj, offset - 1, offset)
+        text = self.queryNonEmptyText(obj)
+        if script_settings.speakResultsDuringFind and text:
+            nSelections = text.getNSelections()
+            if nSelections:
+                [start, end] = text.getSelection(0)
+                enoughSelected = (end - start) >= \
+                                  script_settings.minimumFindLength
+                lineChanged = not self.onSameLine(origExtents, newExtents)
+
+                # If the user starts backspacing over the text in the
+                # toolbar entry, he/she is indicating they want to perform
+                # a different search. Because madeFindAnnounement may
+                # be set to True, we should reset it -- but only if we
+                # detect the line has also changed.  We're not getting
+                # events from the Find entry, so we have to compare
+                # offsets.
+                #
+                if self.isSameObject(origObj, obj) and (origOffset > offset) \
+                   and lineChanged:
+                    self.madeFindAnnouncement = False
+
+                if enoughSelected:
+                    if lineChanged or not self.madeFindAnnouncement or \
+                       not script_settings.onlySpeakChangedLinesDuringFind:
+                        line = self.getLineContentsAtOffset(obj, offset)
+                        self.speakContents(line)
+                        self.madeFindAnnouncement = True
+
     def sayAll(self, inputEvent):
         """Speaks the contents of the document beginning with the present
         location.  Overridden in this script because the sayAll could have
@@ -1188,253 +1228,80 @@
         accessible text specialization, the characterOffset value
         is meaningless (and typically -1)."""
 
-        # We now get caret-moved events for items that do not have
-        # focus.  This will enable us to provide better support for
-        # the use of the Find toolbar.  It also means that we need
-        # to check the event.source before assuming that we should
-        # update our position, set the locus of focus, etc.
-        #
-        # Possibility #1: A form control is given focus and a non-
-        # focusable item (the form itself, a table cell within the
-        # form, etc.) issues the event.  These should be ignored
-        # UNLESS focus was moved from a form field  to non-focusable
-        # text in the document frame via mouse click.
-        #
-        if not event.source.getState().contains(pyatspi.STATE_FOCUSABLE) \
-           and self.isFormField(orca_state.locusOfFocus) \
-           and not isinstance(orca_state.lastInputEvent,
-                              input_event.MouseButtonEvent):
-            return
-
-        # Possibility #2: We're looking at the Help contents.  As
-        # the selected item changes in the list on the left, we're
-        # getting caret-moved events for the changing content on
-        # the right.  We want to update the caret context but not
-        # the locus of focus.  Do the same thing for the UIUC
-        # accessibility extension.
-        #
-        if orca_state.locusOfFocus \
-           and orca_state.locusOfFocus.getRole() in [pyatspi.ROLE_LIST_ITEM,
-                                                     pyatspi.ROLE_TABLE_CELL] \
-           and not self.inDocumentContent(orca_state.locusOfFocus) \
-           and self.inDocumentContent(event.source):
-            self.setCaretContext(event.source, event.detail1)
-            return
+        eventSourceRole = event.source.getRole()
+        eventSourceState = event.source.getState()
+        eventSourceInDocument = self.inDocumentContent(event.source)
 
-        # Possibility #3: We're using the Find toolbar.  In this case
-        # we want to update the caret context.  If the user has opted
-        # to have results spoken during the find (i.e., while still
-        # in the Find toolbar), speak the line containing the caret
-        # based on the user-customizable settings.
-        #
-        if orca_state.locusOfFocus \
-           and orca_state.locusOfFocus.getRole() in [pyatspi.ROLE_ENTRY,
-                                                pyatspi.ROLE_PUSH_BUTTON] \
-           and orca_state.locusOfFocus.parent.getRole() == \
-                                            pyatspi.ROLE_TOOL_BAR \
-           and self.inDocumentContent(event.source):
-            [obj, offset] = self.getCaretContext()
-            self.setCaretContext(event.source, event.detail1)
-
-            origExtents = self.getExtents(obj, offset - 1, offset)
-            newExtents = self.getExtents(event.source,
-                                         event.detail1 - 1,
-                                         event.detail1)
-            text = self.queryNonEmptyText(event.source)
-            if script_settings.speakResultsDuringFind and text:
-                nSelections = text.getNSelections()
-                if nSelections:
-                    [start, end] = text.getSelection(0)
-                    enoughSelected = (end - start) >= \
-                                             script_settings.minimumFindLength
-                    lineChanged = not self.onSameLine(origExtents, newExtents)
-
-                    # If the user starts backspacing over the text in the
-                    # toolbar entry, he/she is indicating they want to perform
-                    # a different search. Because madeFindAnnounement may
-                    # be set to True, we should reset it -- but only if we
-                    # detect the line has also changed.  We're not getting
-                    # events from the Find entry, so we have to compare
-                    # offsets.
-                    #
-                    if (obj == event.source) and (offset > event.detail1) \
-                        and lineChanged:
-                        self.madeFindAnnouncement = False
-
-                    if enoughSelected:
-                        if lineChanged or not self.madeFindAnnouncement or \
-                           not script_settings.onlySpeakChangedLinesDuringFind:
-                            line = self.getLineContentsAtOffset(event.source,
-                                                                event.detail1)
-                            self.speakContents(line)
-                            self.madeFindAnnouncement = True
+        try:
+            locusOfFocusRole = orca_state.locusOfFocus.getRole()
+            locusOfFocusState = orca_state.locusOfFocus.getState()
+        except:
+            locusOfFocusRole = None
+            locusOfFocusState = pyatspi.StateSet()
+            locusOfFocusState = locusOfFocusState.raw()
 
-            return
+        if isinstance(orca_state.lastInputEvent, input_event.KeyboardEvent):
+            string = orca_state.lastNonModifierKeyEvent.event_string
+            if self.useCaretNavigationModel(orca_state.lastInputEvent):
+                # Orca is set to control the caret and is in a place where
+                # doing so is appropriate.  Therefore, this event is likely
+                # extraneous and can be ignored. Exceptions:
+                #
+                # 1. If the object is an entry and useCaretNavigationModel is
+                #    true, then we must be at the edge of the entry and about
+                #    to exit it (returning to the document).
+                #
+                if eventSourceRole != pyatspi.ROLE_ENTRY:
+                    return
 
-        # Possibility #4: We called grabFocus() on this item because it has
-        # the overflow:auto; style associated with it.  We need to ignore
-        # this event.  See bug #471537.  But we don't want to do this for
-        # entries.  See bug #501447.
-        #
-        if self.isSameObject(event.source, self._objectForFocusGrab) \
-           and event.source.getRole() != pyatspi.ROLE_ENTRY:
-            self._objectForFocusGrab = None
-            return
+            elif self.isAriaWidget(event.source):
+                # Sometimes we get extra caret-moved events. See bug #471878
+                # and Mozilla bug #394318. However, we cannot do a blanket
+                # ignore of all caret-moved events.  See bug #539075 as an
+                # example.
+                #
+                orca.setLocusOfFocus(event, event.source, False)
+                if eventSourceRole == pyatspi.ROLE_SPIN_BUTTON:
+                    text = self.queryNonEmptyText(event.source)
+                    if text and text.characterCount == event.detail1:
+                        return
+                elif event.detail1 == 0 \
+                     and eventSourceRole in [pyatspi.ROLE_PAGE_TAB,
+                                             pyatspi.ROLE_LIST_ITEM]:
+                    return
 
-        # Or we called grabFocus() on a link which is the parent of some
-        # oject (e.g. an image).  If so, and if the caret moved event is
-        # for that link, we'll speak the link twice if we don't ignore
-        # this event.  See bug #511389.
-        #
-        elif self._objectForFocusGrab \
-             and self._objectForFocusGrab.getRole() == pyatspi.ROLE_LINK:
-            offset = self.getCharacterOffsetInParent(self._objectForFocusGrab)
-            parent = self._objectForFocusGrab.parent
-            if offset == event.detail1 \
-               and self.isSameObject(event.source, parent):
-                return
-            # If it's an image map, we also want to ignore this event.
-            # See bug #511354.
-            #
-            elif parent.getRole() == pyatspi.ROLE_IMAGE:
+            elif eventSourceInDocument and not self.inDocumentContent() \
+                 and orca_state.locusOfFocus:
+                # This is an indication that soemthing else is moving
+                # the caret on our behalf, such as a help window, the
+                # Find toolbar, the UIUC accessiblity extension, etc.
+                # If that's the case, we want to update our position.
+                # If we're in the Find toolbar, we also want to present
+                # the results.
+                #
+                parent = orca_state.locusOfFocus.parent
+                if parent and parent.getRole() == pyatspi.ROLE_TOOL_BAR:
+                    self.presentFindResults(event.source, event.detail1)
+                else:
+                    self.setCaretContext(event.source, event.detail1)
                 return
 
-        # Possibility #5: Orca is controlling the caret, we just left an
-        # entry, and text was inserted into that entry via javascript as
-        # a result of it losing focus.  This is a bogus event, but a fix
-        # might not make it into Firefox 3.  :-(  See GNOME bug 472345
-        # as well as https://bugzilla.mozilla.org/show_bug.cgi?id=394493.
+        # If we're still here, and in document content, update the caret
+        # context.
         #
-        if event.source \
-           and event.source.getRole() == pyatspi.ROLE_ENTRY \
-           and event.source.getState().contains(pyatspi.STATE_FOCUSABLE) \
-           and not event.source.getState().contains( \
-                                           pyatspi.STATE_FOCUSED):
-            return
-
-        # Possibility #6: We are looking at an ARIA widget where the user
-        # has traversed the widget (eg. tree) with the arrows.  We are getting
-        # an extra caret-moved event in these situations. See bug #471878 and
-        # Mozilla bug #394318.
-        #
-        if self.isAriaWidget(event.source) \
-                and isinstance(orca_state.lastInputEvent,
-                           input_event.KeyboardEvent) \
-                and orca_state.lastInputEvent.event_string in \
-                                              ["Up", "Down", "Left", "Right"] \
-                and orca_state.locusOfFocus.getRole() != pyatspi.ROLE_ENTRY:
-            return
-
-        # If Orca is controlling the caret and we just moved to a line that
-        # begins with a link, and that link begins on the previous line,
-        # we need to ignore this event. Otherwise our caret context will
-        # become the beginning of the link on the previous line.
-        #
-        if orca_state.locusOfFocus \
-           and orca_state.locusOfFocus.getRole() == pyatspi.ROLE_LINK \
-           and self.isSameObject(orca_state.locusOfFocus.parent, event.source):
-            offset = self.getCharacterOffsetInParent(orca_state.locusOfFocus)
-            if offset == event.detail1:
-                return
-
-        # If Orca is controlling the caret, it is possible to arrow into
-        # a menu item inside of a combo box.  This is something that is
-        # not possible in Firefox caret browsing mode and seems to confuse
-        # Firefox sufficiently that it wants to generate a caret-moved
-        # event for *something*:  might be the menu item, might be a nearby
-        # link, might be something else.  If it's the menu item, we double
-        # speak it.  If it's something else, we don't want the locusOfFocus
-        # to be set there.  So for now, let's just ignore these.
-        #
-        if orca_state.locusOfFocus \
-            and orca_state.locusOfFocus.getRole() == pyatspi.ROLE_MENU_ITEM \
-            and self.inDocumentContent(event.source):
-            return
-
-        # If {overflow:hidden} is in the document's style sheet, we seem
-        # to get an additional item in the hierarchy:  An object of role
-        # ROLE_UNKNOWN which is the single child of the document frame and
-        # contains all the items which we'd expect to find in the document
-        # frame.  Under these conditions, we will get a caret-moved event
-        # for the document frame with detail1 == 0 after a focus: event for
-        # the object.  We need to ignore both of these events else we will
-        # jump to the top of the document.
-        #
-        # http://bugzilla.gnome.org/show_bug.cgi?id=412677
-        # https://bugzilla.mozilla.org/show_bug.cgi?id=371955
-        #
-        if event.source.getRole() == pyatspi.ROLE_DOCUMENT_FRAME \
-           and event.source.childCount \
-           and event.source[0].getRole() == pyatspi.ROLE_UNKNOWN:
-            return
-
-        # Otherwise, we'll just assume that the thing in which the caret
-        # moved is the locus of focus.  We'll only do this if the current
-        # object that's the locus of focus no longer has focus, though.
-        # The reason for this is that we can indeed get caret-moved events
-        # from things that really have nothing to do with the locus of
-        # focus.
-        #
-        if orca_state.locusOfFocus \
-            and not orca_state.locusOfFocus.getState().contains(
-                        pyatspi.STATE_FOCUSED):
-            orca.setLocusOfFocus(event, event.source, False)
-
-        # We need to handle HTML content differently because we do our
-        # own navigation and we also handle the
-        # EMBEDDED_OBJECT_CHARACTER.  If we're not in HTML content,
-        # we'll defer to the default script.  If we are in HTML
-        # content, we'll figure out where we are and then defer to the
-        # default script.  It will typically end up calling some of
-        # our other overidden methods (e.g., sayCharacter, sayWord,
-        # sayLine, etc.).
-        #
-        if not self.inDocumentContent():
-            default.Script.onCaretMoved(self, event)
-            return
-
-        text = self.queryNonEmptyText(event.source)
-        if text:
-            caretOffset = text.caretOffset
-        else:
-            caretOffset = 0
-
-        #print "HERE: caretContext=", self.getCaretContext()
-        #print "            source=", event.source
-        #print "       caretOffset=", text.caretOffset
-        #print "    characterCount=", text.characterCount
-        [obj, characterOffset] = \
-            self.findFirstCaretContext(event.source, caretOffset)
-        self.setCaretContext(obj, characterOffset)
+        if eventSourceInDocument:
+            text = self.queryNonEmptyText(event.source)
+            if text:
+                caretOffset = text.caretOffset
+            else:
+                caretOffset = 0
 
-        #print "       ended up at=", self.getCaretContext()
+            [obj, characterOffset] = \
+                self.findFirstCaretContext(event.source, caretOffset)
+            self.setCaretContext(obj, characterOffset)
 
-        # If the user presses left or right, we'll set the target
-        # column for up/down navigation by line.  The goal here is
-        # to make sure the caret moves somewhat vertically when
-        # going up/down by line versus jumping to the beginning of
-        # the line.  Note that whether we actually attempt to do
-        # this is handled by the value of the 
-        # script_settings.arrowToLineBeginning.
+        # Pass the event along to the default script for processing.
         #
-        if isinstance(orca_state.lastInputEvent,
-                      input_event.KeyboardEvent):
-            string = orca_state.lastNonModifierKeyEvent.event_string
-            if (string == "Left") or (string == "Right"):
-                [obj, characterOffset] = self.getCaretContext()
-                self.targetCharacterExtents = \
-                    self.getExtents(obj,
-                                    characterOffset,
-                                    characterOffset + 1)
-
-        # If the last event was a mouse event, then just return. This
-        # prevents the multiple utterances of text selected via the mouse
-        # (see bug #409728).
-        #
-        if isinstance(orca_state.lastInputEvent,
-                      input_event.MouseButtonEvent):
-            return
-
         default.Script.onCaretMoved(self, event)
 
     def onTextDeleted(self, event):
@@ -1445,32 +1312,6 @@
         """
 
         self._destroyLineCache()
-
-        # The search entries in Firefox's and Thunderbird's top toolbars
-        # contain text which functions as the label (Yahoo, Entire Message)
-        # and which gets deleted just prior to the entry gaining focus.
-        # This is also true of the search entry in the Downloads frame. If
-        # we pass that event on to the default script, it will set the
-        # entry to the locus of focus silently and then the focus event
-        # will not cause the entry to be spoken.  In addition, if the
-        # Location autocomplete is expanded and Backspace is pressed,
-        # the locus of focus will be a table cell and the default script
-        # will not speak the characters being deleted from the entry.
-        #
-        if event.source and orca_state.locusOfFocus \
-           and not self.isSameObject(event.source, orca_state.locusOfFocus):
-            if event.source.parent.getRole() == pyatspi.ROLE_FRAME:
-                return
-
-            toolbar = self.getAncestor(event.source,
-                                       [pyatspi.ROLE_TOOL_BAR],
-                                       [pyatspi.ROLE_DOCUMENT_FRAME])
-            if toolbar:
-                if orca_state.locusOfFocus.getRole() == pyatspi.ROLE_TABLE_CELL:
-                    orca.setLocusOfFocus(event, event.source, False)
-                else:
-                    return
-
         default.Script.onTextDeleted(self, event)
 
     def onTextInserted(self, event):
@@ -1564,7 +1405,8 @@
         #
         if self.isSameObject(event.source, self._objectForFocusGrab) \
            and not event.source.getRole() in [pyatspi.ROLE_ENTRY,
-                                              pyatspi.ROLE_LINK]:
+                                              pyatspi.ROLE_LINK,
+                                              pyatspi.ROLE_DOCUMENT_FRAME]:
             orca.setLocusOfFocus(event, event.source, False)
             return
 
@@ -1841,15 +1683,6 @@
                         if not obj:
                             return
 
-                    # When a document is loaded, we are going to
-                    # assume that the newly loaded document frame has
-                    # focus.  Gecko doesn't seem to give us a focus
-                    # event for this, though, so we will force the
-                    # locus of focus here.
-                    #
-                    orca.setLocusOfFocus(event, obj, False)
-                    self.setCaretPosition(obj, characterOffset)
-
                     # For braille, we just show the current line
                     # containing the caret.  For speech, however, we
                     # will start a Say All operation if the caret is

Modified: trunk/test/keystrokes/firefox/bug_511389.py
==============================================================================
--- trunk/test/keystrokes/firefox/bug_511389.py	(original)
+++ trunk/test/keystrokes/firefox/bug_511389.py	Mon Jul 14 21:33:31 2008
@@ -56,8 +56,6 @@
     "Tab",
     ["BRAILLE LINE:  'Bar Link'",
      "     VISIBLE:  'Bar Link', cursor=1",
-     "BRAILLE LINE:  'Bar Link'",
-     "     VISIBLE:  'Bar Link', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Bar link'"]))
 
@@ -71,8 +69,6 @@
     "Shift Tab",
     ["BRAILLE LINE:  'Foo Link'",
      "     VISIBLE:  'Foo Link', cursor=1",
-     "BRAILLE LINE:  'Foo Link'",
-     "     VISIBLE:  'Foo Link', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Foo link'"]))
 

Modified: trunk/test/keystrokes/firefox/bug_512303.py
==============================================================================
--- trunk/test/keystrokes/firefox/bug_512303.py	(original)
+++ trunk/test/keystrokes/firefox/bug_512303.py	Mon Jul 14 21:33:31 2008
@@ -42,12 +42,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason we're repeating ourselves",
-     "BRAILLE LINE:  'this is a caption for this table Caption'",
-     "     VISIBLE:  'this is a caption for this table', cursor=1",
-     "BRAILLE LINE:  'this is a caption for this table Caption'",
+    ["BRAILLE LINE:  'this is a caption for this table Caption'",
      "     VISIBLE:  'this is a caption for this table', cursor=1",
-     "SPEECH OUTPUT: 'this is a caption for this table caption'",
      "SPEECH OUTPUT: 'this is a caption for this table caption'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/dojo_dialog.py
==============================================================================
--- trunk/test/keystrokes/firefox/dojo_dialog.py	(original)
+++ trunk/test/keystrokes/firefox/dojo_dialog.py	Mon Jul 14 21:33:31 2008
@@ -75,8 +75,6 @@
     "Launch dialog", 
     ["BRAILLE LINE:  'TabList First tab Page Second tab Page'",
      "     VISIBLE:  'First tab Page Second tab Page', cursor=1",
-     "BRAILLE LINE:  'TabList First tab Page Second tab Page'",
-     "     VISIBLE:  'First tab Page Second tab Page', cursor=1",
      "SPEECH OUTPUT: 'TabContainer Dialog dialog'",
      "SPEECH OUTPUT: 'First tab page'"]))
 

Modified: trunk/test/keystrokes/firefox/dojo_spinner.py
==============================================================================
--- trunk/test/keystrokes/firefox/dojo_spinner.py	(original)
+++ trunk/test/keystrokes/firefox/dojo_spinner.py	Mon Jul 14 21:33:31 2008
@@ -41,8 +41,6 @@
     "Tab to the first spinner", 
     ["BRAILLE LINE:  'Spinbox #1:  900 $l not fired yet! $l '",
      "     VISIBLE:  'Spinbox #1:  900 $l not fired ye', cursor=17",
-     "BRAILLE LINE:  'Spinbox #1:  900 $l not fired yet! $l '",
-     "     VISIBLE:  'Spinbox #1:  900 $l not fired ye', cursor=17",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Spinbox #1:  900 selected spin button'"]))
 

Modified: trunk/test/keystrokes/firefox/dojo_tabcontainer.py
==============================================================================
--- trunk/test/keystrokes/firefox/dojo_tabcontainer.py	(original)
+++ trunk/test/keystrokes/firefox/dojo_tabcontainer.py	Mon Jul 14 21:33:31 2008
@@ -38,8 +38,6 @@
     "tab to tab 2", 
     ["BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Programmatically created tab Page Inlined Sub TabContainer Page Sub TabContainer from href Page'",
      "     VISIBLE:  'Tab 2 Page Tab 3 Page Programmat', cursor=1",
-     "BRAILLE LINE:  'TabList Tab 1 Page Tab 2 Page Tab 3 Page Programmatically created tab Page Inlined Sub TabContainer Page Sub TabContainer from href Page'",
-     "     VISIBLE:  'Tab 2 Page Tab 3 Page Programmat', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab 2 page'"]))
 
@@ -101,8 +99,6 @@
     "tab to tab 2 contents", 
     ["BRAILLE LINE:  'TabList SubTab 1 Page SubTab 2 Page'",
      "     VISIBLE:  'SubTab 2 Page', cursor=1",
-     "BRAILLE LINE:  'TabList SubTab 1 Page SubTab 2 Page'",
-     "     VISIBLE:  'SubTab 2 Page', cursor=1",
      "SPEECH OUTPUT: 'Inlined Sub TabContainer scroll pane'",
      "SPEECH OUTPUT: 'SubTab 2 page'"]))
     
@@ -115,8 +111,6 @@
     "tab to next tab container", 
     ["BRAILLE LINE:  'TabList First Page  $l Second Page Third Page  $l'",
      "     VISIBLE:  'First Page  $l Second Page Third', cursor=1",
-     "BRAILLE LINE:  'TabList First Page  $l Second Page Third Page  $l'",
-     "     VISIBLE:  'First Page  $l Second Page Third', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'First page'"]))
 

Modified: trunk/test/keystrokes/firefox/dojo_tree.py
==============================================================================
--- trunk/test/keystrokes/firefox/dojo_tree.py	(original)
+++ trunk/test/keystrokes/firefox/dojo_tree.py	Mon Jul 14 21:33:31 2008
@@ -39,8 +39,6 @@
     "tab to continents", 
     ["BRAILLE LINE:  'Continents ListItem'",
      "     VISIBLE:  'Continents ListItem', cursor=1",
-     "BRAILLE LINE:  'Continents ListItem'",
-     "     VISIBLE:  'Continents ListItem', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Continents expanded'",
      "SPEECH OUTPUT: 'tree level 1'"]))

Modified: trunk/test/keystrokes/firefox/html_role_combo_box.py
==============================================================================
--- trunk/test/keystrokes/firefox/html_role_combo_box.py	(original)
+++ trunk/test/keystrokes/firefox/html_role_combo_box.py	Mon Jul 14 21:33:31 2008
@@ -48,8 +48,6 @@
     "Tab to Severity combo box", 
     ["BRAILLE LINE:  'Severity Link : Severity normal Combo'",
      "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
-     "BRAILLE LINE:  'Severity Link : Severity normal Combo'",
-     "     VISIBLE:  'Severity Link : Severity normal ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Severity link'"]))
 
@@ -77,8 +75,6 @@
     "Tab to Priority Link", 
     ["BRAILLE LINE:  'Priority Link : Normal Combo'",
      "     VISIBLE:  'Priority Link : Normal Combo', cursor=1",
-     "BRAILLE LINE:  'Priority Link : Normal Combo'",
-     "     VISIBLE:  'Priority Link : Normal Combo', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Priority link'"]))
 

Modified: trunk/test/keystrokes/firefox/html_role_links.py
==============================================================================
--- trunk/test/keystrokes/firefox/html_role_links.py	(original)
+++ trunk/test/keystrokes/firefox/html_role_links.py	Mon Jul 14 21:33:31 2008
@@ -48,8 +48,6 @@
     "Tab to anchors.html link", 
     ["BRAILLE LINE:  'â anchors.html Link'",
      "     VISIBLE:  'â anchors.html Link', cursor=3",
-     "BRAILLE LINE:  'â anchors.html Link'",
-     "     VISIBLE:  'â anchors.html Link', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'anchors.html link'"]))
 
@@ -62,8 +60,6 @@
     "Tab to blockquotes.html link", 
     ["BRAILLE LINE:  'â blockquotes.html Link'",
      "     VISIBLE:  'â blockquotes.html Link', cursor=3",
-     "BRAILLE LINE:  'â blockquotes.html Link'",
-     "     VISIBLE:  'â blockquotes.html Link', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'blockquotes.html link'"]))
 
@@ -76,8 +72,6 @@
     "Tab to bugzilla_top.html link", 
     ["BRAILLE LINE:  'â bugzilla_top.html Link'",
      "     VISIBLE:  'â bugzilla_top.html Link', cursor=3",
-     "BRAILLE LINE:  'â bugzilla_top.html Link'",
-     "     VISIBLE:  'â bugzilla_top.html Link', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'bugzilla_top.html link'"]))
 
@@ -90,8 +84,6 @@
     "Shift Tab to blockquotes.html link", 
     ["BRAILLE LINE:  'â blockquotes.html Link'",
      "     VISIBLE:  'â blockquotes.html Link', cursor=3",
-     "BRAILLE LINE:  'â blockquotes.html Link'",
-     "     VISIBLE:  'â blockquotes.html Link', cursor=3",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'blockquotes.html link'"]))
 

Modified: trunk/test/keystrokes/firefox/html_struct_nav_blockquote.py
==============================================================================
--- trunk/test/keystrokes/firefox/html_struct_nav_blockquote.py	(original)
+++ trunk/test/keystrokes/firefox/html_struct_nav_blockquote.py	Mon Jul 14 21:33:31 2008
@@ -51,8 +51,6 @@
     "q to first quote", 
     ["BRAILLE LINE:  'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'",
      "     VISIBLE:  'NOBODY expects the Spanish Inqui', cursor=1",
-     "BRAILLE LINE:  'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'",
-     "     VISIBLE:  'NOBODY expects the Spanish Inqui', cursor=1",
      "SPEECH OUTPUT: 'NOBODY expects the Spanish Inquisition! Our chief weapon is surprise. Surprise and fear. Fear and surprise. Our two weapons are fear and'"]))
 
 ########################################################################

Modified: trunk/test/keystrokes/firefox/html_struct_nav_large_obj.py
==============================================================================
--- trunk/test/keystrokes/firefox/html_struct_nav_large_obj.py	(original)
+++ trunk/test/keystrokes/firefox/html_struct_nav_large_obj.py	Mon Jul 14 21:33:31 2008
@@ -47,8 +47,6 @@
     "First large chunk", 
     ["BRAILLE LINE:  'I have of late but'",
      "     VISIBLE:  'I have of late but', cursor=1",
-     "BRAILLE LINE:  'I have of late but'",
-     "     VISIBLE:  'I have of late but', cursor=1",
      "SPEECH OUTPUT: 'I have of late but",
      "wherefore I know not lost all my mirth,",
      "forgone all custom of exercises;",

Modified: trunk/test/keystrokes/firefox/label_guess_entries.py
==============================================================================
--- trunk/test/keystrokes/firefox/label_guess_entries.py	(original)
+++ trunk/test/keystrokes/firefox/label_guess_entries.py	Mon Jul 14 21:33:31 2008
@@ -123,10 +123,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BUG? - We're not guessing this correctly",
-     "BRAILLE LINE:  ' $l'",
+    ["BRAILLE LINE:  ' $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "SPEECH OUTPUT: 'Sometimes labels can be below the fields due to <br /> text'"]))
+     "SPEECH OUTPUT: 'First Name text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -134,10 +133,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BUG? - We're not guessing this correctly",
-     "BRAILLE LINE:  ' $l'",
+    ["BRAILLE LINE:  ' $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "SPEECH OUTPUT: 'text'"]))
+     "SPEECH OUTPUT: 'M.I. text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))
@@ -145,10 +143,9 @@
 sequence.append(KeyReleaseAction(0, None, "KP_Insert"))
 sequence.append(utils.AssertPresentationAction(
     "Next form field", 
-    ["BUG? - We're not guessing this correctly",
-     "BRAILLE LINE:  ' $l'",
+    ["BRAILLE LINE:  ' $l'",
      "     VISIBLE:  ' $l', cursor=1",
-     "SPEECH OUTPUT: 'text'"]))
+     "SPEECH OUTPUT: 'Last Name text'"]))
 
 sequence.append(utils.StartRecordingAction())
 sequence.append(KeyPressAction(0, None, "KP_Insert"))

Modified: trunk/test/keystrokes/firefox/line_nav_empty_anchor.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_empty_anchor.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_empty_anchor.py	Mon Jul 14 21:33:31 2008
@@ -49,14 +49,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason, we're repeating ourselves",
-     "BRAILLE LINE:  'Battery h2'",
-     "     VISIBLE:  'Battery h2', cursor=1",
-     "BRAILLE LINE:  'Battery h2'",
+    ["BRAILLE LINE:  'Battery h2'",
      "     VISIBLE:  'Battery h2', cursor=1",
      "SPEECH OUTPUT: 'Battery heading  '",
-     "SPEECH OUTPUT: 'level 2'",
-     "SPEECH OUTPUT: 'Battery heading  '",
      "SPEECH OUTPUT: 'level 2'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -88,16 +83,6 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: '",
-     " heading  '",
-     "SPEECH OUTPUT: 'level 2'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Down",
     ["BRAILLE LINE:  'FOO h2'",
      "     VISIBLE:  'FOO h2', cursor=1",
      "SPEECH OUTPUT: 'FOO'",
@@ -124,16 +109,6 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BRAILLE LINE:  ''",
-     "     VISIBLE:  '', cursor=0",
-     "SPEECH OUTPUT: '",
-     " heading  '",
-     "SPEECH OUTPUT: 'level 2'"]))
-
-sequence.append(utils.StartRecordingAction())
-sequence.append(KeyComboAction("Down"))
-sequence.append(utils.AssertPresentationAction(
-    "Line Down",
     ["BRAILLE LINE:  'Battery h2'",
      "     VISIBLE:  'Battery h2', cursor=1",
      "SPEECH OUTPUT: 'Battery heading  '",

Modified: trunk/test/keystrokes/firefox/line_nav_heading_section.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_heading_section.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_heading_section.py	Mon Jul 14 21:33:31 2008
@@ -48,14 +48,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason we're repeating ourselves",
-     "BRAILLE LINE:  'Heading 2. h1'",
-     "     VISIBLE:  'Heading 2. h1', cursor=1",
-     "BRAILLE LINE:  'Heading 2. h1'",
+    ["BRAILLE LINE:  'Heading 2. h1'",
      "     VISIBLE:  'Heading 2. h1', cursor=1",
      "SPEECH OUTPUT: 'Heading 2. heading  '",
-     "SPEECH OUTPUT: 'level 1'",
-     "SPEECH OUTPUT: 'Heading 2. heading  '",
      "SPEECH OUTPUT: 'level 1'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_imagemap.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_imagemap.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_imagemap.py	Mon Jul 14 21:33:31 2008
@@ -47,12 +47,8 @@
 sequence.append(PauseAction(1000))
 sequence.append(utils.AssertPresentationAction(
     "1. line Down",
-    ["BUG? - For some reason we're repeating ourselves",
-     "BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
-     "     VISIBLE:  'Test: z Link y Link x Link w Lin', cursor=1",
-     "BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
+    ["BRAILLE LINE:  'Test: z Link y Link x Link w Link v Link u Link t Link s Link r Link q Link p Link o Link n Link m Link l Link k Link j Link i Link h Link g Link f Link e Link d Link c Link b Link a Link'",
      "     VISIBLE:  'Test: z Link y Link x Link w Lin', cursor=1",
-     "SPEECH OUTPUT: 'Test: z link y link x link w link v link u link t link s link r link q link p link o link n link m link l link k link j link i link h link g link f link e link d link c link b link a link'",
      "SPEECH OUTPUT: 'Test: z link y link x link w link v link u link t link s link r link q link p link o link n link m link l link k link j link i link h link g link f link e link d link c link b link a link'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_multi_line_text.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_multi_line_text.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_multi_line_text.py	Mon Jul 14 21:33:31 2008
@@ -47,12 +47,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason, we're repeating ourselves",
-     "BRAILLE LINE:  'foo bar'",
-     "     VISIBLE:  'foo bar', cursor=1",
-     "BRAILLE LINE:  'foo bar'",
+    ["BRAILLE LINE:  'foo bar'",
      "     VISIBLE:  'foo bar', cursor=1",
-     "SPEECH OUTPUT: 'foo bar'",
      "SPEECH OUTPUT: 'foo bar'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_nested_tables.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_nested_tables.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_nested_tables.py	Mon Jul 14 21:33:31 2008
@@ -64,12 +64,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "3. line Down",
-    ["BUG? - For some reason we're repeating ourselves",
-     "BRAILLE LINE:  'Below is a list of the courses that make up your learning plan.'",
-     "     VISIBLE:  'Below is a list of the courses t', cursor=1",
-     "BRAILLE LINE:  'Below is a list of the courses that make up your learning plan.'",
+    ["BRAILLE LINE:  'Below is a list of the courses that make up your learning plan.'",
      "     VISIBLE:  'Below is a list of the courses t', cursor=1",
-     "SPEECH OUTPUT: 'Below is a list of the courses that make up your learning plan.'",
      "SPEECH OUTPUT: 'Below is a list of the courses that make up your learning plan.'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_simple_form.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_simple_form.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_simple_form.py	Mon Jul 14 21:33:31 2008
@@ -46,12 +46,8 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "1. line Down",
-    ["BUG? - For some reason we're repeating ourselves",
-     "BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
-     "     VISIBLE:  'Magic disappearing text trick: t', cursor=1",
-     "BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
+    ["BRAILLE LINE:  'Magic disappearing text trick: tab to me and I disappear $l'",
      "     VISIBLE:  'Magic disappearing text trick: t', cursor=1",
-     "SPEECH OUTPUT: 'Magic disappearing text trick: text tab to me and I disappear'",
      "SPEECH OUTPUT: 'Magic disappearing text trick: text tab to me and I disappear'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_table_cell_links.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_table_cell_links.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_table_cell_links.py	Mon Jul 14 21:33:31 2008
@@ -47,14 +47,9 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason, we're repeating ourselves",
-     "BRAILLE LINE:  'HTML Tags'",
-     "     VISIBLE:  'HTML Tags', cursor=1",
-     "BRAILLE LINE:  'HTML Tags'",
+    ["BRAILLE LINE:  'HTML Tags'",
      "     VISIBLE:  'HTML Tags', cursor=1",
      "SPEECH OUTPUT: 'HTML Tags",
-     "'",
-     "SPEECH OUTPUT: 'HTML Tags",
      "'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/line_nav_wiki.py
==============================================================================
--- trunk/test/keystrokes/firefox/line_nav_wiki.py	(original)
+++ trunk/test/keystrokes/firefox/line_nav_wiki.py	Mon Jul 14 21:33:31 2008
@@ -51,16 +51,10 @@
 sequence.append(KeyComboAction("Down"))
 sequence.append(utils.AssertPresentationAction(
     "Line Down",
-    ["BUG? - For some reason, we're repeating ourselves",
-     "BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button Text Button'",
-     "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
-     "BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button Text Button'",
+    ["BRAILLE LINE:  'live.gnome.org h1 Search $l Titles Button Text Button'",
      "     VISIBLE:  'live.gnome.org h1 Search $l Titl', cursor=1",
      "SPEECH OUTPUT: 'live.gnome.org heading  '",
      "SPEECH OUTPUT: 'level 1'",
-     "SPEECH OUTPUT: 'text Search Titles button grayed Text button grayed'",
-     "SPEECH OUTPUT: 'live.gnome.org heading  '",
-     "SPEECH OUTPUT: 'level 1'",
      "SPEECH OUTPUT: 'text Search Titles button grayed Text button grayed'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/moz_menu.py
==============================================================================
--- trunk/test/keystrokes/firefox/moz_menu.py	(original)
+++ trunk/test/keystrokes/firefox/moz_menu.py	Mon Jul 14 21:33:31 2008
@@ -71,12 +71,7 @@
 sequence.append(utils.AssertPresentationAction(
     "Move to Themes", 
     ["BRAILLE LINE:  'Themes ÂÂ Â ÂÂ Â>'",
-     "     VISIBLE:  'Themes ÂÂ Â ÂÂ Â>', cursor=0",
-     "BRAILLE LINE:  'Themes ÂÂ Â ÂÂ Â>'",
      "     VISIBLE:  'Themes ÂÂ Â ÂÂ Â>', cursor=1",
-     "SPEECH OUTPUT: ''",
-     "SPEECH OUTPUT: 'menu'",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Themes ÂÂ Â ÂÂ Â>'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -85,8 +80,6 @@
 sequence.append(utils.AssertPresentationAction(
     "Move to basic grey", 
     ["BRAILLE LINE:  'Basic Grey'",
-     "     VISIBLE:  'Basic Grey', cursor=0",
-     "BRAILLE LINE:  'Basic Grey'",
      "     VISIBLE:  'Basic Grey', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'menu'",
@@ -99,7 +92,6 @@
     "Move to the blues", 
     ["BRAILLE LINE:  'The Blues'",
      "     VISIBLE:  'The Blues', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'The Blues'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -108,7 +100,6 @@
     "Move to garden", 
     ["BRAILLE LINE:  'Garden'",
      "     VISIBLE:  'Garden', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Garden'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -117,7 +108,6 @@
     "Move to in the pink", 
     ["BRAILLE LINE:  'In the Pink grayed'",
      "     VISIBLE:  'In the Pink grayed', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'In the Pink grayed'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -126,7 +116,6 @@
     "Move to rose", 
     ["BRAILLE LINE:  'Rose'",
      "     VISIBLE:  'Rose', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Rose'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -144,7 +133,6 @@
     "Move to hide", 
     ["BRAILLE LINE:  'Hide'",
      "     VISIBLE:  'Hide', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Hide'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -153,7 +141,6 @@
     "Move to show", 
     ["BRAILLE LINE:  'Show'",
      "     VISIBLE:  'Show', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Show'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -162,7 +149,6 @@
     "Move to more", 
     ["BRAILLE LINE:  'More ÂÂ Â ÂÂ Â ÂÂ Â >'",
      "     VISIBLE:  'More ÂÂ Â ÂÂ Â ÂÂ Â >', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'More ÂÂ Â ÂÂ Â ÂÂ Â >'"]))
 
 sequence.append(utils.StartRecordingAction())
@@ -171,8 +157,6 @@
 sequence.append(utils.AssertPresentationAction(
     "Move to one", 
     ["BRAILLE LINE:  'one'",
-     "     VISIBLE:  'one', cursor=0",
-     "BRAILLE LINE:  'one'",
      "     VISIBLE:  'one', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'menu'",
@@ -185,7 +169,6 @@
     "Move to two", 
     ["BRAILLE LINE:  'two'",
      "     VISIBLE:  'two', cursor=1",
-     "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'two'"]))
 
 sequence.append(utils.StartRecordingAction())

Modified: trunk/test/keystrokes/firefox/moz_tabpanel.py
==============================================================================
--- trunk/test/keystrokes/firefox/moz_tabpanel.py	(original)
+++ trunk/test/keystrokes/firefox/moz_tabpanel.py	Mon Jul 14 21:33:31 2008
@@ -88,8 +88,6 @@
     "move back to tab 3", 
     ["BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
      "     VISIBLE:  'Tab Two Page Tab Three Page Tab ', cursor=1",
-     "BRAILLE LINE:  'Tab Zero Page Tab One Page Tab Two Page Tab Three Page Tab Four Page'",
-     "     VISIBLE:  'Tab Two Page Tab Three Page Tab ', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Tab Two page'"]))
 ########################################################################

Modified: trunk/test/keystrokes/firefox/page_summary.py
==============================================================================
--- trunk/test/keystrokes/firefox/page_summary.py	(original)
+++ trunk/test/keystrokes/firefox/page_summary.py	Mon Jul 14 21:33:31 2008
@@ -35,8 +35,6 @@
     "Navigate to 'This is a Heading 6.'",
     ["BRAILLE LINE:  'This is a Heading 6. h6'",
      "     VISIBLE:  'This is a Heading 6. h6', cursor=1",
-     "BRAILLE LINE:  'This is a Heading 6. h6'",
-     "     VISIBLE:  'This is a Heading 6. h6', cursor=1",
      "SPEECH OUTPUT: 'This is a Heading 6. heading  '",
      "SPEECH OUTPUT: 'level 6'"]))
 

Modified: trunk/test/keystrokes/firefox/uiuc_button.py
==============================================================================
--- trunk/test/keystrokes/firefox/uiuc_button.py	(original)
+++ trunk/test/keystrokes/firefox/uiuc_button.py	Mon Jul 14 21:33:31 2008
@@ -33,8 +33,6 @@
     "tab to first button", 
     ["BRAILLE LINE:  'Font Larger + Button Font Smaller - Button & y Italic i ToggleButton Bold B Button'",
      "     VISIBLE:  'Font Larger + Button Font Smalle', cursor=1",
-     "BRAILLE LINE:  'Font Larger + Button Font Smaller - Button & y Italic i ToggleButton Bold B Button'",
-     "     VISIBLE:  'Font Larger + Button Font Smalle', cursor=1",
      "SPEECH OUTPUT: 'Text Formating Controls 1 list'",
      "SPEECH OUTPUT: 'Font Larger + button'"]))
 

Modified: trunk/test/keystrokes/firefox/uiuc_tree.py
==============================================================================
--- trunk/test/keystrokes/firefox/uiuc_tree.py	(original)
+++ trunk/test/keystrokes/firefox/uiuc_tree.py	Mon Jul 14 21:33:31 2008
@@ -38,8 +38,6 @@
      "     VISIBLE:  'Fruits ListItem', cursor=1",
      "BRAILLE LINE:  'Fruits ListItem'",
      "     VISIBLE:  'Fruits ListItem', cursor=1",
-     "BRAILLE LINE:  'Fruits ListItem'",
-     "     VISIBLE:  'Fruits ListItem', cursor=1",
      "SPEECH OUTPUT: ''",
      "SPEECH OUTPUT: 'Foods tree'",
      "SPEECH OUTPUT: ''",



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