| Index: third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
|
| diff --git a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
|
| index 26298b2f98b7badcdcd664b7aff30e60428daf91..029e1989e8b14db502afd4b21dd8f8e24f2babb2 100644
|
| --- a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
|
| +++ b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
|
| @@ -300,7 +300,7 @@ bool AXNodeObject::computeAccessibilityIsIgnored(
|
| Element* element = getNode()->isElementNode() ? toElement(getNode())
|
| : getNode()->parentElement();
|
| if (!getLayoutObject() && (!element || !element->isInCanvasSubtree()) &&
|
| - !equalIgnoringASCIICase(getAttribute(aria_hiddenAttr), "false")) {
|
| + !AOMPropertyOrARIAAttributeIsFalse(AOMBooleanProperty::kHidden)) {
|
| if (ignoredReasons)
|
| ignoredReasons->push_back(IgnoredReason(AXNotRendered));
|
| return true;
|
| @@ -1042,12 +1042,11 @@ bool AXNodeObject::isMeter() const {
|
| }
|
|
|
| bool AXNodeObject::isMultiSelectable() const {
|
| - const AtomicString& ariaMultiSelectable =
|
| - getAttribute(aria_multiselectableAttr);
|
| - if (equalIgnoringASCIICase(ariaMultiSelectable, "true"))
|
| - return true;
|
| - if (equalIgnoringASCIICase(ariaMultiSelectable, "false"))
|
| - return false;
|
| + bool multiselectable = false;
|
| + if (getAOMPropertyOrARIAAttribute(AOMBooleanProperty::kMultiselectable,
|
| + multiselectable)) {
|
| + return multiselectable;
|
| + }
|
|
|
| return isHTMLSelectElement(getNode()) &&
|
| toHTMLSelectElement(*getNode()).isMultiple();
|
| @@ -1210,11 +1209,10 @@ AccessibilityExpanded AXNodeObject::isExpanded() const {
|
| : ExpandedCollapsed;
|
| }
|
|
|
| - const AtomicString& expanded = getAttribute(aria_expandedAttr);
|
| - if (equalIgnoringASCIICase(expanded, "true"))
|
| - return ExpandedExpanded;
|
| - if (equalIgnoringASCIICase(expanded, "false"))
|
| - return ExpandedCollapsed;
|
| + bool expanded = false;
|
| + if (getAOMPropertyOrARIAAttribute(AOMBooleanProperty::kExpanded, expanded)) {
|
| + return expanded ? ExpandedExpanded : ExpandedCollapsed;
|
| + }
|
|
|
| return ExpandedUndefined;
|
| }
|
| @@ -1223,13 +1221,9 @@ bool AXNodeObject::isModal() const {
|
| if (roleValue() != DialogRole && roleValue() != AlertDialogRole)
|
| return false;
|
|
|
| - if (hasAttribute(aria_modalAttr)) {
|
| - const AtomicString& modal = getAttribute(aria_modalAttr);
|
| - if (equalIgnoringASCIICase(modal, "true"))
|
| - return true;
|
| - if (equalIgnoringASCIICase(modal, "false"))
|
| - return false;
|
| - }
|
| + bool modal = false;
|
| + if (getAOMPropertyOrARIAAttribute(AOMBooleanProperty::kModal, modal))
|
| + return modal;
|
|
|
| if (getNode() && isHTMLDialogElement(*getNode()))
|
| return toElement(getNode())->isInTopLayer();
|
| @@ -1280,7 +1274,7 @@ bool AXNodeObject::isRequired() const {
|
| hasAttribute(requiredAttr))
|
| return toHTMLFormControlElement(n)->isRequired();
|
|
|
| - if (equalIgnoringASCIICase(getAttribute(aria_requiredAttr), "true"))
|
| + if (AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kRequired))
|
| return true;
|
|
|
| return false;
|
| @@ -1310,7 +1304,7 @@ bool AXNodeObject::canSetFocusAttribute() const {
|
| }
|
|
|
| bool AXNodeObject::canSetValueAttribute() const {
|
| - if (equalIgnoringASCIICase(getAttribute(aria_readonlyAttr), "true"))
|
| + if (AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kReadOnly))
|
| return false;
|
|
|
| if (isProgressIndicator() || isSlider())
|
| @@ -1997,7 +1991,7 @@ String AXNodeObject::textFromDescendants(AXObjectSet& visited,
|
| // true if any ancestor is hidden, but we need to be able to compute the
|
| // accessible name of object inside hidden subtrees (for example, if
|
| // aria-labelledby points to an object that's hidden).
|
| - if (equalIgnoringASCIICase(child->getAttribute(aria_hiddenAttr), "true"))
|
| + if (child->AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kHidden))
|
| continue;
|
|
|
| // If we're going between two layoutObjects that are in separate
|
|
|