Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2688)
+++ src/orca/Gecko.py	(working copy)
@@ -3085,6 +3085,18 @@
         interest.  If our current item doesn't implement the
         accessible text specialization, the characterOffset value
         is meaningless (and typically -1)."""
+        
+        # We seem to get a focus event and a caret moved event for ARIA
+        # widgets when we up/down arrow into them.  The up/down caret
+        # moved event will speak the entire line, including the ARIA
+        # widget.  So, we'll ignore caret-moved: events for those kinds of
+        # things.
+        #
+        if self.isAriaWidget(event.source) \
+            and isinstance(orca_state.lastInputEvent,
+                           input_event.KeyboardEvent) \
+            and orca_state.lastInputEvent.event_string in ["Up", "Down"]:
+            return
 
         # We now get caret-moved events for items that do not have
         # focus.  This will enable us to provide better support for
@@ -3360,18 +3372,6 @@
            or (not len(event.source.role)):
             return
 
-        # We seem to get a focus event and a caret moved event for ARIA
-        # widgets when we up/down arrow into them.  The up/down caret
-        # moved event will speak the entire line, including the ARIA
-        # widget.  So, we'll ignore focus: events for those kinds of
-        # things.
-        #
-        if self.isAriaWidget(event.source) \
-            and isinstance(orca_state.lastInputEvent,
-                           input_event.KeyboardEvent) \
-            and orca_state.lastInputEvent.event_string in ["Up", "Down"]:
-            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
