Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(668)

Unified Diff: third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp

Issue 2805493002: Boolean properties for Accessibility Object Model Phase 1 (Closed)
Patch Set: Back to previous patchset, ready to land Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 55b2fbcefa4cb0ad6a877212304485d89e12299d..236cd2a75507caac6b60a0d39cdfb15fc718853a 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 (ignored_reasons)
ignored_reasons->push_back(IgnoredReason(kAXNotRendered));
return true;
@@ -825,7 +825,8 @@ static Element* SiblingWithAriaRole(String role, Node* node) {
for (Element* sibling = ElementTraversal::FirstChild(*parent); sibling;
sibling = ElementTraversal::NextSibling(*sibling)) {
const AtomicString& sibling_aria_role =
- AccessibleNode::GetProperty(sibling, AOMStringProperty::kRole);
+ AccessibleNode::GetPropertyOrARIAAttribute(sibling,
+ AOMStringProperty::kRole);
if (EqualIgnoringASCIICase(sibling_aria_role, role))
return sibling;
}
@@ -1046,12 +1047,11 @@ bool AXNodeObject::IsMeter() const {
}
bool AXNodeObject::IsMultiSelectable() const {
- const AtomicString& aria_multi_selectable =
- GetAttribute(aria_multiselectableAttr);
- if (EqualIgnoringASCIICase(aria_multi_selectable, "true"))
- return true;
- if (EqualIgnoringASCIICase(aria_multi_selectable, "false"))
- return false;
+ bool multiselectable = false;
+ if (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kMultiselectable,
+ multiselectable)) {
+ return multiselectable;
+ }
return isHTMLSelectElement(GetNode()) &&
toHTMLSelectElement(*GetNode()).IsMultiple();
@@ -1184,11 +1184,10 @@ AccessibilityExpanded AXNodeObject::IsExpanded() const {
: kExpandedCollapsed;
}
- const AtomicString& expanded = GetAttribute(aria_expandedAttr);
- if (EqualIgnoringASCIICase(expanded, "true"))
- return kExpandedExpanded;
- if (EqualIgnoringASCIICase(expanded, "false"))
- return kExpandedCollapsed;
+ bool expanded = false;
+ if (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kExpanded, expanded)) {
+ return expanded ? kExpandedExpanded : kExpandedCollapsed;
+ }
return kExpandedUndefined;
}
@@ -1197,13 +1196,9 @@ bool AXNodeObject::IsModal() const {
if (RoleValue() != kDialogRole && RoleValue() != kAlertDialogRole)
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 (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kModal, modal))
+ return modal;
if (GetNode() && isHTMLDialogElement(*GetNode()))
return ToElement(GetNode())->IsInTopLayer();
@@ -1254,7 +1249,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;
@@ -1284,7 +1279,7 @@ bool AXNodeObject::CanSetFocusAttribute() const {
}
bool AXNodeObject::CanSetValueAttribute() const {
- if (EqualIgnoringASCIICase(GetAttribute(aria_readonlyAttr), "true"))
+ if (AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kReadOnly))
return false;
if (IsProgressIndicator() || IsSlider())
@@ -1956,7 +1951,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
@@ -2948,8 +2943,9 @@ String AXNodeObject::NativeTextAlternative(
name_sources->back().type = name_from;
}
if (Element* document_element = document->documentElement()) {
- const AtomicString& aria_label = AccessibleNode::GetProperty(
- document_element, AOMStringProperty::kLabel);
+ const AtomicString& aria_label =
+ AccessibleNode::GetPropertyOrARIAAttribute(
+ document_element, AOMStringProperty::kLabel);
if (!aria_label.IsEmpty()) {
text_alternative = aria_label;

Powered by Google App Engine
This is Rietveld 408576698