зеркало из https://github.com/mozilla/gecko-dev.git
Bug 390129. ARIA combo box improvements. r=surkov, a=dsicore
This commit is contained in:
Родитель
148a241c2f
Коммит
3e70f3b459
|
@ -81,11 +81,10 @@ nsRoleMapEntry nsARIAMap::gWAIRoleMap[] =
|
|||
{"selected", kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
|
||||
{"selected", "false", nsIAccessibleStates::STATE_SELECTABLE},
|
||||
{"readonly", kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
|
||||
{"combobox", nsIAccessibleRole::ROLE_COMBOBOX, eNameLabelOrTitle, eNoValue, kNoReqStates,
|
||||
{"combobox", nsIAccessibleRole::ROLE_COMBOBOX, eNameLabelOrTitle, eHasValueMinMax, nsIAccessibleStates::STATE_COLLAPSED,
|
||||
{"disabled", kBoolState, nsIAccessibleStates::STATE_UNAVAILABLE},
|
||||
{"readonly", kBoolState, nsIAccessibleStates::STATE_READONLY},
|
||||
{"expanded", kBoolState, nsIAccessibleStates::STATE_EXPANDED},
|
||||
{"multiselectable", kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE}, kEndEntry},
|
||||
{"expanded", kBoolState, nsIAccessibleStates::STATE_EXPANDED}, kEndEntry},
|
||||
{"description", nsIAccessibleRole::ROLE_TEXT_CONTAINER, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
|
||||
{"dialog", nsIAccessibleRole::ROLE_DIALOG, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
|
||||
{"document", nsIAccessibleRole::ROLE_DOCUMENT, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
|
||||
|
|
|
@ -2290,9 +2290,18 @@ nsAccessible::GetFinalState(PRUint32 *aState, PRUint32 *aExtraState)
|
|||
nsIAccessibleStates::EXT_STATE_SENSITIVE;
|
||||
}
|
||||
|
||||
if (*aState & (nsIAccessibleStates::STATE_COLLAPSED |
|
||||
nsIAccessibleStates::STATE_EXPANDED)) {
|
||||
const PRUint32 kExpandCollapseStates =
|
||||
nsIAccessibleStates::STATE_COLLAPSED | nsIAccessibleStates::STATE_EXPANDED;
|
||||
if (*aState & kExpandCollapseStates) {
|
||||
*aExtraState |= nsIAccessibleStates::EXT_STATE_EXPANDABLE;
|
||||
if ((*aState & kExpandCollapseStates) == kExpandCollapseStates) {
|
||||
// Cannot be both expanded and collapsed -- this happens
|
||||
// in ARIA expanded combobox because of limitation of nsARIAMap
|
||||
// XXX Perhaps we will be able to make this less hacky if
|
||||
// we support extended states in nsARIAMap, e.g. derive
|
||||
// COLLAPSED from EXPANDABLE && !EXPANDED
|
||||
*aExtraState &= ~nsIAccessibleStates::STATE_COLLAPSED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче