Chromium Code Reviews| 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 96bdd2579a833fc65c58ac72478832d680bde08a..ad039772217754bf79bbeb494460b4faa95a20f4 100644 |
| --- a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp |
| +++ b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp |
| @@ -55,6 +55,7 @@ |
| #include "core/html/shadow/MediaControlElements.h" |
| #include "core/layout/LayoutBlockFlow.h" |
| #include "core/layout/LayoutObject.h" |
| +#include "core/svg/SVGElement.h" |
| #include "modules/accessibility/AXObjectCacheImpl.h" |
| #include "platform/UserGestureIndicator.h" |
| #include "platform/text/PlatformLocale.h" |
| @@ -2369,6 +2370,34 @@ String AXNodeObject::nativeTextAlternative(AXObjectSet& visited, AXNameFrom& nam |
| return textAlternative; |
| } |
| + // Per SVG AAM 1.0's modifications to 2D of this algorithm. |
| + if (node()->isSVGElement()) { |
| + Element* title = nullptr; |
|
aboxhall
2015/12/15 19:56:03
Before this line, add:
nameFrom = AXNameFromRelat
|
| + for (Element& element : ElementTraversal::descendantsOf(*(node()))) { |
| + if (element.hasTagName(SVGNames::titleTag)) { |
| + title = &element; |
| + break; |
| + } |
| + } |
| + |
| + if (title) { |
| + String text = title->innerText(); |
| + textAlternative = text; |
| + if (nameSources) { |
| + NameSource& source = nameSources->last(); |
| + source.type = AXNameFromTitle; |
| + source.attributeValue = AtomicString(text); |
| + source.text = textAlternative; |
| + source.nativeSource = AXTextFromNativeHTMLTitleElement; |
| + *foundTextAlternative = true; |
| + } else { |
| + return textAlternative; |
| + } |
| + } |
| + |
| + return textAlternative; |
| + } |
| + |
| // Fieldset / legend. |
| if (isHTMLFieldSetElement(node())) { |
| nameFrom = AXNameFromRelatedElement; |