Bug 1480058 part 2: Add nsAccUtils::IsARIAMultiSelectable and make nsAccUtils::ISARIASelected const. r=surkov

We need to be able to call these methods from const methods, so they must take a const Accessible*.

MozReview-Commit-ID: CDsWZG1ik31

--HG--
extra : rebase_source : 4721669afcd9101cb017361bd8f87fb8a860664a
This commit is contained in:
James Teh 2018-08-02 16:27:18 +10:00
parent 6647aa6cc0
commit 46ba6df249
2 changed files with 21 additions and 7 deletions

View File

@ -244,13 +244,11 @@ nsAccUtils::GetSelectableContainer(Accessible* aAccessible, uint64_t aState)
}
bool
nsAccUtils::IsARIASelected(Accessible* aAccessible)
nsAccUtils::IsDOMAttrTrue(const Accessible* aAccessible, nsAtom* aAttr)
{
if (!aAccessible->GetContent()->IsElement())
return false;
return aAccessible->GetContent()->AsElement()->
AttrValueIs(kNameSpaceID_None, nsGkAtoms::aria_selected,
nsGkAtoms::_true, eCaseMatters);
dom::Element* el = aAccessible->Elm();
return el && el->AttrValueIs(kNameSpaceID_None, aAttr, nsGkAtoms::_true,
eCaseMatters);
}
Accessible*

View File

@ -137,11 +137,27 @@ public:
static Accessible* TableFor(Accessible* aRow);
/**
* Return true if the DOM node of a given accessible has a given attribute
* with a value of "true".
*/
static bool IsDOMAttrTrue(const Accessible* aAccessible, nsAtom* aAttr);
/**
* Return true if the DOM node of given accessible has aria-selected="true"
* attribute.
*/
static bool IsARIASelected(Accessible* aAccessible);
static inline bool IsARIASelected(const Accessible* aAccessible) {
return IsDOMAttrTrue(aAccessible, nsGkAtoms::aria_selected);
}
/**
* Return true if the DOM node of given accessible has
* aria-multiselectable="true" attribute.
*/
static inline bool IsARIAMultiSelectable(const Accessible* aAccessible) {
return IsDOMAttrTrue(aAccessible, nsGkAtoms::aria_multiselectable);
}
/**
* Converts the given coordinates to coordinates relative screen.