Bug 369640. Fix ARIA multiselect -- the correct name is multiselectable. r=david.bolter

This commit is contained in:
aaronleventhal%moonset.net 2007-03-09 21:15:39 +00:00
Родитель 99a71edd01
Коммит edd5e50080
3 изменённых файлов: 12 добавлений и 12 удалений

Просмотреть файл

@ -163,13 +163,13 @@ ACCESSIBILITY_ATOM(tooltiptext, "tooltiptext")
ACCESSIBILITY_ATOM(type, "type") ACCESSIBILITY_ATOM(type, "type")
ACCESSIBILITY_ATOM(value, "value") ACCESSIBILITY_ATOM(value, "value")
// DHTML accessibility attributes // ARIA (DHTML accessibility) attributes
ACCESSIBILITY_ATOM(checked, "checked") ACCESSIBILITY_ATOM(checked, "checked")
ACCESSIBILITY_ATOM(droppable, "droppable") ACCESSIBILITY_ATOM(droppable, "droppable")
ACCESSIBILITY_ATOM(expanded, "expanded") ACCESSIBILITY_ATOM(expanded, "expanded")
ACCESSIBILITY_ATOM(invalid, "invalid") ACCESSIBILITY_ATOM(invalid, "invalid")
ACCESSIBILITY_ATOM(level, "level") ACCESSIBILITY_ATOM(level, "level")
ACCESSIBILITY_ATOM(multiselect, "multiselect") ACCESSIBILITY_ATOM(multiselectable, "multiselectable")
ACCESSIBILITY_ATOM(posinset, "posinset") ACCESSIBILITY_ATOM(posinset, "posinset")
ACCESSIBILITY_ATOM(required, "required") ACCESSIBILITY_ATOM(required, "required")
ACCESSIBILITY_ATOM(role, "role") ACCESSIBILITY_ATOM(role, "role")

Просмотреть файл

@ -189,7 +189,7 @@ PRBool nsAccessible::IsTextInterfaceSupportCorrect(nsIAccessible *aAccessible)
nsresult nsAccessible::QueryInterface(REFNSIID aIID, void** aInstancePtr) nsresult nsAccessible::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{ {
// Custom-built QueryInterface() knows when we support nsIAccessibleSelectable // Custom-built QueryInterface() knows when we support nsIAccessibleSelectable
// based on role attribute and waistate:multiselect // based on role attribute and waistate:multiselectable
*aInstancePtr = nsnull; *aInstancePtr = nsnull;
if (aIID.Equals(NS_GET_IID(nsIAccessible))) { if (aIID.Equals(NS_GET_IID(nsIAccessible))) {
@ -211,14 +211,14 @@ nsresult nsAccessible::QueryInterface(REFNSIID aIID, void** aInstancePtr)
} }
if (HasRoleAttribute(content)) { if (HasRoleAttribute(content)) {
// If we have an XHTML role attribute present and the // If we have an XHTML role attribute present and the
// waistate multiselect attribute not empty or false, then we need // waistate multiselectable attribute not empty or false, then we need
// to support nsIAccessibleSelectable // to support nsIAccessibleSelectable
// If either attribute (role or multiselect) change, then we'll // If either attribute (role or multiselectable) change, then we'll
// destroy this accessible so that we can follow COM identity rules. // destroy this accessible so that we can follow COM identity rules.
static nsIContent::AttrValuesArray strings[] = static nsIContent::AttrValuesArray strings[] =
{&nsAccessibilityAtoms::_empty, &nsAccessibilityAtoms::_false, nsnull}; {&nsAccessibilityAtoms::_empty, &nsAccessibilityAtoms::_false, nsnull};
if (content->FindAttrValueIn(kNameSpaceID_None, if (content->FindAttrValueIn(kNameSpaceID_WAIProperties ,
nsAccessibilityAtoms::multiselect, nsAccessibilityAtoms::multiselectable,
strings, eCaseMatters) == strings, eCaseMatters) ==
nsIContent::ATTR_VALUE_NO_MATCH) { nsIContent::ATTR_VALUE_NO_MATCH) {
*aInstancePtr = NS_STATIC_CAST(nsIAccessibleSelectable*, this); *aInstancePtr = NS_STATIC_CAST(nsIAccessibleSelectable*, this);
@ -1882,17 +1882,17 @@ nsRoleMapEntry nsAccessible::gWAIRoleMap[] =
{"combobox", ROLE_COMBOBOX, eNameLabelOrTitle, eHasValueMinMax, eNoReqStates, {"combobox", ROLE_COMBOBOX, eNameLabelOrTitle, eHasValueMinMax, eNoReqStates,
{"readonly", BOOL_STATE, STATE_READONLY}, {"readonly", BOOL_STATE, STATE_READONLY},
{"expanded", BOOL_STATE, STATE_EXPANDED}, {"expanded", BOOL_STATE, STATE_EXPANDED},
{"multiselect", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY}, {"multiselectable", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY},
{"description", ROLE_TEXT_CONTAINER, eNameOkFromChildren, eNoValue, eNoReqStates, END_ENTRY}, {"description", ROLE_TEXT_CONTAINER, eNameOkFromChildren, eNoValue, eNoReqStates, END_ENTRY},
{"dialog", ROLE_DIALOG, eNameLabelOrTitle, eNoValue, eNoReqStates, END_ENTRY}, {"dialog", ROLE_DIALOG, eNameLabelOrTitle, eNoValue, eNoReqStates, END_ENTRY},
{"document", ROLE_DOCUMENT, eNameLabelOrTitle, eNoValue, eNoReqStates, END_ENTRY}, {"document", ROLE_DOCUMENT, eNameLabelOrTitle, eNoValue, eNoReqStates, END_ENTRY},
{"label", ROLE_LABEL, eNameOkFromChildren, eNoValue, eNoReqStates, END_ENTRY}, {"label", ROLE_LABEL, eNameOkFromChildren, eNoValue, eNoReqStates, END_ENTRY},
{"list", ROLE_LIST, eNameLabelOrTitle, eNoValue, eNoReqStates, {"list", ROLE_LIST, eNameLabelOrTitle, eNoValue, eNoReqStates,
{"readonly", BOOL_STATE, STATE_READONLY}, {"readonly", BOOL_STATE, STATE_READONLY},
{"multiselect", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY}, {"multiselectable", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY},
{"listbox", ROLE_LIST, eNameLabelOrTitle, eNoValue, eNoReqStates, {"listbox", ROLE_LIST, eNameLabelOrTitle, eNoValue, eNoReqStates,
{"readonly", BOOL_STATE, STATE_READONLY}, {"readonly", BOOL_STATE, STATE_READONLY},
{"multiselect", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY}, {"multiselectable", BOOL_STATE, STATE_MULTISELECTABLE | STATE_EXTSELECTABLE}, END_ENTRY},
{"listitem", ROLE_LISTITEM, eNameOkFromChildren, eNoValue, eNoReqStates, {"listitem", ROLE_LISTITEM, eNameOkFromChildren, eNoValue, eNoReqStates,
{"selected", BOOL_STATE, STATE_SELECTED | STATE_SELECTABLE}, {"selected", BOOL_STATE, STATE_SELECTED | STATE_SELECTABLE},
{"selected", "false", STATE_SELECTABLE}, {"selected", "false", STATE_SELECTABLE},

Просмотреть файл

@ -964,12 +964,12 @@ nsDocAccessible::AttributeChanged(nsIDocument *aDocument, nsIContent* aContent,
else if (aAttribute == nsAccessibilityAtoms::valuenow) { else if (aAttribute == nsAccessibilityAtoms::valuenow) {
eventType = nsIAccessibleEvent::EVENT_VALUE_CHANGE; eventType = nsIAccessibleEvent::EVENT_VALUE_CHANGE;
} }
else if (aAttribute == nsAccessibilityAtoms::multiselect) { else if (aAttribute == nsAccessibilityAtoms::multiselectable) {
// This affects whether the accessible supports nsIAccessibleSelectable. // This affects whether the accessible supports nsIAccessibleSelectable.
// COM says we cannot change what interfaces are supported on-the-fly, // COM says we cannot change what interfaces are supported on-the-fly,
// so invalidate this object. A new one will be created on demand. // so invalidate this object. A new one will be created on demand.
if (HasRoleAttribute(aContent)) { if (HasRoleAttribute(aContent)) {
// The multiselect and other waistate attributes only take affect // The multiselectable and other waistate attributes only take affect
// when dynamic content role is present // when dynamic content role is present
InvalidateCacheSubtree(aContent, nsIAccessibleEvent::EVENT_REORDER); InvalidateCacheSubtree(aContent, nsIAccessibleEvent::EVENT_REORDER);
} }