Commit 14c5b931 authored by surkov.alexander@gmail.com's avatar surkov.alexander@gmail.com
Browse files

Bug 387925 - state expandable isn;t exposed correctly, r=aaronlev

parent 4b132ab6
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -1086,16 +1086,6 @@ nsAccessible::GetState(PRUint32 *aState, PRUint32 *aExtraState)
    }
  }

  if (!(state & nsIAccessibleStates::STATE_UNAVAILABLE)) {  // If not disabled
    *aExtraState |= nsIAccessibleStates::EXT_STATE_ENABLED |
                    nsIAccessibleStates::EXT_STATE_SENSITIVE;
  }

  if (state & (nsIAccessibleStates::STATE_COLLAPSED |
               nsIAccessibleStates::STATE_EXPANDED)) {
    *aExtraState |= nsIAccessibleStates::EXT_STATE_EXPANDABLE;
  }

  return NS_OK;
}

@@ -2252,6 +2242,19 @@ nsAccessible::GetFinalState(PRUint32 *aState, PRUint32 *aExtraState)
  nsresult rv = GetState(aState, aExtraState);
  NS_ENSURE_SUCCESS(rv, rv);

  // Set additional states which presence depends on another states.
  if (aExtraState) {
    if (!(*aState & nsIAccessibleStates::STATE_UNAVAILABLE)) {
      *aExtraState |= nsIAccessibleStates::EXT_STATE_ENABLED |
                      nsIAccessibleStates::EXT_STATE_SENSITIVE;
    }

    if (*aState & (nsIAccessibleStates::STATE_COLLAPSED |
                   nsIAccessibleStates::STATE_EXPANDED)) {
      *aExtraState |= nsIAccessibleStates::EXT_STATE_EXPANDABLE;
    }
  }

  // Apply ARIA states to be sure accessible states will be overriden.
  return GetARIAState(aState);
}
+3 −0
Original line number Diff line number Diff line
@@ -603,6 +603,9 @@ nsXULTreeitemAccessible::GetState(PRUint32 *aState, PRUint32 *aExtraState)
  if (isContainer) {
    mTreeView->IsContainerEmpty(mRow, &isContainerEmpty);
    if (!isContainerEmpty) {
      if (aExtraState)
        *aExtraState |= nsIAccessibleStates::EXT_STATE_EXPANDABLE;

      mTreeView->IsContainerOpen(mRow, &isContainerOpen);
      *aState |= isContainerOpen? PRUint32(nsIAccessibleStates::STATE_EXPANDED):
                                  PRUint32(nsIAccessibleStates::STATE_COLLAPSED);