if (IsHidden()) continue;
NS_IMETHODIMP nsAccessibleTreeWalker::GetNextSibling(){  // Make sure mState.siblingIndex and mState.siblingList are initialized  if (mState.siblingIndex == eSiblingsUninitialized)     GetSiblings(mState.domNode);  // get next sibling  nsCOMPtr<nsIDOMNode> next;  while (PR_TRUE) {    if (mState.siblingIndex == eSiblingsWalkNormalDOM)      mState.domNode->GetNextSibling(getter_AddRefs(next));    else       mState.siblingList->Item(++mState.siblingIndex, getter_AddRefs(next));    if (!next) {  // Done with siblings      // if no DOM parent or DOM parent is accessible fail      nsCOMPtr<nsIDOMNode> parent;      if (NS_FAILED(GetFullTreeParentNode(mState.domNode, getter_AddRefs(parent))))        break; // Failed - can't get parent node, we're at the top       if (NS_FAILED(PopState())) {   // Use parent - go up in stack        ClearState();        mState.domNode = parent;      }      if (mState.siblingIndex == eSiblingsUninitialized)         GetSiblings(mState.domNode);      if (GetAccessible())        break; // Failed - anything after this in the tree is in a new group of siblings    }    else {      // if next is accessible, use it       mState.domNode = next;      if (GetAccessible())        return NS_OK;      // otherwise call first on next      mState.domNode = next;      if (NS_SUCCEEDED(GetFirstChild()))        return NS_OK;      // If no results, keep recursiom going - call next on next      mState.domNode = next;    }  }  return NS_ERROR_FAILURE;}