diff --git a/accessible/src/base/nsRootAccessible.cpp b/accessible/src/base/nsRootAccessible.cpp index 8ffd84b6a664..2baa82094b7c 100644 --- a/accessible/src/base/nsRootAccessible.cpp +++ b/accessible/src/base/nsRootAccessible.cpp @@ -847,8 +847,15 @@ nsresult nsRootAccessible::HandleEventWithTarget(nsIDOMEvent* aEvent, NS_ENSURE_TRUE(containerAccessible, NS_ERROR_FAILURE); // It is not top level menuitem // Only fire focus event if it is not inside collapsed popup - if (State(containerAccessible) & nsIAccessibleStates::STATE_COLLAPSED) - return NS_OK; + // and not a listitem of a combo box + if (State(containerAccessible) & nsIAccessibleStates::STATE_COLLAPSED) { + nsCOMPtr containerParent; + containerAccessible->GetParent(getter_AddRefs(containerParent)); + NS_ENSURE_TRUE(containerParent, NS_ERROR_FAILURE); + if (Role(containerParent) != nsIAccessibleRole::ROLE_COMBOBOX) { + return NS_OK; + } + } } } nsAccEvent::PrepareForEvent(aTargetNode, PR_TRUE); // Always asynch, always from user input