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

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

Issue 2805493002: Boolean properties for Accessibility Object Model Phase 1 (Closed)
Patch Set: Address feedback Created 3 years, 8 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/AXLayoutObject.cpp
diff --git a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
index c4065f5ccc0d6c3746400f963255e72dd503eb27..782178db4354487f3f18705b2545161845e4bc23 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
@@ -177,8 +177,8 @@ static inline LayoutObject* EndOfContinuations(LayoutObject* layout_object) {
return prev;
}
-static inline bool LastChildHasContinuation(LayoutObject* layout_object) {
- LayoutObject* last_child = layout_object->SlowLastChild();
+static inline bool LastChildHasContinuation(LayoutObject* layoutObject) {
+ LayoutObject* last_child = layoutObject->SlowLastChild();
return last_child && IsInlineWithContinuation(last_child);
}
@@ -196,7 +196,7 @@ AXLayoutObject::AXLayoutObject(LayoutObject* layout_object,
: AXNodeObject(layout_object->GetNode(), ax_object_cache),
layout_object_(layout_object) {
#if DCHECK_IS_ON()
- layout_object_->SetHasAXObject(true);
+ m_layoutObject->setHasAXObject(true);
#endif
}
@@ -316,8 +316,8 @@ void AXLayoutObject::Detach() {
DetachRemoteSVGRoot();
#if DCHECK_IS_ON()
- if (layout_object_)
- layout_object_->SetHasAXObject(false);
+ if (m_layoutObject)
+ m_layoutObject->setHasAXObject(false);
#endif
layout_object_ = 0;
}
@@ -458,8 +458,7 @@ bool AXLayoutObject::IsSelected() const {
if (!GetLayoutObject() || !GetNode())
return false;
- const AtomicString& aria_selected = GetAttribute(aria_selectedAttr);
- if (EqualIgnoringASCIICase(aria_selected, "true"))
+ if (AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kSelected))
return true;
AXObject* focused_object = AxObjectCache().FocusedObject();
@@ -492,7 +491,7 @@ AXObjectInclusion AXLayoutObject::DefaultObjectInclusion(
if (layout_object_->Style()->Visibility() != EVisibility::kVisible) {
// aria-hidden is meant to override visibility as the determinant in AX
// hierarchy inclusion.
- if (EqualIgnoringASCIICase(GetAttribute(aria_hiddenAttr), "false"))
+ if (AOMPropertyOrARIAAttributeIsFalse(AOMBooleanProperty::kHidden))
return kDefaultBehavior;
if (ignored_reasons)
@@ -504,9 +503,9 @@ AXObjectInclusion AXLayoutObject::DefaultObjectInclusion(
}
bool AXLayoutObject::ComputeAccessibilityIsIgnored(
- IgnoredReasons* ignored_reasons) const {
+ IgnoredReasons* ignoredReasons) const {
#if DCHECK_IS_ON()
- DCHECK(initialized_);
+ DCHECK(m_initialized);
#endif
if (!layout_object_)
@@ -515,7 +514,7 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
// Check first if any of the common reasons cause this element to be ignored.
// Then process other use cases that need to be applied to all the various
// roles that AXLayoutObjects take on.
- AXObjectInclusion decision = DefaultObjectInclusion(ignored_reasons);
+ AXObjectInclusion decision = DefaultObjectInclusion(ignoredReasons);
if (decision == kIncludeObject)
return false;
if (decision == kIgnoreObject)
@@ -527,25 +526,25 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
// If this element is within a parent that cannot have children, it should not
// be exposed.
if (IsDescendantOfLeafNode()) {
- if (ignored_reasons)
- ignored_reasons->push_back(
+ if (ignoredReasons)
+ ignoredReasons->push_back(
IgnoredReason(kAXAncestorIsLeafNode, LeafNodeAncestor()));
return true;
}
if (RoleValue() == kIgnoredRole) {
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXUninteresting));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXUninteresting));
return true;
}
if (HasInheritedPresentationalRole()) {
- if (ignored_reasons) {
+ if (ignoredReasons) {
const AXObject* inherits_from = InheritsPresentationalRoleFrom();
if (inherits_from == this)
- ignored_reasons->push_back(IgnoredReason(kAXPresentationalRole));
+ ignoredReasons->push_back(IgnoredReason(kAXPresentationalRole));
else
- ignored_reasons->push_back(
+ ignoredReasons->push_back(
IgnoredReason(kAXInheritsPresentation, inherits_from));
}
return true;
@@ -553,8 +552,8 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
// An ARIA tree can only have tree items and static text as children.
if (AXObject* tree_ancestor = TreeAncestorDisallowingChild()) {
- if (ignored_reasons)
- ignored_reasons->push_back(
+ if (ignoredReasons)
+ ignoredReasons->push_back(
IgnoredReason(kAXAncestorDisallowsChild, tree_ancestor));
return true;
}
@@ -574,15 +573,15 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
AXObject* control_object = CorrespondingControlForLabelElement();
if (control_object && control_object->IsCheckboxOrRadio() &&
control_object->NameFromLabelElement()) {
- if (ignored_reasons) {
+ if (ignoredReasons) {
HTMLLabelElement* label = LabelElementContainer();
if (label && label != GetNode()) {
AXObject* label_ax_object = AxObjectCache().GetOrCreate(label);
- ignored_reasons->push_back(
+ ignoredReasons->push_back(
IgnoredReason(kAXLabelContainer, label_ax_object));
}
- ignored_reasons->push_back(IgnoredReason(kAXLabelFor, control_object));
+ ignoredReasons->push_back(IgnoredReason(kAXLabelFor, control_object));
}
return true;
}
@@ -602,15 +601,15 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
AXObject* parent = ParentObjectUnignored();
if (parent && (parent->AriaRoleAttribute() == kMenuItemRole ||
parent->AriaRoleAttribute() == kMenuButtonRole)) {
- if (ignored_reasons)
- ignored_reasons->push_back(
+ if (ignoredReasons)
+ ignoredReasons->push_back(
IgnoredReason(kAXStaticTextUsedAsNameFor, parent));
return true;
}
LayoutText* layout_text = ToLayoutText(layout_object_);
if (!layout_text->HasTextBoxes()) {
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXEmptyText));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXEmptyText));
return true;
}
@@ -625,8 +624,8 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
// FIXME(dmazzoni): we probably shouldn't ignore this if the style is 'pre',
// or similar...
if (layout_text->GetText().Impl()->ContainsOnlyWhitespace()) {
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXEmptyText));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXEmptyText));
return true;
}
return false;
@@ -717,8 +716,8 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
// This is especially problematic for platforms which have distinct roles for
// textual block elements.
if (isHTMLSpanElement(node)) {
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXUninteresting));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXUninteresting));
return true;
}
@@ -730,8 +729,8 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
return false;
LayoutHTMLCanvas* canvas = ToLayoutHTMLCanvas(layout_object_);
if (canvas->Size().Height() <= 1 || canvas->Size().Width() <= 1) {
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXProbablyPresentational));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXProbablyPresentational));
return true;
}
// Otherwise fall through; use presence of help text, title, or description
@@ -775,15 +774,15 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored(
if (has_any_text || MouseButtonListener())
return false;
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXUninteresting));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXUninteresting));
return true;
}
// By default, objects should be ignored so that the AX hierarchy is not
// filled with unnecessary items.
- if (ignored_reasons)
- ignored_reasons->push_back(IgnoredReason(kAXUninteresting));
+ if (ignoredReasons)
+ ignoredReasons->push_back(IgnoredReason(kAXUninteresting));
return true;
}
@@ -1372,17 +1371,17 @@ const AtomicString& AXLayoutObject::LiveRegionRelevant() const {
}
bool AXLayoutObject::LiveRegionAtomic() const {
+ bool atomic = false;
+ if (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kAtomic, atomic))
+ return atomic;
+
// ARIA roles "alert" and "status" should have an implicit aria-atomic value
// of true.
- if (GetAttribute(aria_atomicAttr).IsEmpty() &&
- (RoleValue() == kAlertRole || RoleValue() == kStatusRole)) {
- return true;
- }
- return ElementAttributeValue(aria_atomicAttr);
+ return RoleValue() == kAlertRole || RoleValue() == kStatusRole;
}
bool AXLayoutObject::LiveRegionBusy() const {
- return ElementAttributeValue(aria_busyAttr);
+ return AOMPropertyOrARIAAttributeIsTrue(AOMBooleanProperty::kBusy);
}
//
@@ -2015,12 +2014,12 @@ void AXLayoutObject::SetSelection(const AXRange& selection) {
.Build());
}
-bool AXLayoutObject::IsValidSelectionBound(const AXObject* bound_object) const {
- return GetLayoutObject() && bound_object && !bound_object->IsDetached() &&
- bound_object->IsAXLayoutObject() && bound_object->GetLayoutObject() &&
- bound_object->GetLayoutObject()->GetFrame() ==
+bool AXLayoutObject::IsValidSelectionBound(const AXObject* boundObject) const {
+ return GetLayoutObject() && boundObject && !boundObject->IsDetached() &&
+ boundObject->IsAXLayoutObject() && boundObject->GetLayoutObject() &&
+ boundObject->GetLayoutObject()->GetFrame() ==
GetLayoutObject()->GetFrame() &&
- &bound_object->AxObjectCache() == &AxObjectCache();
+ &boundObject->AxObjectCache() == &AxObjectCache();
}
void AXLayoutObject::SetValue(const String& string) {
@@ -2510,11 +2509,11 @@ void AXLayoutObject::AddRemoteSVGChildren() {
}
bool AXLayoutObject::ElementAttributeValue(
- const QualifiedName& attribute_name) const {
+ const QualifiedName& attributeName) const {
if (!layout_object_)
return false;
- return EqualIgnoringASCIICase(GetAttribute(attribute_name), "true");
+ return EqualIgnoringASCIICase(GetAttribute(attributeName), "true");
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698