Bug 476404 - [SeaMonkey] New a11y test_relations.xul fails, r=marcoz, davidb, sr=neil
--- a/accessible/src/base/nsRootAccessible.cpp
+++ b/accessible/src/base/nsRootAccessible.cpp
@@ -987,17 +987,24 @@ nsRootAccessible::GetContentDocShell(nsI
return nsnull;
}
PRInt32 itemType;
aStart->GetItemType(&itemType);
if (itemType == nsIDocShellTreeItem::typeContent) {
nsCOMPtr<nsIAccessibleDocument> accDoc =
GetDocAccessibleFor(aStart, PR_TRUE);
+
+ // Hidden documents don't have accessibles (like SeaMonkey's sidebar),
+ // they are of no interest for a11y.
+ if (!accDoc)
+ return nsnull;
+
nsCOMPtr<nsIAccessible> accessible = do_QueryInterface(accDoc);
+
// If ancestor chain of accessibles is not completely visible,
// don't use this one. This happens for example if it's inside
// a background tab (tabbed browsing)
while (accessible) {
if (nsAccUtils::State(accessible) & nsIAccessibleStates::STATE_INVISIBLE)
return nsnull;
nsCOMPtr<nsIAccessible> ancestor;