Chromium Code Reviews| Index: content/renderer/accessibility/blink_ax_tree_source.cc |
| diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc |
| index c2ca4ef477543a70210e16cff3f19ff754666ebe..51d753121b738a11b97a0be6cd895bdbfc46262a 100644 |
| --- a/content/renderer/accessibility/blink_ax_tree_source.cc |
| +++ b/content/renderer/accessibility/blink_ax_tree_source.cc |
| @@ -60,10 +60,6 @@ bool IsParentUnignoredOf(WebAXObject ancestor, |
| return parent.equals(ancestor); |
| } |
| -bool IsTrue(std::string html_value) { |
| - return LowerCaseEqualsASCII(html_value, "true"); |
| -} |
| - |
| std::string GetEquivalentAriaRoleString(const ui::AXRole role) { |
| switch (role) { |
| case ui::AX_ROLE_ARTICLE: |
| @@ -313,10 +309,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
| WebNode node = src.node(); |
| bool is_iframe = false; |
| - std::string live_atomic; |
| - std::string live_busy; |
| - std::string live_status; |
| - std::string live_relevant; |
| if (!node.isNull() && node.isElementNode()) { |
| WebElement element = node.to<WebElement>(); |
| @@ -371,12 +363,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
| dst->AddStringAttribute(ui::AX_ATTR_ROLE, role); |
| } |
| - // Live region attributes |
| - live_atomic = UTF16ToUTF8(element.getAttribute("aria-atomic")); |
| - live_busy = UTF16ToUTF8(element.getAttribute("aria-busy")); |
| - live_status = UTF16ToUTF8(element.getAttribute("aria-live")); |
| - live_relevant = UTF16ToUTF8(element.getAttribute("aria-relevant")); |
| - |
| // Browser plugin (used in a <webview>). |
| if (node_to_browser_plugin_instance_id_map_) { |
| BrowserPlugin* browser_plugin = BrowserPlugin::GetFromNode(element); |
| @@ -388,64 +374,21 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
| } |
| } |
| - // Walk up the parent chain to set live region attributes of containers |
| - std::string container_live_atomic; |
| - std::string container_live_busy; |
| - std::string container_live_status; |
| - std::string container_live_relevant; |
| - WebAXObject container_accessible = src; |
| - while (!container_accessible.isDetached()) { |
| - WebNode container_node = container_accessible.node(); |
| - if (!container_node.isNull() && container_node.isElementNode()) { |
| - WebElement container_elem = container_node.to<WebElement>(); |
| - if (container_elem.hasAttribute("aria-atomic") && |
| - container_live_atomic.empty()) { |
| - container_live_atomic = |
| - UTF16ToUTF8(container_elem.getAttribute("aria-atomic")); |
| - } |
| - if (container_elem.hasAttribute("aria-busy") && |
| - container_live_busy.empty()) { |
| - container_live_busy = |
| - UTF16ToUTF8(container_elem.getAttribute("aria-busy")); |
| - } |
| - if (container_elem.hasAttribute("aria-live") && |
| - container_live_status.empty()) { |
| - container_live_status = |
| - UTF16ToUTF8(container_elem.getAttribute("aria-live")); |
| - } |
| - if (container_elem.hasAttribute("aria-relevant") && |
| - container_live_relevant.empty()) { |
| - container_live_relevant = |
| - UTF16ToUTF8(container_elem.getAttribute("aria-relevant")); |
| - } |
| - } |
| - container_accessible = container_accessible.parentObject(); |
| - } |
| - |
| - if (!live_atomic.empty()) |
| - dst->AddBoolAttribute(ui::AX_ATTR_LIVE_ATOMIC, IsTrue(live_atomic)); |
| - if (!live_busy.empty()) |
| - dst->AddBoolAttribute(ui::AX_ATTR_LIVE_BUSY, IsTrue(live_busy)); |
| - if (!live_status.empty()) |
| - dst->AddStringAttribute(ui::AX_ATTR_LIVE_STATUS, live_status); |
| - if (!live_relevant.empty()) |
| - dst->AddStringAttribute(ui::AX_ATTR_LIVE_RELEVANT, live_relevant); |
| - |
| - if (!container_live_atomic.empty()) { |
| + if (src.isInLiveRegion()) { |
|
aboxhall
2014/10/27 16:37:37
I couldn't find this method - is there a blink sid
|
| + dst->AddBoolAttribute(ui::AX_ATTR_LIVE_ATOMIC, src.liveRegionAtomic()); |
| + dst->AddBoolAttribute(ui::AX_ATTR_LIVE_BUSY, src.liveRegionBusy()); |
| + dst->AddStringAttribute(ui::AX_ATTR_LIVE_STATUS, |
| + UTF16ToUTF8(src.liveRegionStatus())); |
| + dst->AddStringAttribute(ui::AX_ATTR_LIVE_RELEVANT, |
| + UTF16ToUTF8(src.liveRegionRelevant())); |
| dst->AddBoolAttribute(ui::AX_ATTR_CONTAINER_LIVE_ATOMIC, |
| - IsTrue(container_live_atomic)); |
| - } |
| - if (!container_live_busy.empty()) { |
| + src.containerLiveRegionAtomic()); |
| dst->AddBoolAttribute(ui::AX_ATTR_CONTAINER_LIVE_BUSY, |
| - IsTrue(container_live_busy)); |
| - } |
| - if (!container_live_status.empty()) { |
| + src.containerLiveRegionBusy()); |
| dst->AddStringAttribute(ui::AX_ATTR_CONTAINER_LIVE_STATUS, |
| - container_live_status); |
| - } |
| - if (!container_live_relevant.empty()) { |
| + UTF16ToUTF8(src.containerLiveRegionStatus())); |
| dst->AddStringAttribute(ui::AX_ATTR_CONTAINER_LIVE_RELEVANT, |
| - container_live_relevant); |
| + UTF16ToUTF8(src.containerLiveRegionRelevant())); |
| } |
| if (dst->role == ui::AX_ROLE_PROGRESS_INDICATOR || |