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

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

Issue 2833843005: Handling of different types of empty alt (Closed)
Patch Set: One more try to do Linux the right way 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/AXNodeObject.cpp
diff --git a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
index a256d1cd52c259edd47d945e48393e56fb0497f3..456c55b8d5ac45aa13564b178d73bd3eccbade19 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
@@ -1862,7 +1862,10 @@ String AXNodeObject::TextAlternative(bool recursive,
text_alternative =
NativeTextAlternative(visited, name_from, related_objects, name_sources,
&found_text_alternative);
- if (!text_alternative.IsEmpty() && !name_sources)
+ const bool has_text_alternative =
+ !text_alternative.IsEmpty() ||
+ name_from == kAXNameFromExplicitlyEmptyAttribute;
+ if (has_text_alternative && !name_sources)
return text_alternative;
// Step 2F / 2G from: http://www.w3.org/TR/accname-aam-1.1
@@ -2631,12 +2634,14 @@ String AXNodeObject::NativeTextAlternative(
if (input_element &&
input_element->getAttribute(typeAttr) == InputTypeNames::image) {
// alt attr
- name_from = kAXNameFromAttribute;
+ const AtomicString& alt = input_element->getAttribute(altAttr);
+ const bool isEmpty = alt.IsEmpty() && !alt.IsNull();
dmazzoni 2017/05/01 17:49:23 nit: isEmpty -> is_empty (just as you were getting
aleventhal 2017/05/17 17:45:47 What would I do without you! :)
+ name_from =
+ isEmpty ? kAXNameFromExplicitlyEmptyAttribute : kAXNameFromAttribute;
if (name_sources) {
name_sources->push_back(NameSource(*found_text_alternative, altAttr));
name_sources->back().type = name_from;
}
- const AtomicString& alt = input_element->getAttribute(altAttr);
if (!alt.IsNull()) {
text_alternative = alt;
if (name_sources) {
@@ -2778,12 +2783,14 @@ String AXNodeObject::NativeTextAlternative(
if (isHTMLImageElement(GetNode()) || isHTMLAreaElement(GetNode()) ||
(GetLayoutObject() && GetLayoutObject()->IsSVGImage())) {
// alt
- name_from = kAXNameFromAttribute;
+ const AtomicString& alt = GetAttribute(altAttr);
+ const bool isEmpty = alt.IsEmpty() && !alt.IsNull();
+ name_from =
+ isEmpty ? kAXNameFromExplicitlyEmptyAttribute : kAXNameFromAttribute;
if (name_sources) {
name_sources->push_back(NameSource(*found_text_alternative, altAttr));
name_sources->back().type = name_from;
}
- const AtomicString& alt = GetAttribute(altAttr);
if (!alt.IsNull()) {
text_alternative = alt;
if (name_sources) {

Powered by Google App Engine
This is Rietveld 408576698