Index: src/orca/scripts/toolkits/Gecko/constants.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/constants.py	(revision 3928)
+++ src/orca/scripts/toolkits/Gecko/constants.py	(working copy)
@@ -73,6 +73,7 @@
 # Roles that represent a logical chunk of information in a document
 #
 OBJECT_ROLES = [pyatspi.ROLE_HEADING,
+                pyatspi.ROLE_LIST,
                 pyatspi.ROLE_PARAGRAPH,
                 pyatspi.ROLE_TABLE,
                 pyatspi.ROLE_TABLE_CELL,
Index: src/orca/scripts/toolkits/Gecko/script.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/script.py	(revision 3928)
+++ src/orca/scripts/toolkits/Gecko/script.py	(working copy)
@@ -8888,13 +8888,30 @@
     ####################################################################
 
     def __matchChunk(self, obj):
-        if obj.getRole() in OBJECT_ROLES:
+        role = obj.getRole()
+        if not role in OBJECT_ROLES:
+            return False
+
+        if role == pyatspi.ROLE_LIST:
+            # We only care about (un)ordered lists.  Form field lists
+            # are not chunks. We also don't want to present lists which
+            # are just a series of links because that is the very thing
+            # the users are often trying to skip over when navigating
+            # in this fashion.
+            #
+            if not obj.getState().contains(pyatspi.STATE_FOCUSABLE):
+                characterCount = 0
+                for child in obj:
+                    text = self.queryNonEmptyText(child)
+                    if text and text != self.EMBEDDED_OBJECT_CHARACTER:
+                        characterCount += text.characterCount
+                        if characterCount > largeObjectTextLength:
+                            return True
+            return False
+
+        elif not self.isUselessObject(obj):
             text = self.queryNonEmptyText(obj)
-            if text and text.characterCount > largeObjectTextLength \
-               and not self.isUselessObject(obj):
-                return True
-            else:
-                return False
+            return (text and text.characterCount > largeObjectTextLength)
         else:
             return False
 
