Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012, Google Inc. All rights reserved. | 2 * Copyright (C) 2012, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 #include "core/html/HTMLTableCaptionElement.h" | 48 #include "core/html/HTMLTableCaptionElement.h" |
| 49 #include "core/html/HTMLTableCellElement.h" | 49 #include "core/html/HTMLTableCellElement.h" |
| 50 #include "core/html/HTMLTableElement.h" | 50 #include "core/html/HTMLTableElement.h" |
| 51 #include "core/html/HTMLTableRowElement.h" | 51 #include "core/html/HTMLTableRowElement.h" |
| 52 #include "core/html/HTMLTableSectionElement.h" | 52 #include "core/html/HTMLTableSectionElement.h" |
| 53 #include "core/html/HTMLTextAreaElement.h" | 53 #include "core/html/HTMLTextAreaElement.h" |
| 54 #include "core/html/parser/HTMLParserIdioms.h" | 54 #include "core/html/parser/HTMLParserIdioms.h" |
| 55 #include "core/html/shadow/MediaControlElements.h" | 55 #include "core/html/shadow/MediaControlElements.h" |
| 56 #include "core/layout/LayoutBlockFlow.h" | 56 #include "core/layout/LayoutBlockFlow.h" |
| 57 #include "core/layout/LayoutObject.h" | 57 #include "core/layout/LayoutObject.h" |
| 58 #include "core/svg/SVGElement.h" | |
| 58 #include "modules/accessibility/AXObjectCacheImpl.h" | 59 #include "modules/accessibility/AXObjectCacheImpl.h" |
| 59 #include "platform/UserGestureIndicator.h" | 60 #include "platform/UserGestureIndicator.h" |
| 60 #include "platform/text/PlatformLocale.h" | 61 #include "platform/text/PlatformLocale.h" |
| 61 #include "wtf/text/StringBuilder.h" | 62 #include "wtf/text/StringBuilder.h" |
| 62 | 63 |
| 63 | 64 |
| 64 namespace blink { | 65 namespace blink { |
| 65 | 66 |
| 66 using namespace HTMLNames; | 67 using namespace HTMLNames; |
| 67 | 68 |
| (...skipping 2294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2362 source.text = textAlternative; | 2363 source.text = textAlternative; |
| 2363 *foundTextAlternative = true; | 2364 *foundTextAlternative = true; |
| 2364 } else { | 2365 } else { |
| 2365 return textAlternative; | 2366 return textAlternative; |
| 2366 } | 2367 } |
| 2367 } | 2368 } |
| 2368 | 2369 |
| 2369 return textAlternative; | 2370 return textAlternative; |
| 2370 } | 2371 } |
| 2371 | 2372 |
| 2373 // Per SVG AAM 1.0's modifications to 2D of this algorithm. | |
| 2374 if (node()->isSVGElement()) { | |
| 2375 Element* title = nullptr; | |
|
aboxhall
2015/12/15 19:56:03
Before this line, add:
nameFrom = AXNameFromRelat
| |
| 2376 for (Element& element : ElementTraversal::descendantsOf(*(node()))) { | |
| 2377 if (element.hasTagName(SVGNames::titleTag)) { | |
| 2378 title = &element; | |
| 2379 break; | |
| 2380 } | |
| 2381 } | |
| 2382 | |
| 2383 if (title) { | |
| 2384 String text = title->innerText(); | |
| 2385 textAlternative = text; | |
| 2386 if (nameSources) { | |
| 2387 NameSource& source = nameSources->last(); | |
| 2388 source.type = AXNameFromTitle; | |
| 2389 source.attributeValue = AtomicString(text); | |
| 2390 source.text = textAlternative; | |
| 2391 source.nativeSource = AXTextFromNativeHTMLTitleElement; | |
| 2392 *foundTextAlternative = true; | |
| 2393 } else { | |
| 2394 return textAlternative; | |
| 2395 } | |
| 2396 } | |
| 2397 | |
| 2398 return textAlternative; | |
| 2399 } | |
| 2400 | |
| 2372 // Fieldset / legend. | 2401 // Fieldset / legend. |
| 2373 if (isHTMLFieldSetElement(node())) { | 2402 if (isHTMLFieldSetElement(node())) { |
| 2374 nameFrom = AXNameFromRelatedElement; | 2403 nameFrom = AXNameFromRelatedElement; |
| 2375 if (nameSources) { | 2404 if (nameSources) { |
| 2376 nameSources->append(NameSource(*foundTextAlternative)); | 2405 nameSources->append(NameSource(*foundTextAlternative)); |
| 2377 nameSources->last().type = nameFrom; | 2406 nameSources->last().type = nameFrom; |
| 2378 nameSources->last().nativeSource = AXTextFromNativeHTMLLegend; | 2407 nameSources->last().nativeSource = AXTextFromNativeHTMLLegend; |
| 2379 } | 2408 } |
| 2380 HTMLElement* legend = toHTMLFieldSetElement(node())->legend(); | 2409 HTMLElement* legend = toHTMLFieldSetElement(node())->legend(); |
| 2381 if (legend) { | 2410 if (legend) { |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2694 return placeholder; | 2723 return placeholder; |
| 2695 } | 2724 } |
| 2696 | 2725 |
| 2697 DEFINE_TRACE(AXNodeObject) | 2726 DEFINE_TRACE(AXNodeObject) |
| 2698 { | 2727 { |
| 2699 visitor->trace(m_node); | 2728 visitor->trace(m_node); |
| 2700 AXObject::trace(visitor); | 2729 AXObject::trace(visitor); |
| 2701 } | 2730 } |
| 2702 | 2731 |
| 2703 } // namespace blin | 2732 } // namespace blin |
| OLD | NEW |