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

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

Issue 2867073003: Name calculation should not include nameFrom:author descendants. (Closed)
Patch Set: Single quote 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..460f37ea5926cd69516a87fe48041b1de3080b78 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
@@ -547,7 +547,7 @@ AccessibilityRole AXNodeObject::NativeAccessibilityRoleIgnoringAria() const {
return kHeadingRole;
if (isHTMLDivElement(*GetNode()))
- return kDivRole;
+ return kGenericContainerRole;
if (isHTMLMeterElement(*GetNode()))
return kMeterRole;
@@ -638,13 +638,13 @@ AccessibilityRole AXNodeObject::NativeAccessibilityRoleIgnoringAria() const {
// whole page's banner/contentInfo but as a group role.
if (GetNode()->HasTagName(headerTag)) {
if (IsDescendantOfElementType(GetLandmarkRolesNotAllowed()))
- return kGroupRole;
+ return kGenericContainerRole;
dmazzoni 2017/05/16 16:25:39 Up to you, but I can see an argument for this bein
aleventhal1 2017/05/16 18:11:26 Acknowledged.
return kBannerRole;
}
if (GetNode()->HasTagName(footerTag)) {
if (IsDescendantOfElementType(GetLandmarkRolesNotAllowed()))
- return kGroupRole;
+ return kGenericContainerRole;
dmazzoni 2017/05/16 16:25:39 Same
aleventhal1 2017/05/16 18:11:26 Acknowledged.
return kFooterRole;
}
@@ -693,7 +693,7 @@ AccessibilityRole AXNodeObject::DetermineAccessibilityRole() {
// The layout checks for focusability aren't critical here; a false
// positive would be harmless.
if (element->IsInCanvasSubtree() && element->SupportsFocus())
- return kGroupRole;
+ return kGenericContainerRole;
}
return kUnknownRole;
}
@@ -1872,7 +1872,7 @@ String AXNodeObject::TextAlternative(bool recursive,
return text_alternative;
// Step 2F / 2G from: http://www.w3.org/TR/accname-aam-1.1
- if (recursive || NameFromContents()) {
+ if (in_aria_labelled_by_traversal || NameFromContents(recursive)) {
name_from = kAXNameFromContents;
if (name_sources) {
name_sources->push_back(NameSource(found_text_alternative));
@@ -2024,17 +2024,13 @@ bool AXNodeObject::NameFromLabelElement() const {
return false;
}
-bool AXNodeObject::NameFromContents() const {
- Node* node = GetNode();
- if (!node || !node->IsElementNode())
- return AXObjectImpl::NameFromContents();
- // AXObjectImpl::nameFromContents determines whether an element should take
- // its name from its descendant contents based on role. However, <select> is a
+bool AXNodeObject::NameFromContents(const bool recursive) const {
+ // AXObject::nameFromContents determines whether an element should take its
+ // name from its descendant contents based on role. However, <select> is a
// special case, as unlike a typical pop-up button it contains its own pop-up
// menu's contents, which should not be used as the name.
- if (isHTMLSelectElement(node))
- return false;
- return AXObjectImpl::NameFromContents();
+ return !isHTMLSelectElement(GetNode()) &&
+ AXObjectImpl::NameFromContents(recursive);
}
void AXNodeObject::GetRelativeBounds(

Powered by Google App Engine
This is Rietveld 408576698