diff --git a/mozilla/accessible/src/base/nsRootAccessible.cpp b/mozilla/accessible/src/base/nsRootAccessible.cpp index 346950f1b4f..075da9d202d 100644 --- a/mozilla/accessible/src/base/nsRootAccessible.cpp +++ b/mozilla/accessible/src/base/nsRootAccessible.cpp @@ -505,7 +505,16 @@ void nsRootAccessible::FireCurrentFocusEvent() NS_LITERAL_STRING("Events"), getter_AddRefs(event))) && NS_SUCCEEDED(event->InitEvent(NS_LITERAL_STRING("focus"), PR_TRUE, PR_TRUE))) { - HandleEventWithTarget(event, focusedNode); + // Get the target node we really want for the event. + nsIAccessibilityService* accService = GetAccService(); + if (accService) { + nsCOMPtr targetNode; + accService->GetRelevantContentNodeFor(focusedNode, + getter_AddRefs(targetNode)); + if (targetNode) { + HandleEventWithTarget(event, targetNode); + } + } } } }