Bug 742659 - move nsARIAMap::UniversalStatesFor to aria namespace, r=tbsaunde, f=surkov

This commit is contained in:
pcheng 2012-07-10 21:00:30 -04:00
parent 1a6a842c35
commit db58cb939f
3 changed files with 21 additions and 24 deletions

View File

@ -582,7 +582,7 @@ nsRoleMapEntry nsARIAMap::gEmptyRoleMap = {
* The following state rules are applied to any accessible element,
* whether there is an ARIA role or not:
*/
EStateRule nsARIAMap::gWAIUnivStateMap[] = {
static const EStateRule sWAIUnivStateMap[] = {
eARIABusy,
eARIADisabled,
eARIAExpanded, // Currently under spec review but precedent exists
@ -635,7 +635,8 @@ nsAttributeCharacteristics nsARIAMap::gWAIUnivAttrMap[] = {
{&nsGkAtoms::aria_valuetext, ATTR_BYPASSOBJ }
};
PRUint32 nsARIAMap::gWAIUnivAttrMapLength = NS_ARRAY_LENGTH(nsARIAMap::gWAIUnivAttrMap);
PRUint32
nsARIAMap::gWAIUnivAttrMapLength = NS_ARRAY_LENGTH(nsARIAMap::gWAIUnivAttrMap);
nsRoleMapEntry*
aria::GetRoleMap(nsINode* aNode)
@ -672,3 +673,14 @@ aria::GetRoleMap(nsINode* aNode)
// To ensure an accessible object is created
return &sLandmarkRoleMap;
}
PRUint64
aria::UniversalStatesFor(mozilla::dom::Element* aElement)
{
PRUint64 state = 0;
PRUint32 index = 0;
while (MapToState(sWAIUnivStateMap[index], aElement, &state))
index++;
return state;
}

View File

@ -199,32 +199,11 @@ struct nsARIAMap
*/
static nsRoleMapEntry gEmptyRoleMap;
/**
* State map of ARIA states applied to any accessible not depending on
* the role.
*/
static mozilla::a11y::aria::EStateRule gWAIUnivStateMap[];
/**
* Map of attribute to attribute characteristics.
*/
static nsAttributeCharacteristics gWAIUnivAttrMap[];
static PRUint32 gWAIUnivAttrMapLength;
/**
* Return accessible state from ARIA universal states applied to the given
* element.
*/
static PRUint64 UniversalStatesFor(mozilla::dom::Element* aElement)
{
PRUint64 state = 0;
PRUint32 index = 0;
while (mozilla::a11y::aria::MapToState(gWAIUnivStateMap[index],
aElement, &state))
index++;
return state;
}
};
namespace mozilla {
@ -241,6 +220,12 @@ namespace aria {
*/
nsRoleMapEntry* GetRoleMap(nsINode* aNode);
/**
* Return accessible state from ARIA universal states applied to the given
* element.
*/
PRUint64 UniversalStatesFor(mozilla::dom::Element* aElement);
} // namespace aria
} // namespace a11y
} // namespace mozilla

View File

@ -1533,7 +1533,7 @@ Accessible::ApplyARIAState(PRUint64* aState) const
dom::Element* element = mContent->AsElement();
// Test for universal states first
*aState |= nsARIAMap::UniversalStatesFor(element);
*aState |= aria::UniversalStatesFor(element);
if (mRoleMapEntry) {