summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmazzoni@google.com <dmazzoni@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-06 22:30:54 +0000
committerdmazzoni@google.com <dmazzoni@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-06 22:30:54 +0000
commit5eec2f56c9ad54bbb2ed150d67a2b46d9a01cc68 (patch)
tree73f3a82eb83f997dd4454fca180da67640dce643
parent06173a82fdb09588840ceea826486beb83fbe4fd (diff)
downloadchromium_src-5eec2f56c9ad54bbb2ed150d67a2b46d9a01cc68.zip
chromium_src-5eec2f56c9ad54bbb2ed150d67a2b46d9a01cc68.tar.gz
chromium_src-5eec2f56c9ad54bbb2ed150d67a2b46d9a01cc68.tar.bz2
Refactor content/ to use ui::AXNodeData instead of blink.
This is a huge change, but it's all refactoring / renaming. There should be no new logic. BUG=316726 R=dtseng@chromium.org, jam@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/116293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243187 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/DEPS1
-rw-r--r--content/browser/accessibility/accessibility_tree_formatter_android.cc1
-rw-r--r--content/browser/accessibility/accessibility_tree_formatter_win.cc1
-rw-r--r--content/browser/accessibility/accessibility_win_browsertest.cc18
-rw-r--r--content/browser/accessibility/browser_accessibility.cc118
-rw-r--r--content/browser/accessibility/browser_accessibility.h60
-rw-r--r--content/browser/accessibility/browser_accessibility_android.cc220
-rw-r--r--content/browser/accessibility/browser_accessibility_android.h2
-rw-r--r--content/browser/accessibility/browser_accessibility_cocoa.h3
-rw-r--r--content/browser/accessibility/browser_accessibility_cocoa.mm503
-rw-r--r--content/browser/accessibility/browser_accessibility_gtk.cc44
-rw-r--r--content/browser/accessibility/browser_accessibility_mac_unittest.mm14
-rw-r--r--content/browser/accessibility/browser_accessibility_manager.cc72
-rw-r--r--content/browser/accessibility/browser_accessibility_manager.h30
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_android.cc36
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_android.h6
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_gtk.cc18
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_gtk.h6
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_mac.h6
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_mac.mm70
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_unittest.cc205
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_win.cc64
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_win.h6
-rw-r--r--content/browser/accessibility/browser_accessibility_win.cc560
-rw-r--r--content/browser/accessibility/browser_accessibility_win.h10
-rw-r--r--content/browser/accessibility/browser_accessibility_win_unittest.cc152
-rw-r--r--content/browser/accessibility/cross_platform_accessibility_browsertest.cc372
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc2
-rw-r--r--content/browser/renderer_host/render_view_host_impl.cc18
-rw-r--r--content/browser/renderer_host/render_view_host_impl.h16
-rw-r--r--content/common/accessibility_messages.h22
-rw-r--r--content/common/accessibility_node_data.cc572
-rw-r--r--content/common/accessibility_node_data.h229
-rw-r--r--content/content_browser.gypi1
-rw-r--r--content/content_common.gypi3
-rw-r--r--content/content_renderer.gypi3
-rw-r--r--content/content_tests.gypi2
-rw-r--r--content/renderer/accessibility/accessibility_node_serializer.cc292
-rw-r--r--content/renderer/accessibility/accessibility_node_serializer.h4
-rw-r--r--content/renderer/accessibility/blink_ax_enum_conversion.cc375
-rw-r--r--content/renderer/accessibility/blink_ax_enum_conversion.h27
-rw-r--r--content/renderer/accessibility/renderer_accessibility.cc54
-rw-r--r--content/renderer/accessibility/renderer_accessibility.h2
-rw-r--r--content/renderer/accessibility/renderer_accessibility_browsertest.cc78
-rw-r--r--content/renderer/accessibility/renderer_accessibility_complete.cc96
-rw-r--r--content/renderer/accessibility/renderer_accessibility_complete.h15
-rw-r--r--content/renderer/accessibility/renderer_accessibility_focus_only.cc28
-rw-r--r--content/test/accessibility_browser_test_utils.cc14
-rw-r--r--content/test/accessibility_browser_test_utils.h14
-rw-r--r--ui/accessibility/accessibility.gyp2
-rw-r--r--ui/accessibility/ax_enums.h219
-rw-r--r--ui/accessibility/ax_node_data.cc441
-rw-r--r--ui/accessibility/ax_node_data.h167
-rw-r--r--ui/accessibility/ax_tree.cc18
-rw-r--r--ui/accessibility/ax_tree.h3
-rw-r--r--ui/accessibility/ax_tree_unittest.cc11
56 files changed, 2690 insertions, 2636 deletions
diff --git a/content/DEPS b/content/DEPS
index cef847b..06f9207c 100644
--- a/content/DEPS
+++ b/content/DEPS
@@ -71,6 +71,7 @@ include_rules = [
"+third_party/WebKit/public/platform",
"+third_party/WebKit/public/web",
+ "+ui/accessibility",
"+ui/android",
# Aura is analogous to Win32 or a Gtk, so it is allowed.
"+ui/aura",
diff --git a/content/browser/accessibility/accessibility_tree_formatter_android.cc b/content/browser/accessibility/accessibility_tree_formatter_android.cc
index 33b5196..65f8fa3 100644
--- a/content/browser/accessibility/accessibility_tree_formatter_android.cc
+++ b/content/browser/accessibility/accessibility_tree_formatter_android.cc
@@ -14,7 +14,6 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_android.h"
-#include "content/common/accessibility_node_data.h"
using base::StringPrintf;
diff --git a/content/browser/accessibility/accessibility_tree_formatter_win.cc b/content/browser/accessibility/accessibility_tree_formatter_win.cc
index 401f89b..76db849 100644
--- a/content/browser/accessibility/accessibility_tree_formatter_win.cc
+++ b/content/browser/accessibility/accessibility_tree_formatter_win.cc
@@ -15,7 +15,6 @@
#include "content/browser/accessibility/accessibility_tree_formatter_utils_win.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/accessibility/browser_accessibility_win.h"
-#include "content/common/accessibility_node_data.h"
#include "third_party/iaccessible2/ia2_api_all.h"
#include "ui/base/win/atl_module.h"
diff --git a/content/browser/accessibility/accessibility_win_browsertest.cc b/content/browser/accessibility/accessibility_win_browsertest.cc
index b94e145..10e5bd6 100644
--- a/content/browser/accessibility/accessibility_win_browsertest.cc
+++ b/content/browser/accessibility/accessibility_win_browsertest.cc
@@ -149,7 +149,7 @@ void AccessibilityWinBrowserTest::LoadInitialAccessibilityTreeFromHtml(
const std::string& html) {
AccessibilityNotificationWaiter waiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventLoadComplete);
+ ui::AX_EVENT_LOAD_COMPLETE);
GURL html_data_url("data:text/html," + html);
NavigateToURL(shell(), html_data_url);
waiter.WaitForNotification();
@@ -505,7 +505,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
scoped_ptr<AccessibilityNotificationWaiter> waiter(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventFocus));
+ ui::AX_EVENT_FOCUS));
ExecuteScript(L"document.body.children[0].focus()");
waiter->WaitForNotification();
@@ -517,7 +517,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
// Set the active descendant of the radio group
waiter.reset(new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventFocus));
+ ui::AX_EVENT_FOCUS));
ExecuteScript(
L"document.body.children[0].setAttribute('aria-activedescendant', 'li')");
waiter->WaitForNotification();
@@ -550,7 +550,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
scoped_ptr<AccessibilityNotificationWaiter> waiter(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventCheckedStateChanged));
+ ui::AX_EVENT_CHECKED_STATE_CHANGED));
ExecuteScript(L"document.body.children[0].checked=true");
waiter->WaitForNotification();
@@ -578,7 +578,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
new AccessibilityNotificationWaiter(
shell(),
AccessibilityModeComplete,
- blink::WebAXEventChildrenChanged));
+ ui::AX_EVENT_CHILDREN_CHANGED));
ExecuteScript(L"document.body.innerHTML='<b>new text</b>'");
waiter->WaitForNotification();
@@ -603,7 +603,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
scoped_ptr<AccessibilityNotificationWaiter> waiter(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventChildrenChanged));
+ ui::AX_EVENT_CHILDREN_CHANGED));
ExecuteScript(L"document.body.children[0].style.visibility='visible'");
waiter->WaitForNotification();
@@ -636,7 +636,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
scoped_ptr<AccessibilityNotificationWaiter> waiter(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventFocus));
+ ui::AX_EVENT_FOCUS));
ExecuteScript(L"document.body.children[0].focus()");
waiter->WaitForNotification();
@@ -650,7 +650,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
waiter.reset(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventBlur));
+ ui::AX_EVENT_BLUR));
base::win::ScopedComPtr<IAccessible> document_accessible(
GetRendererAccessible());
ASSERT_NE(document_accessible.get(), reinterpret_cast<IAccessible*>(NULL));
@@ -686,7 +686,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
scoped_ptr<AccessibilityNotificationWaiter> waiter(
new AccessibilityNotificationWaiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventValueChanged));
+ ui::AX_EVENT_VALUE_CHANGE));
ExecuteScript(L"document.body.children[0].value='new value'");
waiter->WaitForNotification();
diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc
index 1fa15e0..452f01b 100644
--- a/content/browser/accessibility/browser_accessibility.cc
+++ b/content/browser/accessibility/browser_accessibility.cc
@@ -13,11 +13,6 @@
namespace content {
-typedef AccessibilityNodeData::BoolAttribute BoolAttribute;
-typedef AccessibilityNodeData::FloatAttribute FloatAttribute;
-typedef AccessibilityNodeData::IntAttribute IntAttribute;
-typedef AccessibilityNodeData::StringAttribute StringAttribute;
-
#if !defined(OS_MACOSX) && \
!defined(OS_WIN) && \
!defined(TOOLKIT_GTK) && \
@@ -51,11 +46,11 @@ bool BrowserAccessibility::PlatformIsLeaf() const {
// implementation details, but we want to expose them as leaves
// to platform accessibility APIs.
switch (role_) {
- case blink::WebAXRoleEditableText:
- case blink::WebAXRoleSlider:
- case blink::WebAXRoleStaticText:
- case blink::WebAXRoleTextArea:
- case blink::WebAXRoleTextField:
+ case ui::AX_ROLE_EDITABLE_TEXT:
+ case ui::AX_ROLE_SLIDER:
+ case ui::AX_ROLE_STATIC_TEXT:
+ case ui::AX_ROLE_TEXT_AREA:
+ case ui::AX_ROLE_TEXT_FIELD:
return true;
default:
return false;
@@ -86,7 +81,7 @@ void BrowserAccessibility::InitializeTreeStructure(
index_in_parent_ = index_in_parent;
}
-void BrowserAccessibility::InitializeData(const AccessibilityNodeData& src) {
+void BrowserAccessibility::InitializeData(const ui::AXNodeData& src) {
DCHECK_EQ(renderer_id_, src.id);
role_ = src.role;
state_ = src.state;
@@ -99,8 +94,8 @@ void BrowserAccessibility::InitializeData(const AccessibilityNodeData& src) {
location_ = src.location;
instance_active_ = true;
- GetStringAttribute(AccessibilityNodeData::ATTR_NAME, &name_);
- GetStringAttribute(AccessibilityNodeData::ATTR_VALUE, &value_);
+ GetStringAttribute(ui::AX_ATTR_NAME, &name_);
+ GetStringAttribute(ui::AX_ATTR_VALUE, &value_);
PreInitialize();
}
@@ -166,8 +161,8 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsRect() const {
// nested web area.
BrowserAccessibility* parent = parent_;
bool need_to_offset_web_area =
- (role_ == blink::WebAXRoleWebArea ||
- role_ == blink::WebAXRoleRootWebArea);
+ (role_ == ui::AX_ROLE_WEB_AREA ||
+ role_ == ui::AX_ROLE_ROOT_WEB_AREA);
while (parent) {
if (need_to_offset_web_area &&
parent->location().width() > 0 &&
@@ -178,17 +173,17 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsRect() const {
// On some platforms, we don't want to take the root scroll offsets
// into account.
- if (parent->role() == blink::WebAXRoleRootWebArea &&
+ if (parent->role() == ui::AX_ROLE_ROOT_WEB_AREA &&
!manager()->UseRootScrollOffsetsWhenComputingBounds()) {
break;
}
- if (parent->role() == blink::WebAXRoleWebArea ||
- parent->role() == blink::WebAXRoleRootWebArea) {
+ if (parent->role() == ui::AX_ROLE_WEB_AREA ||
+ parent->role() == ui::AX_ROLE_ROOT_WEB_AREA) {
int sx = 0;
int sy = 0;
- if (parent->GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_X, &sx) &&
- parent->GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_Y, &sy)) {
+ if (parent->GetIntAttribute(ui::AX_ATTR_SCROLL_X, &sx) &&
+ parent->GetIntAttribute(ui::AX_ATTR_SCROLL_Y, &sy)) {
bounds.Offset(-sx, -sy);
}
need_to_offset_web_area = true;
@@ -211,7 +206,7 @@ gfx::Rect BrowserAccessibility::GetGlobalBoundsRect() const {
gfx::Rect BrowserAccessibility::GetLocalBoundsForRange(int start, int len)
const {
- if (role_ != blink::WebAXRoleStaticText) {
+ if (role() != ui::AX_ROLE_STATIC_TEXT) {
// Apply recursively to all static text descendants. For example, if
// you call it on a div with two text node children, it just calls
// GetLocalBoundsForRange on each of the two children (adjusting
@@ -236,9 +231,9 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsForRange(int start, int len)
gfx::Rect bounds;
for (size_t i = 0; i < children_.size() && child_end < start + len; ++i) {
BrowserAccessibility* child = children_[i];
- DCHECK_EQ(child->role(), blink::WebAXRoleInlineTextBox);
+ DCHECK_EQ(child->role(), ui::AX_ROLE_INLINE_TEXT_BOX);
std::string child_text;
- child->GetStringAttribute(AccessibilityNodeData::ATTR_VALUE, &child_text);
+ child->GetStringAttribute(ui::AX_ATTR_VALUE, &child_text);
int child_len = static_cast<int>(child_text.size());
child_start = child_end;
child_end += child_len;
@@ -254,9 +249,9 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsForRange(int start, int len)
gfx::Rect child_rect = child->location();
int text_direction = child->GetIntAttribute(
- AccessibilityNodeData::ATTR_TEXT_DIRECTION);
+ ui::AX_ATTR_TEXT_DIRECTION);
const std::vector<int32>& character_offsets = child->GetIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS);
+ ui::AX_ATTR_CHARACTER_OFFSETS);
int start_pixel_offset =
local_start > 0 ? character_offsets[local_start - 1] : 0;
int end_pixel_offset =
@@ -264,28 +259,28 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsForRange(int start, int len)
gfx::Rect child_overlap_rect;
switch (text_direction) {
- case blink::WebAXTextDirectionLR: {
+ case ui::AX_TEXT_DIRECTION_LR: {
int left = child_rect.x() + start_pixel_offset;
int right = child_rect.x() + end_pixel_offset;
child_overlap_rect = gfx::Rect(left, child_rect.y(),
right - left, child_rect.height());
break;
}
- case blink::WebAXTextDirectionRL: {
+ case ui::AX_TEXT_DIRECTION_RL: {
int right = child_rect.right() - start_pixel_offset;
int left = child_rect.right() - end_pixel_offset;
child_overlap_rect = gfx::Rect(left, child_rect.y(),
right - left, child_rect.height());
break;
}
- case blink::WebAXTextDirectionTB: {
+ case ui::AX_TEXT_DIRECTION_TB: {
int top = child_rect.y() + start_pixel_offset;
int bottom = child_rect.y() + end_pixel_offset;
child_overlap_rect = gfx::Rect(child_rect.x(), top,
child_rect.width(), bottom - top);
break;
}
- case blink::WebAXTextDirectionBT: {
+ case ui::AX_TEXT_DIRECTION_BT: {
int bottom = child_rect.bottom() - start_pixel_offset;
int top = child_rect.bottom() - end_pixel_offset;
child_overlap_rect = gfx::Rect(child_rect.x(), top,
@@ -341,8 +336,7 @@ void BrowserAccessibility::Destroy() {
value_.clear();
PostInitialize();
- manager_->NotifyAccessibilityEvent(
- blink::WebAXEventHide, this);
+ manager_->NotifyAccessibilityEvent(ui::AX_EVENT_HIDE, this);
instance_active_ = false;
manager_->RemoveNode(this);
@@ -353,7 +347,8 @@ void BrowserAccessibility::NativeReleaseReference() {
delete this;
}
-bool BrowserAccessibility::HasBoolAttribute(BoolAttribute attribute) const {
+bool BrowserAccessibility::HasBoolAttribute(
+ ui::AXBoolAttribute attribute) const {
for (size_t i = 0; i < bool_attributes_.size(); ++i) {
if (bool_attributes_[i].first == attribute)
return true;
@@ -363,7 +358,8 @@ bool BrowserAccessibility::HasBoolAttribute(BoolAttribute attribute) const {
}
-bool BrowserAccessibility::GetBoolAttribute(BoolAttribute attribute) const {
+bool BrowserAccessibility::GetBoolAttribute(
+ ui::AXBoolAttribute attribute) const {
for (size_t i = 0; i < bool_attributes_.size(); ++i) {
if (bool_attributes_[i].first == attribute)
return bool_attributes_[i].second;
@@ -373,7 +369,7 @@ bool BrowserAccessibility::GetBoolAttribute(BoolAttribute attribute) const {
}
bool BrowserAccessibility::GetBoolAttribute(
- BoolAttribute attribute, bool* value) const {
+ ui::AXBoolAttribute attribute, bool* value) const {
for (size_t i = 0; i < bool_attributes_.size(); ++i) {
if (bool_attributes_[i].first == attribute) {
*value = bool_attributes_[i].second;
@@ -384,7 +380,8 @@ bool BrowserAccessibility::GetBoolAttribute(
return false;
}
-bool BrowserAccessibility::HasFloatAttribute(FloatAttribute attribute) const {
+bool BrowserAccessibility::HasFloatAttribute(
+ ui::AXFloatAttribute attribute) const {
for (size_t i = 0; i < float_attributes_.size(); ++i) {
if (float_attributes_[i].first == attribute)
return true;
@@ -393,7 +390,8 @@ bool BrowserAccessibility::HasFloatAttribute(FloatAttribute attribute) const {
return false;
}
-float BrowserAccessibility::GetFloatAttribute(FloatAttribute attribute) const {
+float BrowserAccessibility::GetFloatAttribute(
+ ui::AXFloatAttribute attribute) const {
for (size_t i = 0; i < float_attributes_.size(); ++i) {
if (float_attributes_[i].first == attribute)
return float_attributes_[i].second;
@@ -403,7 +401,7 @@ float BrowserAccessibility::GetFloatAttribute(FloatAttribute attribute) const {
}
bool BrowserAccessibility::GetFloatAttribute(
- FloatAttribute attribute, float* value) const {
+ ui::AXFloatAttribute attribute, float* value) const {
for (size_t i = 0; i < float_attributes_.size(); ++i) {
if (float_attributes_[i].first == attribute) {
*value = float_attributes_[i].second;
@@ -414,7 +412,8 @@ bool BrowserAccessibility::GetFloatAttribute(
return false;
}
-bool BrowserAccessibility::HasIntAttribute(IntAttribute attribute) const {
+bool BrowserAccessibility::HasIntAttribute(
+ ui::AXIntAttribute attribute) const {
for (size_t i = 0; i < int_attributes_.size(); ++i) {
if (int_attributes_[i].first == attribute)
return true;
@@ -423,7 +422,7 @@ bool BrowserAccessibility::HasIntAttribute(IntAttribute attribute) const {
return false;
}
-int BrowserAccessibility::GetIntAttribute(IntAttribute attribute) const {
+int BrowserAccessibility::GetIntAttribute(ui::AXIntAttribute attribute) const {
for (size_t i = 0; i < int_attributes_.size(); ++i) {
if (int_attributes_[i].first == attribute)
return int_attributes_[i].second;
@@ -433,7 +432,7 @@ int BrowserAccessibility::GetIntAttribute(IntAttribute attribute) const {
}
bool BrowserAccessibility::GetIntAttribute(
- IntAttribute attribute, int* value) const {
+ ui::AXIntAttribute attribute, int* value) const {
for (size_t i = 0; i < int_attributes_.size(); ++i) {
if (int_attributes_[i].first == attribute) {
*value = int_attributes_[i].second;
@@ -444,7 +443,8 @@ bool BrowserAccessibility::GetIntAttribute(
return false;
}
-bool BrowserAccessibility::HasStringAttribute(StringAttribute attribute) const {
+bool BrowserAccessibility::HasStringAttribute(
+ ui::AXStringAttribute attribute) const {
for (size_t i = 0; i < string_attributes_.size(); ++i) {
if (string_attributes_[i].first == attribute)
return true;
@@ -454,7 +454,7 @@ bool BrowserAccessibility::HasStringAttribute(StringAttribute attribute) const {
}
const std::string& BrowserAccessibility::GetStringAttribute(
- StringAttribute attribute) const {
+ ui::AXStringAttribute attribute) const {
CR_DEFINE_STATIC_LOCAL(std::string, empty_string, ());
for (size_t i = 0; i < string_attributes_.size(); ++i) {
if (string_attributes_[i].first == attribute)
@@ -465,7 +465,7 @@ const std::string& BrowserAccessibility::GetStringAttribute(
}
bool BrowserAccessibility::GetStringAttribute(
- StringAttribute attribute, std::string* value) const {
+ ui::AXStringAttribute attribute, std::string* value) const {
for (size_t i = 0; i < string_attributes_.size(); ++i) {
if (string_attributes_[i].first == attribute) {
*value = string_attributes_[i].second;
@@ -477,7 +477,7 @@ bool BrowserAccessibility::GetStringAttribute(
}
base::string16 BrowserAccessibility::GetString16Attribute(
- StringAttribute attribute) const {
+ ui::AXStringAttribute attribute) const {
std::string value_utf8;
if (!GetStringAttribute(attribute, &value_utf8))
return base::string16();
@@ -485,7 +485,7 @@ base::string16 BrowserAccessibility::GetString16Attribute(
}
bool BrowserAccessibility::GetString16Attribute(
- StringAttribute attribute,
+ ui::AXStringAttribute attribute,
base::string16* value) const {
std::string value_utf8;
if (!GetStringAttribute(attribute, &value_utf8))
@@ -495,7 +495,7 @@ bool BrowserAccessibility::GetString16Attribute(
}
void BrowserAccessibility::SetStringAttribute(
- StringAttribute attribute, const std::string& value) {
+ ui::AXStringAttribute attribute, const std::string& value) {
for (size_t i = 0; i < string_attributes_.size(); ++i) {
if (string_attributes_[i].first == attribute) {
string_attributes_[i].second = value;
@@ -507,7 +507,7 @@ void BrowserAccessibility::SetStringAttribute(
}
bool BrowserAccessibility::HasIntListAttribute(
- AccessibilityNodeData::IntListAttribute attribute) const {
+ ui::AXIntListAttribute attribute) const {
for (size_t i = 0; i < intlist_attributes_.size(); ++i) {
if (intlist_attributes_[i].first == attribute)
return true;
@@ -517,7 +517,7 @@ bool BrowserAccessibility::HasIntListAttribute(
}
const std::vector<int32>& BrowserAccessibility::GetIntListAttribute(
- AccessibilityNodeData::IntListAttribute attribute) const {
+ ui::AXIntListAttribute attribute) const {
CR_DEFINE_STATIC_LOCAL(std::vector<int32>, empty_vector, ());
for (size_t i = 0; i < intlist_attributes_.size(); ++i) {
if (intlist_attributes_[i].first == attribute)
@@ -528,7 +528,7 @@ const std::vector<int32>& BrowserAccessibility::GetIntListAttribute(
}
bool BrowserAccessibility::GetIntListAttribute(
- AccessibilityNodeData::IntListAttribute attribute,
+ ui::AXIntListAttribute attribute,
std::vector<int32>* value) const {
for (size_t i = 0; i < intlist_attributes_.size(); ++i) {
if (intlist_attributes_[i].first == attribute) {
@@ -587,24 +587,24 @@ bool BrowserAccessibility::GetAriaTristate(
return false; // Not set
}
-bool BrowserAccessibility::HasState(blink::WebAXState state_enum) const {
+bool BrowserAccessibility::HasState(ui::AXState state_enum) const {
return (state_ >> state_enum) & 1;
}
bool BrowserAccessibility::IsEditableText() const {
// These roles don't have readonly set, but they're not editable text.
- if (role_ == blink::WebAXRoleScrollArea ||
- role_ == blink::WebAXRoleColumn ||
- role_ == blink::WebAXRoleTableHeaderContainer) {
+ if (role_ == ui::AX_ROLE_SCROLL_AREA ||
+ role_ == ui::AX_ROLE_COLUMN ||
+ role_ == ui::AX_ROLE_TABLE_HEADER_CONTAINER) {
return false;
}
// Note: WebAXStateReadonly being false means it's either a text control,
// or contenteditable. We also check for editable text roles to cover
// another element that has role=textbox set on it.
- return (!HasState(blink::WebAXStateReadonly) ||
- role_ == blink::WebAXRoleTextField ||
- role_ == blink::WebAXRoleTextArea);
+ return (!HasState(ui::AX_STATE_READONLY) ||
+ role_ == ui::AX_ROLE_TEXT_FIELD ||
+ role_ == ui::AX_ROLE_TEXT_AREA);
}
std::string BrowserAccessibility::GetTextRecursive() const {
@@ -619,10 +619,8 @@ std::string BrowserAccessibility::GetTextRecursive() const {
}
int BrowserAccessibility::GetStaticTextLenRecursive() const {
- if (role_ == blink::WebAXRoleStaticText) {
- return static_cast<int>(
- GetStringAttribute(AccessibilityNodeData::ATTR_VALUE).size());
- }
+ if (role_ == blink::WebAXRoleStaticText)
+ return static_cast<int>(GetStringAttribute(ui::AX_ATTR_VALUE).size());
int len = 0;
for (size_t i = 0; i < children_.size(); ++i)
diff --git a/content/browser/accessibility/browser_accessibility.h b/content/browser/accessibility/browser_accessibility.h
index 781ccff..d1df6b9 100644
--- a/content/browser/accessibility/browser_accessibility.h
+++ b/content/browser/accessibility/browser_accessibility.h
@@ -12,9 +12,9 @@
#include "base/basictypes.h"
#include "base/strings/string16.h"
#include "build/build_config.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/content_export.h"
#include "third_party/WebKit/public/web/WebAXEnums.h"
+#include "ui/accessibility/ax_node_data.h"
#if defined(OS_MACOSX) && __OBJC__
@class BrowserAccessibilityCocoa;
@@ -70,7 +70,7 @@ class CONTENT_EXPORT BrowserAccessibility {
int32 index_in_parent);
// Initialize this object's data.
- void InitializeData(const AccessibilityNodeData& src);
+ void InitializeData(const ui::AXNodeData& src);
virtual void SwapChildren(std::vector<BrowserAccessibility*>& children);
@@ -197,43 +197,37 @@ class CONTENT_EXPORT BrowserAccessibility {
// attribute is not present. In addition, strings can be returned as
// either std::string or base::string16, for convenience.
- bool HasBoolAttribute(AccessibilityNodeData::BoolAttribute attr) const;
- bool GetBoolAttribute(AccessibilityNodeData::BoolAttribute attr) const;
- bool GetBoolAttribute(AccessibilityNodeData::BoolAttribute attr,
- bool* value) const;
+ bool HasBoolAttribute(ui::AXBoolAttribute attr) const;
+ bool GetBoolAttribute(ui::AXBoolAttribute attr) const;
+ bool GetBoolAttribute(ui::AXBoolAttribute attr, bool* value) const;
- bool HasFloatAttribute(AccessibilityNodeData::FloatAttribute attr) const;
- float GetFloatAttribute(AccessibilityNodeData::FloatAttribute attr) const;
- bool GetFloatAttribute(AccessibilityNodeData::FloatAttribute attr,
- float* value) const;
+ bool HasFloatAttribute(ui::AXFloatAttribute attr) const;
+ float GetFloatAttribute(ui::AXFloatAttribute attr) const;
+ bool GetFloatAttribute(ui::AXFloatAttribute attr, float* value) const;
- bool HasIntAttribute(AccessibilityNodeData::IntAttribute attribute) const;
- int GetIntAttribute(AccessibilityNodeData::IntAttribute attribute) const;
- bool GetIntAttribute(AccessibilityNodeData::IntAttribute attribute,
- int* value) const;
+ bool HasIntAttribute(ui::AXIntAttribute attribute) const;
+ int GetIntAttribute(ui::AXIntAttribute attribute) const;
+ bool GetIntAttribute(ui::AXIntAttribute attribute, int* value) const;
bool HasStringAttribute(
- AccessibilityNodeData::StringAttribute attribute) const;
- const std::string& GetStringAttribute(
- AccessibilityNodeData::StringAttribute attribute) const;
- bool GetStringAttribute(AccessibilityNodeData::StringAttribute attribute,
+ ui::AXStringAttribute attribute) const;
+ const std::string& GetStringAttribute(ui::AXStringAttribute attribute) const;
+ bool GetStringAttribute(ui::AXStringAttribute attribute,
std::string* value) const;
- bool GetString16Attribute(AccessibilityNodeData::StringAttribute attribute,
+ bool GetString16Attribute(ui::AXStringAttribute attribute,
base::string16* value) const;
base::string16 GetString16Attribute(
- AccessibilityNodeData::StringAttribute attribute) const;
+ ui::AXStringAttribute attribute) const;
- bool HasIntListAttribute(
- AccessibilityNodeData::IntListAttribute attribute) const;
+ bool HasIntListAttribute(ui::AXIntListAttribute attribute) const;
const std::vector<int32>& GetIntListAttribute(
- AccessibilityNodeData::IntListAttribute attribute) const;
- bool GetIntListAttribute(AccessibilityNodeData::IntListAttribute attribute,
+ ui::AXIntListAttribute attribute) const;
+ bool GetIntListAttribute(ui::AXIntListAttribute attribute,
std::vector<int32>* value) const;
- void SetStringAttribute(
- AccessibilityNodeData::StringAttribute attribute,
- const std::string& value);
+ void SetStringAttribute(ui::AXStringAttribute attribute,
+ const std::string& value);
// Retrieve the value of a html attribute from the attribute map and
// returns true if found.
@@ -257,7 +251,7 @@ class CONTENT_EXPORT BrowserAccessibility {
bool* is_mixed) const;
// Returns true if the bit corresponding to the given state enum is 1.
- bool HasState(blink::WebAXState state_enum) const;
+ bool HasState(ui::AXState state_enum) const;
// Returns true if this node is an editable text field of any kind.
bool IsEditableText() const;
@@ -299,15 +293,15 @@ class CONTENT_EXPORT BrowserAccessibility {
std::string name_;
std::string value_;
std::vector<std::pair<
- AccessibilityNodeData::BoolAttribute, bool> > bool_attributes_;
+ ui::AXBoolAttribute, bool> > bool_attributes_;
std::vector<std::pair<
- AccessibilityNodeData::FloatAttribute, float> > float_attributes_;
+ ui::AXFloatAttribute, float> > float_attributes_;
std::vector<std::pair<
- AccessibilityNodeData::IntAttribute, int> > int_attributes_;
+ ui::AXIntAttribute, int> > int_attributes_;
std::vector<std::pair<
- AccessibilityNodeData::StringAttribute, std::string> > string_attributes_;
+ ui::AXStringAttribute, std::string> > string_attributes_;
std::vector<std::pair<
- AccessibilityNodeData::IntListAttribute, std::vector<int32> > >
+ ui::AXIntListAttribute, std::vector<int32> > >
intlist_attributes_;
std::vector<std::pair<std::string, std::string> > html_attributes_;
int32 role_;
diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc
index b070475..b86374a 100644
--- a/content/browser/accessibility/browser_accessibility_android.cc
+++ b/content/browser/accessibility/browser_accessibility_android.cc
@@ -7,7 +7,6 @@
#include "base/strings/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
#include "content/common/accessibility_messages.h"
-#include "content/common/accessibility_node_data.h"
namespace {
@@ -62,8 +61,8 @@ bool BrowserAccessibilityAndroid::PlatformIsLeaf() const {
// Iframes are always allowed to contain children.
if (IsIframe() ||
- role() == blink::WebAXRoleRootWebArea ||
- role() == blink::WebAXRoleWebArea) {
+ role() == ui::AX_ROLE_ROOT_WEB_AREA ||
+ role() == ui::AX_ROLE_WEB_AREA) {
return false;
}
@@ -73,11 +72,11 @@ bool BrowserAccessibilityAndroid::PlatformIsLeaf() const {
// Headings with text can drop their children.
base::string16 name = GetText();
- if (role() == blink::WebAXRoleHeading && !name.empty())
+ if (role() == ui::AX_ROLE_HEADING && !name.empty())
return true;
// Focusable nodes with text can drop their children.
- if (HasState(blink::WebAXStateFocusable) && !name.empty())
+ if (HasState(ui::AX_STATE_FOCUSABLE) && !name.empty())
return true;
// Nodes with only static text as children can drop their children.
@@ -92,18 +91,18 @@ bool BrowserAccessibilityAndroid::IsCheckable() const {
bool is_aria_pressed_defined;
bool is_mixed;
GetAriaTristate("aria-pressed", &is_aria_pressed_defined, &is_mixed);
- if (role() == blink::WebAXRoleCheckBox ||
- role() == blink::WebAXRoleRadioButton ||
+ if (role() == ui::AX_ROLE_CHECK_BOX ||
+ role() == ui::AX_ROLE_RADIO_BUTTON ||
is_aria_pressed_defined) {
checkable = true;
}
- if (HasState(blink::WebAXStateChecked))
+ if (HasState(ui::AX_STATE_CHECKED))
checkable = true;
return checkable;
}
bool BrowserAccessibilityAndroid::IsChecked() const {
- return HasState(blink::WebAXStateChecked);
+ return HasState(ui::AX_STATE_CHECKED);
}
bool BrowserAccessibilityAndroid::IsClickable() const {
@@ -111,21 +110,21 @@ bool BrowserAccessibilityAndroid::IsClickable() const {
}
bool BrowserAccessibilityAndroid::IsCollection() const {
- return (role() == blink::WebAXRoleGrid ||
- role() == blink::WebAXRoleList ||
- role() == blink::WebAXRoleListBox ||
- role() == blink::WebAXRoleTable ||
- role() == blink::WebAXRoleTree);
+ return (role() == ui::AX_ROLE_GRID ||
+ role() == ui::AX_ROLE_LIST ||
+ role() == ui::AX_ROLE_LIST_BOX ||
+ role() == ui::AX_ROLE_TABLE ||
+ role() == ui::AX_ROLE_TREE);
}
bool BrowserAccessibilityAndroid::IsCollectionItem() const {
- return (role() == blink::WebAXRoleCell ||
- role() == blink::WebAXRoleColumnHeader ||
- role() == blink::WebAXRoleDescriptionListTerm ||
- role() == blink::WebAXRoleListBoxOption ||
- role() == blink::WebAXRoleListItem ||
- role() == blink::WebAXRoleRowHeader ||
- role() == blink::WebAXRoleTreeItem);
+ return (role() == ui::AX_ROLE_CELL ||
+ role() == ui::AX_ROLE_COLUMN_HEADER ||
+ role() == ui::AX_ROLE_DESCRIPTION_LIST_TERM ||
+ role() == ui::AX_ROLE_LIST_BOX_OPTION ||
+ role() == ui::AX_ROLE_LIST_ITEM ||
+ role() == ui::AX_ROLE_ROW_HEADER ||
+ role() == ui::AX_ROLE_TREE_ITEM);
}
bool BrowserAccessibilityAndroid::IsContentInvalid() const {
@@ -138,13 +137,13 @@ bool BrowserAccessibilityAndroid::IsDismissable() const {
}
bool BrowserAccessibilityAndroid::IsEnabled() const {
- return HasState(blink::WebAXStateEnabled);
+ return HasState(ui::AX_STATE_ENABLED);
}
bool BrowserAccessibilityAndroid::IsFocusable() const {
- bool focusable = HasState(blink::WebAXStateFocusable);
+ bool focusable = HasState(ui::AX_STATE_FOCUSABLE);
if (IsIframe() ||
- role() == blink::WebAXRoleWebArea) {
+ role() == ui::AX_ROLE_WEB_AREA) {
focusable = false;
}
return focusable;
@@ -155,96 +154,96 @@ bool BrowserAccessibilityAndroid::IsFocused() const {
}
bool BrowserAccessibilityAndroid::IsHeading() const {
- return (role() == blink::WebAXRoleColumnHeader ||
- role() == blink::WebAXRoleHeading ||
- role() == blink::WebAXRoleRowHeader);
+ return (role() == ui::AX_ROLE_COLUMN_HEADER ||
+ role() == ui::AX_ROLE_HEADING ||
+ role() == ui::AX_ROLE_ROW_HEADER);
}
bool BrowserAccessibilityAndroid::IsHierarchical() const {
- return (role() == blink::WebAXRoleList ||
- role() == blink::WebAXRoleTree);
+ return (role() == ui::AX_ROLE_LIST ||
+ role() == ui::AX_ROLE_TREE);
}
bool BrowserAccessibilityAndroid::IsMultiLine() const {
- return role() == blink::WebAXRoleTextArea;
+ return role() == ui::AX_ROLE_TEXT_AREA;
}
bool BrowserAccessibilityAndroid::IsPassword() const {
- return HasState(blink::WebAXStateProtected);
+ return HasState(ui::AX_STATE_PROTECTED);
}
bool BrowserAccessibilityAndroid::IsRangeType() const {
- return (role() == blink::WebAXRoleProgressIndicator ||
- role() == blink::WebAXRoleScrollBar ||
- role() == blink::WebAXRoleSlider);
+ return (role() == ui::AX_ROLE_PROGRESS_INDICATOR ||
+ role() == ui::AX_ROLE_SCROLL_BAR ||
+ role() == ui::AX_ROLE_SLIDER);
}
bool BrowserAccessibilityAndroid::IsScrollable() const {
int dummy;
- return GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_X_MAX, &dummy);
+ return GetIntAttribute(ui::AX_ATTR_SCROLL_X_MAX, &dummy);
}
bool BrowserAccessibilityAndroid::IsSelected() const {
- return HasState(blink::WebAXStateSelected);
+ return HasState(ui::AX_STATE_SELECTED);
}
bool BrowserAccessibilityAndroid::IsVisibleToUser() const {
- return !HasState(blink::WebAXStateInvisible);
+ return !HasState(ui::AX_STATE_INVISIBLE);
}
bool BrowserAccessibilityAndroid::CanOpenPopup() const {
- return HasState(blink::WebAXStateHaspopup);
+ return HasState(ui::AX_STATE_HASPOPUP);
}
const char* BrowserAccessibilityAndroid::GetClassName() const {
const char* class_name = NULL;
switch(role()) {
- case blink::WebAXRoleEditableText:
- case blink::WebAXRoleSpinButton:
- case blink::WebAXRoleTextArea:
- case blink::WebAXRoleTextField:
+ case ui::AX_ROLE_EDITABLE_TEXT:
+ case ui::AX_ROLE_SPIN_BUTTON:
+ case ui::AX_ROLE_TEXT_AREA:
+ case ui::AX_ROLE_TEXT_FIELD:
class_name = "android.widget.EditText";
break;
- case blink::WebAXRoleSlider:
+ case ui::AX_ROLE_SLIDER:
class_name = "android.widget.SeekBar";
break;
- case blink::WebAXRoleComboBox:
+ case ui::AX_ROLE_COMBO_BOX:
class_name = "android.widget.Spinner";
break;
- case blink::WebAXRoleButton:
- case blink::WebAXRoleMenuButton:
- case blink::WebAXRolePopUpButton:
+ case ui::AX_ROLE_BUTTON:
+ case ui::AX_ROLE_MENU_BUTTON:
+ case ui::AX_ROLE_POP_UP_BUTTON:
class_name = "android.widget.Button";
break;
- case blink::WebAXRoleCheckBox:
+ case ui::AX_ROLE_CHECK_BOX:
class_name = "android.widget.CheckBox";
break;
- case blink::WebAXRoleRadioButton:
+ case ui::AX_ROLE_RADIO_BUTTON:
class_name = "android.widget.RadioButton";
break;
- case blink::WebAXRoleToggleButton:
+ case ui::AX_ROLE_TOGGLE_BUTTON:
class_name = "android.widget.ToggleButton";
break;
- case blink::WebAXRoleCanvas:
- case blink::WebAXRoleImage:
+ case ui::AX_ROLE_CANVAS:
+ case ui::AX_ROLE_IMAGE:
class_name = "android.widget.Image";
break;
- case blink::WebAXRoleProgressIndicator:
+ case ui::AX_ROLE_PROGRESS_INDICATOR:
class_name = "android.widget.ProgressBar";
break;
- case blink::WebAXRoleTabList:
+ case ui::AX_ROLE_TAB_LIST:
class_name = "android.widget.TabWidget";
break;
- case blink::WebAXRoleGrid:
- case blink::WebAXRoleTable:
+ case ui::AX_ROLE_GRID:
+ case ui::AX_ROLE_TABLE:
class_name = "android.widget.GridView";
break;
- case blink::WebAXRoleList:
- case blink::WebAXRoleListBox:
+ case ui::AX_ROLE_LIST:
+ case ui::AX_ROLE_LIST_BOX:
class_name = "android.widget.ListView";
break;
- case blink::WebAXRoleDialog:
+ case ui::AX_ROLE_DIALOG:
class_name = "android.app.Dialog";
break;
default:
@@ -257,12 +256,12 @@ const char* BrowserAccessibilityAndroid::GetClassName() const {
base::string16 BrowserAccessibilityAndroid::GetText() const {
if (IsIframe() ||
- role() == blink::WebAXRoleWebArea) {
+ role() == ui::AX_ROLE_WEB_AREA) {
return base::string16();
}
base::string16 description = GetString16Attribute(
- AccessibilityNodeData::ATTR_DESCRIPTION);
+ ui::AX_ATTR_DESCRIPTION);
base::string16 text;
if (!name().empty())
text = base::UTF8ToUTF16(name());
@@ -281,13 +280,13 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
}
switch(role()) {
- case blink::WebAXRoleImageMapLink:
- case blink::WebAXRoleLink:
+ case ui::AX_ROLE_IMAGE_MAP_LINK:
+ case ui::AX_ROLE_LINK:
if (!text.empty())
text += base::ASCIIToUTF16(" ");
text += base::ASCIIToUTF16("Link");
break;
- case blink::WebAXRoleHeading:
+ case ui::AX_ROLE_HEADING:
// Only append "heading" if this node already has text.
if (!text.empty())
text += base::ASCIIToUTF16(" Heading");
@@ -300,16 +299,16 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
int BrowserAccessibilityAndroid::GetItemIndex() const {
int index = 0;
switch(role()) {
- case blink::WebAXRoleListItem:
- case blink::WebAXRoleListBoxOption:
- case blink::WebAXRoleTreeItem:
+ case ui::AX_ROLE_LIST_ITEM:
+ case ui::AX_ROLE_LIST_BOX_OPTION:
+ case ui::AX_ROLE_TREE_ITEM:
index = index_in_parent();
break;
- case blink::WebAXRoleSlider:
- case blink::WebAXRoleProgressIndicator: {
+ case ui::AX_ROLE_SLIDER:
+ case ui::AX_ROLE_PROGRESS_INDICATOR: {
float value_for_range;
if (GetFloatAttribute(
- AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &value_for_range)) {
+ ui::AX_ATTR_VALUE_FOR_RANGE, &value_for_range)) {
index = static_cast<int>(value_for_range);
}
break;
@@ -321,14 +320,14 @@ int BrowserAccessibilityAndroid::GetItemIndex() const {
int BrowserAccessibilityAndroid::GetItemCount() const {
int count = 0;
switch(role()) {
- case blink::WebAXRoleList:
- case blink::WebAXRoleListBox:
+ case ui::AX_ROLE_LIST:
+ case ui::AX_ROLE_LIST_BOX:
count = PlatformChildCount();
break;
- case blink::WebAXRoleSlider:
- case blink::WebAXRoleProgressIndicator: {
+ case ui::AX_ROLE_SLIDER:
+ case ui::AX_ROLE_PROGRESS_INDICATOR: {
float max_value_for_range;
- if (GetFloatAttribute(AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE,
+ if (GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE,
&max_value_for_range)) {
count = static_cast<int>(max_value_for_range);
}
@@ -340,25 +339,25 @@ int BrowserAccessibilityAndroid::GetItemCount() const {
int BrowserAccessibilityAndroid::GetScrollX() const {
int value = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_X, &value);
+ GetIntAttribute(ui::AX_ATTR_SCROLL_X, &value);
return value;
}
int BrowserAccessibilityAndroid::GetScrollY() const {
int value = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_Y, &value);
+ GetIntAttribute(ui::AX_ATTR_SCROLL_Y, &value);
return value;
}
int BrowserAccessibilityAndroid::GetMaxScrollX() const {
int value = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_X_MAX, &value);
+ GetIntAttribute(ui::AX_ATTR_SCROLL_X_MAX, &value);
return value;
}
int BrowserAccessibilityAndroid::GetMaxScrollY() const {
int value = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_Y_MAX, &value);
+ GetIntAttribute(ui::AX_ATTR_SCROLL_Y_MAX, &value);
return value;
}
@@ -414,13 +413,13 @@ base::string16 BrowserAccessibilityAndroid::GetTextChangeBeforeText() const {
int BrowserAccessibilityAndroid::GetSelectionStart() const {
int sel_start = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_START, &sel_start);
+ GetIntAttribute(ui::AX_ATTR_TEXT_SEL_START, &sel_start);
return sel_start;
}
int BrowserAccessibilityAndroid::GetSelectionEnd() const {
int sel_end = 0;
- GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_END, &sel_end);
+ GetIntAttribute(ui::AX_ATTR_TEXT_SEL_END, &sel_end);
return sel_end;
}
@@ -430,7 +429,7 @@ int BrowserAccessibilityAndroid::GetEditableTextLength() const {
int BrowserAccessibilityAndroid::AndroidInputType() const {
std::string html_tag = GetStringAttribute(
- AccessibilityNodeData::ATTR_HTML_TAG);
+ ui::AX_ATTR_HTML_TAG);
if (html_tag != "input")
return ANDROID_TEXT_INPUTTYPE_TYPE_NULL;
@@ -466,7 +465,7 @@ int BrowserAccessibilityAndroid::AndroidInputType() const {
int BrowserAccessibilityAndroid::AndroidLiveRegionType() const {
std::string live = GetStringAttribute(
- AccessibilityNodeData::ATTR_LIVE_STATUS);
+ ui::AX_ATTR_LIVE_STATUS);
if (live == "polite")
return ANDROID_VIEW_VIEW_ACCESSIBILITY_LIVE_REGION_POLITE;
else if (live == "assertive")
@@ -479,14 +478,14 @@ int BrowserAccessibilityAndroid::AndroidRangeType() const {
}
int BrowserAccessibilityAndroid::RowCount() const {
- if (role() == blink::WebAXRoleGrid ||
- role() == blink::WebAXRoleTable) {
- return CountChildrenWithRole(blink::WebAXRoleRow);
+ if (role() == ui::AX_ROLE_GRID ||
+ role() == ui::AX_ROLE_TABLE) {
+ return CountChildrenWithRole(ui::AX_ROLE_ROW);
}
- if (role() == blink::WebAXRoleList ||
- role() == blink::WebAXRoleListBox ||
- role() == blink::WebAXRoleTree) {
+ if (role() == ui::AX_ROLE_LIST ||
+ role() == ui::AX_ROLE_LIST_BOX ||
+ role() == ui::AX_ROLE_TREE) {
return PlatformChildCount();
}
@@ -494,45 +493,45 @@ int BrowserAccessibilityAndroid::RowCount() const {
}
int BrowserAccessibilityAndroid::ColumnCount() const {
- if (role() == blink::WebAXRoleGrid ||
- role() == blink::WebAXRoleTable) {
- return CountChildrenWithRole(blink::WebAXRoleColumn);
+ if (role() == ui::AX_ROLE_GRID ||
+ role() == ui::AX_ROLE_TABLE) {
+ return CountChildrenWithRole(ui::AX_ROLE_COLUMN);
}
return 0;
}
int BrowserAccessibilityAndroid::RowIndex() const {
- if (role() == blink::WebAXRoleListItem ||
- role() == blink::WebAXRoleListBoxOption ||
- role() == blink::WebAXRoleTreeItem) {
+ if (role() == ui::AX_ROLE_LIST_ITEM ||
+ role() == ui::AX_ROLE_LIST_BOX_OPTION ||
+ role() == ui::AX_ROLE_TREE_ITEM) {
return index_in_parent();
}
- return GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX);
+ return GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX);
}
int BrowserAccessibilityAndroid::RowSpan() const {
- return GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN);
+ return GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_SPAN);
}
int BrowserAccessibilityAndroid::ColumnIndex() const {
- return GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX);
+ return GetIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX);
}
int BrowserAccessibilityAndroid::ColumnSpan() const {
- return GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN);
+ return GetIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN);
}
float BrowserAccessibilityAndroid::RangeMin() const {
- return GetFloatAttribute(AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE);
+ return GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE);
}
float BrowserAccessibilityAndroid::RangeMax() const {
- return GetFloatAttribute(AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE);
+ return GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE);
}
float BrowserAccessibilityAndroid::RangeCurrentValue() const {
- return GetFloatAttribute(AccessibilityNodeData::ATTR_VALUE_FOR_RANGE);
+ return GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE);
}
bool BrowserAccessibilityAndroid::HasFocusableChild() const {
@@ -540,7 +539,7 @@ bool BrowserAccessibilityAndroid::HasFocusableChild() const {
// from within this!
for (uint32 i = 0; i < child_count(); i++) {
BrowserAccessibility* child = children()[i];
- if (child->HasState(blink::WebAXStateFocusable))
+ if (child->HasState(ui::AX_STATE_FOCUSABLE))
return true;
if (static_cast<BrowserAccessibilityAndroid*>(child)->HasFocusableChild())
return true;
@@ -553,7 +552,7 @@ bool BrowserAccessibilityAndroid::HasOnlyStaticTextChildren() const {
// from within this!
for (uint32 i = 0; i < child_count(); i++) {
BrowserAccessibility* child = children()[i];
- if (child->role() != blink::WebAXRoleStaticText)
+ if (child->role() != ui::AX_ROLE_STATIC_TEXT)
return false;
}
return true;
@@ -561,7 +560,7 @@ bool BrowserAccessibilityAndroid::HasOnlyStaticTextChildren() const {
bool BrowserAccessibilityAndroid::IsIframe() const {
base::string16 html_tag = GetString16Attribute(
- AccessibilityNodeData::ATTR_HTML_TAG);
+ ui::AX_ATTR_HTML_TAG);
return html_tag == base::ASCIIToUTF16("iframe");
}
@@ -575,12 +574,12 @@ void BrowserAccessibilityAndroid::PostInitialize() {
}
}
- if (role() == blink::WebAXRoleAlert && first_time_)
- manager()->NotifyAccessibilityEvent(blink::WebAXEventAlert, this);
+ if (role() == ui::AX_ROLE_ALERT && first_time_)
+ manager()->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, this);
base::string16 live;
if (GetString16Attribute(
- AccessibilityNodeData::ATTR_CONTAINER_LIVE_STATUS, &live)) {
+ ui::AX_ATTR_CONTAINER_LIVE_STATUS, &live)) {
NotifyLiveRegionUpdate(live);
}
@@ -596,15 +595,14 @@ void BrowserAccessibilityAndroid::NotifyLiveRegionUpdate(
base::string16 text = GetText();
if (cached_text_ != text) {
if (!text.empty()) {
- manager()->NotifyAccessibilityEvent(blink::WebAXEventShow,
+ manager()->NotifyAccessibilityEvent(ui::AX_EVENT_SHOW,
this);
}
cached_text_ = text;
}
}
-int BrowserAccessibilityAndroid::CountChildrenWithRole(
- blink::WebAXRole role) const {
+int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const {
int count = 0;
for (uint32 i = 0; i < PlatformChildCount(); i++) {
if (PlatformGetChild(i)->role() == role)
diff --git a/content/browser/accessibility/browser_accessibility_android.h b/content/browser/accessibility/browser_accessibility_android.h
index 2968184..b51a468 100644
--- a/content/browser/accessibility/browser_accessibility_android.h
+++ b/content/browser/accessibility/browser_accessibility_android.h
@@ -87,7 +87,7 @@ class BrowserAccessibilityAndroid : public BrowserAccessibility {
void NotifyLiveRegionUpdate(base::string16& aria_live);
- int CountChildrenWithRole(blink::WebAXRole role) const;
+ int CountChildrenWithRole(ui::AXRole role) const;
base::string16 cached_text_;
bool first_time_;
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.h b/content/browser/accessibility/browser_accessibility_cocoa.h
index 9ac751f..11b44ac 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.h
+++ b/content/browser/accessibility/browser_accessibility_cocoa.h
@@ -10,7 +10,6 @@
#import "base/mac/scoped_nsobject.h"
#include "content/browser/accessibility/browser_accessibility.h"
#import "content/browser/accessibility/browser_accessibility_delegate_mac.h"
-#include "third_party/WebKit/public/web/WebAXEnums.h"
// BrowserAccessibilityCocoa is a cocoa wrapper around the BrowserAccessibility
// object. The renderer converts webkit's accessibility tree into a
@@ -40,7 +39,7 @@
// Convenience method to get the internal, cross-platform role
// from browserAccessibility_.
-- (blink::WebAXRole)internalRole;
+- (ui::AXRole)internalRole;
// Return the method name for the given attribute. For testing only.
- (NSString*)methodNameForAttribute:(NSString*)attribute;
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 6164f8a..9e3e771 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -22,16 +22,16 @@
// this object.
extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element);
-using content::AccessibilityNodeData;
+using ui::AXNodeData;
using content::BrowserAccessibility;
using content::BrowserAccessibilityManager;
using content::BrowserAccessibilityManagerMac;
using content::ContentClient;
-typedef AccessibilityNodeData::StringAttribute StringAttribute;
+typedef ui::AXStringAttribute StringAttribute;
namespace {
-// Returns an autoreleased copy of the AccessibilityNodeData's attribute.
+// Returns an autoreleased copy of the AXNodeData's attribute.
NSString* NSStringForStringAttribute(
BrowserAccessibility* browserAccessibility,
StringAttribute attribute) {
@@ -40,129 +40,126 @@ NSString* NSStringForStringAttribute(
}
struct MapEntry {
- blink::WebAXRole webKitValue;
+ ui::AXRole webKitValue;
NSString* nativeValue;
};
-typedef std::map<blink::WebAXRole, NSString*> RoleMap;
+typedef std::map<ui::AXRole, NSString*> RoleMap;
-// GetState checks the bitmask used in AccessibilityNodeData to check
+// GetState checks the bitmask used in AXNodeData to check
// if the given state was set on the accessibility object.
-bool GetState(BrowserAccessibility* accessibility, blink::WebAXState state) {
+bool GetState(BrowserAccessibility* accessibility, ui::AXState state) {
return ((accessibility->state() >> state) & 1);
}
RoleMap BuildRoleMap() {
const MapEntry roles[] = {
- { blink::WebAXRoleAlert, NSAccessibilityGroupRole },
- { blink::WebAXRoleAlertDialog, NSAccessibilityGroupRole },
- { blink::WebAXRoleAnnotation, NSAccessibilityUnknownRole },
- { blink::WebAXRoleApplication, NSAccessibilityGroupRole },
- { blink::WebAXRoleArticle, NSAccessibilityGroupRole },
- { blink::WebAXRoleBrowser, NSAccessibilityBrowserRole },
- { blink::WebAXRoleBusyIndicator, NSAccessibilityBusyIndicatorRole },
- { blink::WebAXRoleButton, NSAccessibilityButtonRole },
- { blink::WebAXRoleCanvas, NSAccessibilityImageRole },
- { blink::WebAXRoleCell, @"AXCell" },
- { blink::WebAXRoleCheckBox, NSAccessibilityCheckBoxRole },
- { blink::WebAXRoleColorWell, NSAccessibilityColorWellRole },
- { blink::WebAXRoleComboBox, NSAccessibilityComboBoxRole },
- { blink::WebAXRoleColumn, NSAccessibilityColumnRole },
- { blink::WebAXRoleColumnHeader, @"AXCell" },
- { blink::WebAXRoleDefinition, NSAccessibilityGroupRole },
- { blink::WebAXRoleDescriptionListDetail, NSAccessibilityGroupRole },
- { blink::WebAXRoleDescriptionListTerm, NSAccessibilityGroupRole },
- { blink::WebAXRoleDialog, NSAccessibilityGroupRole },
- { blink::WebAXRoleDirectory, NSAccessibilityListRole },
- { blink::WebAXRoleDisclosureTriangle,
- NSAccessibilityDisclosureTriangleRole },
- { blink::WebAXRoleDiv, NSAccessibilityGroupRole },
- { blink::WebAXRoleDocument, NSAccessibilityGroupRole },
- { blink::WebAXRoleDrawer, NSAccessibilityDrawerRole },
- { blink::WebAXRoleEditableText, NSAccessibilityTextFieldRole },
- { blink::WebAXRoleFooter, NSAccessibilityGroupRole },
- { blink::WebAXRoleForm, NSAccessibilityGroupRole },
- { blink::WebAXRoleGrid, NSAccessibilityGridRole },
- { blink::WebAXRoleGroup, NSAccessibilityGroupRole },
- { blink::WebAXRoleGrowArea, NSAccessibilityGrowAreaRole },
- { blink::WebAXRoleHeading, @"AXHeading" },
- { blink::WebAXRoleHelpTag, NSAccessibilityHelpTagRole },
- { blink::WebAXRoleHorizontalRule, NSAccessibilityGroupRole },
- { blink::WebAXRoleIgnored, NSAccessibilityUnknownRole },
- { blink::WebAXRoleImage, NSAccessibilityImageRole },
- { blink::WebAXRoleImageMap, NSAccessibilityGroupRole },
- { blink::WebAXRoleImageMapLink, NSAccessibilityLinkRole },
- { blink::WebAXRoleIncrementor, NSAccessibilityIncrementorRole },
- { blink::WebAXRoleLabel, NSAccessibilityGroupRole },
- { blink::WebAXRoleApplication, NSAccessibilityGroupRole },
- { blink::WebAXRoleBanner, NSAccessibilityGroupRole },
- { blink::WebAXRoleComplementary, NSAccessibilityGroupRole },
- { blink::WebAXRoleContentInfo, NSAccessibilityGroupRole },
- { blink::WebAXRoleMain, NSAccessibilityGroupRole },
- { blink::WebAXRoleNavigation, NSAccessibilityGroupRole },
- { blink::WebAXRoleSearch, NSAccessibilityGroupRole },
- { blink::WebAXRoleLink, NSAccessibilityLinkRole },
- { blink::WebAXRoleList, NSAccessibilityListRole },
- { blink::WebAXRoleListItem, NSAccessibilityGroupRole },
- { blink::WebAXRoleListMarker, @"AXListMarker" },
- { blink::WebAXRoleListBox, NSAccessibilityListRole },
- { blink::WebAXRoleListBoxOption, NSAccessibilityStaticTextRole },
- { blink::WebAXRoleLog, NSAccessibilityGroupRole },
- { blink::WebAXRoleMarquee, NSAccessibilityGroupRole },
- { blink::WebAXRoleMath, NSAccessibilityGroupRole },
- { blink::WebAXRoleMatte, NSAccessibilityMatteRole },
- { blink::WebAXRoleMenu, NSAccessibilityMenuRole },
- { blink::WebAXRoleMenuBar, NSAccessibilityMenuBarRole },
- { blink::WebAXRoleMenuItem, NSAccessibilityMenuItemRole },
- { blink::WebAXRoleMenuButton, NSAccessibilityButtonRole },
- { blink::WebAXRoleMenuListOption, NSAccessibilityMenuItemRole },
- { blink::WebAXRoleMenuListPopup, NSAccessibilityUnknownRole },
- { blink::WebAXRoleNote, NSAccessibilityGroupRole },
- { blink::WebAXRoleOutline, NSAccessibilityOutlineRole },
- { blink::WebAXRoleParagraph, NSAccessibilityGroupRole },
- { blink::WebAXRolePopUpButton, NSAccessibilityPopUpButtonRole },
- { blink::WebAXRolePresentational, NSAccessibilityGroupRole },
- { blink::WebAXRoleProgressIndicator,
- NSAccessibilityProgressIndicatorRole },
- { blink::WebAXRoleRadioButton, NSAccessibilityRadioButtonRole },
- { blink::WebAXRoleRadioGroup, NSAccessibilityRadioGroupRole },
- { blink::WebAXRoleRegion, NSAccessibilityGroupRole },
- { blink::WebAXRoleRootWebArea, @"AXWebArea" },
- { blink::WebAXRoleRow, NSAccessibilityRowRole },
- { blink::WebAXRoleRowHeader, @"AXCell" },
- { blink::WebAXRoleRuler, NSAccessibilityRulerRole },
- { blink::WebAXRoleRulerMarker, NSAccessibilityRulerMarkerRole },
+ { ui::AX_ROLE_ALERT, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_ALERT_DIALOG, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_ANNOTATION, NSAccessibilityUnknownRole },
+ { ui::AX_ROLE_APPLICATION, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_ARTICLE, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_BANNER, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_BROWSER, NSAccessibilityBrowserRole },
+ { ui::AX_ROLE_BUSY_INDICATOR, NSAccessibilityBusyIndicatorRole },
+ { ui::AX_ROLE_BUTTON, NSAccessibilityButtonRole },
+ { ui::AX_ROLE_CANVAS, NSAccessibilityImageRole },
+ { ui::AX_ROLE_CELL, @"AXCell" },
+ { ui::AX_ROLE_CHECK_BOX, NSAccessibilityCheckBoxRole },
+ { ui::AX_ROLE_COLOR_WELL, NSAccessibilityColorWellRole },
+ { ui::AX_ROLE_COLUMN, NSAccessibilityColumnRole },
+ { ui::AX_ROLE_COLUMN_HEADER, @"AXCell" },
+ { ui::AX_ROLE_COMBO_BOX, NSAccessibilityComboBoxRole },
+ { ui::AX_ROLE_COMPLEMENTARY, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_CONTENT_INFO, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DEFINITION, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DESCRIPTION_LIST_DETAIL, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DESCRIPTION_LIST_TERM, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DIALOG, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DIRECTORY, NSAccessibilityListRole },
+ { ui::AX_ROLE_DISCLOSURE_TRIANGLE, NSAccessibilityDisclosureTriangleRole },
+ { ui::AX_ROLE_DIV, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DOCUMENT, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_DRAWER, NSAccessibilityDrawerRole },
+ { ui::AX_ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole },
+ { ui::AX_ROLE_FOOTER, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_FORM, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_GRID, NSAccessibilityGridRole },
+ { ui::AX_ROLE_GROUP, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_GROW_AREA, NSAccessibilityGrowAreaRole },
+ { ui::AX_ROLE_HEADING, @"AXHeading" },
+ { ui::AX_ROLE_HELP_TAG, NSAccessibilityHelpTagRole },
+ { ui::AX_ROLE_HORIZONTAL_RULE, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_IGNORED, NSAccessibilityUnknownRole },
+ { ui::AX_ROLE_IMAGE, NSAccessibilityImageRole },
+ { ui::AX_ROLE_IMAGE_MAP, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole },
+ { ui::AX_ROLE_INCREMENTOR, NSAccessibilityIncrementorRole },
+ { ui::AX_ROLE_LABEL, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_LINK, NSAccessibilityLinkRole },
+ { ui::AX_ROLE_LIST, NSAccessibilityListRole },
+ { ui::AX_ROLE_LIST_BOX, NSAccessibilityListRole },
+ { ui::AX_ROLE_LIST_BOX_OPTION, NSAccessibilityStaticTextRole },
+ { ui::AX_ROLE_LIST_ITEM, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_LIST_MARKER, @"AXListMarker" },
+ { ui::AX_ROLE_LOG, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_MAIN, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_MARQUEE, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_MATH, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_MATTE, NSAccessibilityMatteRole },
+ { ui::AX_ROLE_MENU, NSAccessibilityMenuRole },
+ { ui::AX_ROLE_MENU_BAR, NSAccessibilityMenuBarRole },
+ { ui::AX_ROLE_MENU_BUTTON, NSAccessibilityButtonRole },
+ { ui::AX_ROLE_MENU_ITEM, NSAccessibilityMenuItemRole },
+ { ui::AX_ROLE_MENU_LIST_OPTION, NSAccessibilityMenuItemRole },
+ { ui::AX_ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole },
+ { ui::AX_ROLE_NAVIGATION, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_NOTE, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_OUTLINE, NSAccessibilityOutlineRole },
+ { ui::AX_ROLE_PARAGRAPH, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_POP_UP_BUTTON, NSAccessibilityPopUpButtonRole },
+ { ui::AX_ROLE_PRESENTATIONAL, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_PROGRESS_INDICATOR, NSAccessibilityProgressIndicatorRole },
+ { ui::AX_ROLE_RADIO_BUTTON, NSAccessibilityRadioButtonRole },
+ { ui::AX_ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole },
+ { ui::AX_ROLE_REGION, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_ROOT_WEB_AREA, @"AXWebArea" },
+ { ui::AX_ROLE_ROW, NSAccessibilityRowRole },
+ { ui::AX_ROLE_ROW_HEADER, @"AXCell" },
+ { ui::AX_ROLE_RULER, NSAccessibilityRulerRole },
+ { ui::AX_ROLE_RULER_MARKER, NSAccessibilityRulerMarkerRole },
+ { ui::AX_ROLE_SCROLL_BAR, NSAccessibilityScrollBarRole },
+ { ui::AX_ROLE_SEARCH, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_SHEET, NSAccessibilitySheetRole },
+ { ui::AX_ROLE_SLIDER, NSAccessibilitySliderRole },
+ { ui::AX_ROLE_SLIDER_THUMB, NSAccessibilityValueIndicatorRole },
+ { ui::AX_ROLE_SPIN_BUTTON, NSAccessibilitySliderRole },
+ { ui::AX_ROLE_SPLITTER, NSAccessibilitySplitterRole },
+ { ui::AX_ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole },
+ { ui::AX_ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole },
+ { ui::AX_ROLE_STATUS, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_SVG_ROOT, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole },
+ { ui::AX_ROLE_TAB, NSAccessibilityRadioButtonRole },
+ { ui::AX_ROLE_TABLE, NSAccessibilityTableRole },
+ { ui::AX_ROLE_TABLE_HEADER_CONTAINER, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_TAB_LIST, NSAccessibilityTabGroupRole },
+ { ui::AX_ROLE_TAB_PANEL, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_TEXT_AREA, NSAccessibilityTextAreaRole },
+ { ui::AX_ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole },
+ { ui::AX_ROLE_TIMER, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_TOGGLE_BUTTON, NSAccessibilityButtonRole },
+ { ui::AX_ROLE_TOOLBAR, NSAccessibilityToolbarRole },
+ { ui::AX_ROLE_TOOLTIP, NSAccessibilityGroupRole },
+ { ui::AX_ROLE_TREE, NSAccessibilityOutlineRole },
+ { ui::AX_ROLE_TREE_GRID, NSAccessibilityTableRole },
+ { ui::AX_ROLE_TREE_ITEM, NSAccessibilityRowRole },
+ { ui::AX_ROLE_VALUE_INDICATOR, NSAccessibilityValueIndicatorRole },
+ { ui::AX_ROLE_WEB_AREA, @"AXWebArea" },
+ { ui::AX_ROLE_WINDOW, NSAccessibilityWindowRole },
+
// TODO(dtseng): we don't correctly support the attributes for these roles.
- // { blink::WebAXRoleScrollArea, NSAccessibilityScrollAreaRole },
- { blink::WebAXRoleScrollBar, NSAccessibilityScrollBarRole },
- { blink::WebAXRoleSheet, NSAccessibilitySheetRole },
- { blink::WebAXRoleSlider, NSAccessibilitySliderRole },
- { blink::WebAXRoleSliderThumb, NSAccessibilityValueIndicatorRole },
- { blink::WebAXRoleSpinButton, NSAccessibilitySliderRole },
- { blink::WebAXRoleSplitter, NSAccessibilitySplitterRole },
- { blink::WebAXRoleSplitGroup, NSAccessibilitySplitGroupRole },
- { blink::WebAXRoleStaticText, NSAccessibilityStaticTextRole },
- { blink::WebAXRoleStatus, NSAccessibilityGroupRole },
- { blink::WebAXRoleSVGRoot, NSAccessibilityGroupRole },
- { blink::WebAXRoleSystemWide, NSAccessibilityUnknownRole },
- { blink::WebAXRoleTab, NSAccessibilityRadioButtonRole },
- { blink::WebAXRoleTabList, NSAccessibilityTabGroupRole },
- { blink::WebAXRoleTabPanel, NSAccessibilityGroupRole },
- { blink::WebAXRoleTable, NSAccessibilityTableRole },
- { blink::WebAXRoleTableHeaderContainer, NSAccessibilityGroupRole },
- { blink::WebAXRoleTextArea, NSAccessibilityTextAreaRole },
- { blink::WebAXRoleTextField, NSAccessibilityTextFieldRole },
- { blink::WebAXRoleTimer, NSAccessibilityGroupRole },
- { blink::WebAXRoleToggleButton, NSAccessibilityButtonRole },
- { blink::WebAXRoleToolbar, NSAccessibilityToolbarRole },
- { blink::WebAXRoleUserInterfaceTooltip, NSAccessibilityGroupRole },
- { blink::WebAXRoleTree, NSAccessibilityOutlineRole },
- { blink::WebAXRoleTreeGrid, NSAccessibilityTableRole },
- { blink::WebAXRoleTreeItem, NSAccessibilityRowRole },
- { blink::WebAXRoleValueIndicator, NSAccessibilityValueIndicatorRole },
- { blink::WebAXRoleLink, NSAccessibilityLinkRole },
- { blink::WebAXRoleWebArea, @"AXWebArea" },
- { blink::WebAXRoleWindow, NSAccessibilityWindowRole },
+ // { ui::AX_ROLE_SCROLL_AREA, NSAccessibilityScrollAreaRole },
};
RoleMap role_map;
@@ -172,8 +169,8 @@ RoleMap BuildRoleMap() {
}
// A mapping of webkit roles to native roles.
-NSString* NativeRoleFromAccessibilityNodeDataRole(
- const blink::WebAXRole& role) {
+NSString* NativeRoleFromAXRole(
+ const ui::AXRole& role) {
CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role,
(BuildRoleMap()));
RoleMap::iterator it = web_accessibility_to_native_role.find(role);
@@ -185,32 +182,32 @@ NSString* NativeRoleFromAccessibilityNodeDataRole(
RoleMap BuildSubroleMap() {
const MapEntry subroles[] = {
- { blink::WebAXRoleAlert, @"AXApplicationAlert" },
- { blink::WebAXRoleAlertDialog, @"AXApplicationAlertDialog" },
- { blink::WebAXRoleArticle, @"AXDocumentArticle" },
- { blink::WebAXRoleDefinition, @"AXDefinition" },
- { blink::WebAXRoleDescriptionListDetail, @"AXDescription" },
- { blink::WebAXRoleDescriptionListTerm, @"AXTerm" },
- { blink::WebAXRoleDialog, @"AXApplicationDialog" },
- { blink::WebAXRoleDocument, @"AXDocument" },
- { blink::WebAXRoleFooter, @"AXLandmarkContentInfo" },
- { blink::WebAXRoleApplication, @"AXLandmarkApplication" },
- { blink::WebAXRoleBanner, @"AXLandmarkBanner" },
- { blink::WebAXRoleComplementary, @"AXLandmarkComplementary" },
- { blink::WebAXRoleContentInfo, @"AXLandmarkContentInfo" },
- { blink::WebAXRoleMain, @"AXLandmarkMain" },
- { blink::WebAXRoleNavigation, @"AXLandmarkNavigation" },
- { blink::WebAXRoleSearch, @"AXLandmarkSearch" },
- { blink::WebAXRoleLog, @"AXApplicationLog" },
- { blink::WebAXRoleMarquee, @"AXApplicationMarquee" },
- { blink::WebAXRoleMath, @"AXDocumentMath" },
- { blink::WebAXRoleNote, @"AXDocumentNote" },
- { blink::WebAXRoleRegion, @"AXDocumentRegion" },
- { blink::WebAXRoleStatus, @"AXApplicationStatus" },
- { blink::WebAXRoleTabPanel, @"AXTabPanel" },
- { blink::WebAXRoleTimer, @"AXApplicationTimer" },
- { blink::WebAXRoleUserInterfaceTooltip, @"AXUserInterfaceTooltip" },
- { blink::WebAXRoleTreeItem, NSAccessibilityOutlineRowSubrole },
+ { ui::AX_ROLE_ALERT, @"AXApplicationAlert" },
+ { ui::AX_ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" },
+ { ui::AX_ROLE_ARTICLE, @"AXDocumentArticle" },
+ { ui::AX_ROLE_DEFINITION, @"AXDefinition" },
+ { ui::AX_ROLE_DESCRIPTION_LIST_DETAIL, @"AXDescription" },
+ { ui::AX_ROLE_DESCRIPTION_LIST_TERM, @"AXTerm" },
+ { ui::AX_ROLE_DIALOG, @"AXApplicationDialog" },
+ { ui::AX_ROLE_DOCUMENT, @"AXDocument" },
+ { ui::AX_ROLE_FOOTER, @"AXLandmarkContentInfo" },
+ { ui::AX_ROLE_APPLICATION, @"AXLandmarkApplication" },
+ { ui::AX_ROLE_BANNER, @"AXLandmarkBanner" },
+ { ui::AX_ROLE_COMPLEMENTARY, @"AXLandmarkComplementary" },
+ { ui::AX_ROLE_CONTENT_INFO, @"AXLandmarkContentInfo" },
+ { ui::AX_ROLE_MAIN, @"AXLandmarkMain" },
+ { ui::AX_ROLE_NAVIGATION, @"AXLandmarkNavigation" },
+ { ui::AX_ROLE_SEARCH, @"AXLandmarkSearch" },
+ { ui::AX_ROLE_LOG, @"AXApplicationLog" },
+ { ui::AX_ROLE_MARQUEE, @"AXApplicationMarquee" },
+ { ui::AX_ROLE_MATH, @"AXDocumentMath" },
+ { ui::AX_ROLE_NOTE, @"AXDocumentNote" },
+ { ui::AX_ROLE_REGION, @"AXDocumentRegion" },
+ { ui::AX_ROLE_STATUS, @"AXApplicationStatus" },
+ { ui::AX_ROLE_TAB_PANEL, @"AXTabPanel" },
+ { ui::AX_ROLE_TIMER, @"AXApplicationTimer" },
+ { ui::AX_ROLE_TOOLTIP, @"AXUserInterfaceTooltip" },
+ { ui::AX_ROLE_TREE_ITEM, NSAccessibilityOutlineRowSubrole },
};
RoleMap subrole_map;
@@ -220,8 +217,8 @@ RoleMap BuildSubroleMap() {
}
// A mapping of webkit roles to native subroles.
-NSString* NativeSubroleFromAccessibilityNodeDataRole(
- const blink::WebAXRole& role) {
+NSString* NativeSubroleFromAXRole(
+ const ui::AXRole& role) {
CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole,
(BuildSubroleMap()));
RoleMap::iterator it = web_accessibility_to_native_subrole.find(role);
@@ -324,29 +321,29 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSString*)accessKey {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_ACCESS_KEY);
+ browserAccessibility_, ui::AX_ATTR_ACCESS_KEY);
}
- (NSNumber*)ariaAtomic {
bool boolValue = browserAccessibility_->GetBoolAttribute(
- AccessibilityNodeData::ATTR_LIVE_ATOMIC);
+ ui::AX_ATTR_LIVE_ATOMIC);
return [NSNumber numberWithBool:boolValue];
}
- (NSNumber*)ariaBusy {
bool boolValue = browserAccessibility_->GetBoolAttribute(
- AccessibilityNodeData::ATTR_LIVE_BUSY);
+ ui::AX_ATTR_LIVE_BUSY);
return [NSNumber numberWithBool:boolValue];
}
- (NSString*)ariaLive {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_LIVE_STATUS);
+ browserAccessibility_, ui::AX_ATTR_LIVE_STATUS);
}
- (NSString*)ariaRelevant {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_LIVE_RELEVANT);
+ browserAccessibility_, ui::AX_ATTR_LIVE_RELEVANT);
}
// Returns an array of BrowserAccessibilityCocoa objects, representing the
@@ -368,7 +365,7 @@ NSDictionary* attributeToMethodNameMap = nil;
// Also, add indirect children (if any).
const std::vector<int32>& indirectChildIds =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS);
+ ui::AX_ATTR_INDIRECT_CHILD_IDS);
for (uint32 i = 0; i < indirectChildIds.size(); ++i) {
int32 child_id = indirectChildIds[i];
BrowserAccessibility* child =
@@ -396,35 +393,35 @@ NSDictionary* attributeToMethodNameMap = nil;
}
- (NSArray*)columnHeaders {
- if ([self internalRole] != blink::WebAXRoleTable &&
- [self internalRole] != blink::WebAXRoleGrid) {
+ if ([self internalRole] != ui::AX_ROLE_TABLE &&
+ [self internalRole] != ui::AX_ROLE_GRID) {
return nil;
}
NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
const std::vector<int32>& uniqueCellIds =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
for (size_t i = 0; i < uniqueCellIds.size(); ++i) {
int id = uniqueCellIds[i];
BrowserAccessibility* cell =
browserAccessibility_->manager()->GetFromRendererID(id);
- if (cell && cell->role() == blink::WebAXRoleColumnHeader)
+ if (cell && cell->role() == ui::AX_ROLE_COLUMN_HEADER)
[ret addObject:cell->ToBrowserAccessibilityCocoa()];
}
return ret;
}
- (NSValue*)columnIndexRange {
- if ([self internalRole] != blink::WebAXRoleCell)
+ if ([self internalRole] != ui::AX_ROLE_CELL)
return nil;
int column = -1;
int colspan = -1;
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column);
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column);
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan);
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN, &colspan);
if (column >= 0 && colspan >= 1)
return [NSValue valueWithRange:NSMakeRange(column, colspan)];
return nil;
@@ -442,7 +439,7 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSString*)description {
std::string description;
if (browserAccessibility_->GetStringAttribute(
- AccessibilityNodeData::ATTR_DESCRIPTION, &description)) {
+ ui::AX_ATTR_DESCRIPTION, &description)) {
return base::SysUTF8ToNSString(description);
}
@@ -451,7 +448,7 @@ NSDictionary* attributeToMethodNameMap = nil;
if (![[self role] isEqualToString:NSAccessibilityImageRole])
return @"";
if (browserAccessibility_->HasStringAttribute(
- AccessibilityNodeData::ATTR_NAME)) {
+ ui::AX_ATTR_NAME)) {
return @"";
}
if ([self titleUIElement])
@@ -461,7 +458,7 @@ NSDictionary* attributeToMethodNameMap = nil;
// Return the base part of the filename as the description.
std::string url;
if (browserAccessibility_->GetStringAttribute(
- AccessibilityNodeData::ATTR_URL, &url)) {
+ ui::AX_ATTR_URL, &url)) {
// Given a url like http://foo.com/bar/baz.png, just return the
// base name, e.g., "baz.png".
size_t leftIndex = url.rfind('/');
@@ -474,9 +471,9 @@ NSDictionary* attributeToMethodNameMap = nil;
}
- (NSNumber*)disclosing {
- if ([self internalRole] == blink::WebAXRoleTreeItem) {
+ if ([self internalRole] == ui::AX_ROLE_TREE_ITEM) {
return [NSNumber numberWithBool:
- GetState(browserAccessibility_, blink::WebAXStateExpanded)];
+ GetState(browserAccessibility_, ui::AX_STATE_EXPANDED)];
} else {
return nil;
}
@@ -489,11 +486,11 @@ NSDictionary* attributeToMethodNameMap = nil;
}
- (NSNumber*)disclosureLevel {
- blink::WebAXRole role = [self internalRole];
- if (role == blink::WebAXRoleRow ||
- role == blink::WebAXRoleTreeItem) {
+ ui::AXRole role = [self internalRole];
+ if (role == ui::AX_ROLE_ROW ||
+ role == ui::AX_ROLE_TREE_ITEM) {
int level = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL);
+ ui::AX_ATTR_HIERARCHICAL_LEVEL);
// Mac disclosureLevel is 0-based, but web levels are 1-based.
if (level > 0)
level--;
@@ -510,7 +507,7 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSNumber*)enabled {
return [NSNumber numberWithBool:
- GetState(browserAccessibility_, blink::WebAXStateEnabled)];
+ GetState(browserAccessibility_, ui::AX_STATE_ENABLED)];
}
- (NSNumber*)focused {
@@ -522,16 +519,16 @@ NSDictionary* attributeToMethodNameMap = nil;
- (id)header {
int headerElementId = -1;
- if ([self internalRole] == blink::WebAXRoleTable ||
- [self internalRole] == blink::WebAXRoleGrid) {
+ if ([self internalRole] == ui::AX_ROLE_TABLE ||
+ [self internalRole] == ui::AX_ROLE_GRID) {
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_HEADER_ID, &headerElementId);
- } else if ([self internalRole] == blink::WebAXRoleColumn) {
+ ui::AX_ATTR_TABLE_HEADER_ID, &headerElementId);
+ } else if ([self internalRole] == ui::AX_ROLE_COLUMN) {
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId);
- } else if ([self internalRole] == blink::WebAXRoleRow) {
+ ui::AX_ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId);
+ } else if ([self internalRole] == ui::AX_ROLE_ROW) {
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_HEADER_ID, &headerElementId);
+ ui::AX_ATTR_TABLE_ROW_HEADER_ID, &headerElementId);
}
if (headerElementId > 0) {
@@ -545,17 +542,17 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSString*)help {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_HELP);
+ browserAccessibility_, ui::AX_ATTR_HELP);
}
- (NSNumber*)index {
- if ([self internalRole] == blink::WebAXRoleColumn) {
+ if ([self internalRole] == ui::AX_ROLE_COLUMN) {
int columnIndex = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_INDEX);
+ ui::AX_ATTR_TABLE_COLUMN_INDEX);
return [NSNumber numberWithInt:columnIndex];
- } else if ([self internalRole] == blink::WebAXRoleRow) {
+ } else if ([self internalRole] == ui::AX_ROLE_ROW) {
int rowIndex = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_INDEX);
+ ui::AX_ATTR_TABLE_ROW_INDEX);
return [NSNumber numberWithInt:rowIndex];
}
@@ -586,29 +583,29 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSNumber*)loadingProgress {
float floatValue = browserAccessibility_->GetFloatAttribute(
- AccessibilityNodeData::ATTR_DOC_LOADING_PROGRESS);
+ ui::AX_ATTR_DOC_LOADING_PROGRESS);
return [NSNumber numberWithFloat:floatValue];
}
- (NSNumber*)maxValue {
float floatValue = browserAccessibility_->GetFloatAttribute(
- AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE);
+ ui::AX_ATTR_MAX_VALUE_FOR_RANGE);
return [NSNumber numberWithFloat:floatValue];
}
- (NSNumber*)minValue {
float floatValue = browserAccessibility_->GetFloatAttribute(
- AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE);
+ ui::AX_ATTR_MIN_VALUE_FOR_RANGE);
return [NSNumber numberWithFloat:floatValue];
}
- (NSString*)orientation {
// We present a spin button as a vertical slider, with a role description
// of "spin button".
- if ([self internalRole] == blink::WebAXRoleSpinButton)
+ if ([self internalRole] == ui::AX_ROLE_SPIN_BUTTON)
return NSAccessibilityVerticalOrientationValue;
- if (GetState(browserAccessibility_, blink::WebAXStateVertical))
+ if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL))
return NSAccessibilityVerticalOrientationValue;
else
return NSAccessibilityHorizontalOrientationValue;
@@ -650,23 +647,23 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSNumber*)required {
return [NSNumber numberWithBool:
- GetState(browserAccessibility_, blink::WebAXStateRequired)];
+ GetState(browserAccessibility_, ui::AX_STATE_REQUIRED)];
}
// Returns an enum indicating the role from browserAccessibility_.
-- (blink::WebAXRole)internalRole {
- return static_cast<blink::WebAXRole>(browserAccessibility_->role());
+- (ui::AXRole)internalRole {
+ return static_cast<ui::AXRole>(browserAccessibility_->role());
}
// Returns a string indicating the NSAccessibility role of this object.
- (NSString*)role {
- blink::WebAXRole role = [self internalRole];
- if (role == blink::WebAXRoleCanvas &&
+ ui::AXRole role = [self internalRole];
+ if (role == ui::AX_ROLE_CANVAS &&
browserAccessibility_->GetBoolAttribute(
- AccessibilityNodeData::ATTR_CANVAS_HAS_FALLBACK)) {
+ ui::AX_ATTR_CANVAS_HAS_FALLBACK)) {
return NSAccessibilityGroupRole;
}
- return NativeRoleFromAccessibilityNodeDataRole(role);
+ return NativeRoleFromAXRole(role);
}
// Returns a string indicating the role description of this object.
@@ -695,10 +692,10 @@ NSDictionary* attributeToMethodNameMap = nil;
[role isEqualToString:NSAccessibilityRadioButtonRole]) {
std::string role;
if (browserAccessibility_->GetHtmlAttribute("role", &role)) {
- blink::WebAXRole internalRole = [self internalRole];
- if ((internalRole != blink::WebAXRoleGroup &&
- internalRole != blink::WebAXRoleListItem) ||
- internalRole == blink::WebAXRoleTab) {
+ ui::AXRole internalRole = [self internalRole];
+ if ((internalRole != ui::AX_ROLE_GROUP &&
+ internalRole != ui::AX_ROLE_LIST_ITEM) ||
+ internalRole == ui::AX_ROLE_TAB) {
// TODO(dtseng): This is not localized; see crbug/84814.
return base::SysUTF8ToNSString(role);
}
@@ -706,10 +703,10 @@ NSDictionary* attributeToMethodNameMap = nil;
}
switch([self internalRole]) {
- case blink::WebAXRoleFooter:
+ case ui::AX_ROLE_FOOTER:
return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_FOOTER));
- case blink::WebAXRoleSpinButton:
+ case ui::AX_ROLE_SPIN_BUTTON:
// This control is similar to what VoiceOver calls a "stepper".
return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_STEPPER));
@@ -721,35 +718,35 @@ NSDictionary* attributeToMethodNameMap = nil;
}
- (NSArray*)rowHeaders {
- if ([self internalRole] != blink::WebAXRoleTable &&
- [self internalRole] != blink::WebAXRoleGrid) {
+ if ([self internalRole] != ui::AX_ROLE_TABLE &&
+ [self internalRole] != ui::AX_ROLE_GRID) {
return nil;
}
NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
const std::vector<int32>& uniqueCellIds =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
for (size_t i = 0; i < uniqueCellIds.size(); ++i) {
int id = uniqueCellIds[i];
BrowserAccessibility* cell =
browserAccessibility_->manager()->GetFromRendererID(id);
- if (cell && cell->role() == blink::WebAXRoleRowHeader)
+ if (cell && cell->role() == ui::AX_ROLE_ROW_HEADER)
[ret addObject:cell->ToBrowserAccessibilityCocoa()];
}
return ret;
}
- (NSValue*)rowIndexRange {
- if ([self internalRole] != blink::WebAXRoleCell)
+ if ([self internalRole] != ui::AX_ROLE_CELL)
return nil;
int row = -1;
int rowspan = -1;
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row);
+ ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row);
browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan);
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN, &rowspan);
if (row >= 0 && rowspan >= 1)
return [NSValue valueWithRange:NSMakeRange(row, rowspan)];
return nil;
@@ -758,16 +755,16 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSArray*)rows {
NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
- if ([self internalRole] == blink::WebAXRoleTable||
- [self internalRole] == blink::WebAXRoleGrid) {
+ if ([self internalRole] == ui::AX_ROLE_TABLE||
+ [self internalRole] == ui::AX_ROLE_GRID) {
for (BrowserAccessibilityCocoa* child in [self children]) {
if ([[child role] isEqualToString:NSAccessibilityRowRole])
[ret addObject:child];
}
- } else if ([self internalRole] == blink::WebAXRoleColumn) {
+ } else if ([self internalRole] == ui::AX_ROLE_COLUMN) {
const std::vector<int32>& indirectChildIds =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS);
+ ui::AX_ATTR_INDIRECT_CHILD_IDS);
for (uint32 i = 0; i < indirectChildIds.size(); ++i) {
int id = indirectChildIds[i];
BrowserAccessibility* rowElement =
@@ -788,16 +785,16 @@ NSDictionary* attributeToMethodNameMap = nil;
// Returns a subrole based upon the role.
- (NSString*) subrole {
- blink::WebAXRole browserAccessibilityRole = [self internalRole];
- if (browserAccessibilityRole == blink::WebAXRoleTextField &&
- GetState(browserAccessibility_, blink::WebAXStateProtected)) {
+ ui::AXRole browserAccessibilityRole = [self internalRole];
+ if (browserAccessibilityRole == ui::AX_ROLE_TEXT_FIELD &&
+ GetState(browserAccessibility_, ui::AX_STATE_PROTECTED)) {
return @"AXSecureTextField";
}
NSString* htmlTag = NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_HTML_TAG);
+ browserAccessibility_, ui::AX_ATTR_HTML_TAG);
- if (browserAccessibilityRole == blink::WebAXRoleList) {
+ if (browserAccessibilityRole == ui::AX_ROLE_LIST) {
if ([htmlTag isEqualToString:@"ul"] ||
[htmlTag isEqualToString:@"ol"]) {
return @"AXContentList";
@@ -806,14 +803,14 @@ NSDictionary* attributeToMethodNameMap = nil;
}
}
- return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole);
+ return NativeSubroleFromAXRole(browserAccessibilityRole);
}
// Returns all tabs in this subtree.
- (NSArray*)tabs {
NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease];
- if ([self internalRole] == blink::WebAXRoleTab)
+ if ([self internalRole] == ui::AX_ROLE_TAB)
[tabSubtree addObject:self];
for (uint i=0; i < [[self children] count]; ++i) {
@@ -827,13 +824,13 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSString*)title {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_NAME);
+ browserAccessibility_, ui::AX_ATTR_NAME);
}
- (id)titleUIElement {
int titleElementId;
if (browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT, &titleElementId)) {
+ ui::AX_ATTR_TITLE_UI_ELEMENT, &titleElementId)) {
BrowserAccessibility* titleElement =
browserAccessibility_->manager()->GetFromRendererID(titleElementId);
if (titleElement)
@@ -845,8 +842,8 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSString*)url {
StringAttribute urlAttribute =
[[self role] isEqualToString:@"AXWebArea"] ?
- AccessibilityNodeData::ATTR_DOC_URL :
- AccessibilityNodeData::ATTR_URL;
+ ui::AX_ATTR_DOC_URL :
+ ui::AX_ATTR_URL;
return NSStringForStringAttribute(browserAccessibility_, urlAttribute);
}
@@ -858,7 +855,7 @@ NSDictionary* attributeToMethodNameMap = nil;
if ([role isEqualToString:@"AXHeading"]) {
int level = 0;
if (browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, &level)) {
+ ui::AX_ATTR_HIERARCHICAL_LEVEL, &level)) {
return [NSNumber numberWithInt:level];
}
} else if ([role isEqualToString:NSAccessibilityButtonRole]) {
@@ -868,14 +865,14 @@ NSDictionary* attributeToMethodNameMap = nil;
[role isEqualToString:NSAccessibilityRadioButtonRole]) {
int value = 0;
value = GetState(
- browserAccessibility_, blink::WebAXStateChecked) ? 1 : 0;
+ browserAccessibility_, ui::AX_STATE_CHECKED) ? 1 : 0;
value = GetState(
- browserAccessibility_, blink::WebAXStateSelected) ?
+ browserAccessibility_, ui::AX_STATE_SELECTED) ?
1 :
value;
if (browserAccessibility_->GetBoolAttribute(
- AccessibilityNodeData::ATTR_BUTTON_MIXED)) {
+ ui::AX_ATTR_BUTTON_MIXED)) {
value = 2;
}
return [NSNumber numberWithInt:value];
@@ -884,28 +881,28 @@ NSDictionary* attributeToMethodNameMap = nil;
[role isEqualToString:NSAccessibilityScrollBarRole]) {
float floatValue;
if (browserAccessibility_->GetFloatAttribute(
- AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &floatValue)) {
+ ui::AX_ATTR_VALUE_FOR_RANGE, &floatValue)) {
return [NSNumber numberWithFloat:floatValue];
}
} else if ([role isEqualToString:NSAccessibilityColorWellRole]) {
int r = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_RED);
+ ui::AX_ATTR_COLOR_VALUE_RED);
int g = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_GREEN);
+ ui::AX_ATTR_COLOR_VALUE_GREEN);
int b = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_BLUE);
+ ui::AX_ATTR_COLOR_VALUE_BLUE);
// This string matches the one returned by a native Mac color well.
return [NSString stringWithFormat:@"rgb %7.5f %7.5f %7.5f 1",
r / 255., g / 255., b / 255.];
}
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_VALUE);
+ browserAccessibility_, ui::AX_ATTR_VALUE);
}
- (NSString*)valueDescription {
return NSStringForStringAttribute(
- browserAccessibility_, AccessibilityNodeData::ATTR_VALUE);
+ browserAccessibility_, ui::AX_ATTR_VALUE);
}
- (NSValue*)visibleCharacterRange {
@@ -917,7 +914,7 @@ NSDictionary* attributeToMethodNameMap = nil;
NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
const std::vector<int32>& uniqueCellIds =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
for (size_t i = 0; i < uniqueCellIds.size(); ++i) {
int id = uniqueCellIds[i];
BrowserAccessibility* cell =
@@ -938,7 +935,7 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSNumber*)visited {
return [NSNumber numberWithBool:
- GetState(browserAccessibility_, blink::WebAXStateVisited)];
+ GetState(browserAccessibility_, ui::AX_STATE_VISITED)];
}
- (id)window {
@@ -963,9 +960,9 @@ NSDictionary* attributeToMethodNameMap = nil;
// TODO(dtseng): refactor remaining attributes.
int selStart, selEnd;
if (browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TEXT_SEL_START, &selStart) &&
+ ui::AX_ATTR_TEXT_SEL_START, &selStart) &&
browserAccessibility_->
- GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_END, &selEnd)) {
+ GetIntAttribute(ui::AX_ATTR_TEXT_SEL_END, &selEnd)) {
if (selStart > selEnd)
std::swap(selStart, selEnd);
int selLength = selEnd - selStart;
@@ -973,7 +970,7 @@ NSDictionary* attributeToMethodNameMap = nil;
NSAccessibilityInsertionPointLineNumberAttribute]) {
const std::vector<int32>& line_breaks =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_LINE_BREAKS);
+ ui::AX_ATTR_LINE_BREAKS);
for (int i = 0; i < static_cast<int>(line_breaks.size()); ++i) {
if (line_breaks[i] > selStart)
return [NSNumber numberWithInt:i];
@@ -982,7 +979,7 @@ NSDictionary* attributeToMethodNameMap = nil;
}
if ([attribute isEqualToString:NSAccessibilitySelectedTextAttribute]) {
std::string value = browserAccessibility_->GetStringAttribute(
- AccessibilityNodeData::ATTR_VALUE);
+ ui::AX_ATTR_VALUE);
return base::SysUTF8ToNSString(value.substr(selStart, selLength));
}
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) {
@@ -1001,14 +998,14 @@ NSDictionary* attributeToMethodNameMap = nil;
const std::vector<int32>& line_breaks =
browserAccessibility_->GetIntListAttribute(
- AccessibilityNodeData::ATTR_LINE_BREAKS);
+ ui::AX_ATTR_LINE_BREAKS);
int len = static_cast<int>(browserAccessibility_->value().size());
if ([attribute isEqualToString:
NSAccessibilityStringForRangeParameterizedAttribute]) {
NSRange range = [(NSValue*)parameter rangeValue];
std::string value = browserAccessibility_->GetStringAttribute(
- AccessibilityNodeData::ATTR_VALUE);
+ ui::AX_ATTR_VALUE);
return base::SysUTF8ToNSString(value.substr(range.location, range.length));
}
@@ -1036,8 +1033,8 @@ NSDictionary* attributeToMethodNameMap = nil;
if ([attribute isEqualToString:
NSAccessibilityCellForColumnAndRowParameterizedAttribute]) {
- if ([self internalRole] != blink::WebAXRoleTable &&
- [self internalRole] != blink::WebAXRoleGrid) {
+ if ([self internalRole] != ui::AX_ROLE_TABLE &&
+ [self internalRole] != ui::AX_ROLE_GRID) {
return nil;
}
if (![parameter isKindOfClass:[NSArray self]])
@@ -1046,9 +1043,9 @@ NSDictionary* attributeToMethodNameMap = nil;
int column = [[array objectAtIndex:0] intValue];
int row = [[array objectAtIndex:1] intValue];
int num_columns = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT);
+ ui::AX_ATTR_TABLE_COLUMN_COUNT);
int num_rows = browserAccessibility_->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_COUNT);
+ ui::AX_ATTR_TABLE_ROW_COUNT);
if (column < 0 || column >= num_columns ||
row < 0 || row >= num_rows) {
return nil;
@@ -1057,11 +1054,11 @@ NSDictionary* attributeToMethodNameMap = nil;
i < browserAccessibility_->PlatformChildCount();
++i) {
BrowserAccessibility* child = browserAccessibility_->PlatformGetChild(i);
- if (child->role() != blink::WebAXRoleRow)
+ if (child->role() != ui::AX_ROLE_ROW)
continue;
int rowIndex;
if (!child->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) {
+ ui::AX_ATTR_TABLE_ROW_INDEX, &rowIndex)) {
continue;
}
if (rowIndex < row)
@@ -1072,11 +1069,11 @@ NSDictionary* attributeToMethodNameMap = nil;
j < child->PlatformChildCount();
++j) {
BrowserAccessibility* cell = child->PlatformGetChild(j);
- if (cell->role() != blink::WebAXRoleCell)
+ if (cell->role() != ui::AX_ROLE_CELL)
continue;
int colIndex;
if (!cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX,
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX,
&colIndex)) {
continue;
}
@@ -1091,7 +1088,7 @@ NSDictionary* attributeToMethodNameMap = nil;
if ([attribute isEqualToString:
NSAccessibilityBoundsForRangeParameterizedAttribute]) {
- if ([self internalRole] != blink::WebAXRoleStaticText)
+ if ([self internalRole] != ui::AX_ROLE_STATIC_TEXT)
return nil;
NSRange range = [(NSValue*)parameter rangeValue];
gfx::Rect rect = browserAccessibility_->GetGlobalBoundsForRange(
@@ -1144,7 +1141,7 @@ NSDictionary* attributeToMethodNameMap = nil;
NSAccessibilityStyleRangeForIndexParameterizedAttribute,
nil];
}
- if ([self internalRole] == blink::WebAXRoleStaticText) {
+ if ([self internalRole] == ui::AX_ROLE_STATIC_TEXT) {
return [NSArray arrayWithObjects:
NSAccessibilityBoundsForRangeParameterizedAttribute,
nil];
@@ -1317,14 +1314,14 @@ NSDictionary* attributeToMethodNameMap = nil;
// Live regions.
if (browserAccessibility_->HasStringAttribute(
- AccessibilityNodeData::ATTR_LIVE_STATUS)) {
+ ui::AX_ATTR_LIVE_STATUS)) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
@"AXARIALive",
@"AXARIARelevant",
nil]];
}
if (browserAccessibility_->HasStringAttribute(
- AccessibilityNodeData::ATTR_CONTAINER_LIVE_STATUS)) {
+ ui::AX_ATTR_CONTAINER_LIVE_STATUS)) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
@"AXARIAAtomic",
@"AXARIABusy",
@@ -1333,7 +1330,7 @@ NSDictionary* attributeToMethodNameMap = nil;
// Title UI Element.
if (browserAccessibility_->HasIntAttribute(
- AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT)) {
+ ui::AX_ATTR_TITLE_UI_ELEMENT)) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
NSAccessibilityTitleUIElementAttribute,
nil]];
@@ -1364,10 +1361,10 @@ NSDictionary* attributeToMethodNameMap = nil;
if ([attribute isEqualToString:NSAccessibilityFocusedAttribute])
return GetState(browserAccessibility_,
- blink::WebAXStateFocusable);
+ ui::AX_STATE_FOCUSABLE);
if ([attribute isEqualToString:NSAccessibilityValueAttribute]) {
return browserAccessibility_->GetBoolAttribute(
- AccessibilityNodeData::ATTR_CAN_SET_VALUE);
+ ui::AX_ATTR_CAN_SET_VALUE);
}
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] &&
([[self role] isEqualToString:NSAccessibilityTextFieldRole] ||
diff --git a/content/browser/accessibility/browser_accessibility_gtk.cc b/content/browser/accessibility/browser_accessibility_gtk.cc
index 06a164c..8c61952 100644
--- a/content/browser/accessibility/browser_accessibility_gtk.cc
+++ b/content/browser/accessibility/browser_accessibility_gtk.cc
@@ -105,7 +105,7 @@ static void browser_accessibility_get_current_value(
return;
float float_val;
- if (obj->GetFloatAttribute(AccessibilityNodeData::ATTR_VALUE_FOR_RANGE,
+ if (obj->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE,
&float_val)) {
memset(value, 0, sizeof(*value));
g_value_init(value, G_TYPE_FLOAT);
@@ -120,7 +120,7 @@ static void browser_accessibility_get_minimum_value(
return;
float float_val;
- if (obj->GetFloatAttribute(AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE,
+ if (obj->GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE,
&float_val)) {
memset(value, 0, sizeof(*value));
g_value_init(value, G_TYPE_FLOAT);
@@ -135,7 +135,7 @@ static void browser_accessibility_get_maximum_value(
return;
float float_val;
- if (obj->GetFloatAttribute(AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE,
+ if (obj->GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE,
&float_val)) {
memset(value, 0, sizeof(*value));
g_value_init(value, G_TYPE_FLOAT);
@@ -179,7 +179,7 @@ static const gchar* browser_accessibility_get_name(AtkObject* atk_object) {
if (!obj)
return NULL;
- return obj->GetStringAttribute(AccessibilityNodeData::ATTR_NAME).c_str();
+ return obj->GetStringAttribute(ui::AX_ATTR_NAME).c_str();
}
static const gchar* browser_accessibility_get_description(
@@ -189,7 +189,7 @@ static const gchar* browser_accessibility_get_description(
return NULL;
return obj->GetStringAttribute(
- AccessibilityNodeData::ATTR_DESCRIPTION).c_str();
+ ui::AX_ATTR_DESCRIPTION).c_str();
}
static AtkObject* browser_accessibility_get_parent(AtkObject* atk_object) {
@@ -255,7 +255,7 @@ static AtkStateSet* browser_accessibility_ref_state_set(AtkObject* atk_object) {
ref_state_set(atk_object);
int32 state = obj->state();
- if (state & (1 << blink::WebAXStateFocusable))
+ if (state & (1 << ui::AX_STATE_FOCUSABLE))
atk_state_set_add_state(state_set, ATK_STATE_FOCUSABLE);
if (obj->manager()->GetFocus(NULL) == obj)
atk_state_set_add_state(state_set, ATK_STATE_FOCUSED);
@@ -364,9 +364,9 @@ static int GetInterfaceMaskFromObject(BrowserAccessibilityGtk* obj) {
interface_mask |= 1 << ATK_COMPONENT_INTERFACE;
int role = obj->role();
- if (role == blink::WebAXRoleProgressIndicator ||
- role == blink::WebAXRoleScrollBar ||
- role == blink::WebAXRoleSlider) {
+ if (role == ui::AX_ROLE_PROGRESS_INDICATOR ||
+ role == ui::AX_ROLE_SCROLL_BAR ||
+ role == ui::AX_ROLE_SLIDER) {
interface_mask |= 1 << ATK_VALUE_INTERFACE;
}
@@ -476,37 +476,37 @@ bool BrowserAccessibilityGtk::IsNative() const {
void BrowserAccessibilityGtk::InitRoleAndState() {
switch(role()) {
- case blink::WebAXRoleDocument:
- case blink::WebAXRoleRootWebArea:
- case blink::WebAXRoleWebArea:
+ case ui::AX_ROLE_DOCUMENT:
+ case ui::AX_ROLE_ROOT_WEB_AREA:
+ case ui::AX_ROLE_WEB_AREA:
atk_role_ = ATK_ROLE_DOCUMENT_WEB;
break;
- case blink::WebAXRoleGroup:
- case blink::WebAXRoleDiv:
+ case ui::AX_ROLE_GROUP:
+ case ui::AX_ROLE_DIV:
atk_role_ = ATK_ROLE_SECTION;
break;
- case blink::WebAXRoleButton:
+ case ui::AX_ROLE_BUTTON:
atk_role_ = ATK_ROLE_PUSH_BUTTON;
break;
- case blink::WebAXRoleCheckBox:
+ case ui::AX_ROLE_CHECK_BOX:
atk_role_ = ATK_ROLE_CHECK_BOX;
break;
- case blink::WebAXRoleComboBox:
+ case ui::AX_ROLE_COMBO_BOX:
atk_role_ = ATK_ROLE_COMBO_BOX;
break;
- case blink::WebAXRoleLink:
+ case ui::AX_ROLE_LINK:
atk_role_ = ATK_ROLE_LINK;
break;
- case blink::WebAXRoleRadioButton:
+ case ui::AX_ROLE_RADIO_BUTTON:
atk_role_ = ATK_ROLE_RADIO_BUTTON;
break;
- case blink::WebAXRoleStaticText:
+ case ui::AX_ROLE_STATIC_TEXT:
atk_role_ = ATK_ROLE_TEXT;
break;
- case blink::WebAXRoleTextArea:
+ case ui::AX_ROLE_TEXT_AREA:
atk_role_ = ATK_ROLE_ENTRY;
break;
- case blink::WebAXRoleTextField:
+ case ui::AX_ROLE_TEXT_FIELD:
atk_role_ = ATK_ROLE_ENTRY;
break;
default:
diff --git a/content/browser/accessibility/browser_accessibility_mac_unittest.mm b/content/browser/accessibility/browser_accessibility_mac_unittest.mm
index 5ff0a38..843b258 100644
--- a/content/browser/accessibility/browser_accessibility_mac_unittest.mm
+++ b/content/browser/accessibility/browser_accessibility_mac_unittest.mm
@@ -64,28 +64,28 @@ class BrowserAccessibilityTest : public ui::CocoaTest {
protected:
void RebuildAccessibilityTree() {
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1000;
root.location.set_width(500);
root.location.set_height(100);
- root.role = blink::WebAXRoleRootWebArea;
- root.AddStringAttribute(AccessibilityNodeData::ATTR_HELP, "HelpText");
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ root.AddStringAttribute(ui::AX_ATTR_HELP, "HelpText");
root.child_ids.push_back(1001);
root.child_ids.push_back(1002);
- AccessibilityNodeData child1;
+ ui::AXNodeData child1;
child1.id = 1001;
child1.SetName("Child1");
child1.location.set_width(250);
child1.location.set_height(100);
- child1.role = blink::WebAXRoleButton;
+ child1.role = ui::AX_ROLE_BUTTON;
- AccessibilityNodeData child2;
+ ui::AXNodeData child2;
child2.id = 1002;
child2.location.set_x(250);
child2.location.set_width(250);
child2.location.set_height(100);
- child2.role = blink::WebAXRoleHeading;
+ child2.role = ui::AX_ROLE_HEADING;
delegate_.reset([[MockAccessibilityDelegate alloc] init]);
manager_.reset(
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc
index 3511852..c667377 100644
--- a/content/browser/accessibility/browser_accessibility_manager.cc
+++ b/content/browser/accessibility/browser_accessibility_manager.cc
@@ -22,7 +22,7 @@ BrowserAccessibility* BrowserAccessibilityFactory::Create() {
// and Win. For any other platform, instantiate the base class.
// static
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory) {
return new BrowserAccessibilityManager(src, delegate, factory);
@@ -40,7 +40,7 @@ BrowserAccessibilityManager::BrowserAccessibilityManager(
}
BrowserAccessibilityManager::BrowserAccessibilityManager(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: delegate_(delegate),
@@ -56,8 +56,8 @@ BrowserAccessibilityManager::~BrowserAccessibilityManager() {
root_->Destroy();
}
-void BrowserAccessibilityManager::Initialize(const AccessibilityNodeData src) {
- std::vector<AccessibilityNodeData> nodes;
+void BrowserAccessibilityManager::Initialize(const ui::AXNodeData src) {
+ std::vector<ui::AXNodeData> nodes;
nodes.push_back(src);
if (!UpdateNodes(nodes))
return;
@@ -66,10 +66,10 @@ void BrowserAccessibilityManager::Initialize(const AccessibilityNodeData src) {
}
// static
-AccessibilityNodeData BrowserAccessibilityManager::GetEmptyDocument() {
- AccessibilityNodeData empty_document;
+ui::AXNodeData BrowserAccessibilityManager::GetEmptyDocument() {
+ ui::AXNodeData empty_document;
empty_document.id = 0;
- empty_document.role = blink::WebAXRoleRootWebArea;
+ empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
return empty_document;
}
@@ -93,7 +93,7 @@ void BrowserAccessibilityManager::GotFocus(bool touch_event_context) {
if (!focus_)
return;
- NotifyAccessibilityEvent(blink::WebAXEventFocus, focus_);
+ NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, focus_);
}
void BrowserAccessibilityManager::WasHidden() {
@@ -102,7 +102,7 @@ void BrowserAccessibilityManager::WasHidden() {
void BrowserAccessibilityManager::GotMouseDown() {
osk_state_ = OSK_ALLOWED_WITHIN_FOCUSED_OBJECT;
- NotifyAccessibilityEvent(blink::WebAXEventFocus, focus_);
+ NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, focus_);
}
bool BrowserAccessibilityManager::IsOSKAllowed(const gfx::Rect& bounds) {
@@ -135,8 +135,8 @@ void BrowserAccessibilityManager::OnAccessibilityEvents(
return;
// Set initial focus when a page is loaded.
- blink::WebAXEvent event_type = param.event_type;
- if (event_type == blink::WebAXEventLoadComplete) {
+ ui::AXEvent event_type = param.event_type;
+ if (event_type == ui::AX_EVENT_LOAD_COMPLETE) {
if (!focus_) {
SetFocus(root_, false);
should_send_initial_focus = true;
@@ -146,7 +146,7 @@ void BrowserAccessibilityManager::OnAccessibilityEvents(
if (should_send_initial_focus &&
(!delegate_ || delegate_->HasFocus())) {
- NotifyAccessibilityEvent(blink::WebAXEventFocus, focus_);
+ NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, focus_);
}
// Now iterate over the events again and fire the events.
@@ -159,9 +159,9 @@ void BrowserAccessibilityManager::OnAccessibilityEvents(
if (!node)
continue;
- blink::WebAXEvent event_type = param.event_type;
- if (event_type == blink::WebAXEventFocus ||
- event_type == blink::WebAXEventBlur) {
+ ui::AXEvent event_type = param.event_type;
+ if (event_type == ui::AX_EVENT_FOCUS ||
+ event_type == ui::AX_EVENT_BLUR) {
SetFocus(node, false);
if (osk_state_ != OSK_DISALLOWED_BECAUSE_TAB_HIDDEN &&
@@ -245,32 +245,32 @@ gfx::Rect BrowserAccessibilityManager::GetViewBounds() {
}
void BrowserAccessibilityManager::UpdateNodesForTesting(
- const AccessibilityNodeData& node1,
- const AccessibilityNodeData& node2 /* = AccessibilityNodeData() */,
- const AccessibilityNodeData& node3 /* = AccessibilityNodeData() */,
- const AccessibilityNodeData& node4 /* = AccessibilityNodeData() */,
- const AccessibilityNodeData& node5 /* = AccessibilityNodeData() */,
- const AccessibilityNodeData& node6 /* = AccessibilityNodeData() */,
- const AccessibilityNodeData& node7 /* = AccessibilityNodeData() */) {
- std::vector<AccessibilityNodeData> nodes;
+ const ui::AXNodeData& node1,
+ const ui::AXNodeData& node2 /* = ui::AXNodeData() */,
+ const ui::AXNodeData& node3 /* = ui::AXNodeData() */,
+ const ui::AXNodeData& node4 /* = ui::AXNodeData() */,
+ const ui::AXNodeData& node5 /* = ui::AXNodeData() */,
+ const ui::AXNodeData& node6 /* = ui::AXNodeData() */,
+ const ui::AXNodeData& node7 /* = ui::AXNodeData() */) {
+ std::vector<ui::AXNodeData> nodes;
nodes.push_back(node1);
- if (node2.id != AccessibilityNodeData().id)
+ if (node2.id != ui::AXNodeData().id)
nodes.push_back(node2);
- if (node3.id != AccessibilityNodeData().id)
+ if (node3.id != ui::AXNodeData().id)
nodes.push_back(node3);
- if (node4.id != AccessibilityNodeData().id)
+ if (node4.id != ui::AXNodeData().id)
nodes.push_back(node4);
- if (node5.id != AccessibilityNodeData().id)
+ if (node5.id != ui::AXNodeData().id)
nodes.push_back(node5);
- if (node6.id != AccessibilityNodeData().id)
+ if (node6.id != ui::AXNodeData().id)
nodes.push_back(node6);
- if (node7.id != AccessibilityNodeData().id)
+ if (node7.id != ui::AXNodeData().id)
nodes.push_back(node7);
UpdateNodes(nodes);
}
bool BrowserAccessibilityManager::UpdateNodes(
- const std::vector<AccessibilityNodeData>& nodes) {
+ const std::vector<ui::AXNodeData>& nodes) {
bool success = true;
// First, update all of the nodes in the tree.
@@ -336,7 +336,7 @@ void BrowserAccessibilityManager::AddNodeToMap(BrowserAccessibility* node) {
renderer_id_map_[node->renderer_id()] = node;
}
-bool BrowserAccessibilityManager::UpdateNode(const AccessibilityNodeData& src) {
+bool BrowserAccessibilityManager::UpdateNode(const ui::AXNodeData& src) {
// This method updates one node in the tree based on serialized data
// received from the renderer.
@@ -354,7 +354,7 @@ bool BrowserAccessibilityManager::UpdateNode(const AccessibilityNodeData& src) {
// and this is a serious error.
BrowserAccessibility* instance = GetFromRendererID(src.id);
if (!instance) {
- if (src.role != blink::WebAXRoleRootWebArea)
+ if (src.role != ui::AX_ROLE_ROOT_WEB_AREA)
return false;
instance = CreateNode(NULL, src.id, 0);
}
@@ -412,7 +412,7 @@ bool BrowserAccessibilityManager::UpdateNode(const AccessibilityNodeData& src) {
instance->SwapChildren(new_children);
// Handle the case where this node is the new root of the tree.
- if (src.role == blink::WebAXRoleRootWebArea &&
+ if (src.role == ui::AX_ROLE_ROOT_WEB_AREA &&
(!root_ || root_->renderer_id() != src.id)) {
if (root_)
root_->Destroy();
@@ -422,9 +422,9 @@ bool BrowserAccessibilityManager::UpdateNode(const AccessibilityNodeData& src) {
}
// Keep track of what node is focused.
- if (src.role != blink::WebAXRoleRootWebArea &&
- src.role != blink::WebAXRoleWebArea &&
- (src.state >> blink::WebAXStateFocused & 1)) {
+ if (src.role != ui::AX_ROLE_ROOT_WEB_AREA &&
+ src.role != ui::AX_ROLE_WEB_AREA &&
+ (src.state >> ui::AX_STATE_FOCUSED & 1)) {
SetFocus(instance, false);
}
return success;
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h
index bcd833c..bd01f39 100644
--- a/content/browser/accessibility/browser_accessibility_manager.h
+++ b/content/browser/accessibility/browser_accessibility_manager.h
@@ -10,9 +10,9 @@
#include "base/containers/hash_tables.h"
#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/content_export.h"
#include "third_party/WebKit/public/web/WebAXEnums.h"
+#include "ui/accessibility/ax_node_data.h"
#include "ui/gfx/native_widget_types.h"
struct AccessibilityHostMsg_EventParams;
@@ -60,18 +60,18 @@ class CONTENT_EXPORT BrowserAccessibilityManager {
// Creates the platform-specific BrowserAccessibilityManager, but
// with no parent window pointer. Only useful for unit tests.
static BrowserAccessibilityManager* Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory());
virtual ~BrowserAccessibilityManager();
- void Initialize(const AccessibilityNodeData src);
+ void Initialize(const ui::AXNodeData src);
- static AccessibilityNodeData GetEmptyDocument();
+ static ui::AXNodeData GetEmptyDocument();
virtual void NotifyAccessibilityEvent(
- blink::WebAXEvent event_type, BrowserAccessibility* node) { }
+ ui::AXEvent event_type, BrowserAccessibility* node) { }
// Return a pointer to the root of the tree, does not make a new reference.
BrowserAccessibility* GetRoot();
@@ -159,13 +159,13 @@ class CONTENT_EXPORT BrowserAccessibilityManager {
// Takes up to 7 nodes at once so tests don't need to create a vector
// each time.
void UpdateNodesForTesting(
- const AccessibilityNodeData& node,
- const AccessibilityNodeData& node2 = AccessibilityNodeData(),
- const AccessibilityNodeData& node3 = AccessibilityNodeData(),
- const AccessibilityNodeData& node4 = AccessibilityNodeData(),
- const AccessibilityNodeData& node5 = AccessibilityNodeData(),
- const AccessibilityNodeData& node6 = AccessibilityNodeData(),
- const AccessibilityNodeData& node7 = AccessibilityNodeData());
+ const ui::AXNodeData& node,
+ const ui::AXNodeData& node2 = ui::AXNodeData(),
+ const ui::AXNodeData& node3 = ui::AXNodeData(),
+ const ui::AXNodeData& node4 = ui::AXNodeData(),
+ const ui::AXNodeData& node5 = ui::AXNodeData(),
+ const ui::AXNodeData& node6 = ui::AXNodeData(),
+ const ui::AXNodeData& node7 = ui::AXNodeData());
protected:
BrowserAccessibilityManager(
@@ -173,7 +173,7 @@ class CONTENT_EXPORT BrowserAccessibilityManager {
BrowserAccessibilityFactory* factory);
BrowserAccessibilityManager(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory);
@@ -206,11 +206,11 @@ class CONTENT_EXPORT BrowserAccessibilityManager {
// Update a set of nodes using data received from the renderer
// process.
- bool UpdateNodes(const std::vector<AccessibilityNodeData>& nodes);
+ bool UpdateNodes(const std::vector<ui::AXNodeData>& nodes);
// Update one node from the tree using data received from the renderer
// process. Returns true on success, false on fatal error.
- bool UpdateNode(const AccessibilityNodeData& src);
+ bool UpdateNode(const ui::AXNodeData& src);
void SetRoot(BrowserAccessibility* root);
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.cc b/content/browser/accessibility/browser_accessibility_manager_android.cc
index 17538e9..017afd1 100644
--- a/content/browser/accessibility/browser_accessibility_manager_android.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_android.cc
@@ -42,7 +42,7 @@ namespace aria_strings {
// static
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory) {
return new BrowserAccessibilityManagerAndroid(ScopedJavaLocalRef<jobject>(),
@@ -56,7 +56,7 @@ BrowserAccessibilityManager::ToBrowserAccessibilityManagerAndroid() {
BrowserAccessibilityManagerAndroid::BrowserAccessibilityManagerAndroid(
ScopedJavaLocalRef<jobject> content_view_core,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: BrowserAccessibilityManager(src, delegate, factory) {
@@ -73,11 +73,11 @@ BrowserAccessibilityManagerAndroid::~BrowserAccessibilityManagerAndroid() {
}
// static
-AccessibilityNodeData BrowserAccessibilityManagerAndroid::GetEmptyDocument() {
- AccessibilityNodeData empty_document;
+ui::AXNodeData BrowserAccessibilityManagerAndroid::GetEmptyDocument() {
+ ui::AXNodeData empty_document;
empty_document.id = 0;
- empty_document.role = blink::WebAXRoleRootWebArea;
- empty_document.state = 1 << blink::WebAXStateReadonly;
+ empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ empty_document.state = 1 << ui::AX_STATE_READONLY;
return empty_document;
}
@@ -94,14 +94,14 @@ void BrowserAccessibilityManagerAndroid::SetContentViewCore(
}
void BrowserAccessibilityManagerAndroid::NotifyAccessibilityEvent(
- blink::WebAXEvent event_type,
+ ui::AXEvent event_type,
BrowserAccessibility* node) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
if (obj.is_null())
return;
- if (event_type == blink::WebAXEventHide)
+ if (event_type == ui::AX_EVENT_HIDE)
return;
// Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify
@@ -111,26 +111,26 @@ void BrowserAccessibilityManagerAndroid::NotifyAccessibilityEvent(
env, obj.obj(), node->renderer_id());
switch (event_type) {
- case blink::WebAXEventLoadComplete:
+ case ui::AX_EVENT_LOAD_COMPLETE:
Java_BrowserAccessibilityManager_handlePageLoaded(
env, obj.obj(), focus_->renderer_id());
break;
- case blink::WebAXEventFocus:
+ case ui::AX_EVENT_FOCUS:
Java_BrowserAccessibilityManager_handleFocusChanged(
env, obj.obj(), node->renderer_id());
break;
- case blink::WebAXEventCheckedStateChanged:
+ case ui::AX_EVENT_CHECKED_STATE_CHANGED:
Java_BrowserAccessibilityManager_handleCheckStateChanged(
env, obj.obj(), node->renderer_id());
break;
- case blink::WebAXEventScrolledToAnchor:
+ case ui::AX_EVENT_SCROLLED_TO_ANCHOR:
Java_BrowserAccessibilityManager_handleScrolledToAnchor(
env, obj.obj(), node->renderer_id());
break;
- case blink::WebAXEventAlert:
+ case ui::AX_EVENT_ALERT:
// An alert is a special case of live region. Fall through to the
// next case to handle it.
- case blink::WebAXEventShow: {
+ case ui::AX_EVENT_SHOW: {
// This event is fired when an object appears in a live region.
// Speak its text.
BrowserAccessibilityAndroid* android_node =
@@ -141,13 +141,13 @@ void BrowserAccessibilityManagerAndroid::NotifyAccessibilityEvent(
env, android_node->GetText()).obj());
break;
}
- case blink::WebAXEventSelectedTextChanged:
+ case ui::AX_EVENT_SELECTED_TEXT_CHANGED:
Java_BrowserAccessibilityManager_handleTextSelectionChanged(
env, obj.obj(), node->renderer_id());
break;
- case blink::WebAXEventChildrenChanged:
- case blink::WebAXEventTextChanged:
- case blink::WebAXEventValueChanged:
+ case ui::AX_EVENT_CHILDREN_CHANGED:
+ case ui::AX_EVENT_TEXT_CHANGED:
+ case ui::AX_EVENT_VALUE_CHANGED:
if (node->IsEditableText()) {
Java_BrowserAccessibilityManager_handleEditableTextChanged(
env, obj.obj(), node->renderer_id());
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.h b/content/browser/accessibility/browser_accessibility_manager_android.h
index 6a9f38d..921ca3a 100644
--- a/content/browser/accessibility/browser_accessibility_manager_android.h
+++ b/content/browser/accessibility/browser_accessibility_manager_android.h
@@ -21,20 +21,20 @@ class CONTENT_EXPORT BrowserAccessibilityManagerAndroid
public:
BrowserAccessibilityManagerAndroid(
base::android::ScopedJavaLocalRef<jobject> content_view_core,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory());
virtual ~BrowserAccessibilityManagerAndroid();
- static AccessibilityNodeData GetEmptyDocument();
+ static ui::AXNodeData GetEmptyDocument();
void SetContentViewCore(
base::android::ScopedJavaLocalRef<jobject> content_view_core);
// Implementation of BrowserAccessibilityManager.
virtual void NotifyAccessibilityEvent(
- blink::WebAXEvent event_type, BrowserAccessibility* node) OVERRIDE;
+ ui::AXEvent event_type, BrowserAccessibility* node) OVERRIDE;
// --------------------------------------------------------------------------
// Methods called from Java via JNI
diff --git a/content/browser/accessibility/browser_accessibility_manager_gtk.cc b/content/browser/accessibility/browser_accessibility_manager_gtk.cc
index e97f8b2..975336f 100644
--- a/content/browser/accessibility/browser_accessibility_manager_gtk.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_gtk.cc
@@ -11,7 +11,7 @@ namespace content {
// static
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory) {
return new BrowserAccessibilityManagerGtk(
@@ -23,7 +23,7 @@ BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
BrowserAccessibilityManagerGtk::BrowserAccessibilityManagerGtk(
GtkWidget* parent_widget,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: BrowserAccessibilityManager(delegate, factory),
@@ -35,27 +35,27 @@ BrowserAccessibilityManagerGtk::~BrowserAccessibilityManagerGtk() {
}
// static
-AccessibilityNodeData BrowserAccessibilityManagerGtk::GetEmptyDocument() {
- AccessibilityNodeData empty_document;
+ui::AXNodeData BrowserAccessibilityManagerGtk::GetEmptyDocument() {
+ ui::AXNodeData empty_document;
empty_document.id = 0;
- empty_document.role = blink::WebAXRoleRootWebArea;
+ empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
empty_document.state =
- 1 << blink::WebAXStateReadonly;
+ 1 << ui::AX_STATE_READONLY;
return empty_document;
}
void BrowserAccessibilityManagerGtk::NotifyAccessibilityEvent(
- blink::WebAXEvent event_type,
+ ui::AXEvent event_type,
BrowserAccessibility* node) {
if (!node->IsNative())
return;
AtkObject* atk_object = node->ToBrowserAccessibilityGtk()->GetAtkObject();
switch (event_type) {
- case blink::WebAXEventChildrenChanged:
+ case ui::AX_EVENT_CHILDREN_CHANGED:
RecursivelySendChildrenChanged(GetRoot()->ToBrowserAccessibilityGtk());
break;
- case blink::WebAXEventFocus:
+ case ui::AX_EVENT_FOCUS:
// Note: the focus-event was deprecated in ATK 2.9.4
// See https://bugzilla.gnome.org/show_bug.cgi?id=649575#c8
g_signal_emit_by_name(atk_object, "focus-event", true);
diff --git a/content/browser/accessibility/browser_accessibility_manager_gtk.h b/content/browser/accessibility/browser_accessibility_manager_gtk.h
index 97d99d3..6349a81 100644
--- a/content/browser/accessibility/browser_accessibility_manager_gtk.h
+++ b/content/browser/accessibility/browser_accessibility_manager_gtk.h
@@ -18,17 +18,17 @@ class CONTENT_EXPORT BrowserAccessibilityManagerGtk
public:
BrowserAccessibilityManagerGtk(
GtkWidget* parent_widget,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory());
virtual ~BrowserAccessibilityManagerGtk();
- static AccessibilityNodeData GetEmptyDocument();
+ static ui::AXNodeData GetEmptyDocument();
// BrowserAccessibilityManager methods
virtual void NotifyAccessibilityEvent(
- blink::WebAXEvent event_type, BrowserAccessibility* node) OVERRIDE;
+ ui::AXEvent event_type, BrowserAccessibility* node) OVERRIDE;
GtkWidget* parent_widget() { return parent_widget_; }
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.h b/content/browser/accessibility/browser_accessibility_manager_mac.h
index 3b00f05..2b501d6 100644
--- a/content/browser/accessibility/browser_accessibility_manager_mac.h
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.h
@@ -16,15 +16,15 @@ class CONTENT_EXPORT BrowserAccessibilityManagerMac
public:
BrowserAccessibilityManagerMac(
NSView* parent_view,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory());
- static AccessibilityNodeData GetEmptyDocument();
+ static ui::AXNodeData GetEmptyDocument();
// Implementation of BrowserAccessibilityManager.
virtual void NotifyAccessibilityEvent(
- blink::WebAXEvent event_type, BrowserAccessibility* node) OVERRIDE;
+ ui::AXEvent event_type, BrowserAccessibility* node) OVERRIDE;
NSView* parent_view() { return parent_view_; }
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
index 8f07f319..801dca8 100644
--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
@@ -12,7 +12,7 @@ namespace content {
// static
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory) {
return new BrowserAccessibilityManagerMac(NULL, src, delegate, factory);
@@ -20,7 +20,7 @@ BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
BrowserAccessibilityManagerMac::BrowserAccessibilityManagerMac(
NSView* parent_view,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: BrowserAccessibilityManager(src, delegate, factory),
@@ -28,17 +28,17 @@ BrowserAccessibilityManagerMac::BrowserAccessibilityManagerMac(
}
// static
-AccessibilityNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() {
- AccessibilityNodeData empty_document;
+ui::AXNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() {
+ ui::AXNodeData empty_document;
empty_document.id = 0;
- empty_document.role = blink::WebAXRoleRootWebArea;
+ empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
empty_document.state =
- 1 << blink::WebAXStateReadonly;
+ 1 << ui::AX_STATE_READONLY;
return empty_document;
}
void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent(
- blink::WebAXEvent event_type,
+ ui::AXEvent event_type,
BrowserAccessibility* node) {
if (!node->IsNative())
return;
@@ -46,88 +46,88 @@ void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent(
// Refer to AXObjectCache.mm (webkit).
NSString* event_id = @"";
switch (event_type) {
- case blink::WebAXEventActiveDescendantChanged:
- if (node->role() == blink::WebAXRoleTree)
+ case ui::AX_EVENT_ACTIVEDESCENDANTCHANGED:
+ if (node->role() == ui::AX_ROLE_TREE)
event_id = NSAccessibilitySelectedRowsChangedNotification;
else
event_id = NSAccessibilityFocusedUIElementChangedNotification;
break;
- case blink::WebAXEventAlert:
+ case ui::AX_EVENT_ALERT:
// Not used on Mac.
return;
- case blink::WebAXEventBlur:
+ case ui::AX_EVENT_BLUR:
// A no-op on Mac.
return;
- case blink::WebAXEventCheckedStateChanged:
+ case ui::AX_EVENT_CHECKED_STATE_CHANGED:
// Not used on Mac.
return;
- case blink::WebAXEventChildrenChanged:
+ case ui::AX_EVENT_CHILDREN_CHANGED:
// TODO(dtseng): no clear equivalent on Mac.
return;
- case blink::WebAXEventFocus:
+ case ui::AX_EVENT_FOCUS:
event_id = NSAccessibilityFocusedUIElementChangedNotification;
break;
- case blink::WebAXEventLayoutComplete:
+ case ui::AX_EVENT_LAYOUT_COMPLETE:
event_id = @"AXLayoutComplete";
break;
- case blink::WebAXEventLiveRegionChanged:
+ case ui::AX_EVENT_LIVE_REGION_CHANGED:
event_id = @"AXLiveRegionChanged";
break;
- case blink::WebAXEventLoadComplete:
+ case ui::AX_EVENT_LOAD_COMPLETE:
event_id = @"AXLoadComplete";
break;
- case blink::WebAXEventMenuListValueChanged:
+ case ui::AX_EVENT_MENU_LIST_VALUE_CHANGED:
// Not used on Mac.
return;
- case blink::WebAXEventShow:
+ case ui::AX_EVENT_SHOW:
// Not used on Mac.
return;
- case blink::WebAXEventHide:
+ case ui::AX_EVENT_HIDE:
// Not used on Mac.
return;
- case blink::WebAXEventRowCountChanged:
+ case ui::AX_EVENT_ROW_COUNT_CHANGED:
event_id = NSAccessibilityRowCountChangedNotification;
break;
- case blink::WebAXEventRowCollapsed:
+ case ui::AX_EVENT_ROW_COLLAPSED:
event_id = @"AXRowCollapsed";
break;
- case blink::WebAXEventRowExpanded:
+ case ui::AX_EVENT_ROW_EXPANDED:
event_id = @"AXRowExpanded";
break;
- case blink::WebAXEventScrolledToAnchor:
+ case ui::AX_EVENT_SCROLLED_TO_ANCHOR:
// Not used on Mac.
return;
- case blink::WebAXEventSelectedChildrenChanged:
+ case ui::AX_EVENT_SELECTED_CHILDREN_CHANGED:
event_id = NSAccessibilitySelectedChildrenChangedNotification;
break;
- case blink::WebAXEventSelectedTextChanged:
+ case ui::AX_EVENT_SELECTED_TEXT_CHANGED:
event_id = NSAccessibilitySelectedTextChangedNotification;
break;
- case blink::WebAXEventTextInserted:
+ case ui::AX_EVENT_TEXT_INSERTED:
// Not used on Mac.
return;
- case blink::WebAXEventTextRemoved:
+ case ui::AX_EVENT_TEXT_REMOVED:
// Not used on Mac.
return;
- case blink::WebAXEventValueChanged:
+ case ui::AX_EVENT_VALUE_CHANGED:
event_id = NSAccessibilityValueChangedNotification;
break;
- case blink::WebAXEventAriaAttributeChanged:
+ case ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED:
// Not used on Mac.
return;
- case blink::WebAXEventAutocorrectionOccured:
+ case ui::AX_EVENT_AUTOCORRECTION_OCCURED:
// Not used on Mac.
return;
- case blink::WebAXEventInvalidStatusChanged:
+ case ui::AX_EVENT_INVALID_STATUS_CHANGED:
// Not used on Mac.
return;
- case blink::WebAXEventLocationChanged:
+ case ui::AX_EVENT_LOCATION_CHANGED:
// Not used on Mac.
return;
- case blink::WebAXEventMenuListItemSelected:
+ case ui::AX_EVENT_MENU_LIST_ITEM_SELECTED:
// Not used on Mac.
return;
- case blink::WebAXEventTextChanged:
+ case ui::AX_EVENT_TEXT_CHANGED:
// Not used on Mac.
return;
default:
diff --git a/content/browser/accessibility/browser_accessibility_manager_unittest.cc b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
index e390aaa..dadc810 100644
--- a/content/browser/accessibility/browser_accessibility_manager_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
@@ -7,7 +7,6 @@
#include "content/browser/accessibility/browser_accessibility.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/common/accessibility_messages.h"
-#include "content/common/accessibility_node_data.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
@@ -87,31 +86,31 @@ private:
} // anonymous namespace
TEST(BrowserAccessibilityManagerTest, TestNoLeaks) {
- // Create AccessibilityNodeData objects for a simple document tree,
+ // Create ui::AXNodeData objects for a simple document tree,
// representing the accessibility information used to initialize
// BrowserAccessibilityManager.
- AccessibilityNodeData button;
+ ui::AXNodeData button;
button.id = 2;
button.SetName("Button");
- button.role = blink::WebAXRoleButton;
+ button.role = ui::AX_ROLE_BUTTON;
button.state = 0;
- AccessibilityNodeData checkbox;
+ ui::AXNodeData checkbox;
checkbox.id = 3;
checkbox.SetName("Checkbox");
- checkbox.role = blink::WebAXRoleCheckBox;
+ checkbox.role = ui::AX_ROLE_CHECK_BOX;
checkbox.state = 0;
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
root.SetName("Document");
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state = 0;
root.child_ids.push_back(2);
root.child_ids.push_back(3);
// Construct a BrowserAccessibilityManager with this
- // AccessibilityNodeData tree and a factory for an instance-counting
+ // ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility, and ensure that exactly 3 instances were
// created. Note that the manager takes ownership of the factory.
CountedBrowserAccessibility::global_obj_count_ = 0;
@@ -169,28 +168,28 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects) {
// child2
// child3
- AccessibilityNodeData tree1_child1;
+ ui::AXNodeData tree1_child1;
tree1_child1.id = 2;
tree1_child1.SetName("Child1");
- tree1_child1.role = blink::WebAXRoleButton;
+ tree1_child1.role = ui::AX_ROLE_BUTTON;
tree1_child1.state = 0;
- AccessibilityNodeData tree1_child2;
+ ui::AXNodeData tree1_child2;
tree1_child2.id = 3;
tree1_child2.SetName("Child2");
- tree1_child2.role = blink::WebAXRoleButton;
+ tree1_child2.role = ui::AX_ROLE_BUTTON;
tree1_child2.state = 0;
- AccessibilityNodeData tree1_child3;
+ ui::AXNodeData tree1_child3;
tree1_child3.id = 4;
tree1_child3.SetName("Child3");
- tree1_child3.role = blink::WebAXRoleButton;
+ tree1_child3.role = ui::AX_ROLE_BUTTON;
tree1_child3.state = 0;
- AccessibilityNodeData tree1_root;
+ ui::AXNodeData tree1_root;
tree1_root.id = 1;
tree1_root.SetName("Document");
- tree1_root.role = blink::WebAXRoleRootWebArea;
+ tree1_root.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree1_root.state = 0;
tree1_root.child_ids.push_back(2);
tree1_root.child_ids.push_back(3);
@@ -204,16 +203,16 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects) {
// child2
// <-- child3 deleted
- AccessibilityNodeData tree2_child0;
+ ui::AXNodeData tree2_child0;
tree2_child0.id = 5;
tree2_child0.SetName("Child0");
- tree2_child0.role = blink::WebAXRoleButton;
+ tree2_child0.role = ui::AX_ROLE_BUTTON;
tree2_child0.state = 0;
- AccessibilityNodeData tree2_root;
+ ui::AXNodeData tree2_root;
tree2_root.id = 1;
tree2_root.SetName("DocumentChanged");
- tree2_root.role = blink::WebAXRoleRootWebArea;
+ tree2_root.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree2_root.state = 0;
tree2_root.child_ids.push_back(5);
tree2_root.child_ids.push_back(2);
@@ -255,7 +254,7 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects) {
std::vector<AccessibilityHostMsg_EventParams> params;
params.push_back(AccessibilityHostMsg_EventParams());
AccessibilityHostMsg_EventParams* msg = &params[0];
- msg->event_type = blink::WebAXEventChildrenChanged;
+ msg->event_type = ui::AX_EVENT_CHILDREN_CHANGED;
msg->nodes.push_back(tree2_root);
msg->nodes.push_back(tree2_child0);
msg->id = tree2_root.id;
@@ -304,58 +303,58 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects2) {
// child3
// grandchild3
- AccessibilityNodeData tree1_grandchild1;
+ ui::AXNodeData tree1_grandchild1;
tree1_grandchild1.id = 4;
tree1_grandchild1.SetName("GrandChild1");
- tree1_grandchild1.role = blink::WebAXRoleButton;
+ tree1_grandchild1.role = ui::AX_ROLE_BUTTON;
tree1_grandchild1.state = 0;
- AccessibilityNodeData tree1_child1;
+ ui::AXNodeData tree1_child1;
tree1_child1.id = 3;
tree1_child1.SetName("Child1");
- tree1_child1.role = blink::WebAXRoleButton;
+ tree1_child1.role = ui::AX_ROLE_BUTTON;
tree1_child1.state = 0;
tree1_child1.child_ids.push_back(4);
- AccessibilityNodeData tree1_grandchild2;
+ ui::AXNodeData tree1_grandchild2;
tree1_grandchild2.id = 6;
tree1_grandchild2.SetName("GrandChild1");
- tree1_grandchild2.role = blink::WebAXRoleButton;
+ tree1_grandchild2.role = ui::AX_ROLE_BUTTON;
tree1_grandchild2.state = 0;
- AccessibilityNodeData tree1_child2;
+ ui::AXNodeData tree1_child2;
tree1_child2.id = 5;
tree1_child2.SetName("Child2");
- tree1_child2.role = blink::WebAXRoleButton;
+ tree1_child2.role = ui::AX_ROLE_BUTTON;
tree1_child2.state = 0;
tree1_child2.child_ids.push_back(6);
- AccessibilityNodeData tree1_grandchild3;
+ ui::AXNodeData tree1_grandchild3;
tree1_grandchild3.id = 8;
tree1_grandchild3.SetName("GrandChild3");
- tree1_grandchild3.role = blink::WebAXRoleButton;
+ tree1_grandchild3.role = ui::AX_ROLE_BUTTON;
tree1_grandchild3.state = 0;
- AccessibilityNodeData tree1_child3;
+ ui::AXNodeData tree1_child3;
tree1_child3.id = 7;
tree1_child3.SetName("Child3");
- tree1_child3.role = blink::WebAXRoleButton;
+ tree1_child3.role = ui::AX_ROLE_BUTTON;
tree1_child3.state = 0;
tree1_child3.child_ids.push_back(8);
- AccessibilityNodeData tree1_container;
+ ui::AXNodeData tree1_container;
tree1_container.id = 2;
tree1_container.SetName("Container");
- tree1_container.role = blink::WebAXRoleGroup;
+ tree1_container.role = ui::AX_ROLE_GROUP;
tree1_container.state = 0;
tree1_container.child_ids.push_back(3);
tree1_container.child_ids.push_back(5);
tree1_container.child_ids.push_back(7);
- AccessibilityNodeData tree1_root;
+ ui::AXNodeData tree1_root;
tree1_root.id = 1;
tree1_root.SetName("Document");
- tree1_root.role = blink::WebAXRoleRootWebArea;
+ tree1_root.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree1_root.state = 0;
tree1_root.child_ids.push_back(2);
@@ -371,23 +370,23 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects2) {
// grandchild2
// <-- child3 (and grandchild3) deleted
- AccessibilityNodeData tree2_grandchild0;
+ ui::AXNodeData tree2_grandchild0;
tree2_grandchild0.id = 9;
tree2_grandchild0.SetName("GrandChild0");
- tree2_grandchild0.role = blink::WebAXRoleButton;
+ tree2_grandchild0.role = ui::AX_ROLE_BUTTON;
tree2_grandchild0.state = 0;
- AccessibilityNodeData tree2_child0;
+ ui::AXNodeData tree2_child0;
tree2_child0.id = 10;
tree2_child0.SetName("Child0");
- tree2_child0.role = blink::WebAXRoleButton;
+ tree2_child0.role = ui::AX_ROLE_BUTTON;
tree2_child0.state = 0;
tree2_child0.child_ids.push_back(9);
- AccessibilityNodeData tree2_container;
+ ui::AXNodeData tree2_container;
tree2_container.id = 2;
tree2_container.SetName("Container");
- tree2_container.role = blink::WebAXRoleGroup;
+ tree2_container.role = ui::AX_ROLE_GROUP;
tree2_container.state = 0;
tree2_container.child_ids.push_back(10);
tree2_container.child_ids.push_back(3);
@@ -432,7 +431,7 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects2) {
std::vector<AccessibilityHostMsg_EventParams> params;
params.push_back(AccessibilityHostMsg_EventParams());
AccessibilityHostMsg_EventParams* msg = &params[0];
- msg->event_type = blink::WebAXEventChildrenChanged;
+ msg->event_type = ui::AX_EVENT_CHILDREN_CHANGED;
msg->nodes.push_back(tree2_container);
msg->nodes.push_back(tree2_child0);
msg->nodes.push_back(tree2_grandchild0);
@@ -479,22 +478,22 @@ TEST(BrowserAccessibilityManagerTest, TestMoveChildUp) {
// 3
// 4
- AccessibilityNodeData tree1_4;
+ ui::AXNodeData tree1_4;
tree1_4.id = 4;
tree1_4.state = 0;
- AccessibilityNodeData tree1_3;
+ ui::AXNodeData tree1_3;
tree1_3.id = 3;
tree1_3.state = 0;
tree1_3.child_ids.push_back(4);
- AccessibilityNodeData tree1_2;
+ ui::AXNodeData tree1_2;
tree1_2.id = 2;
tree1_2.state = 0;
- AccessibilityNodeData tree1_1;
+ ui::AXNodeData tree1_1;
tree1_1.id = 1;
- tree1_1.role = blink::WebAXRoleRootWebArea;
+ tree1_1.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree1_1.state = 0;
tree1_1.child_ids.push_back(2);
tree1_1.child_ids.push_back(3);
@@ -506,20 +505,20 @@ TEST(BrowserAccessibilityManagerTest, TestMoveChildUp) {
// 6 <-- new
// 5 <-- new
- AccessibilityNodeData tree2_6;
+ ui::AXNodeData tree2_6;
tree2_6.id = 6;
tree2_6.state = 0;
- AccessibilityNodeData tree2_5;
+ ui::AXNodeData tree2_5;
tree2_5.id = 5;
tree2_5.state = 0;
- AccessibilityNodeData tree2_4;
+ ui::AXNodeData tree2_4;
tree2_4.id = 4;
tree2_4.state = 0;
tree2_4.child_ids.push_back(6);
- AccessibilityNodeData tree2_1;
+ ui::AXNodeData tree2_1;
tree2_1.id = 1;
tree2_1.state = 0;
tree2_1.child_ids.push_back(4);
@@ -539,7 +538,7 @@ TEST(BrowserAccessibilityManagerTest, TestMoveChildUp) {
std::vector<AccessibilityHostMsg_EventParams> params;
params.push_back(AccessibilityHostMsg_EventParams());
AccessibilityHostMsg_EventParams* msg = &params[0];
- msg->event_type = blink::WebAXEventChildrenChanged;
+ msg->event_type = ui::AX_EVENT_CHILDREN_CHANGED;
msg->nodes.push_back(tree2_1);
msg->nodes.push_back(tree2_4);
msg->nodes.push_back(tree2_5);
@@ -566,9 +565,9 @@ TEST(BrowserAccessibilityManagerTest, MAYBE_TestFatalError) {
// (which will crash the renderer) if the same id is used in
// two places in the tree.
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.child_ids.push_back(2);
root.child_ids.push_back(2);
@@ -584,18 +583,18 @@ TEST(BrowserAccessibilityManagerTest, MAYBE_TestFatalError) {
factory));
ASSERT_TRUE(delegate->got_fatal_error());
- AccessibilityNodeData root2;
+ ui::AXNodeData root2;
root2.id = 1;
- root2.role = blink::WebAXRoleRootWebArea;
+ root2.role = ui::AX_ROLE_ROOT_WEB_AREA;
root2.child_ids.push_back(2);
root2.child_ids.push_back(3);
- AccessibilityNodeData child1;
+ ui::AXNodeData child1;
child1.id = 2;
child1.child_ids.push_back(4);
child1.child_ids.push_back(5);
- AccessibilityNodeData child2;
+ ui::AXNodeData child2;
child2.id = 3;
child2.child_ids.push_back(6);
child2.child_ids.push_back(5); // Duplicate
@@ -612,23 +611,23 @@ TEST(BrowserAccessibilityManagerTest, MAYBE_TestFatalError) {
}
TEST(BrowserAccessibilityManagerTest, BoundsForRange) {
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
- AccessibilityNodeData static_text;
+ ui::AXNodeData static_text;
static_text.id = 2;
static_text.SetValue("Hello, world.");
- static_text.role = blink::WebAXRoleStaticText;
+ static_text.role = ui::AX_ROLE_STATIC_TEXT;
static_text.location = gfx::Rect(100, 100, 29, 18);
root.child_ids.push_back(2);
- AccessibilityNodeData inline_text1;
+ ui::AXNodeData inline_text1;
inline_text1.id = 3;
inline_text1.SetValue("Hello, ");
- inline_text1.role = blink::WebAXRoleInlineTextBox;
+ inline_text1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text1.location = gfx::Rect(100, 100, 29, 9);
- inline_text1.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text1.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionLR);
std::vector<int32> character_offsets1;
character_offsets1.push_back(6); // 0
@@ -639,15 +638,15 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRange) {
character_offsets1.push_back(29); // 5
character_offsets1.push_back(29); // 6 (note that the space has no width)
inline_text1.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets1);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets1);
static_text.child_ids.push_back(3);
- AccessibilityNodeData inline_text2;
+ ui::AXNodeData inline_text2;
inline_text2.id = 4;
inline_text2.SetValue("world.");
- inline_text2.role = blink::WebAXRoleInlineTextBox;
+ inline_text2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text2.location = gfx::Rect(100, 109, 28, 9);
- inline_text2.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text2.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionLR);
std::vector<int32> character_offsets2;
character_offsets2.push_back(5);
@@ -657,7 +656,7 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRange) {
character_offsets2.push_back(25);
character_offsets2.push_back(28);
inline_text2.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets2);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2);
static_text.child_ids.push_back(4);
scoped_ptr<BrowserAccessibilityManager> manager(
@@ -708,45 +707,45 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRangeBiDi) {
// tests that if something like that were to occur, GetLocalBoundsForRange
// returns the correct bounds for different ranges.
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
- AccessibilityNodeData static_text;
+ ui::AXNodeData static_text;
static_text.id = 2;
static_text.SetValue("123abc");
- static_text.role = blink::WebAXRoleStaticText;
+ static_text.role = ui::AX_ROLE_STATIC_TEXT;
static_text.location = gfx::Rect(100, 100, 60, 20);
root.child_ids.push_back(2);
- AccessibilityNodeData inline_text1;
+ ui::AXNodeData inline_text1;
inline_text1.id = 3;
inline_text1.SetValue("123");
- inline_text1.role = blink::WebAXRoleInlineTextBox;
+ inline_text1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text1.location = gfx::Rect(100, 100, 30, 20);
- inline_text1.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text1.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionLR);
std::vector<int32> character_offsets1;
character_offsets1.push_back(10); // 0
character_offsets1.push_back(20); // 1
character_offsets1.push_back(30); // 2
inline_text1.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets1);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets1);
static_text.child_ids.push_back(3);
- AccessibilityNodeData inline_text2;
+ ui::AXNodeData inline_text2;
inline_text2.id = 4;
inline_text2.SetValue("abc");
- inline_text2.role = blink::WebAXRoleInlineTextBox;
+ inline_text2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text2.location = gfx::Rect(130, 100, 30, 20);
- inline_text2.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text2.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionRL);
std::vector<int32> character_offsets2;
character_offsets2.push_back(10);
character_offsets2.push_back(20);
character_offsets2.push_back(30);
inline_text2.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets2);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2);
static_text.child_ids.push_back(4);
scoped_ptr<BrowserAccessibilityManager> manager(
@@ -788,63 +787,63 @@ TEST(BrowserAccessibilityManagerTest, BoundsForRangeBiDi) {
#define MAYBE_BoundsForRangeOnParentElement BoundsForRangeOnParentElement
#endif
TEST(BrowserAccessibilityManagerTest, MAYBE_BoundsForRangeOnParentElement) {
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.child_ids.push_back(2);
- AccessibilityNodeData div;
+ ui::AXNodeData div;
div.id = 2;
- div.role = blink::WebAXRoleDiv;
+ div.role = ui::AX_ROLE_DIV;
div.location = gfx::Rect(100, 100, 100, 20);
div.child_ids.push_back(3);
div.child_ids.push_back(4);
div.child_ids.push_back(5);
- AccessibilityNodeData static_text1;
+ ui::AXNodeData static_text1;
static_text1.id = 3;
static_text1.SetValue("AB");
- static_text1.role = blink::WebAXRoleStaticText;
+ static_text1.role = ui::AX_ROLE_STATIC_TEXT;
static_text1.location = gfx::Rect(100, 100, 40, 20);
static_text1.child_ids.push_back(6);
- AccessibilityNodeData img;
+ ui::AXNodeData img;
img.id = 4;
- img.role = blink::WebAXRoleImage;
+ img.role = ui::AX_ROLE_IMAGE;
img.location = gfx::Rect(140, 100, 20, 20);
- AccessibilityNodeData static_text2;
+ ui::AXNodeData static_text2;
static_text2.id = 5;
static_text2.SetValue("CD");
- static_text2.role = blink::WebAXRoleStaticText;
+ static_text2.role = ui::AX_ROLE_STATIC_TEXT;
static_text2.location = gfx::Rect(160, 100, 40, 20);
static_text2.child_ids.push_back(7);
- AccessibilityNodeData inline_text1;
+ ui::AXNodeData inline_text1;
inline_text1.id = 6;
inline_text1.SetValue("AB");
- inline_text1.role = blink::WebAXRoleInlineTextBox;
+ inline_text1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text1.location = gfx::Rect(100, 100, 40, 20);
- inline_text1.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text1.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionLR);
std::vector<int32> character_offsets1;
character_offsets1.push_back(20); // 0
character_offsets1.push_back(40); // 1
inline_text1.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets1);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets1);
- AccessibilityNodeData inline_text2;
+ ui::AXNodeData inline_text2;
inline_text2.id = 7;
inline_text2.SetValue("CD");
- inline_text2.role = blink::WebAXRoleInlineTextBox;
+ inline_text2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
inline_text2.location = gfx::Rect(160, 100, 40, 20);
- inline_text2.AddIntAttribute(AccessibilityNodeData::ATTR_TEXT_DIRECTION,
+ inline_text2.AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
blink::WebAXTextDirectionLR);
std::vector<int32> character_offsets2;
character_offsets2.push_back(20); // 0
character_offsets2.push_back(40); // 1
inline_text2.AddIntListAttribute(
- AccessibilityNodeData::ATTR_CHARACTER_OFFSETS, character_offsets2);
+ ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets2);
scoped_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc
index 4e5f8dc..aaecafb 100644
--- a/content/browser/accessibility/browser_accessibility_manager_win.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_win.cc
@@ -97,7 +97,7 @@ class AccessibleHWND
// static
BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory) {
return new BrowserAccessibilityManagerWin(
@@ -112,7 +112,7 @@ BrowserAccessibilityManager::ToBrowserAccessibilityManagerWin() {
BrowserAccessibilityManagerWin::BrowserAccessibilityManagerWin(
HWND parent_hwnd,
IAccessible* parent_iaccessible,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: BrowserAccessibilityManager(src, delegate, factory),
@@ -134,14 +134,14 @@ BrowserAccessibilityManagerWin::~BrowserAccessibilityManagerWin() {
}
// static
-AccessibilityNodeData BrowserAccessibilityManagerWin::GetEmptyDocument() {
- AccessibilityNodeData empty_document;
+ui::AXNodeData BrowserAccessibilityManagerWin::GetEmptyDocument() {
+ ui::AXNodeData empty_document;
empty_document.id = 0;
- empty_document.role = blink::WebAXRoleRootWebArea;
+ empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
empty_document.state =
(1 << blink::WebAXStateEnabled) |
- (1 << blink::WebAXStateReadonly) |
- (1 << blink::WebAXStateBusy);
+ (1 << ui::AX_STATE_READONLY) |
+ (1 << ui::AX_STATE_BUSY);
return empty_document;
}
@@ -184,82 +184,82 @@ void BrowserAccessibilityManagerWin::RemoveNode(BrowserAccessibility* node) {
}
void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent(
- blink::WebAXEvent event_type,
+ ui::AXEvent event_type,
BrowserAccessibility* node) {
- if (node->role() == blink::WebAXRoleInlineTextBox)
+ if (node->role() == ui::AX_ROLE_INLINE_TEXT_BOX)
return;
LONG event_id = EVENT_MIN;
switch (event_type) {
- case blink::WebAXEventActiveDescendantChanged:
+ case ui::AX_EVENT_ACTIVEDESCENDANTCHANGED:
event_id = IA2_EVENT_ACTIVE_DESCENDANT_CHANGED;
break;
- case blink::WebAXEventAlert:
+ case ui::AX_EVENT_ALERT:
event_id = EVENT_SYSTEM_ALERT;
break;
- case blink::WebAXEventAriaAttributeChanged:
+ case ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED:
event_id = IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED;
break;
- case blink::WebAXEventAutocorrectionOccured:
+ case ui::AX_EVENT_AUTOCORRECTION_OCCURED:
event_id = IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED;
break;
- case blink::WebAXEventBlur:
+ case ui::AX_EVENT_BLUR:
// Equivalent to focus on the root.
event_id = EVENT_OBJECT_FOCUS;
node = GetRoot();
break;
- case blink::WebAXEventCheckedStateChanged:
+ case ui::AX_EVENT_CHECKED_STATE_CHANGED:
event_id = EVENT_OBJECT_STATECHANGE;
break;
- case blink::WebAXEventChildrenChanged:
+ case ui::AX_EVENT_CHILDREN_CHANGED:
event_id = EVENT_OBJECT_REORDER;
break;
- case blink::WebAXEventFocus:
+ case ui::AX_EVENT_FOCUS:
event_id = EVENT_OBJECT_FOCUS;
break;
- case blink::WebAXEventInvalidStatusChanged:
+ case ui::AX_EVENT_INVALID_STATUS_CHANGED:
event_id = EVENT_OBJECT_STATECHANGE;
break;
- case blink::WebAXEventLiveRegionChanged:
+ case ui::AX_EVENT_LIVE_REGION_CHANGED:
// TODO: try not firing a native notification at all, since
// on Windows, each individual item in a live region that changes
// already gets its own notification.
event_id = EVENT_OBJECT_REORDER;
break;
- case blink::WebAXEventLoadComplete:
+ case ui::AX_EVENT_LOAD_COMPLETE:
event_id = IA2_EVENT_DOCUMENT_LOAD_COMPLETE;
break;
- case blink::WebAXEventMenuListItemSelected:
+ case ui::AX_EVENT_MENU_LIST_ITEM_SELECTED:
event_id = EVENT_OBJECT_FOCUS;
break;
- case blink::WebAXEventMenuListValueChanged:
+ case ui::AX_EVENT_MENU_LIST_VALUE_CHANGED:
event_id = EVENT_OBJECT_VALUECHANGE;
break;
- case blink::WebAXEventHide:
+ case ui::AX_EVENT_HIDE:
event_id = EVENT_OBJECT_HIDE;
break;
- case blink::WebAXEventShow:
+ case ui::AX_EVENT_SHOW:
event_id = EVENT_OBJECT_SHOW;
break;
- case blink::WebAXEventScrolledToAnchor:
+ case ui::AX_EVENT_SCROLLED_TO_ANCHOR:
event_id = EVENT_SYSTEM_SCROLLINGSTART;
break;
- case blink::WebAXEventSelectedChildrenChanged:
+ case ui::AX_EVENT_SELECTED_CHILDREN_CHANGED:
event_id = EVENT_OBJECT_SELECTIONWITHIN;
break;
- case blink::WebAXEventSelectedTextChanged:
+ case ui::AX_EVENT_SELECTED_TEXT_CHANGED:
event_id = IA2_EVENT_TEXT_CARET_MOVED;
break;
- case blink::WebAXEventTextChanged:
+ case ui::AX_EVENT_TEXT_CHANGED:
event_id = EVENT_OBJECT_NAMECHANGE;
break;
- case blink::WebAXEventTextInserted:
+ case ui::AX_EVENT_TEXT_INSERTED:
event_id = IA2_EVENT_TEXT_INSERTED;
break;
- case blink::WebAXEventTextRemoved:
+ case ui::AX_EVENT_TEXT_REMOVED:
event_id = IA2_EVENT_TEXT_REMOVED;
break;
- case blink::WebAXEventValueChanged:
+ case ui::AX_EVENT_VALUE_CHANGED:
event_id = EVENT_OBJECT_VALUECHANGE;
break;
default:
@@ -280,7 +280,7 @@ void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent(
// If this is a layout complete notification (sent when a container scrolls)
// and there is a descendant tracked object, send a notification on it.
// TODO(dmazzoni): remove once http://crbug.com/113483 is fixed.
- if (event_type == blink::WebAXEventLayoutComplete &&
+ if (event_type == ui::AX_EVENT_LAYOUT_COMPLETE &&
tracked_scroll_object_ &&
tracked_scroll_object_->IsDescendantOf(node)) {
MaybeCallNotifyWinEvent(
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.h b/content/browser/accessibility/browser_accessibility_manager_win.h
index cbfc877..cc0e44b 100644
--- a/content/browser/accessibility/browser_accessibility_manager_win.h
+++ b/content/browser/accessibility/browser_accessibility_manager_win.h
@@ -23,13 +23,13 @@ class CONTENT_EXPORT BrowserAccessibilityManagerWin
BrowserAccessibilityManagerWin(
HWND parent_hwnd,
IAccessible* parent_iaccessible,
- const AccessibilityNodeData& src,
+ const ui::AXNodeData& src,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory());
virtual ~BrowserAccessibilityManagerWin();
- static AccessibilityNodeData GetEmptyDocument();
+ static ui::AXNodeData GetEmptyDocument();
// Get the closest containing HWND.
HWND parent_hwnd() { return parent_hwnd_; }
@@ -47,7 +47,7 @@ class CONTENT_EXPORT BrowserAccessibilityManagerWin
virtual void AddNodeToMap(BrowserAccessibility* node);
virtual void RemoveNode(BrowserAccessibility* node) OVERRIDE;
virtual void NotifyAccessibilityEvent(
- blink::WebAXEvent event_type, BrowserAccessibility* node) OVERRIDE;
+ ui::AXEvent event_type, BrowserAccessibility* node) OVERRIDE;
// Track this object and post a VISIBLE_DATA_CHANGED notification when
// its container scrolls.
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index e6daa9f..451043b 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -380,7 +380,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accDefaultAction(VARIANT var_id,
return E_INVALIDARG;
return target->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_SHORTCUT, def_action);
+ ui::AX_ATTR_SHORTCUT, def_action);
}
STDMETHODIMP BrowserAccessibilityWin::get_accDescription(VARIANT var_id,
@@ -396,7 +396,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accDescription(VARIANT var_id,
return E_INVALIDARG;
return target->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DESCRIPTION, desc);
+ ui::AX_ATTR_DESCRIPTION, desc);
}
STDMETHODIMP BrowserAccessibilityWin::get_accFocus(VARIANT* focus_child) {
@@ -433,7 +433,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accHelp(VARIANT var_id, BSTR* help) {
return E_INVALIDARG;
return target->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_HELP, help);
+ ui::AX_ATTR_HELP, help);
}
STDMETHODIMP BrowserAccessibilityWin::get_accKeyboardShortcut(VARIANT var_id,
@@ -449,7 +449,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accKeyboardShortcut(VARIANT var_id,
return E_INVALIDARG;
return target->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_SHORTCUT, acc_key);
+ ui::AX_ATTR_SHORTCUT, acc_key);
}
STDMETHODIMP BrowserAccessibilityWin::get_accName(VARIANT var_id, BSTR* name) {
@@ -468,7 +468,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accName(VARIANT var_id, BSTR* name) {
// If the name is empty, see if it's labeled by another element.
if (name_str.empty()) {
int title_elem_id;
- if (target->GetIntAttribute(AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT,
+ if (target->GetIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT,
&title_elem_id)) {
BrowserAccessibility* title_elem =
manager()->GetFromRendererID(title_elem_id);
@@ -577,11 +577,11 @@ STDMETHODIMP BrowserAccessibilityWin::get_accValue(VARIANT var_id,
// Expose color well value.
if (target->ia2_role() == IA2_ROLE_COLOR_CHOOSER) {
int r = target->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_RED);
+ ui::AX_ATTR_COLOR_VALUE_RED);
int g = target->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_GREEN);
+ ui::AX_ATTR_COLOR_VALUE_GREEN);
int b = target->GetIntAttribute(
- AccessibilityNodeData::ATTR_COLOR_VALUE_BLUE);
+ ui::AX_ATTR_COLOR_VALUE_BLUE);
base::string16 value_text;
value_text = base::IntToString16((r * 100) / 255) + L"% red " +
base::IntToString16((g * 100) / 255) + L"% green " +
@@ -606,12 +606,12 @@ STDMETHODIMP BrowserAccessibilityWin::get_accSelection(VARIANT* selected) {
if (!instance_active())
return E_FAIL;
- if (blink_role() != blink::WebAXRoleListBox)
+ if (blink_role() != ui::AX_ROLE_LIST_BOX)
return E_NOTIMPL;
unsigned long selected_count = 0;
for (size_t i = 0; i < children().size(); ++i) {
- if (children()[i]->HasState(blink::WebAXStateSelected))
+ if (children()[i]->HasState(ui::AX_STATE_SELECTED))
++selected_count;
}
@@ -622,7 +622,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accSelection(VARIANT* selected) {
if (selected_count == 1) {
for (size_t i = 0; i < children().size(); ++i) {
- if (children()[i]->HasState(blink::WebAXStateSelected)) {
+ if (children()[i]->HasState(ui::AX_STATE_SELECTED)) {
selected->vt = VT_DISPATCH;
selected->pdispVal =
children()[i]->ToBrowserAccessibilityWin()->NewReference();
@@ -637,7 +637,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accSelection(VARIANT* selected) {
enum_variant->AddRef();
unsigned long index = 0;
for (size_t i = 0; i < children().size(); ++i) {
- if (children()[i]->HasState(blink::WebAXStateSelected)) {
+ if (children()[i]->HasState(ui::AX_STATE_SELECTED)) {
enum_variant->ItemAt(index)->vt = VT_DISPATCH;
enum_variant->ItemAt(index)->pdispVal =
children()[i]->ToBrowserAccessibilityWin()->NewReference();
@@ -875,9 +875,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_groupPosition(
if (!group_level || !similar_items_in_group || !position_in_group)
return E_INVALIDARG;
- if (blink_role() == blink::WebAXRoleListBoxOption &&
+ if (blink_role() == ui::AX_ROLE_LIST_BOX_OPTION &&
parent() &&
- parent()->role() == blink::WebAXRoleListBox) {
+ parent()->role() == ui::AX_ROLE_LIST_BOX) {
*group_level = 0;
*similar_items_in_group = parent()->PlatformChildCount();
*position_in_group = index_in_parent() + 1;
@@ -971,7 +971,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_description(BSTR* desc) {
return E_INVALIDARG;
return GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DESCRIPTION, desc);
+ ui::AX_ATTR_DESCRIPTION, desc);
}
STDMETHODIMP BrowserAccessibilityWin::get_imagePosition(
@@ -1034,9 +1034,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_accessibleAt(
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1046,7 +1046,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accessibleAt(
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
DCHECK_EQ(columns * rows, static_cast<int>(cell_ids.size()));
int cell_id = cell_ids[row * columns + column];
@@ -1083,9 +1083,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_childIndex(long row,
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1095,9 +1095,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_childIndex(long row,
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
const std::vector<int32>& unique_cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
DCHECK_EQ(columns * rows, static_cast<int>(cell_ids.size()));
int cell_id = cell_ids[row * columns + column];
for (size_t i = 0; i < unique_cell_ids.size(); ++i) {
@@ -1121,8 +1121,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnDescription(long column,
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
- !GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ !GetIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1132,21 +1132,21 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnDescription(long column,
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
for (int i = 0; i < rows; ++i) {
int cell_id = cell_ids[i * columns + column];
BrowserAccessibilityWin* cell = static_cast<BrowserAccessibilityWin*>(
manager()->GetFromRendererID(cell_id));
- if (cell && cell->blink_role() == blink::WebAXRoleColumnHeader) {
+ if (cell && cell->blink_role() == ui::AX_ROLE_COLUMN_HEADER) {
base::string16 cell_name = cell->GetString16Attribute(
- AccessibilityNodeData::ATTR_NAME);
+ ui::AX_ATTR_NAME);
if (cell_name.size() > 0) {
*description = SysAllocString(cell_name.c_str());
return S_OK;
}
return cell->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DESCRIPTION, description);
+ ui::AX_ATTR_DESCRIPTION, description);
}
}
@@ -1166,8 +1166,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnExtentAt(
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
- !GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ !GetIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1177,14 +1177,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnExtentAt(
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
int cell_id = cell_ids[row * columns + column];
BrowserAccessibilityWin* cell = static_cast<BrowserAccessibilityWin*>(
manager()->GetFromRendererID(cell_id));
int colspan;
if (cell &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
colspan >= 1) {
*n_columns_spanned = colspan;
return S_OK;
@@ -1209,7 +1209,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnIndex(long cell_index,
return E_INVALIDARG;
const std::vector<int32>& unique_cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
int cell_id_count = static_cast<int>(unique_cell_ids.size());
if (cell_index < 0)
return E_INVALIDARG;
@@ -1222,7 +1222,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnIndex(long cell_index,
int col_index;
if (cell &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &col_index)) {
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &col_index)) {
*column_index = col_index;
return S_OK;
}
@@ -1239,7 +1239,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_nColumns(long* column_count) {
int columns;
if (GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns)) {
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns)) {
*column_count = columns;
return S_OK;
}
@@ -1255,7 +1255,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_nRows(long* row_count) {
return E_INVALIDARG;
int rows;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows)) {
+ if (GetIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, &rows)) {
*row_count = rows;
return S_OK;
}
@@ -1308,8 +1308,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowDescription(long row,
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
- !GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ !GetIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1319,21 +1319,21 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowDescription(long row,
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
for (int i = 0; i < columns; ++i) {
int cell_id = cell_ids[row * columns + i];
BrowserAccessibilityWin* cell =
manager()->GetFromRendererID(cell_id)->ToBrowserAccessibilityWin();
- if (cell && cell->blink_role() == blink::WebAXRoleRowHeader) {
+ if (cell && cell->blink_role() == ui::AX_ROLE_ROW_HEADER) {
base::string16 cell_name = cell->GetString16Attribute(
- AccessibilityNodeData::ATTR_NAME);
+ ui::AX_ATTR_NAME);
if (cell_name.size() > 0) {
*description = SysAllocString(cell_name.c_str());
return S_OK;
}
return cell->GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DESCRIPTION, description);
+ ui::AX_ATTR_DESCRIPTION, description);
}
}
@@ -1352,8 +1352,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowExtentAt(long row,
int columns;
int rows;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
- !GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ !GetIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, &rows) ||
columns <= 0 ||
rows <= 0) {
return S_FALSE;
@@ -1363,14 +1363,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowExtentAt(long row,
return E_INVALIDARG;
const std::vector<int32>& cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
int cell_id = cell_ids[row * columns + column];
BrowserAccessibilityWin* cell =
manager()->GetFromRendererID(cell_id)->ToBrowserAccessibilityWin();
int rowspan;
if (cell &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
rowspan >= 1) {
*n_rows_spanned = rowspan;
return S_OK;
@@ -1395,7 +1395,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowIndex(long cell_index,
return E_INVALIDARG;
const std::vector<int32>& unique_cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
int cell_id_count = static_cast<int>(unique_cell_ids.size());
if (cell_index < 0)
return E_INVALIDARG;
@@ -1408,7 +1408,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowIndex(long cell_index,
int cell_row_index;
if (cell &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &cell_row_index)) {
+ ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &cell_row_index)) {
*row_index = cell_row_index;
return S_OK;
}
@@ -1524,7 +1524,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowColumnExtentsAtIndex(
return E_INVALIDARG;
const std::vector<int32>& unique_cell_ids = GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
int cell_id_count = static_cast<int>(unique_cell_ids.size());
if (index < 0)
return E_INVALIDARG;
@@ -1538,9 +1538,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowColumnExtentsAtIndex(
int colspan;
if (cell &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
cell->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
rowspan >= 1 &&
colspan >= 1) {
*row_extents = rowspan;
@@ -1620,7 +1620,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnExtent(
int colspan;
if (GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN, &colspan) &&
colspan >= 1) {
*n_columns_spanned = colspan;
return S_OK;
@@ -1642,12 +1642,12 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnHeaderCells(
int column;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column)) {
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column)) {
return S_FALSE;
}
BrowserAccessibility* table = parent();
- while (table && table->role() != blink::WebAXRoleTable)
+ while (table && table->role() != ui::AX_ROLE_TABLE)
table = table->parent();
if (!table) {
NOTREACHED();
@@ -1657,22 +1657,22 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnHeaderCells(
int columns;
int rows;
if (!table->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
!table->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows)) {
+ ui::AX_ATTR_TABLE_ROW_COUNT, &rows)) {
return S_FALSE;
}
if (columns <= 0 || rows <= 0 || column < 0 || column >= columns)
return S_FALSE;
const std::vector<int32>& cell_ids = table->GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
for (int i = 0; i < rows; ++i) {
int cell_id = cell_ids[i * columns + column];
BrowserAccessibilityWin* cell =
manager()->GetFromRendererID(cell_id)->ToBrowserAccessibilityWin();
- if (cell && cell->blink_role() == blink::WebAXRoleColumnHeader)
+ if (cell && cell->blink_role() == ui::AX_ROLE_COLUMN_HEADER)
(*n_column_header_cells)++;
}
@@ -1682,7 +1682,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnHeaderCells(
for (int i = 0; i < rows; ++i) {
int cell_id = cell_ids[i * columns + column];
BrowserAccessibility* cell = manager()->GetFromRendererID(cell_id);
- if (cell && cell->role() == blink::WebAXRoleColumnHeader) {
+ if (cell && cell->role() == ui::AX_ROLE_COLUMN_HEADER) {
(*cell_accessibles)[index] = static_cast<IAccessible*>(
cell->ToBrowserAccessibilityWin()->NewReference());
++index;
@@ -1701,7 +1701,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnIndex(long* column_index) {
int column;
if (GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column)) {
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column)) {
*column_index = column;
return S_OK;
}
@@ -1718,7 +1718,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowExtent(long* n_rows_spanned) {
int rowspan;
if (GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
rowspan >= 1) {
*n_rows_spanned = rowspan;
return S_OK;
@@ -1740,12 +1740,12 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowHeaderCells(
int row;
if (!GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row)) {
+ ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row)) {
return S_FALSE;
}
BrowserAccessibility* table = parent();
- while (table && table->role() != blink::WebAXRoleTable)
+ while (table && table->role() != ui::AX_ROLE_TABLE)
table = table->parent();
if (!table) {
NOTREACHED();
@@ -1755,21 +1755,21 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowHeaderCells(
int columns;
int rows;
if (!table->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT, &columns) ||
+ ui::AX_ATTR_TABLE_COLUMN_COUNT, &columns) ||
!table->GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_ROW_COUNT, &rows)) {
+ ui::AX_ATTR_TABLE_ROW_COUNT, &rows)) {
return S_FALSE;
}
if (columns <= 0 || rows <= 0 || row < 0 || row >= rows)
return S_FALSE;
const std::vector<int32>& cell_ids = table->GetIntListAttribute(
- AccessibilityNodeData::ATTR_CELL_IDS);
+ ui::AX_ATTR_CELL_IDS);
for (int i = 0; i < columns; ++i) {
int cell_id = cell_ids[row * columns + i];
BrowserAccessibility* cell = manager()->GetFromRendererID(cell_id);
- if (cell && cell->role() == blink::WebAXRoleRowHeader)
+ if (cell && cell->role() == ui::AX_ROLE_ROW_HEADER)
(*n_row_header_cells)++;
}
@@ -1779,7 +1779,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowHeaderCells(
for (int i = 0; i < columns; ++i) {
int cell_id = cell_ids[row * columns + i];
BrowserAccessibility* cell = manager()->GetFromRendererID(cell_id);
- if (cell && cell->role() == blink::WebAXRoleRowHeader) {
+ if (cell && cell->role() == ui::AX_ROLE_ROW_HEADER) {
(*cell_accessibles)[index] = static_cast<IAccessible*>(
cell->ToBrowserAccessibilityWin()->NewReference());
++index;
@@ -1797,7 +1797,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowIndex(long* row_index) {
return E_INVALIDARG;
int row;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row)) {
+ if (GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row)) {
*row_index = row;
return S_OK;
}
@@ -1836,13 +1836,13 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowColumnExtents(
int column;
int rowspan;
int colspan;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row) &&
+ if (GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row) &&
GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column) &&
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column) &&
GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN, &rowspan) &&
GetIntAttribute(
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan)) {
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN, &colspan)) {
*row_index = row;
*column_index = column;
*row_extents = rowspan;
@@ -1864,11 +1864,11 @@ STDMETHODIMP BrowserAccessibilityWin::get_table(IUnknown** table) {
int row;
int column;
- GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row);
- GetIntAttribute(AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column);
+ GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row);
+ GetIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column);
BrowserAccessibility* find_table = parent();
- while (find_table && find_table->role() != blink::WebAXRoleTable)
+ while (find_table && find_table->role() != ui::AX_ROLE_TABLE)
find_table = find_table->parent();
if (!find_table) {
NOTREACHED();
@@ -1904,10 +1904,10 @@ STDMETHODIMP BrowserAccessibilityWin::get_caretOffset(LONG* offset) {
return E_INVALIDARG;
*offset = 0;
- if (blink_role() == blink::WebAXRoleTextField ||
- blink_role() == blink::WebAXRoleTextArea) {
+ if (blink_role() == ui::AX_ROLE_TEXT_FIELD ||
+ blink_role() == ui::AX_ROLE_TEXT_AREA) {
int sel_start = 0;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_START,
+ if (GetIntAttribute(ui::AX_ATTR_TEXT_SEL_START,
&sel_start))
*offset = sel_start;
}
@@ -1960,13 +1960,13 @@ STDMETHODIMP BrowserAccessibilityWin::get_nSelections(LONG* n_selections) {
return E_INVALIDARG;
*n_selections = 0;
- if (blink_role() == blink::WebAXRoleTextField ||
- blink_role() == blink::WebAXRoleTextArea) {
+ if (blink_role() == ui::AX_ROLE_TEXT_FIELD ||
+ blink_role() == ui::AX_ROLE_TEXT_AREA) {
int sel_start = 0;
int sel_end = 0;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_START,
+ if (GetIntAttribute(ui::AX_ATTR_TEXT_SEL_START,
&sel_start) &&
- GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_END, &sel_end) &&
+ GetIntAttribute(ui::AX_ATTR_TEXT_SEL_END, &sel_end) &&
sel_start != sel_end)
*n_selections = 1;
}
@@ -1985,13 +1985,13 @@ STDMETHODIMP BrowserAccessibilityWin::get_selection(LONG selection_index,
*start_offset = 0;
*end_offset = 0;
- if (blink_role() == blink::WebAXRoleTextField ||
- blink_role() == blink::WebAXRoleTextArea) {
+ if (blink_role() == ui::AX_ROLE_TEXT_FIELD ||
+ blink_role() == ui::AX_ROLE_TEXT_AREA) {
int sel_start = 0;
int sel_end = 0;
if (GetIntAttribute(
- AccessibilityNodeData::ATTR_TEXT_SEL_START, &sel_start) &&
- GetIntAttribute(AccessibilityNodeData::ATTR_TEXT_SEL_END, &sel_end)) {
+ ui::AX_ATTR_TEXT_SEL_START, &sel_start) &&
+ GetIntAttribute(ui::AX_ATTR_TEXT_SEL_END, &sel_end)) {
*start_offset = sel_start;
*end_offset = sel_end;
}
@@ -2311,7 +2311,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_currentValue(VARIANT* value) {
float float_val;
if (GetFloatAttribute(
- AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &float_val)) {
+ ui::AX_ATTR_VALUE_FOR_RANGE, &float_val)) {
value->vt = VT_R8;
value->dblVal = float_val;
return S_OK;
@@ -2329,7 +2329,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_minimumValue(VARIANT* value) {
return E_INVALIDARG;
float float_val;
- if (GetFloatAttribute(AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE,
+ if (GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE,
&float_val)) {
value->vt = VT_R8;
value->dblVal = float_val;
@@ -2348,7 +2348,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_maximumValue(VARIANT* value) {
return E_INVALIDARG;
float float_val;
- if (GetFloatAttribute(AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE,
+ if (GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE,
&float_val)) {
value->vt = VT_R8;
value->dblVal = float_val;
@@ -2375,7 +2375,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_URL(BSTR* url) {
if (!url)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(AccessibilityNodeData::ATTR_DOC_URL, url);
+ return GetStringAttributeAsBstr(ui::AX_ATTR_DOC_URL, url);
}
STDMETHODIMP BrowserAccessibilityWin::get_title(BSTR* title) {
@@ -2385,7 +2385,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_title(BSTR* title) {
if (!title)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(AccessibilityNodeData::ATTR_DOC_TITLE, title);
+ return GetStringAttributeAsBstr(ui::AX_ATTR_DOC_TITLE, title);
}
STDMETHODIMP BrowserAccessibilityWin::get_mimeType(BSTR* mime_type) {
@@ -2396,7 +2396,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_mimeType(BSTR* mime_type) {
return E_INVALIDARG;
return GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DOC_MIMETYPE, mime_type);
+ ui::AX_ATTR_DOC_MIMETYPE, mime_type);
}
STDMETHODIMP BrowserAccessibilityWin::get_docType(BSTR* doc_type) {
@@ -2407,7 +2407,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_docType(BSTR* doc_type) {
return E_INVALIDARG;
return GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_DOC_DOCTYPE, doc_type);
+ ui::AX_ATTR_DOC_DOCTYPE, doc_type);
}
//
@@ -2430,7 +2430,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_nodeInfo(
}
base::string16 tag;
- if (GetString16Attribute(AccessibilityNodeData::ATTR_HTML_TAG, &tag))
+ if (GetString16Attribute(ui::AX_ATTR_HTML_TAG, &tag))
*node_name = SysAllocString(tag.c_str());
else
*node_name = NULL;
@@ -2524,7 +2524,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_computedStyle(
base::string16 display;
if (max_style_properties == 0 ||
- !GetString16Attribute(AccessibilityNodeData::ATTR_DISPLAY, &display)) {
+ !GetString16Attribute(ui::AX_ATTR_DISPLAY, &display)) {
*num_style_properties = 0;
return S_OK;
}
@@ -2554,7 +2554,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_computedStyleForProperties(
StringToLowerASCII(&name);
if (name == L"display") {
base::string16 display = GetString16Attribute(
- AccessibilityNodeData::ATTR_DISPLAY);
+ ui::AX_ATTR_DISPLAY);
style_values[i] = SysAllocString(display.c_str());
} else {
style_values[i] = NULL;
@@ -2684,7 +2684,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_domText(BSTR* dom_text) {
return E_INVALIDARG;
return GetStringAttributeAsBstr(
- AccessibilityNodeData::ATTR_NAME, dom_text);
+ ui::AX_ATTR_NAME, dom_text);
}
STDMETHODIMP BrowserAccessibilityWin::get_clippedSubstringBounds(
@@ -2898,17 +2898,17 @@ void BrowserAccessibilityWin::PreInitialize() {
InitRoleAndState();
// Expose the "display" and "tag" attributes.
- StringAttributeToIA2(AccessibilityNodeData::ATTR_DISPLAY, "display");
- StringAttributeToIA2(AccessibilityNodeData::ATTR_HTML_TAG, "tag");
- StringAttributeToIA2(AccessibilityNodeData::ATTR_ROLE, "xml-roles");
+ StringAttributeToIA2(ui::AX_ATTR_DISPLAY, "display");
+ StringAttributeToIA2(ui::AX_ATTR_HTML_TAG, "tag");
+ StringAttributeToIA2(ui::AX_ATTR_ROLE, "xml-roles");
// Expose "level" attribute for headings, trees, etc.
- IntAttributeToIA2(AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, "level");
+ IntAttributeToIA2(ui::AX_ATTR_HIERARCHICAL_LEVEL, "level");
// Expose the set size and position in set for listbox options.
- if (blink_role() == blink::WebAXRoleListBoxOption &&
+ if (blink_role() == ui::AX_ROLE_LIST_BOX_OPTION &&
parent() &&
- parent()->role() == blink::WebAXRoleListBox) {
+ parent()->role() == ui::AX_ROLE_LIST_BOX) {
ia2_attributes_.push_back(
L"setsize:" + base::IntToString16(parent()->PlatformChildCount()));
ia2_attributes_.push_back(
@@ -2922,19 +2922,19 @@ void BrowserAccessibilityWin::PreInitialize() {
}
// Expose live region attributes.
- StringAttributeToIA2(AccessibilityNodeData::ATTR_LIVE_STATUS, "live");
- StringAttributeToIA2(AccessibilityNodeData::ATTR_LIVE_RELEVANT, "relevant");
- BoolAttributeToIA2(AccessibilityNodeData::ATTR_LIVE_ATOMIC, "atomic");
- BoolAttributeToIA2(AccessibilityNodeData::ATTR_LIVE_BUSY, "busy");
+ StringAttributeToIA2(ui::AX_ATTR_LIVE_STATUS, "live");
+ StringAttributeToIA2(ui::AX_ATTR_LIVE_RELEVANT, "relevant");
+ BoolAttributeToIA2(ui::AX_ATTR_LIVE_ATOMIC, "atomic");
+ BoolAttributeToIA2(ui::AX_ATTR_LIVE_BUSY, "busy");
// Expose container live region attributes.
- StringAttributeToIA2(AccessibilityNodeData::ATTR_CONTAINER_LIVE_STATUS,
+ StringAttributeToIA2(ui::AX_ATTR_CONTAINER_LIVE_STATUS,
"container-live");
- StringAttributeToIA2(AccessibilityNodeData::ATTR_CONTAINER_LIVE_RELEVANT,
+ StringAttributeToIA2(ui::AX_ATTR_CONTAINER_LIVE_RELEVANT,
"container-relevant");
- BoolAttributeToIA2(AccessibilityNodeData::ATTR_CONTAINER_LIVE_ATOMIC,
+ BoolAttributeToIA2(ui::AX_ATTR_CONTAINER_LIVE_ATOMIC,
"container-atomic");
- BoolAttributeToIA2(AccessibilityNodeData::ATTR_CONTAINER_LIVE_BUSY,
+ BoolAttributeToIA2(ui::AX_ATTR_CONTAINER_LIVE_BUSY,
"container-busy");
// Expose slider value.
@@ -2947,11 +2947,11 @@ void BrowserAccessibilityWin::PreInitialize() {
// Expose table cell index.
if (ia_role_ == ROLE_SYSTEM_CELL) {
BrowserAccessibility* table = parent();
- while (table && table->role() != blink::WebAXRoleTable)
+ while (table && table->role() != ui::AX_ROLE_TABLE)
table = table->parent();
if (table) {
const std::vector<int32>& unique_cell_ids = table->GetIntListAttribute(
- AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
+ ui::AX_ATTR_UNIQUE_CELL_IDS);
for (size_t i = 0; i < unique_cell_ids.size(); ++i) {
if (unique_cell_ids[i] == renderer_id()) {
ia2_attributes_.push_back(
@@ -2983,10 +2983,10 @@ void BrowserAccessibilityWin::PreInitialize() {
// if any, in "description".
int title_elem_id = GetIntAttribute(
- AccessibilityNodeData::ATTR_TITLE_UI_ELEMENT);
- std::string help = GetStringAttribute(AccessibilityNodeData::ATTR_HELP);
+ ui::AX_ATTR_TITLE_UI_ELEMENT);
+ std::string help = GetStringAttribute(ui::AX_ATTR_HELP);
std::string description = GetStringAttribute(
- AccessibilityNodeData::ATTR_DESCRIPTION);
+ ui::AX_ATTR_DESCRIPTION);
// WebKit annoyingly puts the title in the description if there's no other
// description, which just confuses the rest of the logic. Put it back.
@@ -3017,8 +3017,8 @@ void BrowserAccessibilityWin::PreInitialize() {
// If it's a text field, also consider the placeholder.
std::string placeholder;
- if (blink_role() == blink::WebAXRoleTextField &&
- HasState(blink::WebAXStateFocusable) &&
+ if (blink_role() == ui::AX_ROLE_TEXT_FIELD &&
+ HasState(ui::AX_STATE_FOCUSABLE) &&
GetHtmlAttribute("placeholder", &placeholder)) {
if (name().empty() && !title_elem_id) {
set_name(placeholder);
@@ -3027,22 +3027,22 @@ void BrowserAccessibilityWin::PreInitialize() {
}
}
- SetStringAttribute(AccessibilityNodeData::ATTR_DESCRIPTION, description);
- SetStringAttribute(AccessibilityNodeData::ATTR_HELP, help);
+ SetStringAttribute(ui::AX_ATTR_DESCRIPTION, description);
+ SetStringAttribute(ui::AX_ATTR_HELP, help);
// On Windows, the value of a document should be its url.
- if (blink_role() == blink::WebAXRoleRootWebArea ||
- blink_role() == blink::WebAXRoleWebArea) {
- set_value(GetStringAttribute(AccessibilityNodeData::ATTR_DOC_URL));
+ if (blink_role() == ui::AX_ROLE_ROOT_WEB_AREA ||
+ blink_role() == ui::AX_ROLE_WEB_AREA) {
+ set_value(GetStringAttribute(ui::AX_ATTR_DOC_URL));
}
// For certain roles (listbox option, static text, and list marker)
// WebKit stores the main accessible text in the "value" - swap it so
// that it's the "name".
if (name().empty() &&
- (blink_role() == blink::WebAXRoleListBoxOption ||
- blink_role() == blink::WebAXRoleStaticText ||
- blink_role() == blink::WebAXRoleListMarker)) {
+ (blink_role() == ui::AX_ROLE_LIST_BOX_OPTION ||
+ blink_role() == ui::AX_ROLE_STATIC_TEXT ||
+ blink_role() == ui::AX_ROLE_LIST_MARKER)) {
std::string tmp = value();
set_value(name());
set_name(tmp);
@@ -3051,7 +3051,7 @@ void BrowserAccessibilityWin::PreInitialize() {
// If this doesn't have a value and is linked then set its value to the url
// attribute. This allows screen readers to read an empty link's destination.
if (value().empty() && (ia_state_ & STATE_SYSTEM_LINKED))
- set_value(GetStringAttribute(AccessibilityNodeData::ATTR_URL));
+ set_value(GetStringAttribute(ui::AX_ATTR_URL));
// Clear any old relationships between this node and other nodes.
for (size_t i = 0; i < relations_.size(); ++i)
@@ -3081,7 +3081,7 @@ void BrowserAccessibilityWin::PostInitialize() {
hypertext_.clear();
for (unsigned int i = 0; i < PlatformChildCount(); ++i) {
BrowserAccessibility* child = PlatformGetChild(i);
- if (child->role() == blink::WebAXRoleStaticText) {
+ if (child->role() == ui::AX_ROLE_STATIC_TEXT) {
hypertext_ += base::UTF8ToUTF16(child->name());
} else {
hyperlink_offset_to_index_[hypertext_.size()] = hyperlinks_.size();
@@ -3092,15 +3092,15 @@ void BrowserAccessibilityWin::PostInitialize() {
DCHECK_EQ(hyperlink_offset_to_index_.size(), hyperlinks_.size());
// Fire an event when an alert first appears.
- if (blink_role() == blink::WebAXRoleAlert && first_time_)
- manager()->NotifyAccessibilityEvent(blink::WebAXEventAlert, this);
+ if (blink_role() == ui::AX_ROLE_ALERT && first_time_)
+ manager()->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, this);
// Fire events if text has changed.
base::string16 text = TextForIAccessibleText();
if (previous_text_ != text) {
if (!previous_text_.empty() && !text.empty()) {
manager()->NotifyAccessibilityEvent(
- blink::WebAXEventShow, this);
+ ui::AX_EVENT_SHOW, this);
}
// TODO(dmazzoni): Look into HIDE events, too.
@@ -3118,7 +3118,7 @@ void BrowserAccessibilityWin::PostInitialize() {
// focus for managed descendants is platform-specific.
// Fire a focus event if the focused descendant in a multi-select
// list box changes.
- if (blink_role() == blink::WebAXRoleListBoxOption &&
+ if (blink_role() == ui::AX_ROLE_LIST_BOX_OPTION &&
(ia_state_ & STATE_SYSTEM_FOCUSABLE) &&
(ia_state_ & STATE_SYSTEM_SELECTABLE) &&
(ia_state_ & STATE_SYSTEM_FOCUSED) &&
@@ -3142,8 +3142,8 @@ void BrowserAccessibilityWin::PostInitialize() {
// Fire an event if this container object has scrolled.
int sx = 0;
int sy = 0;
- if (GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_X, &sx) &&
- GetIntAttribute(AccessibilityNodeData::ATTR_SCROLL_Y, &sy)) {
+ if (GetIntAttribute(ui::AX_ATTR_SCROLL_X, &sx) &&
+ GetIntAttribute(ui::AX_ATTR_SCROLL_Y, &sy)) {
if (!first_time_ &&
(sx != previous_scroll_x_ || sy != previous_scroll_y_)) {
manager->MaybeCallNotifyWinEvent(EVENT_SYSTEM_SCROLLINGEND,
@@ -3196,7 +3196,7 @@ BrowserAccessibilityWin* BrowserAccessibilityWin::GetTargetFromChildID(
}
HRESULT BrowserAccessibilityWin::GetStringAttributeAsBstr(
- AccessibilityNodeData::StringAttribute attribute,
+ ui::AXStringAttribute attribute,
BSTR* value_bstr) {
base::string16 str;
@@ -3213,7 +3213,7 @@ HRESULT BrowserAccessibilityWin::GetStringAttributeAsBstr(
}
void BrowserAccessibilityWin::StringAttributeToIA2(
- AccessibilityNodeData::StringAttribute attribute,
+ ui::AXStringAttribute attribute,
const char* ia2_attr) {
base::string16 value;
if (GetString16Attribute(attribute, &value))
@@ -3221,7 +3221,7 @@ void BrowserAccessibilityWin::StringAttributeToIA2(
}
void BrowserAccessibilityWin::BoolAttributeToIA2(
- AccessibilityNodeData::BoolAttribute attribute,
+ ui::AXBoolAttribute attribute,
const char* ia2_attr) {
bool value;
if (GetBoolAttribute(attribute, &value)) {
@@ -3231,7 +3231,7 @@ void BrowserAccessibilityWin::BoolAttributeToIA2(
}
void BrowserAccessibilityWin::IntAttributeToIA2(
- AccessibilityNodeData::IntAttribute attribute,
+ ui::AXIntAttribute attribute,
const char* ia2_attr) {
int value;
if (GetIntAttribute(attribute, &value)) {
@@ -3245,7 +3245,7 @@ base::string16 BrowserAccessibilityWin::GetValueText() {
base::string16 value = base::UTF8ToUTF16(this->value());
if (value.empty() &&
- GetFloatAttribute(AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &fval)) {
+ GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE, &fval)) {
value = base::UTF8ToUTF16(base::DoubleToString(fval));
}
return value;
@@ -3254,7 +3254,7 @@ base::string16 BrowserAccessibilityWin::GetValueText() {
base::string16 BrowserAccessibilityWin::TextForIAccessibleText() {
if (IsEditableText())
return base::UTF8ToUTF16(value());
- return (blink_role() == blink::WebAXRoleStaticText) ?
+ return (blink_role() == ui::AX_ROLE_STATIC_TEXT) ?
base::UTF8ToUTF16(name()) : hypertext_;
}
@@ -3290,7 +3290,7 @@ LONG BrowserAccessibilityWin::FindBoundary(
HandleSpecialTextOffset(text, &start_offset);
ui::TextBoundaryType boundary = IA2TextBoundaryToTextBoundary(ia2_boundary);
const std::vector<int32>& line_breaks = GetIntListAttribute(
- AccessibilityNodeData::ATTR_LINE_BREAKS);
+ ui::AX_ATTR_LINE_BREAKS);
return ui::FindAccessibleTextBoundary(
text, line_breaks, boundary, start_offset, direction);
}
@@ -3305,95 +3305,95 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia2_state_ = IA2_STATE_OPAQUE;
ia2_attributes_.clear();
- if (HasState(blink::WebAXStateBusy))
+ if (HasState(ui::AX_STATE_BUSY))
ia_state_ |= STATE_SYSTEM_BUSY;
- if (HasState(blink::WebAXStateChecked))
+ if (HasState(ui::AX_STATE_CHECKED))
ia_state_ |= STATE_SYSTEM_CHECKED;
- if (HasState(blink::WebAXStateCollapsed))
+ if (HasState(ui::AX_STATE_COLLAPSED))
ia_state_ |= STATE_SYSTEM_COLLAPSED;
- if (HasState(blink::WebAXStateExpanded))
+ if (HasState(ui::AX_STATE_EXPANDED))
ia_state_ |= STATE_SYSTEM_EXPANDED;
- if (HasState(blink::WebAXStateFocusable))
+ if (HasState(ui::AX_STATE_FOCUSABLE))
ia_state_ |= STATE_SYSTEM_FOCUSABLE;
- if (HasState(blink::WebAXStateHaspopup))
+ if (HasState(ui::AX_STATE_HASPOPUP))
ia_state_ |= STATE_SYSTEM_HASPOPUP;
- if (HasState(blink::WebAXStateHovered))
+ if (HasState(ui::AX_STATE_HOVERED))
ia_state_ |= STATE_SYSTEM_HOTTRACKED;
- if (HasState(blink::WebAXStateIndeterminate))
+ if (HasState(ui::AX_STATE_INDETERMINATE))
ia_state_ |= STATE_SYSTEM_INDETERMINATE;
- if (HasState(blink::WebAXStateInvisible))
+ if (HasState(ui::AX_STATE_INVISIBLE))
ia_state_ |= STATE_SYSTEM_INVISIBLE;
- if (HasState(blink::WebAXStateLinked))
+ if (HasState(ui::AX_STATE_LINKED))
ia_state_ |= STATE_SYSTEM_LINKED;
- if (HasState(blink::WebAXStateMultiselectable)) {
+ if (HasState(ui::AX_STATE_MULTISELECTABLE)) {
ia_state_ |= STATE_SYSTEM_EXTSELECTABLE;
ia_state_ |= STATE_SYSTEM_MULTISELECTABLE;
}
// TODO(ctguil): Support STATE_SYSTEM_EXTSELECTABLE/accSelect.
- if (HasState(blink::WebAXStateOffscreen))
+ if (HasState(ui::AX_STATE_OFFSCREEN))
ia_state_ |= STATE_SYSTEM_OFFSCREEN;
- if (HasState(blink::WebAXStatePressed))
+ if (HasState(ui::AX_STATE_PRESSED))
ia_state_ |= STATE_SYSTEM_PRESSED;
- if (HasState(blink::WebAXStateProtected))
+ if (HasState(ui::AX_STATE_PROTECTED))
ia_state_ |= STATE_SYSTEM_PROTECTED;
- if (HasState(blink::WebAXStateRequired))
+ if (HasState(ui::AX_STATE_REQUIRED))
ia2_state_ |= IA2_STATE_REQUIRED;
- if (HasState(blink::WebAXStateSelectable))
+ if (HasState(ui::AX_STATE_SELECTABLE))
ia_state_ |= STATE_SYSTEM_SELECTABLE;
- if (HasState(blink::WebAXStateSelected))
+ if (HasState(ui::AX_STATE_SELECTED))
ia_state_ |= STATE_SYSTEM_SELECTED;
- if (HasState(blink::WebAXStateVisited))
+ if (HasState(ui::AX_STATE_VISITED))
ia_state_ |= STATE_SYSTEM_TRAVERSED;
- if (!HasState(blink::WebAXStateEnabled))
+ if (!HasState(ui::AX_STATE_ENABLED))
ia_state_ |= STATE_SYSTEM_UNAVAILABLE;
- if (HasState(blink::WebAXStateVertical)) {
+ if (HasState(ui::AX_STATE_VERTICAL)) {
ia2_state_ |= IA2_STATE_VERTICAL;
} else {
ia2_state_ |= IA2_STATE_HORIZONTAL;
}
- if (HasState(blink::WebAXStateVisited))
+ if (HasState(ui::AX_STATE_VISITED))
ia_state_ |= STATE_SYSTEM_TRAVERSED;
// WebKit marks everything as readonly unless it's editable text, so if it's
// not readonly, mark it as editable now. The final computation of the
// READONLY state for MSAA is below, after the switch.
- if (!HasState(blink::WebAXStateReadonly))
+ if (!HasState(ui::AX_STATE_READONLY))
ia2_state_ |= IA2_STATE_EDITABLE;
base::string16 invalid;
if (GetHtmlAttribute("aria-invalid", &invalid))
ia2_state_ |= IA2_STATE_INVALID_ENTRY;
- if (GetBoolAttribute(AccessibilityNodeData::ATTR_BUTTON_MIXED))
+ if (GetBoolAttribute(ui::AX_ATTR_BUTTON_MIXED))
ia_state_ |= STATE_SYSTEM_MIXED;
- if (GetBoolAttribute(AccessibilityNodeData::ATTR_CAN_SET_VALUE))
+ if (GetBoolAttribute(ui::AX_ATTR_CAN_SET_VALUE))
ia2_state_ |= IA2_STATE_EDITABLE;
base::string16 html_tag = GetString16Attribute(
- AccessibilityNodeData::ATTR_HTML_TAG);
+ ui::AX_ATTR_HTML_TAG);
ia_role_ = 0;
ia2_role_ = 0;
switch (blink_role()) {
- case blink::WebAXRoleAlert:
+ case ui::AX_ROLE_ALERT:
ia_role_ = ROLE_SYSTEM_ALERT;
break;
- case blink::WebAXRoleAlertDialog:
+ case ui::AX_ROLE_ALERT_DIALOG:
ia_role_ = ROLE_SYSTEM_DIALOG;
break;
- case blink::WebAXRoleApplication:
+ case ui::AX_ROLE_APPLICATION:
ia_role_ = ROLE_SYSTEM_APPLICATION;
break;
- case blink::WebAXRoleArticle:
+ case ui::AX_ROLE_ARTICLE:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleBusyIndicator:
+ case ui::AX_ROLE_BUSY_INDICATOR:
ia_role_ = ROLE_SYSTEM_ANIMATION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleButton:
+ case ui::AX_ROLE_BUTTON:
ia_role_ = ROLE_SYSTEM_PUSHBUTTON;
bool is_aria_pressed_defined;
bool is_mixed;
@@ -3404,88 +3404,88 @@ void BrowserAccessibilityWin::InitRoleAndState() {
if (is_mixed)
ia_state_ |= STATE_SYSTEM_MIXED;
break;
- case blink::WebAXRoleCanvas:
- if (GetBoolAttribute(AccessibilityNodeData::ATTR_CANVAS_HAS_FALLBACK)) {
+ case ui::AX_ROLE_CANVAS:
+ if (GetBoolAttribute(ui::AX_ATTR_CANVAS_HAS_FALLBACK)) {
role_name_ = L"canvas";
ia2_role_ = IA2_ROLE_CANVAS;
} else {
ia_role_ = ROLE_SYSTEM_GRAPHIC;
}
break;
- case blink::WebAXRoleCell:
+ case ui::AX_ROLE_CELL:
ia_role_ = ROLE_SYSTEM_CELL;
break;
- case blink::WebAXRoleCheckBox:
+ case ui::AX_ROLE_CHECK_BOX:
ia_role_ = ROLE_SYSTEM_CHECKBUTTON;
break;
- case blink::WebAXRoleColorWell:
+ case ui::AX_ROLE_COLOR_WELL:
ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_COLOR_CHOOSER;
break;
- case blink::WebAXRoleColumn:
+ case ui::AX_ROLE_COLUMN:
ia_role_ = ROLE_SYSTEM_COLUMN;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleColumnHeader:
+ case ui::AX_ROLE_COLUMN_HEADER:
ia_role_ = ROLE_SYSTEM_COLUMNHEADER;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleComboBox:
+ case ui::AX_ROLE_COMBO_BOX:
ia_role_ = ROLE_SYSTEM_COMBOBOX;
break;
- case blink::WebAXRoleDiv:
+ case ui::AX_ROLE_DIV:
role_name_ = L"div";
ia2_role_ = IA2_ROLE_SECTION;
break;
- case blink::WebAXRoleDefinition:
+ case ui::AX_ROLE_DEFINITION:
role_name_ = html_tag;
ia2_role_ = IA2_ROLE_PARAGRAPH;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleDescriptionListDetail:
+ case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL:
role_name_ = html_tag;
ia2_role_ = IA2_ROLE_PARAGRAPH;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleDescriptionListTerm:
+ case ui::AX_ROLE_DESCRIPTION_LIST_TERM:
ia_role_ = ROLE_SYSTEM_LISTITEM;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleDialog:
+ case ui::AX_ROLE_DIALOG:
ia_role_ = ROLE_SYSTEM_DIALOG;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleDisclosureTriangle:
+ case ui::AX_ROLE_DISCLOSURE_TRIANGLE:
ia_role_ = ROLE_SYSTEM_OUTLINEBUTTON;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleDocument:
- case blink::WebAXRoleRootWebArea:
- case blink::WebAXRoleWebArea:
+ case ui::AX_ROLE_DOCUMENT:
+ case ui::AX_ROLE_ROOT_WEB_AREA:
+ case ui::AX_ROLE_WEB_AREA:
ia_role_ = ROLE_SYSTEM_DOCUMENT;
ia_state_ |= STATE_SYSTEM_READONLY;
ia_state_ |= STATE_SYSTEM_FOCUSABLE;
break;
- case blink::WebAXRoleEditableText:
+ case ui::AX_ROLE_EDITABLE_TEXT:
ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_SINGLE_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
break;
- case blink::WebAXRoleForm:
+ case ui::AX_ROLE_FORM:
role_name_ = L"form";
ia2_role_ = IA2_ROLE_FORM;
break;
- case blink::WebAXRoleFooter:
+ case ui::AX_ROLE_FOOTER:
ia_role_ = IA2_ROLE_FOOTER;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleGrid:
+ case ui::AX_ROLE_GRID:
ia_role_ = ROLE_SYSTEM_TABLE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleGroup: {
+ case ui::AX_ROLE_GROUP: {
base::string16 aria_role = GetString16Attribute(
- AccessibilityNodeData::ATTR_ROLE);
+ ui::AX_ATTR_ROLE);
if (aria_role == L"group" || html_tag == L"fieldset") {
ia_role_ = ROLE_SYSTEM_GROUPING;
} else if (html_tag == L"li") {
@@ -3500,190 +3500,190 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia_state_ |= STATE_SYSTEM_READONLY;
break;
}
- case blink::WebAXRoleGrowArea:
+ case ui::AX_ROLE_GROW_AREA:
ia_role_ = ROLE_SYSTEM_GRIP;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleHeading:
+ case ui::AX_ROLE_HEADING:
role_name_ = html_tag;
ia2_role_ = IA2_ROLE_HEADING;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleHorizontalRule:
+ case ui::AX_ROLE_HORIZONTAL_RULE:
ia_role_ = ROLE_SYSTEM_SEPARATOR;
break;
- case blink::WebAXRoleImage:
+ case ui::AX_ROLE_IMAGE:
ia_role_ = ROLE_SYSTEM_GRAPHIC;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleImageMap:
+ case ui::AX_ROLE_IMAGE_MAP:
role_name_ = html_tag;
ia2_role_ = IA2_ROLE_IMAGE_MAP;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleImageMapLink:
+ case ui::AX_ROLE_IMAGE_MAP_LINK:
ia_role_ = ROLE_SYSTEM_LINK;
ia_state_ |= STATE_SYSTEM_LINKED;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleLabel:
+ case ui::AX_ROLE_LABEL:
ia_role_ = ROLE_SYSTEM_TEXT;
ia2_role_ = IA2_ROLE_LABEL;
break;
- case blink::WebAXRoleBanner:
- case blink::WebAXRoleComplementary:
- case blink::WebAXRoleContentInfo:
- case blink::WebAXRoleMain:
- case blink::WebAXRoleNavigation:
- case blink::WebAXRoleSearch:
+ case ui::AX_ROLE_BANNER:
+ case ui::AX_ROLE_COMPLEMENTARY:
+ case ui::AX_ROLE_CONTENT_INFO:
+ case ui::AX_ROLE_MAIN:
+ case ui::AX_ROLE_NAVIGATION:
+ case ui::AX_ROLE_SEARCH:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleLink:
+ case ui::AX_ROLE_LINK:
ia_role_ = ROLE_SYSTEM_LINK;
ia_state_ |= STATE_SYSTEM_LINKED;
break;
- case blink::WebAXRoleList:
+ case ui::AX_ROLE_LIST:
ia_role_ = ROLE_SYSTEM_LIST;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleListBox:
+ case ui::AX_ROLE_LIST_BOX:
ia_role_ = ROLE_SYSTEM_LIST;
break;
- case blink::WebAXRoleListBoxOption:
+ case ui::AX_ROLE_LIST_BOX_OPTION:
ia_role_ = ROLE_SYSTEM_LISTITEM;
if (ia_state_ & STATE_SYSTEM_SELECTABLE) {
ia_state_ |= STATE_SYSTEM_FOCUSABLE;
- if (HasState(blink::WebAXStateFocused))
+ if (HasState(ui::AX_STATE_FOCUSED))
ia_state_ |= STATE_SYSTEM_FOCUSED;
}
break;
- case blink::WebAXRoleListItem:
+ case ui::AX_ROLE_LIST_ITEM:
ia_role_ = ROLE_SYSTEM_LISTITEM;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleListMarker:
+ case ui::AX_ROLE_LIST_MARKER:
ia_role_ = ROLE_SYSTEM_TEXT;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleMath:
+ case ui::AX_ROLE_MATH_ELEMENT:
ia_role_ = ROLE_SYSTEM_EQUATION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleMenu:
- case blink::WebAXRoleMenuButton:
+ case ui::AX_ROLE_MENU:
+ case ui::AX_ROLE_MENU_BUTTON:
ia_role_ = ROLE_SYSTEM_MENUPOPUP;
break;
- case blink::WebAXRoleMenuBar:
+ case ui::AX_ROLE_MENU_BAR:
ia_role_ = ROLE_SYSTEM_MENUBAR;
break;
- case blink::WebAXRoleMenuItem:
+ case ui::AX_ROLE_MENU_ITEM:
ia_role_ = ROLE_SYSTEM_MENUITEM;
break;
- case blink::WebAXRoleMenuListPopup:
+ case ui::AX_ROLE_MENU_LIST_POPUP:
ia_role_ = ROLE_SYSTEM_CLIENT;
break;
- case blink::WebAXRoleMenuListOption:
+ case ui::AX_ROLE_MENU_LIST_OPTION:
ia_role_ = ROLE_SYSTEM_LISTITEM;
if (ia_state_ & STATE_SYSTEM_SELECTABLE) {
ia_state_ |= STATE_SYSTEM_FOCUSABLE;
- if (HasState(blink::WebAXStateFocused))
+ if (HasState(ui::AX_STATE_FOCUSED))
ia_state_ |= STATE_SYSTEM_FOCUSED;
}
break;
- case blink::WebAXRoleNote:
+ case ui::AX_ROLE_NOTE:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_NOTE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleOutline:
+ case ui::AX_ROLE_OUTLINE:
ia_role_ = ROLE_SYSTEM_OUTLINE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleParagraph:
+ case ui::AX_ROLE_PARAGRAPH:
role_name_ = L"P";
ia2_role_ = IA2_ROLE_PARAGRAPH;
break;
- case blink::WebAXRolePopUpButton:
+ case ui::AX_ROLE_POP_UP_BUTTON:
if (html_tag == L"select") {
ia_role_ = ROLE_SYSTEM_COMBOBOX;
} else {
ia_role_ = ROLE_SYSTEM_BUTTONMENU;
}
break;
- case blink::WebAXRoleProgressIndicator:
+ case ui::AX_ROLE_PROGRESS_INDICATOR:
ia_role_ = ROLE_SYSTEM_PROGRESSBAR;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleRadioButton:
+ case ui::AX_ROLE_RADIO_BUTTON:
ia_role_ = ROLE_SYSTEM_RADIOBUTTON;
break;
- case blink::WebAXRoleRadioGroup:
+ case ui::AX_ROLE_RADIO_GROUP:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
- case blink::WebAXRoleRegion:
+ case ui::AX_ROLE_REGION:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleRow:
+ case ui::AX_ROLE_ROW:
ia_role_ = ROLE_SYSTEM_ROW;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleRowHeader:
+ case ui::AX_ROLE_ROW_HEADER:
ia_role_ = ROLE_SYSTEM_ROWHEADER;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleRuler:
+ case ui::AX_ROLE_RULER:
ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_RULER;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleScrollArea:
+ case ui::AX_ROLE_SCROLL_AREA:
ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_SCROLL_PANE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleScrollBar:
+ case ui::AX_ROLE_SCROLL_BAR:
ia_role_ = ROLE_SYSTEM_SCROLLBAR;
break;
- case blink::WebAXRoleSlider:
+ case ui::AX_ROLE_SLIDER:
ia_role_ = ROLE_SYSTEM_SLIDER;
break;
- case blink::WebAXRoleSpinButton:
+ case ui::AX_ROLE_SPIN_BUTTON:
ia_role_ = ROLE_SYSTEM_SPINBUTTON;
break;
- case blink::WebAXRoleSpinButtonPart:
+ case ui::AX_ROLE_SPIN_BUTTON_PART:
ia_role_ = ROLE_SYSTEM_PUSHBUTTON;
break;
- case blink::WebAXRoleSplitGroup:
+ case ui::AX_ROLE_SPLIT_GROUP:
ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_SPLIT_PANE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleAnnotation:
- case blink::WebAXRoleStaticText:
+ case ui::AX_ROLE_ANNOTATION:
+ case ui::AX_ROLE_STATIC_TEXT:
ia_role_ = ROLE_SYSTEM_TEXT;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleStatus:
+ case ui::AX_ROLE_STATUS:
ia_role_ = ROLE_SYSTEM_STATUSBAR;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleSplitter:
+ case ui::AX_ROLE_SPLITTER:
ia_role_ = ROLE_SYSTEM_SEPARATOR;
break;
- case blink::WebAXRoleSVGRoot:
+ case ui::AX_ROLE_SVG_ROOT:
ia_role_ = ROLE_SYSTEM_GRAPHIC;
break;
- case blink::WebAXRoleTab:
+ case ui::AX_ROLE_TAB:
ia_role_ = ROLE_SYSTEM_PAGETAB;
break;
- case blink::WebAXRoleTable: {
+ case ui::AX_ROLE_TABLE: {
base::string16 aria_role = GetString16Attribute(
- AccessibilityNodeData::ATTR_ROLE);
+ ui::AX_ATTR_ROLE);
if (aria_role == L"treegrid") {
ia_role_ = ROLE_SYSTEM_OUTLINE;
} else {
@@ -3692,77 +3692,77 @@ void BrowserAccessibilityWin::InitRoleAndState() {
}
break;
}
- case blink::WebAXRoleTableHeaderContainer:
+ case ui::AX_ROLE_TABLE_HEADER_CONTAINER:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleTabList:
+ case ui::AX_ROLE_TAB_LIST:
ia_role_ = ROLE_SYSTEM_PAGETABLIST;
break;
- case blink::WebAXRoleTabPanel:
+ case ui::AX_ROLE_TAB_PANEL:
ia_role_ = ROLE_SYSTEM_PROPERTYPAGE;
break;
- case blink::WebAXRoleToggleButton:
+ case ui::AX_ROLE_TOGGLE_BUTTON:
ia_role_ = ROLE_SYSTEM_PUSHBUTTON;
ia2_role_ = IA2_ROLE_TOGGLE_BUTTON;
break;
- case blink::WebAXRoleTextArea:
+ case ui::AX_ROLE_TEXT_AREA:
ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_MULTI_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
ia2_state_ |= IA2_STATE_SELECTABLE_TEXT;
break;
- case blink::WebAXRoleTextField:
+ case ui::AX_ROLE_TEXT_FIELD:
ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_SINGLE_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
ia2_state_ |= IA2_STATE_SELECTABLE_TEXT;
break;
- case blink::WebAXRoleTimer:
+ case ui::AX_ROLE_TIMER:
ia_role_ = ROLE_SYSTEM_CLOCK;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleToolbar:
+ case ui::AX_ROLE_TOOLBAR:
ia_role_ = ROLE_SYSTEM_TOOLBAR;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleUserInterfaceTooltip:
+ case ui::AX_ROLE_TOOLTIP:
ia_role_ = ROLE_SYSTEM_TOOLTIP;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleTree:
+ case ui::AX_ROLE_TREE:
ia_role_ = ROLE_SYSTEM_OUTLINE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleTreeGrid:
+ case ui::AX_ROLE_TREE_GRID:
ia_role_ = ROLE_SYSTEM_OUTLINE;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleTreeItem:
+ case ui::AX_ROLE_TREE_ITEM:
ia_role_ = ROLE_SYSTEM_OUTLINEITEM;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
- case blink::WebAXRoleWindow:
+ case ui::AX_ROLE_WINDOW:
ia_role_ = ROLE_SYSTEM_WINDOW;
break;
// TODO(dmazzoni): figure out the proper MSAA role for all of these.
- case blink::WebAXRoleBrowser:
- case blink::WebAXRoleDirectory:
- case blink::WebAXRoleDrawer:
- case blink::WebAXRoleHelpTag:
- case blink::WebAXRoleIgnored:
- case blink::WebAXRoleIncrementor:
- case blink::WebAXRoleLog:
- case blink::WebAXRoleMarquee:
- case blink::WebAXRoleMatte:
- case blink::WebAXRolePresentational:
- case blink::WebAXRoleRulerMarker:
- case blink::WebAXRoleSheet:
- case blink::WebAXRoleSliderThumb:
- case blink::WebAXRoleSystemWide:
- case blink::WebAXRoleValueIndicator:
+ case ui::AX_ROLE_BROWSER:
+ case ui::AX_ROLE_DIRECTORY:
+ case ui::AX_ROLE_DRAWER:
+ case ui::AX_ROLE_HELP_TAG:
+ case ui::AX_ROLE_IGNORED:
+ case ui::AX_ROLE_INCREMENTOR:
+ case ui::AX_ROLE_LOG:
+ case ui::AX_ROLE_MARQUEE:
+ case ui::AX_ROLE_MATTE:
+ case ui::AX_ROLE_PRESENTATIONAL:
+ case ui::AX_ROLE_RULER_MARKER:
+ case ui::AX_ROLE_SHEET:
+ case ui::AX_ROLE_SLIDER_THUMB:
+ case ui::AX_ROLE_SYSTEM_WIDE:
+ case ui::AX_ROLE_VALUE_INDICATOR:
default:
ia_role_ = ROLE_SYSTEM_CLIENT;
break;
@@ -3774,13 +3774,13 @@ void BrowserAccessibilityWin::InitRoleAndState() {
// aria-readonly attribute and for a few roles (in the switch above).
// We clear the READONLY state on focusable controls and on a document.
// Everything else, the majority of objects, do not have this state set.
- if (HasState(blink::WebAXStateFocusable) &&
+ if (HasState(ui::AX_STATE_FOCUSABLE) &&
ia_role_ != ROLE_SYSTEM_DOCUMENT) {
ia_state_ &= ~(STATE_SYSTEM_READONLY);
}
- if (!HasState(blink::WebAXStateReadonly))
+ if (!HasState(ui::AX_STATE_READONLY))
ia_state_ &= ~(STATE_SYSTEM_READONLY);
- if (GetBoolAttribute(AccessibilityNodeData::ATTR_ARIA_READONLY))
+ if (GetBoolAttribute(ui::AX_ATTR_ARIA_READONLY))
ia_state_ |= STATE_SYSTEM_READONLY;
// The role should always be set.
diff --git a/content/browser/accessibility/browser_accessibility_win.h b/content/browser/accessibility/browser_accessibility_win.h
index c2a6b7a..713960a 100644
--- a/content/browser/accessibility/browser_accessibility_win.h
+++ b/content/browser/accessibility/browser_accessibility_win.h
@@ -790,29 +790,29 @@ BrowserAccessibilityWin
BrowserAccessibilityWin* GetTargetFromChildID(const VARIANT& var_id);
// Initialize the role and state metadata from the role enum and state
- // bitmasks defined in AccessibilityNodeData.
+ // bitmasks defined in ui::AXNodeData.
void InitRoleAndState();
// Retrieve the value of an attribute from the string attribute map and
// if found and nonempty, allocate a new BSTR (with SysAllocString)
// and return S_OK. If not found or empty, return S_FALSE.
HRESULT GetStringAttributeAsBstr(
- AccessibilityNodeData::StringAttribute attribute,
+ ui::AXStringAttribute attribute,
BSTR* value_bstr);
// If the string attribute |attribute| is present, add its value as an
// IAccessible2 attribute with the name |ia2_attr|.
- void StringAttributeToIA2(AccessibilityNodeData::StringAttribute attribute,
+ void StringAttributeToIA2(ui::AXStringAttribute attribute,
const char* ia2_attr);
// If the bool attribute |attribute| is present, add its value as an
// IAccessible2 attribute with the name |ia2_attr|.
- void BoolAttributeToIA2(AccessibilityNodeData::BoolAttribute attribute,
+ void BoolAttributeToIA2(ui::AXBoolAttribute attribute,
const char* ia2_attr);
// If the int attribute |attribute| is present, add its value as an
// IAccessible2 attribute with the name |ia2_attr|.
- void IntAttributeToIA2(AccessibilityNodeData::IntAttribute attribute,
+ void IntAttributeToIA2(ui::AXIntAttribute attribute,
const char* ia2_attr);
// Get the value text, which might come from the floating-point
diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc
index 53d0076..314d296 100644
--- a/content/browser/accessibility/browser_accessibility_win_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
@@ -110,31 +110,31 @@ void BrowserAccessibilityTest::SetUp() {
// Test that BrowserAccessibilityManager correctly releases the tree of
// BrowserAccessibility instances upon delete.
TEST_F(BrowserAccessibilityTest, TestNoLeaks) {
- // Create AccessibilityNodeData objects for a simple document tree,
+ // Create ui::AXNodeData objects for a simple document tree,
// representing the accessibility information used to initialize
// BrowserAccessibilityManager.
- AccessibilityNodeData button;
+ ui::AXNodeData button;
button.id = 2;
button.SetName("Button");
- button.role = blink::WebAXRoleButton;
+ button.role = ui::AX_ROLE_BUTTON;
button.state = 0;
- AccessibilityNodeData checkbox;
+ ui::AXNodeData checkbox;
checkbox.id = 3;
checkbox.SetName("Checkbox");
- checkbox.role = blink::WebAXRoleCheckBox;
+ checkbox.role = ui::AX_ROLE_CHECK_BOX;
checkbox.state = 0;
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
root.SetName("Document");
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state = 0;
root.child_ids.push_back(2);
root.child_ids.push_back(3);
// Construct a BrowserAccessibilityManager with this
- // AccessibilityNodeData tree and a factory for an instance-counting
+ // ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility, and ensure that exactly 3 instances were
// created. Note that the manager takes ownership of the factory.
CountedBrowserAccessibility::reset();
@@ -179,24 +179,24 @@ TEST_F(BrowserAccessibilityTest, TestNoLeaks) {
}
TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
- // Create AccessibilityNodeData objects for a simple document tree,
+ // Create ui::AXNodeData objects for a simple document tree,
// representing the accessibility information used to initialize
// BrowserAccessibilityManager.
- AccessibilityNodeData text;
+ ui::AXNodeData text;
text.id = 2;
- text.role = blink::WebAXRoleStaticText;
+ text.role = ui::AX_ROLE_STATIC_TEXT;
text.SetName("old text");
text.state = 0;
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
root.SetName("Document");
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state = 0;
root.child_ids.push_back(2);
// Construct a BrowserAccessibilityManager with this
- // AccessibilityNodeData tree and a factory for an instance-counting
+ // ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility.
CountedBrowserAccessibility::reset();
scoped_ptr<BrowserAccessibilityManager> manager(
@@ -227,13 +227,13 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
text_accessible.Release();
// Notify the BrowserAccessibilityManager that the text child has changed.
- AccessibilityNodeData text2;
+ ui::AXNodeData text2;
text2.id = 2;
- text2.role = blink::WebAXRoleStaticText;
+ text2.role = ui::AX_ROLE_STATIC_TEXT;
text2.SetName("new text");
text2.SetName("old text");
AccessibilityHostMsg_EventParams param;
- param.event_type = blink::WebAXEventChildrenChanged;
+ param.event_type = ui::AX_EVENT_CHILDREN_CHANGED;
param.nodes.push_back(text2);
param.id = text2.id;
std::vector<AccessibilityHostMsg_EventParams> events;
@@ -263,35 +263,35 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
}
TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
- // Create AccessibilityNodeData objects for a simple document tree,
+ // Create ui::AXNodeData objects for a simple document tree,
// representing the accessibility information used to initialize
// BrowserAccessibilityManager.
- AccessibilityNodeData div;
+ ui::AXNodeData div;
div.id = 2;
- div.role = blink::WebAXRoleGroup;
+ div.role = ui::AX_ROLE_GROUP;
div.state = 0;
- AccessibilityNodeData text3;
+ ui::AXNodeData text3;
text3.id = 3;
- text3.role = blink::WebAXRoleStaticText;
+ text3.role = ui::AX_ROLE_STATIC_TEXT;
text3.state = 0;
- AccessibilityNodeData text4;
+ ui::AXNodeData text4;
text4.id = 4;
- text4.role = blink::WebAXRoleStaticText;
+ text4.role = ui::AX_ROLE_STATIC_TEXT;
text4.state = 0;
div.child_ids.push_back(3);
div.child_ids.push_back(4);
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state = 0;
root.child_ids.push_back(2);
// Construct a BrowserAccessibilityManager with this
- // AccessibilityNodeData tree and a factory for an instance-counting
+ // ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility and ensure that exactly 4 instances were
// created. Note that the manager takes ownership of the factory.
CountedBrowserAccessibility::reset();
@@ -305,7 +305,7 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
// were removed and ensure that only one BrowserAccessibility instance exists.
root.child_ids.clear();
AccessibilityHostMsg_EventParams param;
- param.event_type = blink::WebAXEventChildrenChanged;
+ param.event_type = ui::AX_EVENT_CHILDREN_CHANGED;
param.nodes.push_back(root);
param.id = root.id;
std::vector<AccessibilityHostMsg_EventParams> events;
@@ -322,19 +322,19 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
TEST_F(BrowserAccessibilityTest, TestTextBoundaries) {
std::string text1_value = "One two three.\nFour five six.";
- AccessibilityNodeData text1;
+ ui::AXNodeData text1;
text1.id = 11;
- text1.role = blink::WebAXRoleTextField;
+ text1.role = ui::AX_ROLE_TEXT_FIELD;
text1.state = 0;
- text1.AddStringAttribute(AccessibilityNodeData::ATTR_VALUE, text1_value);
+ text1.AddStringAttribute(ui::AX_ATTR_VALUE, text1_value);
std::vector<int32> line_breaks;
line_breaks.push_back(15);
text1.AddIntListAttribute(
- AccessibilityNodeData::ATTR_LINE_BREAKS, line_breaks);
+ ui::AX_ATTR_LINE_BREAKS, line_breaks);
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state = 0;
root.child_ids.push_back(11);
@@ -419,22 +419,22 @@ TEST_F(BrowserAccessibilityTest, TestSimpleHypertext) {
const std::string text1_name = "One two three.";
const std::string text2_name = " Four five six.";
- AccessibilityNodeData text1;
+ ui::AXNodeData text1;
text1.id = 11;
- text1.role = blink::WebAXRoleStaticText;
- text1.state = 1 << blink::WebAXStateReadonly;
+ text1.role = ui::AX_ROLE_STATIC_TEXT;
+ text1.state = 1 << ui::AX_STATE_READONLY;
text1.SetName(text1_name);
- AccessibilityNodeData text2;
+ ui::AXNodeData text2;
text2.id = 12;
- text2.role = blink::WebAXRoleStaticText;
- text2.state = 1 << blink::WebAXStateReadonly;
+ text2.role = ui::AX_ROLE_STATIC_TEXT;
+ text2.state = 1 << ui::AX_STATE_READONLY;
text2.SetName(text2_name);
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
- root.state = 1 << blink::WebAXStateReadonly;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ root.state = 1 << ui::AX_STATE_READONLY;
root.child_ids.push_back(11);
root.child_ids.push_back(12);
@@ -487,42 +487,42 @@ TEST_F(BrowserAccessibilityTest, TestComplexHypertext) {
const std::string button1_text_name = "red";
const std::string link1_text_name = "blue";
- AccessibilityNodeData text1;
+ ui::AXNodeData text1;
text1.id = 11;
- text1.role = blink::WebAXRoleStaticText;
- text1.state = 1 << blink::WebAXStateReadonly;
+ text1.role = ui::AX_ROLE_STATIC_TEXT;
+ text1.state = 1 << ui::AX_STATE_READONLY;
text1.SetName(text1_name);
- AccessibilityNodeData text2;
+ ui::AXNodeData text2;
text2.id = 12;
- text2.role = blink::WebAXRoleStaticText;
- text2.state = 1 << blink::WebAXStateReadonly;
+ text2.role = ui::AX_ROLE_STATIC_TEXT;
+ text2.state = 1 << ui::AX_STATE_READONLY;
text2.SetName(text2_name);
- AccessibilityNodeData button1, button1_text;
+ ui::AXNodeData button1, button1_text;
button1.id = 13;
button1_text.id = 15;
button1_text.SetName(button1_text_name);
- button1.role = blink::WebAXRoleButton;
- button1_text.role = blink::WebAXRoleStaticText;
- button1.state = 1 << blink::WebAXStateReadonly;
- button1_text.state = 1 << blink::WebAXStateReadonly;
+ button1.role = ui::AX_ROLE_BUTTON;
+ button1_text.role = ui::AX_ROLE_STATIC_TEXT;
+ button1.state = 1 << ui::AX_STATE_READONLY;
+ button1_text.state = 1 << ui::AX_STATE_READONLY;
button1.child_ids.push_back(15);
- AccessibilityNodeData link1, link1_text;
+ ui::AXNodeData link1, link1_text;
link1.id = 14;
link1_text.id = 16;
link1_text.SetName(link1_text_name);
- link1.role = blink::WebAXRoleLink;
- link1_text.role = blink::WebAXRoleStaticText;
- link1.state = 1 << blink::WebAXStateReadonly;
- link1_text.state = 1 << blink::WebAXStateReadonly;
+ link1.role = ui::AX_ROLE_LINK;
+ link1_text.role = ui::AX_ROLE_STATIC_TEXT;
+ link1.state = 1 << ui::AX_STATE_READONLY;
+ link1_text.state = 1 << ui::AX_STATE_READONLY;
link1.child_ids.push_back(16);
- AccessibilityNodeData root;
+ ui::AXNodeData root;
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
- root.state = 1 << blink::WebAXStateReadonly;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
+ root.state = 1 << ui::AX_STATE_READONLY;
root.child_ids.push_back(11);
root.child_ids.push_back(13);
root.child_ids.push_back(12);
@@ -602,8 +602,8 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
// Try creating an empty document with busy state. Readonly is
// set automatically.
CountedBrowserAccessibility::reset();
- const int32 busy_state = 1 << blink::WebAXStateBusy;
- const int32 readonly_state = 1 << blink::WebAXStateReadonly;
+ const int32 busy_state = 1 << ui::AX_STATE_BUSY;
+ const int32 readonly_state = 1 << ui::AX_STATE_READONLY;
const int32 enabled_state = 1 << blink::WebAXStateEnabled;
scoped_ptr<BrowserAccessibilityManager> manager(
new BrowserAccessibilityManagerWin(
@@ -616,24 +616,24 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
// Verify the root is as we expect by default.
BrowserAccessibility* root = manager->GetRoot();
EXPECT_EQ(0, root->renderer_id());
- EXPECT_EQ(blink::WebAXRoleRootWebArea, root->role());
+ EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->role());
EXPECT_EQ(busy_state | readonly_state | enabled_state, root->state());
// Tree with a child textfield.
- AccessibilityNodeData tree1_1;
+ ui::AXNodeData tree1_1;
tree1_1.id = 1;
- tree1_1.role = blink::WebAXRoleRootWebArea;
+ tree1_1.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree1_1.child_ids.push_back(2);
- AccessibilityNodeData tree1_2;
+ ui::AXNodeData tree1_2;
tree1_2.id = 2;
- tree1_2.role = blink::WebAXRoleTextField;
+ tree1_2.role = ui::AX_ROLE_TEXT_FIELD;
// Process a load complete.
std::vector<AccessibilityHostMsg_EventParams> params;
params.push_back(AccessibilityHostMsg_EventParams());
AccessibilityHostMsg_EventParams* msg = &params[0];
- msg->event_type = blink::WebAXEventLoadComplete;
+ msg->event_type = ui::AX_EVENT_LOAD_COMPLETE;
msg->nodes.push_back(tree1_1);
msg->nodes.push_back(tree1_2);
msg->id = tree1_1.id;
@@ -646,18 +646,18 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
EXPECT_NE(root, manager->GetRoot());
// And the proper child remains.
- EXPECT_EQ(blink::WebAXRoleTextField, acc1_2->role());
+ EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, acc1_2->role());
EXPECT_EQ(2, acc1_2->renderer_id());
// Tree with a child button.
- AccessibilityNodeData tree2_1;
+ ui::AXNodeData tree2_1;
tree2_1.id = 1;
- tree2_1.role = blink::WebAXRoleRootWebArea;
+ tree2_1.role = ui::AX_ROLE_ROOT_WEB_AREA;
tree2_1.child_ids.push_back(3);
- AccessibilityNodeData tree2_2;
+ ui::AXNodeData tree2_2;
tree2_2.id = 3;
- tree2_2.role = blink::WebAXRoleButton;
+ tree2_2.role = ui::AX_ROLE_BUTTON;
msg->nodes.clear();
msg->nodes.push_back(tree2_1);
@@ -673,7 +673,7 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
EXPECT_NE(root, manager->GetRoot());
// And the new child exists.
- EXPECT_EQ(blink::WebAXRoleButton, acc2_2->role());
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, acc2_2->role());
EXPECT_EQ(3, acc2_2->renderer_id());
// Ensure we properly cleaned up.
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
index f0aa13f..41851b7 100644
--- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
+++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
@@ -14,6 +14,7 @@
#include "content/test/accessibility_browser_test_utils.h"
#include "content/test/content_browser_test.h"
#include "content/test/content_browser_test_utils.h"
+#include "ui/accessibility/ax_node.h"
#if defined(OS_WIN)
#include <atlbase.h>
@@ -37,21 +38,21 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
// Tell the renderer to send an accessibility tree, then wait for the
// notification that it's been received.
- const AccessibilityNodeDataTreeNode& GetAccessibilityNodeDataTree(
+ const ui::AXTree& GetAXTree(
AccessibilityMode accessibility_mode = AccessibilityModeComplete) {
AccessibilityNotificationWaiter waiter(
- shell(), accessibility_mode, blink::WebAXEventLayoutComplete);
+ shell(), accessibility_mode, ui::AX_EVENT_LAYOUT_COMPLETE);
waiter.WaitForNotification();
- return waiter.GetAccessibilityNodeDataTree();
+ return waiter.GetAXTree();
}
// Make sure each node in the tree has an unique id.
void RecursiveAssertUniqueIds(
- const AccessibilityNodeDataTreeNode& node, base::hash_set<int>* ids) {
- ASSERT_TRUE(ids->find(node.id) == ids->end());
- ids->insert(node.id);
- for (size_t i = 0; i < node.children.size(); i++)
- RecursiveAssertUniqueIds(node.children[i], ids);
+ const ui::AXNode* node, base::hash_set<int>* ids) {
+ ASSERT_TRUE(ids->find(node->id()) == ids->end());
+ ids->insert(node->id());
+ for (int i = 0; i < node->child_count(); i++)
+ RecursiveAssertUniqueIds(node->ChildAtIndex(i), ids);
}
// ContentBrowserTest
@@ -59,12 +60,12 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest {
virtual void TearDownInProcessBrowserTestFixture() OVERRIDE;
protected:
- std::string GetAttr(const AccessibilityNodeData& node,
- const AccessibilityNodeData::StringAttribute attr);
- int GetIntAttr(const AccessibilityNodeData& node,
- const AccessibilityNodeData::IntAttribute attr);
- bool GetBoolAttr(const AccessibilityNodeData& node,
- const AccessibilityNodeData::BoolAttribute attr);
+ std::string GetAttr(const ui::AXNode* node,
+ const ui::AXStringAttribute attr);
+ int GetIntAttr(const ui::AXNode* node,
+ const ui::AXIntAttribute attr);
+ bool GetBoolAttr(const ui::AXNode* node,
+ const ui::AXBoolAttribute attr);
private:
#if defined(OS_WIN)
@@ -88,38 +89,41 @@ CrossPlatformAccessibilityBrowserTest::TearDownInProcessBrowserTestFixture() {
#endif
}
-// Convenience method to get the value of a particular AccessibilityNodeData
-// node attribute as a UTF-8 string.
+// Convenience method to get the value of a particular AXNode
+// attribute as a UTF-8 string.
std::string CrossPlatformAccessibilityBrowserTest::GetAttr(
- const AccessibilityNodeData& node,
- const AccessibilityNodeData::StringAttribute attr) {
- for (size_t i = 0; i < node.string_attributes.size(); ++i) {
- if (node.string_attributes[i].first == attr)
- return node.string_attributes[i].second;
+ const ui::AXNode* node,
+ const ui::AXStringAttribute attr) {
+ const ui::AXNodeData& data = node->data();
+ for (size_t i = 0; i < data.string_attributes.size(); ++i) {
+ if (data.string_attributes[i].first == attr)
+ return data.string_attributes[i].second;
}
return std::string();
}
-// Convenience method to get the value of a particular AccessibilityNodeData
-// node integer attribute.
+// Convenience method to get the value of a particular AXNode
+// integer attribute.
int CrossPlatformAccessibilityBrowserTest::GetIntAttr(
- const AccessibilityNodeData& node,
- const AccessibilityNodeData::IntAttribute attr) {
- for (size_t i = 0; i < node.int_attributes.size(); ++i) {
- if (node.int_attributes[i].first == attr)
- return node.int_attributes[i].second;
+ const ui::AXNode* node,
+ const ui::AXIntAttribute attr) {
+ const ui::AXNodeData& data = node->data();
+ for (size_t i = 0; i < data.int_attributes.size(); ++i) {
+ if (data.int_attributes[i].first == attr)
+ return data.int_attributes[i].second;
}
return -1;
}
-// Convenience method to get the value of a particular AccessibilityNodeData
-// node boolean attribute.
+// Convenience method to get the value of a particular AXNode
+// boolean attribute.
bool CrossPlatformAccessibilityBrowserTest::GetBoolAttr(
- const AccessibilityNodeData& node,
- const AccessibilityNodeData::BoolAttribute attr) {
- for (size_t i = 0; i < node.bool_attributes.size(); ++i) {
- if (node.bool_attributes[i].first == attr)
- return node.bool_attributes[i].second;
+ const ui::AXNode* node,
+ const ui::AXBoolAttribute attr) {
+ const ui::AXNodeData& data = node->data();
+ for (size_t i = 0; i < data.bool_attributes.size(); ++i) {
+ if (data.bool_attributes[i].first == attr)
+ return data.bool_attributes[i].second;
}
return false;
}
@@ -136,62 +140,63 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
"</body></html>";
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
// Check properties of the root element of the tree.
EXPECT_STREQ(url_str,
- GetAttr(tree, AccessibilityNodeData::ATTR_DOC_URL).c_str());
+ GetAttr(root, ui::AX_ATTR_DOC_URL).c_str());
EXPECT_STREQ(
"Accessibility Test",
- GetAttr(tree, AccessibilityNodeData::ATTR_DOC_TITLE).c_str());
+ GetAttr(root, ui::AX_ATTR_DOC_TITLE).c_str());
EXPECT_STREQ(
- "html", GetAttr(tree, AccessibilityNodeData::ATTR_DOC_DOCTYPE).c_str());
+ "html", GetAttr(root, ui::AX_ATTR_DOC_DOCTYPE).c_str());
EXPECT_STREQ(
"text/html",
- GetAttr(tree, AccessibilityNodeData::ATTR_DOC_MIMETYPE).c_str());
+ GetAttr(root, ui::AX_ATTR_DOC_MIMETYPE).c_str());
EXPECT_STREQ(
"Accessibility Test",
- GetAttr(tree, AccessibilityNodeData::ATTR_NAME).c_str());
- EXPECT_EQ(blink::WebAXRoleRootWebArea, tree.role);
+ GetAttr(root, ui::AX_ATTR_NAME).c_str());
+ EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->data().role);
// Check properites of the BODY element.
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& body = tree.children[0];
- EXPECT_EQ(blink::WebAXRoleGroup, body.role);
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* body = root->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_GROUP, body->data().role);
EXPECT_STREQ("body",
- GetAttr(body, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
+ GetAttr(body, ui::AX_ATTR_HTML_TAG).c_str());
EXPECT_STREQ("block",
- GetAttr(body, AccessibilityNodeData::ATTR_DISPLAY).c_str());
+ GetAttr(body, ui::AX_ATTR_DISPLAY).c_str());
// Check properties of the two children of the BODY element.
- ASSERT_EQ(2U, body.children.size());
+ ASSERT_EQ(2, body->child_count());
- const AccessibilityNodeDataTreeNode& button = body.children[0];
- EXPECT_EQ(blink::WebAXRoleButton, button.role);
+ const ui::AXNode* button = body->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, button->data().role);
EXPECT_STREQ(
- "input", GetAttr(button, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
+ "input", GetAttr(button, ui::AX_ATTR_HTML_TAG).c_str());
EXPECT_STREQ(
"push",
- GetAttr(button, AccessibilityNodeData::ATTR_NAME).c_str());
+ GetAttr(button, ui::AX_ATTR_NAME).c_str());
EXPECT_STREQ(
"inline-block",
- GetAttr(button, AccessibilityNodeData::ATTR_DISPLAY).c_str());
- ASSERT_EQ(2U, button.html_attributes.size());
- EXPECT_STREQ("type", button.html_attributes[0].first.c_str());
- EXPECT_STREQ("button", button.html_attributes[0].second.c_str());
- EXPECT_STREQ("value", button.html_attributes[1].first.c_str());
- EXPECT_STREQ("push", button.html_attributes[1].second.c_str());
-
- const AccessibilityNodeDataTreeNode& checkbox = body.children[1];
- EXPECT_EQ(blink::WebAXRoleCheckBox, checkbox.role);
+ GetAttr(button, ui::AX_ATTR_DISPLAY).c_str());
+ ASSERT_EQ(2U, button->data().html_attributes.size());
+ EXPECT_STREQ("type", button->data().html_attributes[0].first.c_str());
+ EXPECT_STREQ("button", button->data().html_attributes[0].second.c_str());
+ EXPECT_STREQ("value", button->data().html_attributes[1].first.c_str());
+ EXPECT_STREQ("push", button->data().html_attributes[1].second.c_str());
+
+ const ui::AXNode* checkbox = body->ChildAtIndex(1);
+ EXPECT_EQ(ui::AX_ROLE_CHECK_BOX, checkbox->data().role);
EXPECT_STREQ(
- "input", GetAttr(checkbox, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
+ "input", GetAttr(checkbox, ui::AX_ATTR_HTML_TAG).c_str());
EXPECT_STREQ(
"inline-block",
- GetAttr(checkbox, AccessibilityNodeData::ATTR_DISPLAY).c_str());
- ASSERT_EQ(1U, checkbox.html_attributes.size());
- EXPECT_STREQ("type", checkbox.html_attributes[0].first.c_str());
- EXPECT_STREQ("checkbox", checkbox.html_attributes[0].second.c_str());
+ GetAttr(checkbox, ui::AX_ATTR_DISPLAY).c_str());
+ ASSERT_EQ(1U, checkbox->data().html_attributes.size());
+ EXPECT_STREQ("type", checkbox->data().html_attributes[0].first.c_str());
+ EXPECT_STREQ("checkbox", checkbox->data().html_attributes[0].second.c_str());
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -206,19 +211,20 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& body = tree.children[0];
- ASSERT_EQ(1U, body.children.size());
- const AccessibilityNodeDataTreeNode& text = body.children[0];
- EXPECT_EQ(blink::WebAXRoleTextField, text.role);
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* body = root->ChildAtIndex(0);
+ ASSERT_EQ(1, body->child_count());
+ const ui::AXNode* text = body->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, text->data().role);
EXPECT_STREQ(
- "input", GetAttr(text, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
- EXPECT_EQ(0, GetIntAttr(text, AccessibilityNodeData::ATTR_TEXT_SEL_START));
- EXPECT_EQ(0, GetIntAttr(text, AccessibilityNodeData::ATTR_TEXT_SEL_END));
+ "input", GetAttr(text, ui::AX_ATTR_HTML_TAG).c_str());
+ EXPECT_EQ(0, GetIntAttr(text, ui::AX_ATTR_TEXT_SEL_START));
+ EXPECT_EQ(0, GetIntAttr(text, ui::AX_ATTR_TEXT_SEL_END));
EXPECT_STREQ(
"Hello, world.",
- GetAttr(text, AccessibilityNodeData::ATTR_VALUE).c_str());
+ GetAttr(text, ui::AX_ATTR_VALUE).c_str());
// TODO(dmazzoni): as soon as more accessibility code is cross-platform,
// this code should test that the accessible info is dynamically updated
@@ -237,26 +243,27 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& body = tree.children[0];
- ASSERT_EQ(1U, body.children.size());
- const AccessibilityNodeDataTreeNode& text = body.children[0];
- EXPECT_EQ(blink::WebAXRoleTextField, text.role);
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* body = root->ChildAtIndex(0);
+ ASSERT_EQ(1, body->child_count());
+ const ui::AXNode* text = body->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, text->data().role);
EXPECT_STREQ(
- "input", GetAttr(text, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
- EXPECT_EQ(0, GetIntAttr(text, AccessibilityNodeData::ATTR_TEXT_SEL_START));
- EXPECT_EQ(13, GetIntAttr(text, AccessibilityNodeData::ATTR_TEXT_SEL_END));
+ "input", GetAttr(text, ui::AX_ATTR_HTML_TAG).c_str());
+ EXPECT_EQ(0, GetIntAttr(text, ui::AX_ATTR_TEXT_SEL_START));
+ EXPECT_EQ(13, GetIntAttr(text, ui::AX_ATTR_TEXT_SEL_END));
EXPECT_STREQ(
"Hello, world.",
- GetAttr(text, AccessibilityNodeData::ATTR_VALUE).c_str());
+ GetAttr(text, ui::AX_ATTR_VALUE).c_str());
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
MultipleInheritanceAccessibility) {
// In a WebKit accessibility render tree for a table, each cell is a
// child of both a row and a column, so it appears to use multiple
- // inheritance. Make sure that the AccessibilityNodeDataObject tree only
+ // inheritance. Make sure that the ui::AXNodeDataObject tree only
// keeps one copy of each cell, and uses an indirect child id for the
// additional reference to it.
const char url_str[] =
@@ -266,35 +273,36 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& table = tree.children[0];
- EXPECT_EQ(blink::WebAXRoleTable, table.role);
- const AccessibilityNodeDataTreeNode& row = table.children[0];
- EXPECT_EQ(blink::WebAXRoleRow, row.role);
- const AccessibilityNodeDataTreeNode& cell1 = row.children[0];
- EXPECT_EQ(blink::WebAXRoleCell, cell1.role);
- const AccessibilityNodeDataTreeNode& cell2 = row.children[1];
- EXPECT_EQ(blink::WebAXRoleCell, cell2.role);
- const AccessibilityNodeDataTreeNode& column1 = table.children[1];
- EXPECT_EQ(blink::WebAXRoleColumn, column1.role);
- EXPECT_EQ(0U, column1.children.size());
- EXPECT_EQ(1U, column1.intlist_attributes.size());
- EXPECT_EQ(AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS,
- column1.intlist_attributes[0].first);
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* table = root->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_TABLE, table->data().role);
+ const ui::AXNode* row = table->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_ROW, row->data().role);
+ const ui::AXNode* cell1 = row->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_CELL, cell1->data().role);
+ const ui::AXNode* cell2 = row->ChildAtIndex(1);
+ EXPECT_EQ(ui::AX_ROLE_CELL, cell2->data().role);
+ const ui::AXNode* column1 = table->ChildAtIndex(1);
+ EXPECT_EQ(ui::AX_ROLE_COLUMN, column1->data().role);
+ EXPECT_EQ(0, column1->child_count());
+ EXPECT_EQ(1U, column1->data().intlist_attributes.size());
+ EXPECT_EQ(ui::AX_ATTR_INDIRECT_CHILD_IDS,
+ column1->data().intlist_attributes[0].first);
const std::vector<int32> column1_indirect_child_ids =
- column1.intlist_attributes[0].second;
+ column1->data().intlist_attributes[0].second;
EXPECT_EQ(1U, column1_indirect_child_ids.size());
- EXPECT_EQ(cell1.id, column1_indirect_child_ids[0]);
- const AccessibilityNodeDataTreeNode& column2 = table.children[2];
- EXPECT_EQ(blink::WebAXRoleColumn, column2.role);
- EXPECT_EQ(0U, column2.children.size());
- EXPECT_EQ(AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS,
- column2.intlist_attributes[0].first);
+ EXPECT_EQ(cell1->id(), column1_indirect_child_ids[0]);
+ const ui::AXNode* column2 = table->ChildAtIndex(2);
+ EXPECT_EQ(ui::AX_ROLE_COLUMN, column2->data().role);
+ EXPECT_EQ(0, column2->child_count());
+ EXPECT_EQ(ui::AX_ATTR_INDIRECT_CHILD_IDS,
+ column2->data().intlist_attributes[0].first);
const std::vector<int32> column2_indirect_child_ids =
- column2.intlist_attributes[0].second;
+ column2->data().intlist_attributes[0].second;
EXPECT_EQ(1U, column2_indirect_child_ids.size());
- EXPECT_EQ(cell2.id, column2_indirect_child_ids[0]);
+ EXPECT_EQ(cell2->id(), column2_indirect_child_ids[0]);
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -314,9 +322,10 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
base::hash_set<int> ids;
- RecursiveAssertUniqueIds(tree, &ids);
+ RecursiveAssertUniqueIds(root, &ids);
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -334,42 +343,43 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& body = tree.children[0];
- ASSERT_EQ(3U, body.children.size());
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* body = root->ChildAtIndex(0);
+ ASSERT_EQ(3, body->child_count());
- const AccessibilityNodeDataTreeNode& button1 = body.children[0];
- EXPECT_EQ(blink::WebAXRoleButton, button1.role);
+ const ui::AXNode* button1 = body->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, button1->data().role);
EXPECT_STREQ(
"Button 1",
- GetAttr(button1, AccessibilityNodeData::ATTR_NAME).c_str());
+ GetAttr(button1, ui::AX_ATTR_NAME).c_str());
- const AccessibilityNodeDataTreeNode& iframe = body.children[1];
+ const ui::AXNode* iframe = body->ChildAtIndex(1);
EXPECT_STREQ("iframe",
- GetAttr(iframe, AccessibilityNodeData::ATTR_HTML_TAG).c_str());
- ASSERT_EQ(1U, iframe.children.size());
+ GetAttr(iframe, ui::AX_ATTR_HTML_TAG).c_str());
+ ASSERT_EQ(1, iframe->child_count());
- const AccessibilityNodeDataTreeNode& scroll_area = iframe.children[0];
- EXPECT_EQ(blink::WebAXRoleScrollArea, scroll_area.role);
- ASSERT_EQ(1U, scroll_area.children.size());
+ const ui::AXNode* scroll_area = iframe->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_SCROLL_AREA, scroll_area->data().role);
+ ASSERT_EQ(1, scroll_area->child_count());
- const AccessibilityNodeDataTreeNode& sub_document = scroll_area.children[0];
- EXPECT_EQ(blink::WebAXRoleWebArea, sub_document.role);
- ASSERT_EQ(1U, sub_document.children.size());
+ const ui::AXNode* sub_document = scroll_area->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_WEB_AREA, sub_document->data().role);
+ ASSERT_EQ(1, sub_document->child_count());
- const AccessibilityNodeDataTreeNode& sub_body = sub_document.children[0];
- ASSERT_EQ(1U, sub_body.children.size());
+ const ui::AXNode* sub_body = sub_document->ChildAtIndex(0);
+ ASSERT_EQ(1, sub_body->child_count());
- const AccessibilityNodeDataTreeNode& button2 = sub_body.children[0];
- EXPECT_EQ(blink::WebAXRoleButton, button2.role);
+ const ui::AXNode* button2 = sub_body->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, button2->data().role);
EXPECT_STREQ("Button 2",
- GetAttr(button2, AccessibilityNodeData::ATTR_NAME).c_str());
+ GetAttr(button2, ui::AX_ATTR_NAME).c_str());
- const AccessibilityNodeDataTreeNode& button3 = body.children[2];
- EXPECT_EQ(blink::WebAXRoleButton, button3.role);
+ const ui::AXNode* button3 = body->ChildAtIndex(2);
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, button3->data().role);
EXPECT_STREQ("Button 3",
- GetAttr(button3, AccessibilityNodeData::ATTR_NAME).c_str());
+ GetAttr(button3, ui::AX_ATTR_NAME).c_str());
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -384,9 +394,10 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
base::hash_set<int> ids;
- RecursiveAssertUniqueIds(tree, &ids);
+ RecursiveAssertUniqueIds(root, &ids);
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -411,56 +422,57 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
- const AccessibilityNodeDataTreeNode& table = tree.children[0];
- EXPECT_EQ(blink::WebAXRoleTable, table.role);
- ASSERT_GE(table.children.size(), 5U);
- EXPECT_EQ(blink::WebAXRoleRow, table.children[0].role);
- EXPECT_EQ(blink::WebAXRoleRow, table.children[1].role);
- EXPECT_EQ(blink::WebAXRoleColumn, table.children[2].role);
- EXPECT_EQ(blink::WebAXRoleColumn, table.children[3].role);
- EXPECT_EQ(blink::WebAXRoleColumn, table.children[4].role);
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ const ui::AXNode* table = root->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_TABLE, table->data().role);
+ ASSERT_GE(table->child_count(), 5);
+ EXPECT_EQ(ui::AX_ROLE_ROW, table->ChildAtIndex(0)->data().role);
+ EXPECT_EQ(ui::AX_ROLE_ROW, table->ChildAtIndex(1)->data().role);
+ EXPECT_EQ(ui::AX_ROLE_COLUMN, table->ChildAtIndex(2)->data().role);
+ EXPECT_EQ(ui::AX_ROLE_COLUMN, table->ChildAtIndex(3)->data().role);
+ EXPECT_EQ(ui::AX_ROLE_COLUMN, table->ChildAtIndex(4)->data().role);
EXPECT_EQ(3,
- GetIntAttr(table, AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT));
- EXPECT_EQ(2, GetIntAttr(table, AccessibilityNodeData::ATTR_TABLE_ROW_COUNT));
+ GetIntAttr(table, ui::AX_ATTR_TABLE_COLUMN_COUNT));
+ EXPECT_EQ(2, GetIntAttr(table, ui::AX_ATTR_TABLE_ROW_COUNT));
- const AccessibilityNodeDataTreeNode& cell1 = table.children[0].children[0];
- const AccessibilityNodeDataTreeNode& cell2 = table.children[0].children[1];
- const AccessibilityNodeDataTreeNode& cell3 = table.children[1].children[0];
- const AccessibilityNodeDataTreeNode& cell4 = table.children[1].children[1];
+ const ui::AXNode* cell1 = table->ChildAtIndex(0)->ChildAtIndex(0);
+ const ui::AXNode* cell2 = table->ChildAtIndex(0)->ChildAtIndex(1);
+ const ui::AXNode* cell3 = table->ChildAtIndex(1)->ChildAtIndex(0);
+ const ui::AXNode* cell4 = table->ChildAtIndex(1)->ChildAtIndex(1);
- ASSERT_EQ(AccessibilityNodeData::ATTR_CELL_IDS,
- table.intlist_attributes[0].first);
+ ASSERT_EQ(ui::AX_ATTR_CELL_IDS,
+ table->data().intlist_attributes[0].first);
const std::vector<int32>& table_cell_ids =
- table.intlist_attributes[0].second;
+ table->data().intlist_attributes[0].second;
ASSERT_EQ(6U, table_cell_ids.size());
- EXPECT_EQ(cell1.id, table_cell_ids[0]);
- EXPECT_EQ(cell1.id, table_cell_ids[1]);
- EXPECT_EQ(cell2.id, table_cell_ids[2]);
- EXPECT_EQ(cell3.id, table_cell_ids[3]);
- EXPECT_EQ(cell4.id, table_cell_ids[4]);
- EXPECT_EQ(cell4.id, table_cell_ids[5]);
+ EXPECT_EQ(cell1->id(), table_cell_ids[0]);
+ EXPECT_EQ(cell1->id(), table_cell_ids[1]);
+ EXPECT_EQ(cell2->id(), table_cell_ids[2]);
+ EXPECT_EQ(cell3->id(), table_cell_ids[3]);
+ EXPECT_EQ(cell4->id(), table_cell_ids[4]);
+ EXPECT_EQ(cell4->id(), table_cell_ids[5]);
EXPECT_EQ(0, GetIntAttr(cell1,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX));
EXPECT_EQ(0, GetIntAttr(cell1,
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX));
+ ui::AX_ATTR_TABLE_CELL_ROW_INDEX));
EXPECT_EQ(2, GetIntAttr(cell1,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN));
EXPECT_EQ(1, GetIntAttr(cell1,
- AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN));
+ ui::AX_ATTR_TABLE_CELL_ROW_SPAN));
EXPECT_EQ(2, GetIntAttr(cell2,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX));
EXPECT_EQ(1, GetIntAttr(cell2,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN));
EXPECT_EQ(0, GetIntAttr(cell3,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX));
EXPECT_EQ(1, GetIntAttr(cell3,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN));
EXPECT_EQ(1, GetIntAttr(cell4,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX));
EXPECT_EQ(2, GetIntAttr(cell4,
- AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN));
+ ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN));
}
IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
@@ -473,13 +485,11 @@ IN_PROC_BROWSER_TEST_F(CrossPlatformAccessibilityBrowserTest,
"</div>";
GURL url(url_str);
NavigateToURL(shell(), url);
- const AccessibilityNodeDataTreeNode& tree = GetAccessibilityNodeDataTree();
-
- ASSERT_EQ(1U, tree.children.size());
- const AccessibilityNodeDataTreeNode& textbox = tree.children[0];
-
- EXPECT_EQ(
- true, GetBoolAttr(textbox, AccessibilityNodeData::ATTR_CAN_SET_VALUE));
+ const ui::AXTree& tree = GetAXTree();
+ const ui::AXNode* root = tree.GetRoot();
+ ASSERT_EQ(1, root->child_count());
+ const ui::AXNode* textbox = root->ChildAtIndex(0);
+ EXPECT_EQ(true, GetBoolAttr(textbox, ui::AX_ATTR_CAN_SET_VALUE));
}
} // namespace content
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index cfb0a27..c1e244e 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -177,7 +177,7 @@ void DumpAccessibilityTreeTest::RunTest(
html_file.BaseName().MaybeAsASCII().c_str());
AccessibilityNotificationWaiter waiter(
shell(), AccessibilityModeComplete,
- blink::WebAXEventLoadComplete);
+ ui::AX_EVENT_LOAD_COMPLETE);
NavigateToURL(shell(), url);
waiter.WaitForNotification();
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index c04e4f5..d6ff945 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -72,6 +72,7 @@
#include "net/base/network_change_notifier.h"
#include "net/url_request/url_request_context_getter.h"
#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/accessibility/ax_tree.h"
#include "ui/base/touch/touch_device.h"
#include "ui/base/touch/touch_enabled.h"
#include "ui/base/ui_base_switches.h"
@@ -2014,7 +2015,7 @@ void RenderViewHostImpl::DisownOpener() {
}
void RenderViewHostImpl::SetAccessibilityCallbackForTesting(
- const base::Callback<void(blink::WebAXEvent)>& callback) {
+ const base::Callback<void(ui::AXEvent)>& callback) {
accessibility_testing_callback_ = callback;
}
@@ -2131,12 +2132,15 @@ void RenderViewHostImpl::OnAccessibilityEvents(
for (unsigned i = 0; i < params.size(); i++) {
const AccessibilityHostMsg_EventParams& param = params[i];
- blink::WebAXEvent src_type = param.event_type;
- if (src_type == blink::WebAXEventLayoutComplete ||
- src_type == blink::WebAXEventLoadComplete) {
- MakeAccessibilityNodeDataTree(param.nodes, &accessibility_tree_);
- }
- accessibility_testing_callback_.Run(src_type);
+ if (static_cast<int>(param.event_type) < 0)
+ continue;
+ ui::AXTreeUpdate update;
+ update.nodes = param.nodes;
+ if (!ax_tree_)
+ ax_tree_.reset(new ui::AXTree(update));
+ else
+ CHECK(ax_tree_->Unserialize(update)) << ax_tree_->error();
+ accessibility_testing_callback_.Run(param.event_type);
}
}
diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h
index dbb1956e..24f8b88 100644
--- a/content/browser/renderer_host/render_view_host_impl.h
+++ b/content/browser/renderer_host/render_view_host_impl.h
@@ -15,7 +15,6 @@
#include "base/process/kill.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/browser/site_instance_impl.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/drag_event_source_info.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/render_view_host.h"
@@ -28,6 +27,7 @@
#include "third_party/WebKit/public/web/WebPopupType.h"
#include "third_party/WebKit/public/web/WebTextDirection.h"
#include "third_party/skia/include/core/SkColor.h"
+#include "ui/accessibility/ax_node_data.h"
#include "ui/base/window_open_disposition.h"
class SkBitmap;
@@ -53,6 +53,7 @@ class Range;
}
namespace ui {
+class AXTree;
struct SelectedFileInfo;
}
@@ -437,14 +438,15 @@ class CONTENT_EXPORT RenderViewHostImpl
// renderer process, and the accessibility tree it sent can be
// retrieved using accessibility_tree_for_testing().
void SetAccessibilityCallbackForTesting(
- const base::Callback<void(blink::WebAXEvent)>& callback);
+ const base::Callback<void(ui::AXEvent)>& callback);
// Only valid if SetAccessibilityCallbackForTesting was called and
// the callback was run at least once. Returns a snapshot of the
// accessibility tree received from the renderer as of the last time
- // a LoadComplete or LayoutComplete accessibility notification was received.
- const AccessibilityNodeDataTreeNode& accessibility_tree_for_testing() {
- return accessibility_tree_;
+ // an accessibility notification was received.
+ const ui::AXTree& ax_tree_for_testing() {
+ CHECK(ax_tree_.get());
+ return *ax_tree_.get();
}
// Set accessibility callbacks.
@@ -693,10 +695,10 @@ class CONTENT_EXPORT RenderViewHostImpl
std::map<int, JavascriptResultCallback> javascript_callbacks_;
// Accessibility callback for testing.
- base::Callback<void(blink::WebAXEvent)> accessibility_testing_callback_;
+ base::Callback<void(ui::AXEvent)> accessibility_testing_callback_;
// The most recently received accessibility tree - for testing only.
- AccessibilityNodeDataTreeNode accessibility_tree_;
+ scoped_ptr<ui::AXTree> ax_tree_;
// True if the render view can be shut down suddenly.
bool sudden_termination_allowed_;
diff --git a/content/common/accessibility_messages.h b/content/common/accessibility_messages.h
index 05ff75c..8f48ede 100644
--- a/content/common/accessibility_messages.h
+++ b/content/common/accessibility_messages.h
@@ -6,7 +6,6 @@
// Multiply-included message file, hence no include guard.
#include "base/basictypes.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/content_export.h"
#include "content/common/view_message_enums.h"
#include "content/public/common/common_param_traits.h"
@@ -15,22 +14,23 @@
#include "ipc/ipc_param_traits.h"
#include "ipc/param_traits_macros.h"
#include "third_party/WebKit/public/web/WebAXEnums.h"
+#include "ui/accessibility/ax_node_data.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
#define IPC_MESSAGE_START AccessibilityMsgStart
-IPC_ENUM_TRAITS(blink::WebAXEvent)
-IPC_ENUM_TRAITS(blink::WebAXRole)
+IPC_ENUM_TRAITS(ui::AXEvent)
+IPC_ENUM_TRAITS(ui::AXRole)
-IPC_ENUM_TRAITS(content::AccessibilityNodeData::BoolAttribute)
-IPC_ENUM_TRAITS(content::AccessibilityNodeData::FloatAttribute)
-IPC_ENUM_TRAITS(content::AccessibilityNodeData::IntAttribute)
-IPC_ENUM_TRAITS(content::AccessibilityNodeData::IntListAttribute)
-IPC_ENUM_TRAITS(content::AccessibilityNodeData::StringAttribute)
+IPC_ENUM_TRAITS(ui::AXBoolAttribute)
+IPC_ENUM_TRAITS(ui::AXFloatAttribute)
+IPC_ENUM_TRAITS(ui::AXIntAttribute)
+IPC_ENUM_TRAITS(ui::AXIntListAttribute)
+IPC_ENUM_TRAITS(ui::AXStringAttribute)
-IPC_STRUCT_TRAITS_BEGIN(content::AccessibilityNodeData)
+IPC_STRUCT_TRAITS_BEGIN(ui::AXNodeData)
IPC_STRUCT_TRAITS_MEMBER(id)
IPC_STRUCT_TRAITS_MEMBER(role)
IPC_STRUCT_TRAITS_MEMBER(state)
@@ -47,10 +47,10 @@ IPC_STRUCT_TRAITS_END()
IPC_STRUCT_BEGIN(AccessibilityHostMsg_EventParams)
// Vector of nodes in the tree that need to be updated before
// sending the event.
- IPC_STRUCT_MEMBER(std::vector<content::AccessibilityNodeData>, nodes)
+ IPC_STRUCT_MEMBER(std::vector<ui::AXNodeData>, nodes)
// Type of event.
- IPC_STRUCT_MEMBER(blink::WebAXEvent, event_type)
+ IPC_STRUCT_MEMBER(ui::AXEvent, event_type)
// ID of the node that the event applies to.
IPC_STRUCT_MEMBER(int, id)
diff --git a/content/common/accessibility_node_data.cc b/content/common/accessibility_node_data.cc
deleted file mode 100644
index ed8fef3..0000000
--- a/content/common/accessibility_node_data.cc
+++ /dev/null
@@ -1,572 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/common/accessibility_node_data.h"
-
-#include <set>
-
-#include "base/containers/hash_tables.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-
-using base::DoubleToString;
-using base::IntToString;
-
-namespace {
-
-#ifndef NDEBUG
-std::string IntVectorToString(const std::vector<int>& items) {
- std::string str;
- for (size_t i = 0; i < items.size(); ++i) {
- if (i > 0)
- str += ",";
- str += IntToString(items[i]);
- }
- return str;
-}
-#endif
-
-} // Anonymous namespace
-
-namespace content {
-
-AccessibilityNodeData::AccessibilityNodeData()
- : id(-1),
- role(blink::WebAXRoleUnknown),
- state(-1) {
-}
-
-AccessibilityNodeData::~AccessibilityNodeData() {
-}
-
-void AccessibilityNodeData::AddStringAttribute(
- StringAttribute attribute, const std::string& value) {
- string_attributes.push_back(std::make_pair(attribute, value));
-}
-
-void AccessibilityNodeData::AddIntAttribute(
- IntAttribute attribute, int value) {
- int_attributes.push_back(std::make_pair(attribute, value));
-}
-
-void AccessibilityNodeData::AddFloatAttribute(
- FloatAttribute attribute, float value) {
- float_attributes.push_back(std::make_pair(attribute, value));
-}
-
-void AccessibilityNodeData::AddBoolAttribute(
- BoolAttribute attribute, bool value) {
- bool_attributes.push_back(std::make_pair(attribute, value));
-}
-
-void AccessibilityNodeData::AddIntListAttribute(
- IntListAttribute attribute, const std::vector<int32>& value) {
- intlist_attributes.push_back(std::make_pair(attribute, value));
-}
-
-void AccessibilityNodeData::SetName(std::string name) {
- string_attributes.push_back(std::make_pair(ATTR_NAME, name));
-}
-
-void AccessibilityNodeData::SetValue(std::string value) {
- string_attributes.push_back(std::make_pair(ATTR_VALUE, value));
-}
-
-AccessibilityNodeDataTreeNode::AccessibilityNodeDataTreeNode()
- : AccessibilityNodeData() {
-}
-
-AccessibilityNodeDataTreeNode::~AccessibilityNodeDataTreeNode() {
-}
-
-AccessibilityNodeDataTreeNode& AccessibilityNodeDataTreeNode::operator=(
- const AccessibilityNodeData& src) {
- AccessibilityNodeData::operator=(src);
- return *this;
-}
-
-void MakeAccessibilityNodeDataTree(
- const std::vector<AccessibilityNodeData>& src_vector,
- AccessibilityNodeDataTreeNode* dst_root) {
- // This method assumes |src_vector| contains all of the nodes of
- // an accessibility tree, and that each parent comes before its
- // children. Each node has an id, and the ids of its children.
- // The output is a tree where each node contains its children.
-
- // Initialize a hash map with all of the ids in |src_vector|.
- base::hash_map<int32, AccessibilityNodeDataTreeNode*> id_map;
- for (size_t i = 0; i < src_vector.size(); ++i)
- id_map[src_vector[i].id] = NULL;
-
- // Copy the nodes to the output tree one at a time.
- for (size_t i = 0; i < src_vector.size(); ++i) {
- const AccessibilityNodeData& src_node = src_vector[i];
- AccessibilityNodeDataTreeNode* dst_node;
-
- // If it's the first element in the vector, assume it's
- // the root. For any other element, look for it in our
- // hash map, and skip it if not there (meaning there was
- // an extranous node, or the nodes were sent in the wrong
- // order).
- if (i == 0) {
- dst_node = dst_root;
- } else {
- dst_node = id_map[src_node.id];
- if (!dst_node)
- continue;
- }
-
- // Copy the node data.
- *dst_node = src_node;
-
- // Add placeholders for all of the node's children in the tree,
- // and add them to the hash map so we can find them when we
- // encounter them in |src_vector|.
- dst_node->children.reserve(src_node.child_ids.size());
- for (size_t j = 0; j < src_node.child_ids.size(); ++j) {
- int child_id = src_node.child_ids[j];
- if (id_map.find(child_id) != id_map.end()) {
- dst_node->children.push_back(AccessibilityNodeDataTreeNode());
- id_map[child_id] = &dst_node->children.back();
- }
- }
- }
-}
-
-#ifndef NDEBUG
-std::string AccessibilityNodeData::DebugString(bool recursive) const {
- std::string result;
-
- result += "id=" + IntToString(id);
-
- switch (role) {
- case blink::WebAXRoleAlert: result += " ALERT"; break;
- case blink::WebAXRoleAlertDialog: result += " ALERT_DIALOG"; break;
- case blink::WebAXRoleAnnotation: result += " ANNOTATION"; break;
- case blink::WebAXRoleApplication: result += " APPLICATION"; break;
- case blink::WebAXRoleArticle: result += " ARTICLE"; break;
- case blink::WebAXRoleBanner: result += " L_BANNER"; break;
- case blink::WebAXRoleBrowser: result += " BROWSER"; break;
- case blink::WebAXRoleBusyIndicator: result += " BUSY_INDICATOR"; break;
- case blink::WebAXRoleButton: result += " BUTTON"; break;
- case blink::WebAXRoleCanvas: result += " CANVAS"; break;
- case blink::WebAXRoleCell: result += " CELL"; break;
- case blink::WebAXRoleCheckBox: result += " CHECKBOX"; break;
- case blink::WebAXRoleColorWell: result += " COLOR_WELL"; break;
- case blink::WebAXRoleColumn: result += " COLUMN"; break;
- case blink::WebAXRoleColumnHeader: result += " COLUMN_HEADER"; break;
- case blink::WebAXRoleComboBox: result += " COMBO_BOX"; break;
- case blink::WebAXRoleComplementary: result += " L_COMPLEMENTARY"; break;
- case blink::WebAXRoleContentInfo: result += " L_CONTENTINFO"; break;
- case blink::WebAXRoleDefinition: result += " DEFINITION"; break;
- case blink::WebAXRoleDescriptionListDetail: result += " DD"; break;
- case blink::WebAXRoleDescriptionListTerm: result += " DT"; break;
- case blink::WebAXRoleDialog: result += " DIALOG"; break;
- case blink::WebAXRoleDirectory: result += " DIRECTORY"; break;
- case blink::WebAXRoleDisclosureTriangle:
- result += " DISCLOSURE_TRIANGLE"; break;
- case blink::WebAXRoleDiv: result += " DIV"; break;
- case blink::WebAXRoleDocument: result += " DOCUMENT"; break;
- case blink::WebAXRoleDrawer: result += " DRAWER"; break;
- case blink::WebAXRoleEditableText: result += " EDITABLE_TEXT"; break;
- case blink::WebAXRoleFooter: result += " FOOTER"; break;
- case blink::WebAXRoleForm: result += " FORM"; break;
- case blink::WebAXRoleGrid: result += " GRID"; break;
- case blink::WebAXRoleGroup: result += " GROUP"; break;
- case blink::WebAXRoleGrowArea: result += " GROW_AREA"; break;
- case blink::WebAXRoleHeading: result += " HEADING"; break;
- case blink::WebAXRoleHelpTag: result += " HELP_TAG"; break;
- case blink::WebAXRoleHorizontalRule: result += " HORIZONTAL_RULE"; break;
- case blink::WebAXRoleIgnored: result += " IGNORED"; break;
- case blink::WebAXRoleImage: result += " IMAGE"; break;
- case blink::WebAXRoleImageMap: result += " IMAGE_MAP"; break;
- case blink::WebAXRoleImageMapLink: result += " IMAGE_MAP_LINK"; break;
- case blink::WebAXRoleIncrementor: result += " INCREMENTOR"; break;
- case blink::WebAXRoleInlineTextBox: result += " INLINE_TEXT_BOX"; break;
- case blink::WebAXRoleLabel: result += " LABEL"; break;
- case blink::WebAXRoleLink: result += " LINK"; break;
- case blink::WebAXRoleList: result += " LIST"; break;
- case blink::WebAXRoleListBox: result += " LISTBOX"; break;
- case blink::WebAXRoleListBoxOption: result += " LISTBOX_OPTION"; break;
- case blink::WebAXRoleListItem: result += " LIST_ITEM"; break;
- case blink::WebAXRoleListMarker: result += " LIST_MARKER"; break;
- case blink::WebAXRoleLog: result += " LOG"; break;
- case blink::WebAXRoleMain: result += " L_MAIN"; break;
- case blink::WebAXRoleMarquee: result += " MARQUEE"; break;
- case blink::WebAXRoleMath: result += " MATH"; break;
- case blink::WebAXRoleMatte: result += " MATTE"; break;
- case blink::WebAXRoleMenu: result += " MENU"; break;
- case blink::WebAXRoleMenuBar: result += " MENU_BAR"; break;
- case blink::WebAXRoleMenuButton: result += " MENU_BUTTON"; break;
- case blink::WebAXRoleMenuItem: result += " MENU_ITEM"; break;
- case blink::WebAXRoleMenuListOption: result += " MENU_LIST_OPTION"; break;
- case blink::WebAXRoleMenuListPopup: result += " MENU_LIST_POPUP"; break;
- case blink::WebAXRoleNavigation: result += " L_NAVIGATION"; break;
- case blink::WebAXRoleNote: result += " NOTE"; break;
- case blink::WebAXRoleOutline: result += " OUTLINE"; break;
- case blink::WebAXRoleParagraph: result += " PARAGRAPH"; break;
- case blink::WebAXRolePopUpButton: result += " POPUP_BUTTON"; break;
- case blink::WebAXRolePresentational: result += " PRESENTATIONAL"; break;
- case blink::WebAXRoleProgressIndicator:
- result += " PROGRESS_INDICATOR"; break;
- case blink::WebAXRoleRadioButton: result += " RADIO_BUTTON"; break;
- case blink::WebAXRoleRadioGroup: result += " RADIO_GROUP"; break;
- case blink::WebAXRoleRegion: result += " REGION"; break;
- case blink::WebAXRoleRootWebArea: result += " ROOT_WEB_AREA"; break;
- case blink::WebAXRoleRow: result += " ROW"; break;
- case blink::WebAXRoleRowHeader: result += " ROW_HEADER"; break;
- case blink::WebAXRoleRuler: result += " RULER"; break;
- case blink::WebAXRoleRulerMarker: result += " RULER_MARKER"; break;
- case blink::WebAXRoleSVGRoot: result += " SVG_ROOT"; break;
- case blink::WebAXRoleScrollArea: result += " SCROLLAREA"; break;
- case blink::WebAXRoleScrollBar: result += " SCROLLBAR"; break;
- case blink::WebAXRoleSearch: result += " L_SEARCH"; break;
- case blink::WebAXRoleSheet: result += " SHEET"; break;
- case blink::WebAXRoleSlider: result += " SLIDER"; break;
- case blink::WebAXRoleSliderThumb: result += " SLIDER_THUMB"; break;
- case blink::WebAXRoleSpinButton: result += " SPIN_BUTTON"; break;
- case blink::WebAXRoleSpinButtonPart: result += " SPIN_BUTTON_PART"; break;
- case blink::WebAXRoleSplitGroup: result += " SPLIT_GROUP"; break;
- case blink::WebAXRoleSplitter: result += " SPLITTER"; break;
- case blink::WebAXRoleStaticText: result += " STATIC_TEXT"; break;
- case blink::WebAXRoleStatus: result += " STATUS"; break;
- case blink::WebAXRoleSystemWide: result += " SYSTEM_WIDE"; break;
- case blink::WebAXRoleTab: result += " TAB"; break;
- case blink::WebAXRoleTabList: result += " TAB_LIST"; break;
- case blink::WebAXRoleTabPanel: result += " TAB_PANEL"; break;
- case blink::WebAXRoleTable: result += " TABLE"; break;
- case blink::WebAXRoleTableHeaderContainer:
- result += " TABLE_HDR_CONTAINER"; break;
- case blink::WebAXRoleTextArea: result += " TEXTAREA"; break;
- case blink::WebAXRoleTextField: result += " TEXT_FIELD"; break;
- case blink::WebAXRoleTimer: result += " TIMER"; break;
- case blink::WebAXRoleToggleButton: result += " TOGGLE_BUTTON"; break;
- case blink::WebAXRoleToolbar: result += " TOOLBAR"; break;
- case blink::WebAXRoleTree: result += " TREE"; break;
- case blink::WebAXRoleTreeGrid: result += " TREE_GRID"; break;
- case blink::WebAXRoleTreeItem: result += " TREE_ITEM"; break;
- case blink::WebAXRoleUnknown: result += " UNKNOWN"; break;
- case blink::WebAXRoleUserInterfaceTooltip: result += " TOOLTIP"; break;
- case blink::WebAXRoleValueIndicator: result += " VALUE_INDICATOR"; break;
- case blink::WebAXRoleWebArea: result += " WEB_AREA"; break;
- case blink::WebAXRoleWindow: result += " WINDOW"; break;
- default:
- assert(false);
- }
-
- if (state & (1 << blink::WebAXStateBusy))
- result += " BUSY";
- if (state & (1 << blink::WebAXStateChecked))
- result += " CHECKED";
- if (state & (1 << blink::WebAXStateCollapsed))
- result += " COLLAPSED";
- if (state & (1 << blink::WebAXStateExpanded))
- result += " EXPANDED";
- if (state & (1 << blink::WebAXStateFocusable))
- result += " FOCUSABLE";
- if (state & (1 << blink::WebAXStateFocused))
- result += " FOCUSED";
- if (state & (1 << blink::WebAXStateHaspopup))
- result += " HASPOPUP";
- if (state & (1 << blink::WebAXStateHovered))
- result += " HOTTRACKED";
- if (state & (1 << blink::WebAXStateIndeterminate))
- result += " INDETERMINATE";
- if (state & (1 << blink::WebAXStateInvisible))
- result += " INVISIBLE";
- if (state & (1 << blink::WebAXStateLinked))
- result += " LINKED";
- if (state & (1 << blink::WebAXStateMultiselectable))
- result += " MULTISELECTABLE";
- if (state & (1 << blink::WebAXStateOffscreen))
- result += " OFFSCREEN";
- if (state & (1 << blink::WebAXStatePressed))
- result += " PRESSED";
- if (state & (1 << blink::WebAXStateProtected))
- result += " PROTECTED";
- if (state & (1 << blink::WebAXStateReadonly))
- result += " READONLY";
- if (state & (1 << blink::WebAXStateRequired))
- result += " REQUIRED";
- if (state & (1 << blink::WebAXStateSelectable))
- result += " SELECTABLE";
- if (state & (1 << blink::WebAXStateSelected))
- result += " SELECTED";
- if (state & (1 << blink::WebAXStateVertical))
- result += " VERTICAL";
- if (state & (1 << blink::WebAXStateVisited))
- result += " VISITED";
-
- result += " (" + IntToString(location.x()) + ", " +
- IntToString(location.y()) + ")-(" +
- IntToString(location.width()) + ", " +
- IntToString(location.height()) + ")";
-
- for (size_t i = 0; i < int_attributes.size(); ++i) {
- std::string value = IntToString(int_attributes[i].second);
- switch (int_attributes[i].first) {
- case ATTR_SCROLL_X:
- result += " scroll_x=" + value;
- break;
- case ATTR_SCROLL_X_MIN:
- result += " scroll_x_min=" + value;
- break;
- case ATTR_SCROLL_X_MAX:
- result += " scroll_x_max=" + value;
- break;
- case ATTR_SCROLL_Y:
- result += " scroll_y=" + value;
- break;
- case ATTR_SCROLL_Y_MIN:
- result += " scroll_y_min=" + value;
- break;
- case ATTR_SCROLL_Y_MAX:
- result += " scroll_y_max=" + value;
- break;
- case ATTR_HIERARCHICAL_LEVEL:
- result += " level=" + value;
- break;
- case ATTR_TEXT_SEL_START:
- result += " sel_start=" + value;
- break;
- case ATTR_TEXT_SEL_END:
- result += " sel_end=" + value;
- break;
- case ATTR_TABLE_ROW_COUNT:
- result += " rows=" + value;
- break;
- case ATTR_TABLE_COLUMN_COUNT:
- result += " cols=" + value;
- break;
- case ATTR_TABLE_CELL_COLUMN_INDEX:
- result += " col=" + value;
- break;
- case ATTR_TABLE_CELL_ROW_INDEX:
- result += " row=" + value;
- break;
- case ATTR_TABLE_CELL_COLUMN_SPAN:
- result += " colspan=" + value;
- break;
- case ATTR_TABLE_CELL_ROW_SPAN:
- result += " rowspan=" + value;
- break;
- case ATTR_TABLE_COLUMN_HEADER_ID:
- result += " column_header_id=" + value;
- break;
- case ATTR_TABLE_COLUMN_INDEX:
- result += " column_index=" + value;
- break;
- case ATTR_TABLE_HEADER_ID:
- result += " header_id=" + value;
- break;
- case ATTR_TABLE_ROW_HEADER_ID:
- result += " row_header_id=" + value;
- break;
- case ATTR_TABLE_ROW_INDEX:
- result += " row_index=" + value;
- break;
- case ATTR_TITLE_UI_ELEMENT:
- result += " title_elem=" + value;
- break;
- case ATTR_COLOR_VALUE_RED:
- result += " color_value_red=" + value;
- break;
- case ATTR_COLOR_VALUE_GREEN:
- result += " color_value_green=" + value;
- break;
- case ATTR_COLOR_VALUE_BLUE:
- result += " color_value_blue=" + value;
- break;
- case ATTR_TEXT_DIRECTION:
- switch (int_attributes[i].second) {
- case blink::WebAXTextDirectionLR:
- default:
- result += " text_direction=lr";
- break;
- case blink::WebAXTextDirectionRL:
- result += " text_direction=rl";
- break;
- case blink::WebAXTextDirectionTB:
- result += " text_direction=tb";
- break;
- case blink::WebAXTextDirectionBT:
- result += " text_direction=bt";
- break;
- }
- break;
- }
- }
-
- for (size_t i = 0; i < string_attributes.size(); ++i) {
- std::string value = string_attributes[i].second;
- switch (string_attributes[i].first) {
- case ATTR_DOC_URL:
- result += " doc_url=" + value;
- break;
- case ATTR_DOC_TITLE:
- result += " doc_title=" + value;
- break;
- case ATTR_DOC_MIMETYPE:
- result += " doc_mimetype=" + value;
- break;
- case ATTR_DOC_DOCTYPE:
- result += " doc_doctype=" + value;
- break;
- case ATTR_ACCESS_KEY:
- result += " access_key=" + value;
- break;
- case ATTR_ACTION:
- result += " action=" + value;
- break;
- case ATTR_DESCRIPTION:
- result += " description=" + value;
- break;
- case ATTR_DISPLAY:
- result += " display=" + value;
- break;
- case ATTR_HELP:
- result += " help=" + value;
- break;
- case ATTR_HTML_TAG:
- result += " html_tag=" + value;
- break;
- case ATTR_LIVE_RELEVANT:
- result += " relevant=" + value;
- break;
- case ATTR_LIVE_STATUS:
- result += " live=" + value;
- break;
- case ATTR_CONTAINER_LIVE_RELEVANT:
- result += " container_relevant=" + value;
- break;
- case ATTR_CONTAINER_LIVE_STATUS:
- result += " container_live=" + value;
- break;
- case ATTR_ROLE:
- result += " role=" + value;
- break;
- case ATTR_SHORTCUT:
- result += " shortcut=" + value;
- break;
- case ATTR_URL:
- result += " url=" + value;
- break;
- case ATTR_NAME:
- result += " name=" + value;
- break;
- case ATTR_VALUE:
- result += " value=" + value;
- break;
- }
- }
-
- for (size_t i = 0; i < float_attributes.size(); ++i) {
- std::string value = DoubleToString(float_attributes[i].second);
- switch (float_attributes[i].first) {
- case ATTR_DOC_LOADING_PROGRESS:
- result += " doc_progress=" + value;
- break;
- case ATTR_VALUE_FOR_RANGE:
- result += " value_for_range=" + value;
- break;
- case ATTR_MAX_VALUE_FOR_RANGE:
- result += " max_value=" + value;
- break;
- case ATTR_MIN_VALUE_FOR_RANGE:
- result += " min_value=" + value;
- break;
- }
- }
-
- for (size_t i = 0; i < bool_attributes.size(); ++i) {
- std::string value = bool_attributes[i].second ? "true" : "false";
- switch (bool_attributes[i].first) {
- case ATTR_DOC_LOADED:
- result += " doc_loaded=" + value;
- break;
- case ATTR_BUTTON_MIXED:
- result += " mixed=" + value;
- break;
- case ATTR_LIVE_ATOMIC:
- result += " atomic=" + value;
- break;
- case ATTR_LIVE_BUSY:
- result += " busy=" + value;
- break;
- case ATTR_CONTAINER_LIVE_ATOMIC:
- result += " container_atomic=" + value;
- break;
- case ATTR_CONTAINER_LIVE_BUSY:
- result += " container_busy=" + value;
- break;
- case ATTR_ARIA_READONLY:
- result += " aria_readonly=" + value;
- break;
- case ATTR_CAN_SET_VALUE:
- result += " can_set_value=" + value;
- break;
- case ATTR_CANVAS_HAS_FALLBACK:
- result += " has_fallback=" + value;
- break;
- }
- }
-
- for (size_t i = 0; i < intlist_attributes.size(); ++i) {
- const std::vector<int32>& values = intlist_attributes[i].second;
- switch (intlist_attributes[i].first) {
- case ATTR_INDIRECT_CHILD_IDS:
- result += " indirect_child_ids=" + IntVectorToString(values);
- break;
- case ATTR_LINE_BREAKS:
- result += " line_breaks=" + IntVectorToString(values);
- break;
- case ATTR_CELL_IDS:
- result += " cell_ids=" + IntVectorToString(values);
- break;
- case ATTR_UNIQUE_CELL_IDS:
- result += " unique_cell_ids=" + IntVectorToString(values);
- break;
- case ATTR_CHARACTER_OFFSETS:
- result += " character_offsets=" + IntVectorToString(values);
- break;
- case ATTR_WORD_STARTS:
- result += " word_starts=" + IntVectorToString(values);
- break;
- case ATTR_WORD_ENDS:
- result += " word_ends=" + IntVectorToString(values);
- break;
- }
- }
-
- if (!child_ids.empty())
- result += " child_ids=" + IntVectorToString(child_ids);
-
- return result;
-}
-
-std::string AccessibilityNodeDataTreeNode::DebugString(bool recursive) const {
- std::string result;
-
- static int indent = 0;
- result += "\n";
- for (int i = 0; i < indent; ++i)
- result += " ";
-
- result += AccessibilityNodeData::DebugString(recursive);
-
- if (recursive) {
- result += "\n";
- ++indent;
- for (size_t i = 0; i < children.size(); ++i)
- result += children[i].DebugString(true);
- --indent;
- }
-
- return result;
-}
-
-#endif // ifndef NDEBUG
-
-} // namespace content
diff --git a/content/common/accessibility_node_data.h b/content/common/accessibility_node_data.h
deleted file mode 100644
index 1d948a5..0000000
--- a/content/common/accessibility_node_data.h
+++ /dev/null
@@ -1,229 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
-#define CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/strings/string16.h"
-#include "content/common/content_export.h"
-#include "third_party/WebKit/public/web/WebAXEnums.h"
-#include "ui/gfx/rect.h"
-
-namespace content {
-
-// A compact representation of the accessibility information for a
-// single web object, in a form that can be serialized and sent from
-// the renderer process to the browser process.
-struct CONTENT_EXPORT AccessibilityNodeData {
- // Additional optional attributes that can be optionally attached to
- // a node.
- enum StringAttribute {
- // Document attributes.
- ATTR_DOC_URL,
- ATTR_DOC_TITLE,
- ATTR_DOC_MIMETYPE,
- ATTR_DOC_DOCTYPE,
-
- // Attributes that could apply to any node.
- ATTR_ACCESS_KEY,
- ATTR_ACTION,
- ATTR_CONTAINER_LIVE_RELEVANT,
- ATTR_CONTAINER_LIVE_STATUS,
- ATTR_DESCRIPTION,
- ATTR_DISPLAY,
- ATTR_HELP,
- ATTR_HTML_TAG,
- ATTR_NAME,
- ATTR_LIVE_RELEVANT,
- ATTR_LIVE_STATUS,
- ATTR_ROLE,
- ATTR_SHORTCUT,
- ATTR_URL,
- ATTR_VALUE,
- };
-
- enum IntAttribute {
- // Scrollable container attributes.
- ATTR_SCROLL_X,
- ATTR_SCROLL_X_MIN,
- ATTR_SCROLL_X_MAX,
- ATTR_SCROLL_Y,
- ATTR_SCROLL_Y_MIN,
- ATTR_SCROLL_Y_MAX,
-
- // Editable text attributes.
- ATTR_TEXT_SEL_START,
- ATTR_TEXT_SEL_END,
-
- // Table attributes.
- ATTR_TABLE_ROW_COUNT,
- ATTR_TABLE_COLUMN_COUNT,
- ATTR_TABLE_HEADER_ID,
-
- // Table row attributes.
- ATTR_TABLE_ROW_INDEX,
- ATTR_TABLE_ROW_HEADER_ID,
-
- // Table column attributes.
- ATTR_TABLE_COLUMN_INDEX,
- ATTR_TABLE_COLUMN_HEADER_ID,
-
- // Table cell attributes.
- ATTR_TABLE_CELL_COLUMN_INDEX,
- ATTR_TABLE_CELL_COLUMN_SPAN,
- ATTR_TABLE_CELL_ROW_INDEX,
- ATTR_TABLE_CELL_ROW_SPAN,
-
- // Tree control attributes.
- ATTR_HIERARCHICAL_LEVEL,
-
- // Relationships between this element and other elements.
- ATTR_TITLE_UI_ELEMENT,
-
- // Color value for blink::WebAXRoleColorWell, each component is 0..255
- ATTR_COLOR_VALUE_RED,
- ATTR_COLOR_VALUE_GREEN,
- ATTR_COLOR_VALUE_BLUE,
-
- // Inline text attributes.
- ATTR_TEXT_DIRECTION
- };
-
- enum FloatAttribute {
- // Document attributes.
- ATTR_DOC_LOADING_PROGRESS,
-
- // Range attributes.
- ATTR_VALUE_FOR_RANGE,
- ATTR_MIN_VALUE_FOR_RANGE,
- ATTR_MAX_VALUE_FOR_RANGE,
- };
-
- enum BoolAttribute {
- // Document attributes.
- ATTR_DOC_LOADED,
-
- // True if a checkbox or radio button is in the "mixed" state.
- ATTR_BUTTON_MIXED,
-
- // Live region attributes.
- ATTR_CONTAINER_LIVE_ATOMIC,
- ATTR_CONTAINER_LIVE_BUSY,
- ATTR_LIVE_ATOMIC,
- ATTR_LIVE_BUSY,
-
- // ARIA readonly flag.
- ATTR_ARIA_READONLY,
-
- // Writeable attributes
- ATTR_CAN_SET_VALUE,
-
- // Set on a canvas element if it has fallback content.
- ATTR_CANVAS_HAS_FALLBACK,
- };
-
- enum IntListAttribute {
- // Ids of nodes that are children of this node logically, but are
- // not children of this node in the tree structure. As an example,
- // a table cell is a child of a row, and an 'indirect' child of a
- // column.
- ATTR_INDIRECT_CHILD_IDS,
-
- // Character indices where line breaks occur.
- ATTR_LINE_BREAKS,
-
- // For a table, the cell ids in row-major order, with duplicate entries
- // when there's a rowspan or colspan, and with -1 for missing cells.
- // There are always exactly rows * columns entries.
- ATTR_CELL_IDS,
-
- // For a table, the unique cell ids in row-major order of their first
- // occurrence.
- ATTR_UNIQUE_CELL_IDS,
-
- // For inline text. This is the pixel position of the end of this
- // character within the bounding rectangle of this object, in the
- // direction given by ATTR_TEXT_DIRECTION. For example, for left-to-right
- // text, the first offset is the right coordinate of the first character
- // within the object's bounds, the second offset is the right coordinate
- // of the second character, and so on.
- ATTR_CHARACTER_OFFSETS,
-
- // For inline text. These int lists must be the same size; they represent
- // the start and end character index of each word within this text.
- ATTR_WORD_STARTS,
- ATTR_WORD_ENDS,
- };
-
- AccessibilityNodeData();
- virtual ~AccessibilityNodeData();
-
- void AddStringAttribute(StringAttribute attribute,
- const std::string& value);
- void AddIntAttribute(IntAttribute attribute, int value);
- void AddFloatAttribute(FloatAttribute attribute, float value);
- void AddBoolAttribute(BoolAttribute attribute, bool value);
- void AddIntListAttribute(IntListAttribute attribute,
- const std::vector<int32>& value);
-
- // Convenience functions, mainly for writing unit tests.
- // Equivalent to AddStringAttribute(ATTR_NAME, name).
- void SetName(std::string name);
- // Equivalent to AddStringAttribute(ATTR_VALUE, value).
- void SetValue(std::string value);
-
- #ifndef NDEBUG
- virtual std::string DebugString(bool recursive) const;
- #endif
-
- // This is a simple serializable struct. All member variables should be
- // public and copyable.
- int32 id;
- blink::WebAXRole role;
- uint32 state;
- gfx::Rect location;
- std::vector<std::pair<StringAttribute, std::string> > string_attributes;
- std::vector<std::pair<IntAttribute, int32> > int_attributes;
- std::vector<std::pair<FloatAttribute, float> > float_attributes;
- std::vector<std::pair<BoolAttribute, bool> > bool_attributes;
- std::vector<std::pair<IntListAttribute, std::vector<int32> > >
- intlist_attributes;
- std::vector<std::pair<std::string, std::string> > html_attributes;
- std::vector<int32> child_ids;
-};
-
-// For testing and debugging only: this subclass of AccessibilityNodeData
-// is used to represent a whole tree of accessibility nodes, where each
-// node owns its children. This makes it easy to print the tree structure
-// or search it recursively.
-struct CONTENT_EXPORT AccessibilityNodeDataTreeNode
- : public AccessibilityNodeData {
- AccessibilityNodeDataTreeNode();
- virtual ~AccessibilityNodeDataTreeNode();
-
- AccessibilityNodeDataTreeNode& operator=(const AccessibilityNodeData& src);
-
- #ifndef NDEBUG
- virtual std::string DebugString(bool recursive) const OVERRIDE;
- #endif
-
- std::vector<AccessibilityNodeDataTreeNode> children;
-};
-
-// Given a vector of accessibility nodes that represent a complete
-// accessibility tree, where each node appears before its children,
-// build a tree of AccessibilityNodeDataTreeNode objects for easier
-// testing and debugging, where each node contains its children.
-// The |dst| argument will become the root of the new tree.
-void MakeAccessibilityNodeDataTree(
- const std::vector<AccessibilityNodeData>& src,
- AccessibilityNodeDataTreeNode* dst);
-
-} // namespace content
-
-#endif // CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index ddf7094..b4389c6 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -13,6 +13,7 @@
'../third_party/re2/re2.gyp:re2',
'../third_party/zlib/google/zip.gyp:zip',
'../third_party/zlib/zlib.gyp:zlib',
+ '../ui/accessibility/accessibility.gyp:accessibility',
'../ui/events/events.gyp:events_base',
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
diff --git a/content/content_common.gypi b/content/content_common.gypi
index 709feeb..546995b 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -9,6 +9,7 @@
'../net/net.gyp:net',
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
+ '../ui/accessibility/accessibility.gyp:accessibility',
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
'../ui/shell_dialogs/shell_dialogs.gyp:shell_dialogs',
@@ -105,8 +106,6 @@
'public/common/webplugininfo.h',
'public/common/zygote_fork_delegate_linux.h',
'common/accessibility_messages.h',
- 'common/accessibility_node_data.cc',
- 'common/accessibility_node_data.h',
'common/all_messages.h',
'common/android/address_parser.cc',
'common/android/address_parser.h',
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 1d4ace4..63c8afb 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -15,6 +15,7 @@
'../third_party/libjingle/libjingle.gyp:libjingle',
'../third_party/npapi/npapi.gyp:npapi',
'../third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h',
+ '../ui/accessibility/accessibility.gyp:accessibility',
'../ui/events/events.gyp:dom4_keycode_converter',
'../ui/native_theme/native_theme.gyp:native_theme',
'../ui/surface/surface.gyp:surface',
@@ -66,6 +67,8 @@
'public/renderer/web_preferences.h',
'renderer/accessibility/accessibility_node_serializer.cc',
'renderer/accessibility/accessibility_node_serializer.h',
+ 'renderer/accessibility/blink_ax_enum_conversion.cc',
+ 'renderer/accessibility/blink_ax_enum_conversion.h',
'renderer/accessibility/renderer_accessibility.cc',
'renderer/accessibility/renderer_accessibility.h',
'renderer/accessibility/renderer_accessibility_complete.cc',
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 16b01d4..0877eb0 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -313,6 +313,7 @@
'../sql/sql.gyp:test_support_sql',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
+ '../ui/accessibility/accessibility.gyp:accessibility',
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
'../ui/ui.gyp:ui',
@@ -911,6 +912,7 @@
'../third_party/WebKit/public/blink.gyp:blink',
'../third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
'../third_party/mesa/mesa.gyp:osmesa',
+ '../ui/accessibility/accessibility.gyp:accessibility',
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
'../ui/gl/gl.gyp:gl',
diff --git a/content/renderer/accessibility/accessibility_node_serializer.cc b/content/renderer/accessibility/accessibility_node_serializer.cc
index 6bace0e..798aab1 100644
--- a/content/renderer/accessibility/accessibility_node_serializer.cc
+++ b/content/renderer/accessibility/accessibility_node_serializer.cc
@@ -9,6 +9,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "content/renderer/accessibility/blink_ax_enum_conversion.h"
#include "third_party/WebKit/public/platform/WebRect.h"
#include "third_party/WebKit/public/platform/WebSize.h"
#include "third_party/WebKit/public/platform/WebString.h"
@@ -23,6 +24,7 @@
#include "third_party/WebKit/public/web/WebInputElement.h"
#include "third_party/WebKit/public/web/WebNode.h"
+using base::UTF16ToUTF8;
using blink::WebAXObject;
using blink::WebDocument;
using blink::WebDocumentType;
@@ -49,111 +51,35 @@ bool IsParentUnignoredOf(const WebAXObject& ancestor,
return LowerCaseEqualsASCII(html_value, "true");
}
-// Provides a conversion between the WebAXObject state
-// accessors and a state bitmask that can be serialized and sent to the
-// Browser process. Rare state are sent as boolean attributes instead.
-uint32 ConvertState(const WebAXObject& o) {
- uint32 state = 0;
- if (o.isChecked())
- state |= (1 << blink::WebAXStateChecked);
-
- if (o.isCollapsed())
- state |= (1 << blink::WebAXStateCollapsed);
-
- if (o.canSetFocusAttribute())
- state |= (1 << blink::WebAXStateFocusable);
-
- if (o.isFocused())
- state |= (1 << blink::WebAXStateFocused);
-
- if (o.role() == blink::WebAXRolePopUpButton ||
- o.ariaHasPopup()) {
- state |= (1 << blink::WebAXStateHaspopup);
- if (!o.isCollapsed())
- state |= (1 << blink::WebAXStateExpanded);
- }
-
- if (o.isHovered())
- state |= (1 << blink::WebAXStateHovered);
-
- if (o.isIndeterminate())
- state |= (1 << blink::WebAXStateIndeterminate);
-
- if (!o.isVisible())
- state |= (1 << blink::WebAXStateInvisible);
-
- if (o.isLinked())
- state |= (1 << blink::WebAXStateLinked);
-
- if (o.isMultiSelectable())
- state |= (1 << blink::WebAXStateMultiselectable);
-
- if (o.isOffScreen())
- state |= (1 << blink::WebAXStateOffscreen);
-
- if (o.isPressed())
- state |= (1 << blink::WebAXStatePressed);
-
- if (o.isPasswordField())
- state |= (1 << blink::WebAXStateProtected);
-
- if (o.isReadOnly())
- state |= (1 << blink::WebAXStateReadonly);
-
- if (o.isRequired())
- state |= (1 << blink::WebAXStateRequired);
-
- if (o.canSetSelectedAttribute())
- state |= (1 << blink::WebAXStateSelectable);
-
- if (o.isSelected())
- state |= (1 << blink::WebAXStateSelected);
-
- if (o.isVisited())
- state |= (1 << blink::WebAXStateVisited);
-
- if (o.isEnabled())
- state |= (1 << blink::WebAXStateEnabled);
-
- if (o.isVertical())
- state |= (1 << blink::WebAXStateVertical);
-
- if (o.isVisited())
- state |= (1 << blink::WebAXStateVisited);
-
- return state;
-}
-
} // Anonymous namespace
void SerializeAccessibilityNode(
const WebAXObject& src,
- AccessibilityNodeData* dst) {
- dst->role = src.role();
- dst->state = ConvertState(src);
+ ui::AXNodeData* dst) {
+ dst->role = AXRoleFromBlink(src.role());
+ dst->state = AXStateFromBlink(src);
dst->location = src.boundingBoxRect();
dst->id = src.axID();
std::string name = base::UTF16ToUTF8(src.title());
std::string value;
if (src.valueDescription().length()) {
- dst->AddStringAttribute(dst->ATTR_VALUE,
- base::UTF16ToUTF8(src.valueDescription()));
+ dst->AddStringAttribute(ui::AX_ATTR_VALUE,
+ UTF16ToUTF8(src.valueDescription()));
} else {
- dst->AddStringAttribute(dst->ATTR_VALUE,
- base::UTF16ToUTF8(src.stringValue()));
+ dst->AddStringAttribute(ui::AX_ATTR_VALUE, UTF16ToUTF8(src.stringValue()));
}
- if (dst->role == blink::WebAXRoleColorWell) {
+ if (dst->role == ui::AX_ROLE_COLOR_WELL) {
int r, g, b;
src.colorValue(r, g, b);
- dst->AddIntAttribute(dst->ATTR_COLOR_VALUE_RED, r);
- dst->AddIntAttribute(dst->ATTR_COLOR_VALUE_GREEN, g);
- dst->AddIntAttribute(dst->ATTR_COLOR_VALUE_BLUE, b);
+ dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_RED, r);
+ dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_GREEN, g);
+ dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_BLUE, b);
}
- if (dst->role == blink::WebAXRoleInlineTextBox) {
- dst->AddIntAttribute(dst->ATTR_TEXT_DIRECTION, src.textDirection());
+ if (dst->role == ui::AX_ROLE_INLINE_TEXT_BOX) {
+ dst->AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION, src.textDirection());
WebVector<int> src_character_offsets;
src.characterOffsets(src_character_offsets);
@@ -161,7 +87,7 @@ void SerializeAccessibilityNode(
character_offsets.reserve(src_character_offsets.size());
for (size_t i = 0; i < src_character_offsets.size(); ++i)
character_offsets.push_back(src_character_offsets[i]);
- dst->AddIntListAttribute(dst->ATTR_CHARACTER_OFFSETS, character_offsets);
+ dst->AddIntListAttribute(ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets);
WebVector<int> src_word_starts;
WebVector<int> src_word_ends;
@@ -174,61 +100,59 @@ void SerializeAccessibilityNode(
word_starts.push_back(src_word_starts[i]);
word_ends.push_back(src_word_ends[i]);
}
- dst->AddIntListAttribute(dst->ATTR_WORD_STARTS, word_starts);
- dst->AddIntListAttribute(dst->ATTR_WORD_ENDS, word_ends);
+ dst->AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, word_starts);
+ dst->AddIntListAttribute(ui::AX_ATTR_WORD_ENDS, word_ends);
}
- if (src.accessKey().length()) {
- dst->AddStringAttribute(dst->ATTR_ACCESS_KEY,
- base::UTF16ToUTF8(src.accessKey()));
- }
- if (src.actionVerb().length()) {
- dst->AddStringAttribute(dst->ATTR_ACTION,
- base::UTF16ToUTF8(src.actionVerb()));
- }
+ if (src.accessKey().length())
+ dst->AddStringAttribute(ui::AX_ATTR_ACCESS_KEY,
+ UTF16ToUTF8(src.accessKey()));
+ if (src.actionVerb().length())
+ dst->AddStringAttribute(ui::AX_ATTR_ACTION, UTF16ToUTF8(src.actionVerb()));
if (src.isAriaReadOnly())
- dst->AddBoolAttribute(dst->ATTR_ARIA_READONLY, true);
+ dst->AddBoolAttribute(ui::AX_ATTR_ARIA_READONLY, true);
if (src.isButtonStateMixed())
- dst->AddBoolAttribute(dst->ATTR_BUTTON_MIXED, true);
+ dst->AddBoolAttribute(ui::AX_ATTR_BUTTON_MIXED, true);
if (src.canSetValueAttribute())
- dst->AddBoolAttribute(dst->ATTR_CAN_SET_VALUE, true);
+ dst->AddBoolAttribute(ui::AX_ATTR_CAN_SET_VALUE, true);
if (src.accessibilityDescription().length()) {
- dst->AddStringAttribute(dst->ATTR_DESCRIPTION,
- base::UTF16ToUTF8(src.accessibilityDescription()));
+ dst->AddStringAttribute(ui::AX_ATTR_DESCRIPTION,
+ UTF16ToUTF8(src.accessibilityDescription()));
}
if (src.hasComputedStyle()) {
- dst->AddStringAttribute(dst->ATTR_DISPLAY,
- base::UTF16ToUTF8(src.computedStyleDisplay()));
+ dst->AddStringAttribute(ui::AX_ATTR_DISPLAY,
+ UTF16ToUTF8(src.computedStyleDisplay()));
}
if (src.helpText().length())
- dst->AddStringAttribute(dst->ATTR_HELP, base::UTF16ToUTF8(src.helpText()));
+ dst->AddStringAttribute(ui::AX_ATTR_HELP, UTF16ToUTF8(src.helpText()));
if (src.keyboardShortcut().length()) {
- dst->AddStringAttribute(dst->ATTR_SHORTCUT,
- base::UTF16ToUTF8(src.keyboardShortcut()));
+ dst->AddStringAttribute(ui::AX_ATTR_SHORTCUT,
+ UTF16ToUTF8(src.keyboardShortcut()));
}
if (!src.titleUIElement().isDetached()) {
- dst->AddIntAttribute(dst->ATTR_TITLE_UI_ELEMENT,
+ dst->AddIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT,
src.titleUIElement().axID());
}
if (!src.url().isEmpty())
- dst->AddStringAttribute(dst->ATTR_URL, src.url().spec());
+ dst->AddStringAttribute(ui::AX_ATTR_URL, src.url().spec());
- if (dst->role == blink::WebAXRoleHeading)
- dst->AddIntAttribute(dst->ATTR_HIERARCHICAL_LEVEL, src.headingLevel());
- else if ((dst->role == blink::WebAXRoleTreeItem ||
- dst->role == blink::WebAXRoleRow) &&
+ if (dst->role == ui::AX_ROLE_HEADING)
+ dst->AddIntAttribute(ui::AX_ATTR_HIERARCHICAL_LEVEL, src.headingLevel());
+ else if ((dst->role == ui::AX_ROLE_TREE_ITEM ||
+ dst->role == ui::AX_ROLE_ROW) &&
src.hierarchicalLevel() > 0) {
- dst->AddIntAttribute(dst->ATTR_HIERARCHICAL_LEVEL, src.hierarchicalLevel());
+ dst->AddIntAttribute(ui::AX_ATTR_HIERARCHICAL_LEVEL,
+ src.hierarchicalLevel());
}
// Treat the active list box item as focused.
- if (dst->role == blink::WebAXRoleListBoxOption &&
+ if (dst->role == ui::AX_ROLE_LIST_BOX_OPTION &&
src.isSelectedOptionActive()) {
- dst->state |= (1 << blink::WebAXStateFocused);
+ dst->state |= (1 << ui::AX_STATE_FOCUSED);
}
if (src.canvasHasFallbackContent())
- dst->AddBoolAttribute(dst->ATTR_CANVAS_HAS_FALLBACK, true);
+ dst->AddBoolAttribute(ui::AX_ATTR_CANVAS_HAS_FALLBACK, true);
WebNode node = src.node();
bool is_iframe = false;
@@ -242,14 +166,14 @@ void SerializeAccessibilityNode(
is_iframe = (element.tagName() == base::ASCIIToUTF16("IFRAME"));
if (LowerCaseEqualsASCII(element.getAttribute("aria-expanded"), "true"))
- dst->state |= (1 << blink::WebAXStateExpanded);
+ dst->state |= (1 << ui::AX_STATE_EXPANDED);
// TODO(ctguil): The tagName in WebKit is lower cased but
// HTMLElement::nodeName calls localNameUpper. Consider adding
// a WebElement method that returns the original lower cased tagName.
dst->AddStringAttribute(
- dst->ATTR_HTML_TAG,
- StringToLowerASCII(base::UTF16ToUTF8(element.tagName())));
+ ui::AX_ATTR_HTML_TAG,
+ StringToLowerASCII(UTF16ToUTF8(element.tagName())));
for (unsigned i = 0; i < element.attributeCount(); ++i) {
std::string name = StringToLowerASCII(base::UTF16ToUTF8(
element.attributeLocalName(i)));
@@ -257,11 +181,11 @@ void SerializeAccessibilityNode(
dst->html_attributes.push_back(std::make_pair(name, value));
}
- if (dst->role == blink::WebAXRoleEditableText ||
- dst->role == blink::WebAXRoleTextArea ||
- dst->role == blink::WebAXRoleTextField) {
- dst->AddIntAttribute(dst->ATTR_TEXT_SEL_START, src.selectionStart());
- dst->AddIntAttribute(dst->ATTR_TEXT_SEL_END, src.selectionEnd());
+ if (dst->role == ui::AX_ROLE_EDITABLE_TEXT ||
+ dst->role == ui::AX_ROLE_TEXT_AREA ||
+ dst->role == ui::AX_ROLE_TEXT_FIELD) {
+ dst->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_START, src.selectionStart());
+ dst->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_END, src.selectionEnd());
WebVector<int> src_line_breaks;
src.lineBreaks(src_line_breaks);
@@ -270,14 +194,14 @@ void SerializeAccessibilityNode(
line_breaks.reserve(src_line_breaks.size());
for (size_t i = 0; i < src_line_breaks.size(); ++i)
line_breaks.push_back(src_line_breaks[i]);
- dst->AddIntListAttribute(dst->ATTR_LINE_BREAKS, line_breaks);
+ dst->AddIntListAttribute(ui::AX_ATTR_LINE_BREAKS, line_breaks);
}
}
// ARIA role.
if (element.hasAttribute("role")) {
- dst->AddStringAttribute(dst->ATTR_ROLE,
- base::UTF16ToUTF8(element.getAttribute("role")));
+ dst->AddStringAttribute(ui::AX_ATTR_ROLE,
+ UTF16ToUTF8(element.getAttribute("role")));
}
// Live region attributes
@@ -322,89 +246,89 @@ void SerializeAccessibilityNode(
}
if (!live_atomic.empty())
- dst->AddBoolAttribute(dst->ATTR_LIVE_ATOMIC, IsTrue(live_atomic));
+ dst->AddBoolAttribute(ui::AX_ATTR_LIVE_ATOMIC, IsTrue(live_atomic));
if (!live_busy.empty())
- dst->AddBoolAttribute(dst->ATTR_LIVE_BUSY, IsTrue(live_busy));
+ dst->AddBoolAttribute(ui::AX_ATTR_LIVE_BUSY, IsTrue(live_busy));
if (!live_status.empty())
- dst->AddStringAttribute(dst->ATTR_LIVE_STATUS, live_status);
+ dst->AddStringAttribute(ui::AX_ATTR_LIVE_STATUS, live_status);
if (!live_relevant.empty())
- dst->AddStringAttribute(dst->ATTR_LIVE_RELEVANT, live_relevant);
+ dst->AddStringAttribute(ui::AX_ATTR_LIVE_RELEVANT, live_relevant);
if (!container_live_atomic.empty()) {
- dst->AddBoolAttribute(dst->ATTR_CONTAINER_LIVE_ATOMIC,
+ dst->AddBoolAttribute(ui::AX_ATTR_CONTAINER_LIVE_ATOMIC,
IsTrue(container_live_atomic));
}
if (!container_live_busy.empty()) {
- dst->AddBoolAttribute(dst->ATTR_CONTAINER_LIVE_BUSY,
+ dst->AddBoolAttribute(ui::AX_ATTR_CONTAINER_LIVE_BUSY,
IsTrue(container_live_busy));
}
if (!container_live_status.empty()) {
- dst->AddStringAttribute(dst->ATTR_CONTAINER_LIVE_STATUS,
+ dst->AddStringAttribute(ui::AX_ATTR_CONTAINER_LIVE_STATUS,
container_live_status);
}
if (!container_live_relevant.empty()) {
- dst->AddStringAttribute(dst->ATTR_CONTAINER_LIVE_RELEVANT,
+ dst->AddStringAttribute(ui::AX_ATTR_CONTAINER_LIVE_RELEVANT,
container_live_relevant);
}
- if (dst->role == blink::WebAXRoleProgressIndicator ||
- dst->role == blink::WebAXRoleScrollBar ||
- dst->role == blink::WebAXRoleSlider ||
- dst->role == blink::WebAXRoleSpinButton) {
- dst->AddFloatAttribute(dst->ATTR_VALUE_FOR_RANGE, src.valueForRange());
- dst->AddFloatAttribute(dst->ATTR_MAX_VALUE_FOR_RANGE,
+ if (dst->role == ui::AX_ROLE_PROGRESS_INDICATOR ||
+ dst->role == ui::AX_ROLE_SCROLL_BAR ||
+ dst->role == ui::AX_ROLE_SLIDER ||
+ dst->role == ui::AX_ROLE_SPIN_BUTTON) {
+ dst->AddFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE, src.valueForRange());
+ dst->AddFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE,
src.maxValueForRange());
- dst->AddFloatAttribute(dst->ATTR_MIN_VALUE_FOR_RANGE,
+ dst->AddFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE,
src.minValueForRange());
}
- if (dst->role == blink::WebAXRoleDocument ||
- dst->role == blink::WebAXRoleWebArea) {
- dst->AddStringAttribute(dst->ATTR_HTML_TAG, "#document");
+ if (dst->role == ui::AX_ROLE_DOCUMENT ||
+ dst->role == ui::AX_ROLE_WEB_AREA) {
+ dst->AddStringAttribute(ui::AX_ATTR_HTML_TAG, "#document");
const WebDocument& document = src.document();
if (name.empty())
- name = base::UTF16ToUTF8(document.title());
- dst->AddStringAttribute(dst->ATTR_DOC_TITLE,
- base::UTF16ToUTF8(document.title()));
- dst->AddStringAttribute(dst->ATTR_DOC_URL, document.url().spec());
+ name = UTF16ToUTF8(document.title());
+ dst->AddStringAttribute(ui::AX_ATTR_DOC_TITLE,
+ UTF16ToUTF8(document.title()));
+ dst->AddStringAttribute(ui::AX_ATTR_DOC_URL, document.url().spec());
dst->AddStringAttribute(
- dst->ATTR_DOC_MIMETYPE,
+ ui::AX_ATTR_DOC_MIMETYPE,
document.isXHTMLDocument() ? "text/xhtml" : "text/html");
- dst->AddBoolAttribute(dst->ATTR_DOC_LOADED, src.isLoaded());
- dst->AddFloatAttribute(dst->ATTR_DOC_LOADING_PROGRESS,
+ dst->AddBoolAttribute(ui::AX_ATTR_DOC_LOADED, src.isLoaded());
+ dst->AddFloatAttribute(ui::AX_ATTR_DOC_LOADING_PROGRESS,
src.estimatedLoadingProgress());
const WebDocumentType& doctype = document.doctype();
if (!doctype.isNull()) {
- dst->AddStringAttribute(dst->ATTR_DOC_DOCTYPE,
- base::UTF16ToUTF8(doctype.name()));
+ dst->AddStringAttribute(ui::AX_ATTR_DOC_DOCTYPE,
+ UTF16ToUTF8(doctype.name()));
}
const gfx::Size& scroll_offset = document.frame()->scrollOffset();
- dst->AddIntAttribute(dst->ATTR_SCROLL_X, scroll_offset.width());
- dst->AddIntAttribute(dst->ATTR_SCROLL_Y, scroll_offset.height());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X, scroll_offset.width());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_Y, scroll_offset.height());
const gfx::Size& min_offset = document.frame()->minimumScrollOffset();
- dst->AddIntAttribute(dst->ATTR_SCROLL_X_MIN, min_offset.width());
- dst->AddIntAttribute(dst->ATTR_SCROLL_Y_MIN, min_offset.height());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X_MIN, min_offset.width());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_Y_MIN, min_offset.height());
const gfx::Size& max_offset = document.frame()->maximumScrollOffset();
- dst->AddIntAttribute(dst->ATTR_SCROLL_X_MAX, max_offset.width());
- dst->AddIntAttribute(dst->ATTR_SCROLL_Y_MAX, max_offset.height());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X_MAX, max_offset.width());
+ dst->AddIntAttribute(ui::AX_ATTR_SCROLL_Y_MAX, max_offset.height());
}
- if (dst->role == blink::WebAXRoleTable) {
+ if (dst->role == ui::AX_ROLE_TABLE) {
int column_count = src.columnCount();
int row_count = src.rowCount();
if (column_count > 0 && row_count > 0) {
std::set<int32> unique_cell_id_set;
std::vector<int32> cell_ids;
std::vector<int32> unique_cell_ids;
- dst->AddIntAttribute(dst->ATTR_TABLE_COLUMN_COUNT, column_count);
- dst->AddIntAttribute(dst->ATTR_TABLE_ROW_COUNT, row_count);
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_COLUMN_COUNT, column_count);
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_ROW_COUNT, row_count);
WebAXObject header = src.headerContainerObject();
if (!header.isDetached())
- dst->AddIntAttribute(dst->ATTR_TABLE_HEADER_ID, header.axID());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_HEADER_ID, header.axID());
for (int i = 0; i < column_count * row_count; ++i) {
WebAXObject cell = src.cellForColumnAndRow(
i % column_count, i / column_count);
@@ -418,37 +342,37 @@ void SerializeAccessibilityNode(
}
cell_ids.push_back(cell_id);
}
- dst->AddIntListAttribute(dst->ATTR_CELL_IDS, cell_ids);
- dst->AddIntListAttribute(dst->ATTR_UNIQUE_CELL_IDS, unique_cell_ids);
+ dst->AddIntListAttribute(ui::AX_ATTR_CELL_IDS, cell_ids);
+ dst->AddIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS, unique_cell_ids);
}
}
- if (dst->role == blink::WebAXRoleRow) {
- dst->AddIntAttribute(dst->ATTR_TABLE_ROW_INDEX, src.rowIndex());
+ if (dst->role == ui::AX_ROLE_ROW) {
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_ROW_INDEX, src.rowIndex());
WebAXObject header = src.rowHeader();
if (!header.isDetached())
- dst->AddIntAttribute(dst->ATTR_TABLE_ROW_HEADER_ID, header.axID());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_ROW_HEADER_ID, header.axID());
}
- if (dst->role == blink::WebAXRoleColumn) {
- dst->AddIntAttribute(dst->ATTR_TABLE_COLUMN_INDEX, src.columnIndex());
+ if (dst->role == ui::AX_ROLE_COLUMN) {
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_COLUMN_INDEX, src.columnIndex());
WebAXObject header = src.columnHeader();
if (!header.isDetached())
- dst->AddIntAttribute(dst->ATTR_TABLE_COLUMN_HEADER_ID, header.axID());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_COLUMN_HEADER_ID, header.axID());
}
- if (dst->role == blink::WebAXRoleCell ||
- dst->role == blink::WebAXRoleRowHeader ||
- dst->role == blink::WebAXRoleColumnHeader) {
- dst->AddIntAttribute(dst->ATTR_TABLE_CELL_COLUMN_INDEX,
+ if (dst->role == ui::AX_ROLE_CELL ||
+ dst->role == ui::AX_ROLE_ROW_HEADER ||
+ dst->role == ui::AX_ROLE_COLUMN_HEADER) {
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX,
src.cellColumnIndex());
- dst->AddIntAttribute(dst->ATTR_TABLE_CELL_COLUMN_SPAN,
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN,
src.cellColumnSpan());
- dst->AddIntAttribute(dst->ATTR_TABLE_CELL_ROW_INDEX, src.cellRowIndex());
- dst->AddIntAttribute(dst->ATTR_TABLE_CELL_ROW_SPAN, src.cellRowSpan());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, src.cellRowIndex());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_SPAN, src.cellRowSpan());
}
- dst->AddStringAttribute(dst->ATTR_NAME, name);
+ dst->AddStringAttribute(ui::AX_ATTR_NAME, name);
// Add the ids of *indirect* children - those who are children of this node,
// but whose parent is *not* this node. One example is a table
@@ -463,7 +387,7 @@ void SerializeAccessibilityNode(
indirect_child_ids.push_back(child.axID());
if (indirect_child_ids.size() > 0) {
dst->AddIntListAttribute(
- dst->ATTR_INDIRECT_CHILD_IDS, indirect_child_ids);
+ ui::AX_ATTR_INDIRECT_CHILD_IDS, indirect_child_ids);
}
}
}
diff --git a/content/renderer/accessibility/accessibility_node_serializer.h b/content/renderer/accessibility/accessibility_node_serializer.h
index 374a79d..5ddde21 100644
--- a/content/renderer/accessibility/accessibility_node_serializer.h
+++ b/content/renderer/accessibility/accessibility_node_serializer.h
@@ -5,14 +5,14 @@
#ifndef CONTENT_RENDERER_ACCESSIBILITY_ACCESSIBILITY_NODE_SERIALIZER_H_
#define CONTENT_RENDERER_ACCESSIBILITY_ACCESSIBILITY_NODE_SERIALIZER_H_
-#include "content/common/accessibility_node_data.h"
#include "third_party/WebKit/public/web/WebAXObject.h"
+#include "ui/accessibility/ax_node_data.h"
namespace content {
void SerializeAccessibilityNode(
const blink::WebAXObject& src,
- AccessibilityNodeData* dst);
+ ui::AXNodeData* dst);
bool ShouldIncludeChildNode(
const blink::WebAXObject& parent,
diff --git a/content/renderer/accessibility/blink_ax_enum_conversion.cc b/content/renderer/accessibility/blink_ax_enum_conversion.cc
new file mode 100644
index 0000000..894adf7
--- /dev/null
+++ b/content/renderer/accessibility/blink_ax_enum_conversion.cc
@@ -0,0 +1,375 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/renderer/accessibility/blink_ax_enum_conversion.h"
+
+#include "base/logging.h"
+
+namespace content {
+
+uint32 AXStateFromBlink(const blink::WebAXObject& o) {
+ uint32 state = 0;
+ if (o.isChecked())
+ state |= (1 << ui::AX_STATE_CHECKED);
+
+ if (o.isCollapsed())
+ state |= (1 << ui::AX_STATE_COLLAPSED);
+
+ if (o.canSetFocusAttribute())
+ state |= (1 << ui::AX_STATE_FOCUSABLE);
+
+ if (o.isFocused())
+ state |= (1 << ui::AX_STATE_FOCUSED);
+
+ if (o.role() == blink::WebAXRolePopUpButton ||
+ o.ariaHasPopup()) {
+ state |= (1 << ui::AX_STATE_HASPOPUP);
+ if (!o.isCollapsed())
+ state |= (1 << ui::AX_STATE_EXPANDED);
+ }
+
+ if (o.isHovered())
+ state |= (1 << ui::AX_STATE_HOVERED);
+
+ if (o.isIndeterminate())
+ state |= (1 << ui::AX_STATE_INDETERMINATE);
+
+ if (!o.isVisible())
+ state |= (1 << ui::AX_STATE_INVISIBLE);
+
+ if (o.isLinked())
+ state |= (1 << ui::AX_STATE_LINKED);
+
+ if (o.isMultiSelectable())
+ state |= (1 << ui::AX_STATE_MULTISELECTABLE);
+
+ if (o.isOffScreen())
+ state |= (1 << ui::AX_STATE_OFFSCREEN);
+
+ if (o.isPressed())
+ state |= (1 << ui::AX_STATE_PRESSED);
+
+ if (o.isPasswordField())
+ state |= (1 << ui::AX_STATE_PROTECTED);
+
+ if (o.isReadOnly())
+ state |= (1 << ui::AX_STATE_READONLY);
+
+ if (o.isRequired())
+ state |= (1 << ui::AX_STATE_REQUIRED);
+
+ if (o.canSetSelectedAttribute())
+ state |= (1 << ui::AX_STATE_SELECTABLE);
+
+ if (o.isSelected())
+ state |= (1 << ui::AX_STATE_SELECTED);
+
+ if (o.isVisited())
+ state |= (1 << ui::AX_STATE_VISITED);
+
+ if (o.isEnabled())
+ state |= (1 << blink::WebAXStateEnabled);
+
+ if (o.isVertical())
+ state |= (1 << ui::AX_STATE_VERTICAL);
+
+ if (o.isVisited())
+ state |= (1 << ui::AX_STATE_VISITED);
+
+ return state;
+}
+
+ui::AXRole AXRoleFromBlink(blink::WebAXRole role) {
+ switch (role) {
+ case blink::WebAXRoleAlert:
+ return ui::AX_ROLE_ALERT;
+ case blink::WebAXRoleAlertDialog:
+ return ui::AX_ROLE_ALERT_DIALOG;
+ case blink::WebAXRoleAnnotation:
+ return ui::AX_ROLE_ANNOTATION;
+ case blink::WebAXRoleApplication:
+ return ui::AX_ROLE_APPLICATION;
+ case blink::WebAXRoleArticle:
+ return ui::AX_ROLE_ARTICLE;
+ case blink::WebAXRoleBanner:
+ return ui::AX_ROLE_BANNER;
+ case blink::WebAXRoleBrowser:
+ return ui::AX_ROLE_BROWSER;
+ case blink::WebAXRoleBusyIndicator:
+ return ui::AX_ROLE_BUSY_INDICATOR;
+ case blink::WebAXRoleButton:
+ return ui::AX_ROLE_BUTTON;
+ case blink::WebAXRoleCanvas:
+ return ui::AX_ROLE_CANVAS;
+ case blink::WebAXRoleCell:
+ return ui::AX_ROLE_CELL;
+ case blink::WebAXRoleCheckBox:
+ return ui::AX_ROLE_CHECK_BOX;
+ case blink::WebAXRoleColorWell:
+ return ui::AX_ROLE_COLOR_WELL;
+ case blink::WebAXRoleColumn:
+ return ui::AX_ROLE_COLUMN;
+ case blink::WebAXRoleColumnHeader:
+ return ui::AX_ROLE_COLUMN_HEADER;
+ case blink::WebAXRoleComboBox:
+ return ui::AX_ROLE_COMBO_BOX;
+ case blink::WebAXRoleComplementary:
+ return ui::AX_ROLE_COMPLEMENTARY;
+ case blink::WebAXRoleContentInfo:
+ return ui::AX_ROLE_CONTENT_INFO;
+ case blink::WebAXRoleDefinition:
+ return ui::AX_ROLE_DEFINITION;
+ case blink::WebAXRoleDescriptionListDetail:
+ return ui::AX_ROLE_DESCRIPTION_LIST_DETAIL;
+ case blink::WebAXRoleDescriptionListTerm:
+ return ui::AX_ROLE_DESCRIPTION_LIST_TERM;
+ case blink::WebAXRoleDialog:
+ return ui::AX_ROLE_DIALOG;
+ case blink::WebAXRoleDirectory:
+ return ui::AX_ROLE_DIRECTORY;
+ case blink::WebAXRoleDisclosureTriangle:
+ return ui::AX_ROLE_DISCLOSURE_TRIANGLE;
+ case blink::WebAXRoleDiv:
+ return ui::AX_ROLE_DIV;
+ case blink::WebAXRoleDocument:
+ return ui::AX_ROLE_DOCUMENT;
+ case blink::WebAXRoleDrawer:
+ return ui::AX_ROLE_DRAWER;
+ case blink::WebAXRoleEditableText:
+ return ui::AX_ROLE_EDITABLE_TEXT;
+ case blink::WebAXRoleFooter:
+ return ui::AX_ROLE_FOOTER;
+ case blink::WebAXRoleForm:
+ return ui::AX_ROLE_FORM;
+ case blink::WebAXRoleGrid:
+ return ui::AX_ROLE_GRID;
+ case blink::WebAXRoleGroup:
+ return ui::AX_ROLE_GROUP;
+ case blink::WebAXRoleGrowArea:
+ return ui::AX_ROLE_GROW_AREA;
+ case blink::WebAXRoleHeading:
+ return ui::AX_ROLE_HEADING;
+ case blink::WebAXRoleHelpTag:
+ return ui::AX_ROLE_HELP_TAG;
+ case blink::WebAXRoleHorizontalRule:
+ return ui::AX_ROLE_HORIZONTAL_RULE;
+ case blink::WebAXRoleIgnored:
+ return ui::AX_ROLE_IGNORED;
+ case blink::WebAXRoleImage:
+ return ui::AX_ROLE_IMAGE;
+ case blink::WebAXRoleImageMap:
+ return ui::AX_ROLE_IMAGE_MAP;
+ case blink::WebAXRoleImageMapLink:
+ return ui::AX_ROLE_IMAGE_MAP_LINK;
+ case blink::WebAXRoleIncrementor:
+ return ui::AX_ROLE_INCREMENTOR;
+ case blink::WebAXRoleInlineTextBox:
+ return ui::AX_ROLE_INLINE_TEXT_BOX;
+ case blink::WebAXRoleLabel:
+ return ui::AX_ROLE_LABEL;
+ case blink::WebAXRoleLegend:
+ return ui::AX_ROLE_LEGEND;
+ case blink::WebAXRoleLink:
+ return ui::AX_ROLE_LINK;
+ case blink::WebAXRoleList:
+ return ui::AX_ROLE_LIST;
+ case blink::WebAXRoleListBox:
+ return ui::AX_ROLE_LIST_BOX;
+ case blink::WebAXRoleListBoxOption:
+ return ui::AX_ROLE_LIST_BOX_OPTION;
+ case blink::WebAXRoleListItem:
+ return ui::AX_ROLE_LIST_ITEM;
+ case blink::WebAXRoleListMarker:
+ return ui::AX_ROLE_LIST_MARKER;
+ case blink::WebAXRoleLog:
+ return ui::AX_ROLE_LOG;
+ case blink::WebAXRoleMain:
+ return ui::AX_ROLE_MAIN;
+ case blink::WebAXRoleMarquee:
+ return ui::AX_ROLE_MARQUEE;
+ case blink::WebAXRoleMath:
+ return ui::AX_ROLE_MATH;
+ case blink::WebAXRoleMathElement:
+ return ui::AX_ROLE_MATH_ELEMENT;
+ case blink::WebAXRoleMatte:
+ return ui::AX_ROLE_MATTE;
+ case blink::WebAXRoleMenu:
+ return ui::AX_ROLE_MENU;
+ case blink::WebAXRoleMenuBar:
+ return ui::AX_ROLE_MENU_BAR;
+ case blink::WebAXRoleMenuButton:
+ return ui::AX_ROLE_MENU_BUTTON;
+ case blink::WebAXRoleMenuItem:
+ return ui::AX_ROLE_MENU_ITEM;
+ case blink::WebAXRoleMenuListOption:
+ return ui::AX_ROLE_MENU_LIST_OPTION;
+ case blink::WebAXRoleMenuListPopup:
+ return ui::AX_ROLE_MENU_LIST_POPUP;
+ case blink::WebAXRoleNavigation:
+ return ui::AX_ROLE_NAVIGATION;
+ case blink::WebAXRoleNote:
+ return ui::AX_ROLE_NOTE;
+ case blink::WebAXRoleOutline:
+ return ui::AX_ROLE_OUTLINE;
+ case blink::WebAXRoleParagraph:
+ return ui::AX_ROLE_PARAGRAPH;
+ case blink::WebAXRolePopUpButton:
+ return ui::AX_ROLE_POP_UP_BUTTON;
+ case blink::WebAXRolePresentational:
+ return ui::AX_ROLE_PRESENTATIONAL;
+ case blink::WebAXRoleProgressIndicator:
+ return ui::AX_ROLE_PROGRESS_INDICATOR;
+ case blink::WebAXRoleRadioButton:
+ return ui::AX_ROLE_RADIO_BUTTON;
+ case blink::WebAXRoleRadioGroup:
+ return ui::AX_ROLE_RADIO_GROUP;
+ case blink::WebAXRoleRegion:
+ return ui::AX_ROLE_REGION;
+ case blink::WebAXRoleRootWebArea:
+ return ui::AX_ROLE_ROOT_WEB_AREA;
+ case blink::WebAXRoleRow:
+ return ui::AX_ROLE_ROW;
+ case blink::WebAXRoleRowHeader:
+ return ui::AX_ROLE_ROW_HEADER;
+ case blink::WebAXRoleRuler:
+ return ui::AX_ROLE_RULER;
+ case blink::WebAXRoleRulerMarker:
+ return ui::AX_ROLE_RULER_MARKER;
+ case blink::WebAXRoleSVGRoot:
+ return ui::AX_ROLE_SVG_ROOT;
+ case blink::WebAXRoleScrollArea:
+ return ui::AX_ROLE_SCROLL_AREA;
+ case blink::WebAXRoleScrollBar:
+ return ui::AX_ROLE_SCROLL_BAR;
+ case blink::WebAXRoleSeamlessWebArea:
+ return ui::AX_ROLE_SEAMLESS_WEB_AREA;
+ case blink::WebAXRoleSearch:
+ return ui::AX_ROLE_SEARCH;
+ case blink::WebAXRoleSheet:
+ return ui::AX_ROLE_SHEET;
+ case blink::WebAXRoleSlider:
+ return ui::AX_ROLE_SLIDER;
+ case blink::WebAXRoleSliderThumb:
+ return ui::AX_ROLE_SLIDER_THUMB;
+ case blink::WebAXRoleSpinButton:
+ return ui::AX_ROLE_SPIN_BUTTON;
+ case blink::WebAXRoleSpinButtonPart:
+ return ui::AX_ROLE_SPIN_BUTTON_PART;
+ case blink::WebAXRoleSplitGroup:
+ return ui::AX_ROLE_SPLIT_GROUP;
+ case blink::WebAXRoleSplitter:
+ return ui::AX_ROLE_SPLITTER;
+ case blink::WebAXRoleStaticText:
+ return ui::AX_ROLE_STATIC_TEXT;
+ case blink::WebAXRoleStatus:
+ return ui::AX_ROLE_STATUS;
+ case blink::WebAXRoleSystemWide:
+ return ui::AX_ROLE_SYSTEM_WIDE;
+ case blink::WebAXRoleTab:
+ return ui::AX_ROLE_TAB;
+ case blink::WebAXRoleTabGroup:
+ return ui::AX_ROLE_TAB_GROUP;
+ case blink::WebAXRoleTabList:
+ return ui::AX_ROLE_TAB_LIST;
+ case blink::WebAXRoleTabPanel:
+ return ui::AX_ROLE_TAB_PANEL;
+ case blink::WebAXRoleTable:
+ return ui::AX_ROLE_TABLE;
+ case blink::WebAXRoleTableHeaderContainer:
+ return ui::AX_ROLE_TABLE_HEADER_CONTAINER;
+ case blink::WebAXRoleTextArea:
+ return ui::AX_ROLE_TEXT_AREA;
+ case blink::WebAXRoleTextField:
+ return ui::AX_ROLE_TEXT_FIELD;
+ case blink::WebAXRoleTimer:
+ return ui::AX_ROLE_TIMER;
+ case blink::WebAXRoleToggleButton:
+ return ui::AX_ROLE_TOGGLE_BUTTON;
+ case blink::WebAXRoleToolbar:
+ return ui::AX_ROLE_TOOLBAR;
+ case blink::WebAXRoleTree:
+ return ui::AX_ROLE_TREE;
+ case blink::WebAXRoleTreeGrid:
+ return ui::AX_ROLE_TREE_GRID;
+ case blink::WebAXRoleTreeItem:
+ return ui::AX_ROLE_TREE_ITEM;
+ case blink::WebAXRoleUnknown:
+ return ui::AX_ROLE_UNKNOWN;
+ case blink::WebAXRoleUserInterfaceTooltip:
+ return ui::AX_ROLE_TOOLTIP;
+ case blink::WebAXRoleValueIndicator:
+ return ui::AX_ROLE_VALUE_INDICATOR;
+ case blink::WebAXRoleWebArea:
+ return ui::AX_ROLE_WEB_AREA;
+ case blink::WebAXRoleWindow:
+ return ui::AX_ROLE_WINDOW;
+ }
+
+ NOTREACHED();
+ return static_cast<ui::AXRole>(-1);
+}
+
+ui::AXEvent AXEventFromBlink(blink::WebAXEvent event) {
+ switch (event) {
+ case blink::WebAXEventActiveDescendantChanged:
+ return ui::AX_EVENT_ACTIVEDESCENDANTCHANGED;
+ case blink::WebAXEventAlert:
+ return ui::AX_EVENT_ALERT;
+ case blink::WebAXEventAriaAttributeChanged:
+ return ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED;
+ case blink::WebAXEventAutocorrectionOccured:
+ return ui::AX_EVENT_AUTOCORRECTION_OCCURED;
+ case blink::WebAXEventBlur:
+ return ui::AX_EVENT_BLUR;
+ case blink::WebAXEventCheckedStateChanged:
+ return ui::AX_EVENT_CHECKED_STATE_CHANGED;
+ case blink::WebAXEventChildrenChanged:
+ return ui::AX_EVENT_CHILDREN_CHANGED;
+ case blink::WebAXEventFocus:
+ return ui::AX_EVENT_FOCUS;
+ case blink::WebAXEventHide:
+ return ui::AX_EVENT_HIDE;
+ case blink::WebAXEventInvalidStatusChanged:
+ return ui::AX_EVENT_INVALID_STATUS_CHANGED;
+ case blink::WebAXEventLayoutComplete:
+ return ui::AX_EVENT_LAYOUT_COMPLETE;
+ case blink::WebAXEventLiveRegionChanged:
+ return ui::AX_EVENT_LIVE_REGION_CHANGED;
+ case blink::WebAXEventLoadComplete:
+ return ui::AX_EVENT_LOAD_COMPLETE;
+ case blink::WebAXEventLocationChanged:
+ return ui::AX_EVENT_LOCATION_CHANGED;
+ case blink::WebAXEventMenuListItemSelected:
+ return ui::AX_EVENT_MENU_LIST_ITEM_SELECTED;
+ case blink::WebAXEventMenuListValueChanged:
+ return ui::AX_EVENT_MENU_LIST_VALUE_CHANGED;
+ case blink::WebAXEventRowCollapsed:
+ return ui::AX_EVENT_ROW_COLLAPSED;
+ case blink::WebAXEventRowCountChanged:
+ return ui::AX_EVENT_ROW_COUNT_CHANGED;
+ case blink::WebAXEventRowExpanded:
+ return ui::AX_EVENT_ROW_EXPANDED;
+ case blink::WebAXEventScrolledToAnchor:
+ return ui::AX_EVENT_SCROLLED_TO_ANCHOR;
+ case blink::WebAXEventSelectedChildrenChanged:
+ return ui::AX_EVENT_SELECTED_CHILDREN_CHANGED;
+ case blink::WebAXEventSelectedTextChanged:
+ return ui::AX_EVENT_SELECTED_TEXT_CHANGED;
+ case blink::WebAXEventShow:
+ return ui::AX_EVENT_SHOW;
+ case blink::WebAXEventTextChanged:
+ return ui::AX_EVENT_TEXT_CHANGED;
+ case blink::WebAXEventTextInserted:
+ return ui::AX_EVENT_TEXT_INSERTED;
+ case blink::WebAXEventTextRemoved:
+ return ui::AX_EVENT_TEXT_REMOVED;
+ case blink::WebAXEventValueChanged:
+ return ui::AX_EVENT_VALUE_CHANGED;
+ }
+
+ NOTREACHED();
+ return static_cast<ui::AXEvent>(-1);
+}
+
+} // namespace content
diff --git a/content/renderer/accessibility/blink_ax_enum_conversion.h b/content/renderer/accessibility/blink_ax_enum_conversion.h
new file mode 100644
index 0000000..78a739c
--- /dev/null
+++ b/content/renderer/accessibility/blink_ax_enum_conversion.h
@@ -0,0 +1,27 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_RENDERER_ACCESSIBILITY_BLINK_AX_ENUM_CONVERSION_H_
+#define CONTENT_RENDERER_ACCESSIBILITY_BLINK_AX_ENUM_CONVERSION_H_
+
+#include "third_party/WebKit/public/web/WebAXObject.h"
+#include "ui/accessibility/ax_enums.h"
+
+namespace content {
+
+// Convert a Blink WebAXRole to an AXRole defined in ui/accessibility.
+ui::AXRole AXRoleFromBlink(blink::WebAXRole role);
+
+// Convert a Blink WebAXEvent to an AXEvent defined in ui/accessibility.
+ui::AXEvent AXEventFromBlink(blink::WebAXEvent event);
+
+// Provides a conversion between the WebAXObject state
+// accessors and a state bitmask stored in an AXNodeData.
+// (Note that some rare states are sent as boolean attributes
+// in AXNodeData instead.)
+uint32 AXStateFromBlink(const blink::WebAXObject& o);
+
+} // namespace content
+
+#endif // CONTENT_RENDERER_ACCESSIBILITY_BLINK_AX_ENUM_CONVERSION_H_
diff --git a/content/renderer/accessibility/renderer_accessibility.cc b/content/renderer/accessibility/renderer_accessibility.cc
index 18eb78f..0e12336 100644
--- a/content/renderer/accessibility/renderer_accessibility.cc
+++ b/content/renderer/accessibility/renderer_accessibility.cc
@@ -44,59 +44,59 @@ WebDocument RendererAccessibility::GetMainDocument() {
#ifndef NDEBUG
const std::string RendererAccessibility::AccessibilityEventToString(
- blink::WebAXEvent event) {
+ ui::AXEvent event) {
switch (event) {
- case blink::WebAXEventActiveDescendantChanged:
+ case ui::AX_EVENT_ACTIVEDESCENDANTCHANGED:
return "active descendant changed";
- case blink::WebAXEventAriaAttributeChanged:
+ case ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED:
return "aria attribute changed";
- case blink::WebAXEventAutocorrectionOccured:
+ case ui::AX_EVENT_AUTOCORRECTION_OCCURED:
return "autocorrection occurred";
- case blink::WebAXEventBlur:
+ case ui::AX_EVENT_BLUR:
return "blur";
- case blink::WebAXEventAlert:
+ case ui::AX_EVENT_ALERT:
return "alert";
- case blink::WebAXEventCheckedStateChanged:
+ case ui::AX_EVENT_CHECKED_STATE_CHANGED:
return "check state changed";
- case blink::WebAXEventChildrenChanged:
+ case ui::AX_EVENT_CHILDREN_CHANGED:
return "children changed";
- case blink::WebAXEventFocus:
+ case ui::AX_EVENT_FOCUS:
return "focus changed";
- case blink::WebAXEventInvalidStatusChanged:
+ case ui::AX_EVENT_INVALID_STATUS_CHANGED:
return "invalid status changed";
- case blink::WebAXEventLayoutComplete:
+ case ui::AX_EVENT_LAYOUT_COMPLETE:
return "layout complete";
- case blink::WebAXEventLiveRegionChanged:
+ case ui::AX_EVENT_LIVE_REGION_CHANGED:
return "live region changed";
- case blink::WebAXEventLoadComplete:
+ case ui::AX_EVENT_LOAD_COMPLETE:
return "load complete";
- case blink::WebAXEventMenuListItemSelected:
+ case ui::AX_EVENT_MENU_LIST_ITEM_SELECTED:
return "menu list item selected";
- case blink::WebAXEventMenuListValueChanged:
+ case ui::AX_EVENT_MENU_LIST_VALUE_CHANGED:
return "menu list changed";
- case blink::WebAXEventShow:
+ case ui::AX_EVENT_SHOW:
return "object show";
- case blink::WebAXEventHide:
+ case ui::AX_EVENT_HIDE:
return "object hide";
- case blink::WebAXEventRowCountChanged:
+ case ui::AX_EVENT_ROW_COUNT_CHANGED:
return "row count changed";
- case blink::WebAXEventRowCollapsed:
+ case ui::AX_EVENT_ROW_COLLAPSED:
return "row collapsed";
- case blink::WebAXEventRowExpanded:
+ case ui::AX_EVENT_ROW_EXPANDED:
return "row expanded";
- case blink::WebAXEventScrolledToAnchor:
+ case ui::AX_EVENT_SCROLLED_TO_ANCHOR:
return "scrolled to anchor";
- case blink::WebAXEventSelectedChildrenChanged:
+ case ui::AX_EVENT_SELECTED_CHILDREN_CHANGED:
return "selected children changed";
- case blink::WebAXEventSelectedTextChanged:
+ case ui::AX_EVENT_SELECTED_TEXT_CHANGED:
return "selected text changed";
- case blink::WebAXEventTextChanged:
+ case ui::AX_EVENT_TEXT_CHANGED:
return "text changed";
- case blink::WebAXEventTextInserted:
+ case ui::AX_EVENT_TEXT_INSERTED:
return "text inserted";
- case blink::WebAXEventTextRemoved:
+ case ui::AX_EVENT_TEXT_REMOVED:
return "text removed";
- case blink::WebAXEventValueChanged:
+ case ui::AX_EVENT_VALUE_CHANGED:
return "value changed";
default:
NOTREACHED();
diff --git a/content/renderer/accessibility/renderer_accessibility.h b/content/renderer/accessibility/renderer_accessibility.h
index cc157ff..0bb804c 100644
--- a/content/renderer/accessibility/renderer_accessibility.h
+++ b/content/renderer/accessibility/renderer_accessibility.h
@@ -63,7 +63,7 @@ class CONTENT_EXPORT RendererAccessibility : public RenderViewObserver {
blink::WebDocument GetMainDocument();
#ifndef NDEBUG
- const std::string AccessibilityEventToString(blink::WebAXEvent event);
+ const std::string AccessibilityEventToString(ui::AXEvent event);
#endif
// The RenderViewImpl that owns us.
diff --git a/content/renderer/accessibility/renderer_accessibility_browsertest.cc b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
index 6cc5550..fbf8522 100644
--- a/content/renderer/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
@@ -3,7 +3,6 @@
// found in the LICENSE file.
#include "base/strings/utf_string_conversions.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/view_messages.h"
#include "content/public/test/render_view_test.h"
#include "content/renderer/accessibility/renderer_accessibility_complete.h"
@@ -13,6 +12,7 @@
#include "third_party/WebKit/public/web/WebAXObject.h"
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebView.h"
+#include "ui/accessibility/ax_node_data.h"
using blink::WebAXObject;
using blink::WebDocument;
@@ -125,16 +125,16 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
AccessibilityHostMsg_EventParams event;
GetLastAccEvent(&event);
EXPECT_EQ(event.event_type,
- blink::WebAXEventLayoutComplete);
+ ui::AX_EVENT_LAYOUT_COMPLETE);
EXPECT_EQ(event.id, 1);
EXPECT_EQ(event.nodes.size(), 2U);
EXPECT_EQ(event.nodes[0].id, 1);
EXPECT_EQ(event.nodes[0].role,
- blink::WebAXRoleRootWebArea);
+ ui::AX_ROLE_ROOT_WEB_AREA);
EXPECT_EQ(event.nodes[0].state,
- (1U << blink::WebAXStateReadonly) |
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused));
+ (1U << ui::AX_STATE_READONLY) |
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED));
EXPECT_EQ(event.nodes[0].child_ids.size(), 1U);
}
@@ -146,21 +146,21 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
AccessibilityHostMsg_EventParams event;
GetLastAccEvent(&event);
EXPECT_EQ(event.event_type,
- blink::WebAXEventFocus);
+ ui::AX_EVENT_FOCUS);
EXPECT_EQ(event.id, 3);
EXPECT_EQ(event.nodes[0].id, 1);
EXPECT_EQ(event.nodes[0].role,
- blink::WebAXRoleRootWebArea);
+ ui::AX_ROLE_ROOT_WEB_AREA);
EXPECT_EQ(event.nodes[0].state,
- (1U << blink::WebAXStateReadonly) |
- (1U << blink::WebAXStateFocusable));
+ (1U << ui::AX_STATE_READONLY) |
+ (1U << ui::AX_STATE_FOCUSABLE));
EXPECT_EQ(event.nodes[0].child_ids.size(), 1U);
EXPECT_EQ(event.nodes[1].id, 3);
EXPECT_EQ(event.nodes[1].role,
- blink::WebAXRoleGroup);
+ ui::AX_ROLE_GROUP);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED));
}
// Check other editable text nodes.
@@ -172,8 +172,8 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
GetLastAccEvent(&event);
EXPECT_EQ(event.id, 4);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED));
}
{
@@ -184,8 +184,8 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
GetLastAccEvent(&event);
EXPECT_EQ(event.id, 5);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED));
}
{
@@ -196,8 +196,8 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
GetLastAccEvent(&event);
EXPECT_EQ(event.id, 6);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED));
}
// Try focusing things that aren't editable text.
@@ -209,9 +209,9 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
GetLastAccEvent(&event);
EXPECT_EQ(event.id, 7);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused) |
- (1U << blink::WebAXStateReadonly));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED) |
+ (1U << ui::AX_STATE_READONLY));
}
{
@@ -222,9 +222,9 @@ TEST_F(RendererAccessibilityTest, EditableTextModeFocusEvents) {
GetLastAccEvent(&event);
EXPECT_EQ(event.id, 8);
EXPECT_EQ(event.nodes[1].state,
- (1U << blink::WebAXStateFocusable) |
- (1U << blink::WebAXStateFocused) |
- (1U << blink::WebAXStateReadonly));
+ (1U << ui::AX_STATE_FOCUSABLE) |
+ (1U << ui::AX_STATE_FOCUSED) |
+ (1U << ui::AX_STATE_READONLY));
}
// Clear focus.
@@ -267,9 +267,9 @@ TEST_F(RendererAccessibilityTest, SendFullAccessibilityTreeOnReload) {
sink_->ClearMessages();
WebDocument document = view()->GetWebView()->mainFrame()->document();
WebAXObject root_obj = document.accessibilityObject();
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
root_obj,
- blink::WebAXEventLayoutComplete);
+ ui::AX_EVENT_LAYOUT_COMPLETE);
accessibility->SendPendingAccessibilityEvents();
EXPECT_EQ(4, accessibility->browser_tree_node_count());
EXPECT_EQ(1, CountAccessibilityNodesSentToBrowser());
@@ -287,9 +287,9 @@ TEST_F(RendererAccessibilityTest, SendFullAccessibilityTreeOnReload) {
document = view()->GetWebView()->mainFrame()->document();
root_obj = document.accessibilityObject();
sink_->ClearMessages();
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
root_obj,
- blink::WebAXEventLayoutComplete);
+ ui::AX_EVENT_LAYOUT_COMPLETE);
accessibility->SendPendingAccessibilityEvents();
EXPECT_EQ(4, accessibility->browser_tree_node_count());
EXPECT_EQ(4, CountAccessibilityNodesSentToBrowser());
@@ -302,9 +302,9 @@ TEST_F(RendererAccessibilityTest, SendFullAccessibilityTreeOnReload) {
root_obj = document.accessibilityObject();
sink_->ClearMessages();
const WebAXObject& first_child = root_obj.childAt(0);
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
first_child,
- blink::WebAXEventLiveRegionChanged);
+ ui::AX_EVENT_LIVE_REGION_CHANGED);
accessibility->SendPendingAccessibilityEvents();
EXPECT_EQ(4, accessibility->browser_tree_node_count());
EXPECT_EQ(4, CountAccessibilityNodesSentToBrowser());
@@ -341,9 +341,9 @@ TEST_F(RendererAccessibilityTest,
sink_->ClearMessages();
WebDocument document = view()->GetWebView()->mainFrame()->document();
WebAXObject root_obj = document.accessibilityObject();
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
root_obj,
- blink::WebAXEventValueChanged);
+ ui::AX_EVENT_VALUE_CHANGED);
view()->OnSwapOut();
accessibility->SendPendingAccessibilityEvents();
EXPECT_FALSE(sink_->GetUniqueMessageMatching(
@@ -403,9 +403,9 @@ TEST_F(RendererAccessibilityTest, HideAccessibilityObject) {
// Send a childrenChanged on 'A'.
sink_->ClearMessages();
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
node_a,
- blink::WebAXEventChildrenChanged);
+ ui::AX_EVENT_CHILDREN_CHANGED);
accessibility->SendPendingAccessibilityEvents();
EXPECT_EQ(3, accessibility->browser_tree_node_count());
@@ -453,9 +453,9 @@ TEST_F(RendererAccessibilityTest, ShowAccessibilityObject) {
WebDocument document = view()->GetWebView()->mainFrame()->document();
WebAXObject root_obj = document.accessibilityObject();
WebAXObject node_a = root_obj.childAt(0);
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
node_a,
- blink::WebAXEventChildrenChanged);
+ ui::AX_EVENT_CHILDREN_CHANGED);
accessibility->SendPendingAccessibilityEvents();
EXPECT_EQ(4, accessibility->browser_tree_node_count());
@@ -507,9 +507,9 @@ TEST_F(RendererAccessibilityTest, DetachAccessibilityObject) {
// Send a childrenChanged on the body.
sink_->ClearMessages();
- accessibility->HandleWebAccessibilityEvent(
+ accessibility->HandleAXEvent(
body,
- blink::WebAXEventChildrenChanged);
+ ui::AX_EVENT_CHILDREN_CHANGED);
accessibility->SendPendingAccessibilityEvents();
diff --git a/content/renderer/accessibility/renderer_accessibility_complete.cc b/content/renderer/accessibility/renderer_accessibility_complete.cc
index 4002a66..608546e 100644
--- a/content/renderer/accessibility/renderer_accessibility_complete.cc
+++ b/content/renderer/accessibility/renderer_accessibility_complete.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "content/renderer/accessibility/accessibility_node_serializer.h"
+#include "content/renderer/accessibility/blink_ax_enum_conversion.h"
#include "content/renderer/render_view_impl.h"
#include "third_party/WebKit/public/web/WebAXObject.h"
#include "third_party/WebKit/public/web/WebDocument.h"
@@ -16,6 +17,7 @@
#include "third_party/WebKit/public/web/WebInputElement.h"
#include "third_party/WebKit/public/web/WebNode.h"
#include "third_party/WebKit/public/web/WebView.h"
+#include "ui/accessibility/ax_tree.h"
using blink::WebAXObject;
using blink::WebDocument;
@@ -49,8 +51,8 @@ RendererAccessibilityComplete::RendererAccessibilityComplete(
// It's possible that the webview has already loaded a webpage without
// accessibility being enabled. Initialize the browser's cached
// accessibility tree by sending it a notification.
- HandleWebAccessibilityEvent(document.accessibilityObject(),
- blink::WebAXEventLayoutComplete);
+ HandleAXEvent(document.accessibilityObject(),
+ ui::AX_EVENT_LAYOUT_COMPLETE);
}
}
@@ -92,8 +94,7 @@ void RendererAccessibilityComplete::FocusedNodeChanged(const WebNode& node) {
if (node.isNull()) {
// When focus is cleared, implicitly focus the document.
// TODO(dmazzoni): Make WebKit send this notification instead.
- HandleWebAccessibilityEvent(document.accessibilityObject(),
- blink::WebAXEventBlur);
+ HandleAXEvent(document.accessibilityObject(), ui::AX_EVENT_BLUR);
}
}
@@ -108,12 +109,17 @@ void RendererAccessibilityComplete::DidFinishLoad(blink::WebFrame* frame) {
// TODO(dmazzoni): remove this once rdar://5794454 is fixed.
WebAXObject new_root = document.accessibilityObject();
if (!browser_root_ || new_root.axID() != browser_root_->id)
- HandleWebAccessibilityEvent(new_root, blink::WebAXEventLayoutComplete);
+ HandleAXEvent(new_root, ui::AX_EVENT_LAYOUT_COMPLETE);
}
+
void RendererAccessibilityComplete::HandleWebAccessibilityEvent(
- const blink::WebAXObject& obj,
- blink::WebAXEvent event) {
+ const blink::WebAXObject& obj, blink::WebAXEvent event) {
+ HandleAXEvent(obj, AXEventFromBlink(event));
+}
+
+void RendererAccessibilityComplete::HandleAXEvent(
+ const blink::WebAXObject& obj, ui::AXEvent event) {
const WebDocument& document = GetMainDocument();
if (document.isNull())
return;
@@ -127,9 +133,8 @@ void RendererAccessibilityComplete::HandleWebAccessibilityEvent(
// https://bugs.webkit.org/show_bug.cgi?id=73460 is fixed.
last_scroll_offset_ = scroll_offset;
if (!obj.equals(document.accessibilityObject())) {
- HandleWebAccessibilityEvent(
- document.accessibilityObject(),
- blink::WebAXEventLayoutComplete);
+ HandleAXEvent(document.accessibilityObject(),
+ ui::AX_EVENT_LAYOUT_COMPLETE);
}
}
@@ -201,7 +206,7 @@ void RendererAccessibilityComplete::SendPendingAccessibilityEvents() {
// doesn't also send us events for each child that changed
// selection state, so make sure we re-send that whole subtree.
if (event.event_type ==
- blink::WebAXEventSelectedChildrenChanged) {
+ ui::AX_EVENT_SELECTED_CHILDREN_CHANGED) {
base::hash_map<int32, BrowserTreeNode*>::iterator iter =
browser_id_map_.find(obj.axID());
if (iter != browser_id_map_.end())
@@ -220,16 +225,15 @@ void RendererAccessibilityComplete::SendPendingAccessibilityEvents() {
obj.axID() != root_id) {
obj = obj.parentObject();
if (event.event_type ==
- blink::WebAXEventChildrenChanged) {
+ ui::AX_EVENT_CHILDREN_CHANGED) {
event.id = obj.axID();
}
}
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_)
- LOG(WARNING) << "Got event on object that is invalid or has"
- << " invalid ancestor. Id: " << obj.axID();
+ LOG(WARNING) << "Got event on object that is invalid or has"
+ << " invalid ancestor. Id: " << obj.axID();
#endif
continue;
}
@@ -276,15 +280,15 @@ void RendererAccessibilityComplete::SendPendingAccessibilityEvents() {
event_msgs.push_back(event_msg);
#ifndef NDEBUG
- if (logging_) {
- AccessibilityNodeDataTreeNode tree;
- MakeAccessibilityNodeDataTree(event_msg.nodes, &tree);
- VLOG(0) << "Accessibility update: \n"
- << "routing id=" << routing_id()
- << " event="
- << AccessibilityEventToString(event.event_type)
- << "\n" << tree.DebugString(true);
- }
+ ui::AXTree tree;
+ ui::AXTreeUpdate update;
+ update.nodes = event_msg.nodes;
+ tree.Unserialize(update);
+ VLOG(0) << "Accessibility update: \n"
+ << "routing id=" << routing_id()
+ << " event="
+ << AccessibilityEventToString(event.event_type)
+ << "\n" << tree.ToString();
#endif
}
@@ -335,14 +339,14 @@ RendererAccessibilityComplete::CreateBrowserTreeNode() {
void RendererAccessibilityComplete::SerializeChangedNodes(
const blink::WebAXObject& obj,
- std::vector<AccessibilityNodeData>* dst,
+ std::vector<ui::AXNodeData>* dst,
std::set<int>* ids_serialized) {
if (ids_serialized->find(obj.axID()) != ids_serialized->end())
return;
ids_serialized->insert(obj.axID());
// This method has three responsibilities:
- // 1. Serialize |obj| into an AccessibilityNodeData, and append it to
+ // 1. Serialize |obj| into an ui::AXNodeData, and append it to
// the end of the |dst| vector to be send to the browser process.
// 2. Determine if |obj| has any new children that the browser doesn't
// know about yet, and call SerializeChangedNodes recursively on those.
@@ -432,12 +436,12 @@ void RendererAccessibilityComplete::SerializeChangedNodes(
}
// Serialize this node. This fills in all of the fields in
- // AccessibilityNodeData except child_ids, which we handle below.
- dst->push_back(AccessibilityNodeData());
- AccessibilityNodeData* serialized_node = &dst->back();
+ // ui::AXNodeData except child_ids, which we handle below.
+ dst->push_back(ui::AXNodeData());
+ ui::AXNodeData* serialized_node = &dst->back();
SerializeAccessibilityNode(obj, serialized_node);
if (serialized_node->id == browser_root_->id)
- serialized_node->role = blink::WebAXRoleRootWebArea;
+ serialized_node->role = ui::AX_ROLE_ROOT_WEB_AREA;
// Iterate over the children, make note of the ones that are new
// and need to be serialized, and update the BrowserTreeNode
@@ -498,8 +502,7 @@ void RendererAccessibilityComplete::OnDoDefaultAction(int acc_obj_id) {
WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id);
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_)
- LOG(WARNING) << "DoDefaultAction on invalid object id " << acc_obj_id;
+ LOG(WARNING) << "DoDefaultAction on invalid object id " << acc_obj_id;
#endif
return;
}
@@ -516,8 +519,7 @@ void RendererAccessibilityComplete::OnScrollToMakeVisible(
WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id);
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_)
- LOG(WARNING) << "ScrollToMakeVisible on invalid object id " << acc_obj_id;
+ LOG(WARNING) << "ScrollToMakeVisible on invalid object id " << acc_obj_id;
#endif
return;
}
@@ -530,9 +532,8 @@ void RendererAccessibilityComplete::OnScrollToMakeVisible(
// position actually changes.
// TODO(dmazzoni): remove this once this bug is fixed:
// https://bugs.webkit.org/show_bug.cgi?id=73460
- HandleWebAccessibilityEvent(
- document.accessibilityObject(),
- blink::WebAXEventLayoutComplete);
+ HandleAXEvent(document.accessibilityObject(),
+ ui::AX_EVENT_LAYOUT_COMPLETE);
}
void RendererAccessibilityComplete::OnScrollToPoint(
@@ -544,8 +545,7 @@ void RendererAccessibilityComplete::OnScrollToPoint(
WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id);
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_)
- LOG(WARNING) << "ScrollToPoint on invalid object id " << acc_obj_id;
+ LOG(WARNING) << "ScrollToPoint on invalid object id " << acc_obj_id;
#endif
return;
}
@@ -556,9 +556,8 @@ void RendererAccessibilityComplete::OnScrollToPoint(
// position actually changes.
// TODO(dmazzoni): remove this once this bug is fixed:
// https://bugs.webkit.org/show_bug.cgi?id=73460
- HandleWebAccessibilityEvent(
- document.accessibilityObject(),
- blink::WebAXEventLayoutComplete);
+ HandleAXEvent(document.accessibilityObject(),
+ ui::AX_EVENT_LAYOUT_COMPLETE);
}
void RendererAccessibilityComplete::OnSetTextSelection(
@@ -570,8 +569,7 @@ void RendererAccessibilityComplete::OnSetTextSelection(
WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id);
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_)
- LOG(WARNING) << "SetTextSelection on invalid object id " << acc_obj_id;
+ LOG(WARNING) << "SetTextSelection on invalid object id " << acc_obj_id;
#endif
return;
}
@@ -601,10 +599,8 @@ void RendererAccessibilityComplete::OnSetFocus(int acc_obj_id) {
WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id);
if (obj.isDetached()) {
#ifndef NDEBUG
- if (logging_) {
- LOG(WARNING) << "OnSetAccessibilityFocus on invalid object id "
- << acc_obj_id;
- }
+ LOG(WARNING) << "OnSetAccessibilityFocus on invalid object id "
+ << acc_obj_id;
#endif
return;
}
@@ -612,9 +608,7 @@ void RendererAccessibilityComplete::OnSetFocus(int acc_obj_id) {
WebAXObject root = document.accessibilityObject();
if (root.isDetached()) {
#ifndef NDEBUG
- if (logging_) {
- LOG(WARNING) << "OnSetAccessibilityFocus but root is invalid";
- }
+ LOG(WARNING) << "OnSetAccessibilityFocus but root is invalid";
#endif
return;
}
diff --git a/content/renderer/accessibility/renderer_accessibility_complete.h b/content/renderer/accessibility/renderer_accessibility_complete.h
index 2a6c2dd..82dc2b6 100644
--- a/content/renderer/accessibility/renderer_accessibility_complete.h
+++ b/content/renderer/accessibility/renderer_accessibility_complete.h
@@ -10,11 +10,11 @@
#include "base/containers/hash_tables.h"
#include "base/memory/weak_ptr.h"
-#include "content/common/accessibility_node_data.h"
#include "content/public/renderer/render_view_observer.h"
#include "content/renderer/accessibility/renderer_accessibility.h"
#include "third_party/WebKit/public/web/WebAXEnums.h"
#include "third_party/WebKit/public/web/WebAXObject.h"
+#include "ui/accessibility/ax_node_data.h"
namespace blink {
class WebDocument;
@@ -47,6 +47,8 @@ class CONTENT_EXPORT RendererAccessibilityComplete
virtual void HandleWebAccessibilityEvent(
const blink::WebAXObject& obj, blink::WebAXEvent event) OVERRIDE;
+ void HandleAXEvent(const blink::WebAXObject& obj, ui::AXEvent event);
+
// In order to keep track of what nodes the browser knows about, we keep a
// representation of the browser tree - just IDs and parent/child
// relationships.
@@ -77,7 +79,7 @@ class CONTENT_EXPORT RendererAccessibilityComplete
// The set of ids serialized is added to |ids_serialized|, and any
// ids previously in that set are not serialized again.
void SerializeChangedNodes(const blink::WebAXObject& obj,
- std::vector<AccessibilityNodeData>* dst,
+ std::vector<ui::AXNodeData>* dst,
std::set<int>* ids_serialized);
// Clear the given node and recursively delete all of its descendants
@@ -102,14 +104,14 @@ class CONTENT_EXPORT RendererAccessibilityComplete
// corresponding WebAccessibility node as a child of |dst|.
void RecursiveAddEditableTextNodesToTree(
const blink::WebAXObject& src,
- AccessibilityNodeData* dst);
+ ui::AXNodeData* dst);
- // Build a tree of serializable AccessibilityNodeData nodes to send to the
+ // Build a tree of serializable ui::AXNodeData nodes to send to the
// browser process, given a WebAXObject node from WebKit.
// Modifies |dst| in-place, it's assumed to be empty.
void BuildAccessibilityTree(const blink::WebAXObject& src,
bool include_children,
- AccessibilityNodeData* dst);
+ ui::AXNodeData* dst);
// So we can queue up tasks to be executed later.
base::WeakPtrFactory<RendererAccessibilityComplete> weak_factory_;
@@ -135,9 +137,6 @@ class CONTENT_EXPORT RendererAccessibilityComplete
// Set if we are waiting for an accessibility event ack.
bool ack_pending_;
- // True if verbose logging of accessibility events is on.
- bool logging_;
-
DISALLOW_COPY_AND_ASSIGN(RendererAccessibilityComplete);
};
diff --git a/content/renderer/accessibility/renderer_accessibility_focus_only.cc b/content/renderer/accessibility/renderer_accessibility_focus_only.cc
index b8d1f68..28e9477 100644
--- a/content/renderer/accessibility/renderer_accessibility_focus_only.cc
+++ b/content/renderer/accessibility/renderer_accessibility_focus_only.cc
@@ -4,13 +4,13 @@
#include "content/renderer/accessibility/renderer_accessibility_focus_only.h"
-#include "content/common/accessibility_node_data.h"
#include "content/renderer/render_view_impl.h"
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebElement.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebNode.h"
#include "third_party/WebKit/public/web/WebView.h"
+#include "ui/accessibility/ax_node_data.h"
using blink::WebDocument;
using blink::WebElement;
@@ -87,31 +87,29 @@ void RendererAccessibilityFocusOnly::HandleFocusedNodeChanged(
// native focus changed event, we can send a LayoutComplete
// event, which doesn't post a native event on Windows.
event.event_type =
- send_focus_event ?
- blink::WebAXEventFocus :
- blink::WebAXEventLayoutComplete;
+ send_focus_event ? ui::AX_EVENT_FOCUS : ui::AX_EVENT_LAYOUT_COMPLETE;
// Set the id that the event applies to: the root node if nothing
// has focus, otherwise the focused node.
event.id = node_has_focus ? next_id_ : 1;
event.nodes.resize(2);
- AccessibilityNodeData& root = event.nodes[0];
- AccessibilityNodeData& child = event.nodes[1];
+ ui::AXNodeData& root = event.nodes[0];
+ ui::AXNodeData& child = event.nodes[1];
// Always include the root of the tree, the document. It always has id 1.
root.id = 1;
- root.role = blink::WebAXRoleRootWebArea;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
root.state =
- (1 << blink::WebAXStateReadonly) |
- (1 << blink::WebAXStateFocusable);
+ (1 << ui::AX_STATE_READONLY) |
+ (1 << ui::AX_STATE_FOCUSABLE);
if (!node_has_focus)
- root.state |= (1 << blink::WebAXStateFocused);
+ root.state |= (1 << ui::AX_STATE_FOCUSED);
root.location = gfx::Rect(render_view_->size());
root.child_ids.push_back(next_id_);
child.id = next_id_;
- child.role = blink::WebAXRoleGroup;
+ child.role = ui::AX_ROLE_GROUP;
if (!node.isNull() && node.isElementNode()) {
child.location = gfx::Rect(
@@ -124,13 +122,14 @@ void RendererAccessibilityFocusOnly::HandleFocusedNodeChanged(
if (node_has_focus) {
child.state =
- (1 << blink::WebAXStateFocusable) |
- (1 << blink::WebAXStateFocused);
+ (1 << ui::AX_STATE_FOCUSABLE) |
+ (1 << ui::AX_STATE_FOCUSED);
if (!node_is_editable_text)
- child.state |= (1 << blink::WebAXStateReadonly);
+ child.state |= (1 << ui::AX_STATE_READONLY);
}
#ifndef NDEBUG
+ /**
if (logging_) {
VLOG(0) << "Accessibility update: \n"
<< "routing id=" << routing_id()
@@ -138,6 +137,7 @@ void RendererAccessibilityFocusOnly::HandleFocusedNodeChanged(
<< AccessibilityEventToString(event.event_type)
<< "\n" << event.nodes[0].DebugString(true);
}
+ **/
#endif
Send(new AccessibilityHostMsg_Events(routing_id(), events));
diff --git a/content/test/accessibility_browser_test_utils.cc b/content/test/accessibility_browser_test_utils.cc
index 525ed30..67e5811 100644
--- a/content/test/accessibility_browser_test_utils.cc
+++ b/content/test/accessibility_browser_test_utils.cc
@@ -14,13 +14,14 @@
#include "content/public/common/url_constants.h"
#include "content/public/test/test_utils.h"
#include "content/shell/browser/shell.h"
+#include "ui/accessibility/ax_node.h"
namespace content {
AccessibilityNotificationWaiter::AccessibilityNotificationWaiter(
Shell* shell,
AccessibilityMode accessibility_mode,
- blink::WebAXEvent event_type)
+ ui::AXEvent event_type)
: shell_(shell),
event_to_wait_for_(event_type),
loop_runner_(new MessageLoopRunner()),
@@ -41,13 +42,12 @@ void AccessibilityNotificationWaiter::WaitForNotification() {
loop_runner_->Run();
}
-const AccessibilityNodeDataTreeNode&
-AccessibilityNotificationWaiter::GetAccessibilityNodeDataTree() const {
- return view_host_->accessibility_tree_for_testing();
+const ui::AXTree& AccessibilityNotificationWaiter::GetAXTree() const {
+ return view_host_->ax_tree_for_testing();
}
void AccessibilityNotificationWaiter::OnAccessibilityEvent(
- blink::WebAXEvent event_type) {
+ ui::AXEvent event_type) {
if (!IsAboutBlank() && event_to_wait_for_ == event_type)
loop_runner_->Quit();
}
@@ -56,9 +56,9 @@ bool AccessibilityNotificationWaiter::IsAboutBlank() {
// Skip any accessibility notifications related to "about:blank",
// to avoid a possible race condition between the test beginning
// listening for accessibility events and "about:blank" loading.
- const AccessibilityNodeDataTreeNode& root = GetAccessibilityNodeDataTree();
+ const ui::AXNodeData& root = GetAXTree().GetRoot()->data();
for (size_t i = 0; i < root.string_attributes.size(); ++i) {
- if (root.string_attributes[i].first != AccessibilityNodeData::ATTR_DOC_URL)
+ if (root.string_attributes[i].first != ui::AX_ATTR_DOC_URL)
continue;
const std::string& doc_url = root.string_attributes[i].second;
return doc_url == kAboutBlankURL;
diff --git a/content/test/accessibility_browser_test_utils.h b/content/test/accessibility_browser_test_utils.h
index 74f0834..25abe20 100644
--- a/content/test/accessibility_browser_test_utils.h
+++ b/content/test/accessibility_browser_test_utils.h
@@ -6,8 +6,9 @@
#define CONTENT_TEST_ACCESSIBILITY_BROWSER_TEST_UTILS_H_
#include "base/memory/weak_ptr.h"
-#include "content/common/accessibility_node_data.h"
#include "content/common/view_message_enums.h"
+#include "ui/accessibility/ax_node_data.h"
+#include "ui/accessibility/ax_tree.h"
namespace content {
@@ -25,7 +26,7 @@ class AccessibilityNotificationWaiter {
AccessibilityNotificationWaiter(
Shell* shell,
AccessibilityMode accessibility_mode,
- blink::WebAXEvent event);
+ ui::AXEvent event);
~AccessibilityNotificationWaiter();
// Blocks until the specific accessibility notification registered in
@@ -35,20 +36,19 @@ class AccessibilityNotificationWaiter {
// After WaitForNotification has returned, this will retrieve
// the tree of accessibility nodes received from the renderer process.
- const AccessibilityNodeDataTreeNode& GetAccessibilityNodeDataTree() const;
+ const ui::AXTree& GetAXTree() const;
private:
// Callback from RenderViewHostImpl.
- void OnAccessibilityEvent(blink::WebAXEvent event);
+ void OnAccessibilityEvent(ui::AXEvent event);
// Helper function to determine if the accessibility tree in
- // GetAccessibilityNodeDataTree() is about the page with the url
- // "about:blank".
+ // GetAXTree() is about the page with the url "about:blank".
bool IsAboutBlank();
Shell* shell_;
RenderViewHostImpl* view_host_;
- blink::WebAXEvent event_to_wait_for_;
+ ui::AXEvent event_to_wait_for_;
scoped_refptr<MessageLoopRunner> loop_runner_;
base::WeakPtrFactory<AccessibilityNotificationWaiter> weak_factory_;
diff --git a/ui/accessibility/accessibility.gyp b/ui/accessibility/accessibility.gyp
index 20a95ac..2db99d6 100644
--- a/ui/accessibility/accessibility.gyp
+++ b/ui/accessibility/accessibility.gyp
@@ -44,6 +44,8 @@
'../../base/base.gyp:base',
'../../base/base.gyp:run_all_unittests',
'../../testing/gtest.gyp:gtest',
+ '../gfx/gfx.gyp:gfx',
+ '../gfx/gfx.gyp:gfx_geometry',
'accessibility',
],
'sources': [
diff --git a/ui/accessibility/ax_enums.h b/ui/accessibility/ax_enums.h
index 7f543ed..b57b241 100644
--- a/ui/accessibility/ax_enums.h
+++ b/ui/accessibility/ax_enums.h
@@ -2,11 +2,46 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef UI_ACCESSIBILITY_AX_ROLES_H_
-#define UI_ACCESSIBILITY_AX_ROLES_H_
+#ifndef UI_ACCESSIBILITY_AX_ENUMS_H_
+#define UI_ACCESSIBILITY_AX_ENUMS_H_
+
+#include "base/basictypes.h"
+
+namespace ui {
// These should be kept in sync with third_party/WebKit/public/web/WebAXEnums.h
// until the Chromium and Blink trees are merged.
+
+enum AXEvent {
+ AX_EVENT_ACTIVEDESCENDANTCHANGED,
+ AX_EVENT_ALERT,
+ AX_EVENT_ARIA_ATTRIBUTE_CHANGED,
+ AX_EVENT_AUTOCORRECTION_OCCURED,
+ AX_EVENT_BLUR,
+ AX_EVENT_CHECKED_STATE_CHANGED,
+ AX_EVENT_CHILDREN_CHANGED,
+ AX_EVENT_FOCUS,
+ AX_EVENT_HIDE,
+ AX_EVENT_INVALID_STATUS_CHANGED,
+ AX_EVENT_LAYOUT_COMPLETE,
+ AX_EVENT_LIVE_REGION_CHANGED,
+ AX_EVENT_LOAD_COMPLETE,
+ AX_EVENT_LOCATION_CHANGED,
+ AX_EVENT_MENU_LIST_ITEM_SELECTED,
+ AX_EVENT_MENU_LIST_VALUE_CHANGED,
+ AX_EVENT_ROW_COLLAPSED,
+ AX_EVENT_ROW_COUNT_CHANGED,
+ AX_EVENT_ROW_EXPANDED,
+ AX_EVENT_SCROLLED_TO_ANCHOR,
+ AX_EVENT_SELECTED_CHILDREN_CHANGED,
+ AX_EVENT_SELECTED_TEXT_CHANGED,
+ AX_EVENT_SHOW,
+ AX_EVENT_TEXT_CHANGED,
+ AX_EVENT_TEXT_INSERTED,
+ AX_EVENT_TEXT_REMOVED,
+ AX_EVENT_VALUE_CHANGED
+};
+
enum AXRole {
AX_ROLE_ALERT_DIALOG = 1,
AX_ROLE_ALERT,
@@ -115,10 +150,186 @@ enum AXRole {
AX_ROLE_TREE_ITEM,
AX_ROLE_TREE,
AX_ROLE_UNKNOWN,
- AX_ROLE_USER_INTERFACE_TOOLTIP,
+ AX_ROLE_TOOLTIP,
AX_ROLE_VALUE_INDICATOR,
AX_ROLE_WEB_AREA,
AX_ROLE_WINDOW
};
-#endif // UI_ACCESSIBILITY_AX_ROLES_H_
+enum AXState {
+ AX_STATE_BUSY,
+ AX_STATE_CHECKED,
+ AX_STATE_COLLAPSED,
+ AX_STATE_ENABLED,
+ AX_STATE_EXPANDED,
+ AX_STATE_FOCUSABLE,
+ AX_STATE_FOCUSED,
+ AX_STATE_HASPOPUP,
+ AX_STATE_HOVERED,
+ AX_STATE_INDETERMINATE,
+ AX_STATE_INVISIBLE,
+ AX_STATE_LINKED,
+ AX_STATE_MULTISELECTABLE,
+ AX_STATE_OFFSCREEN,
+ AX_STATE_PRESSED,
+ AX_STATE_PROTECTED,
+ AX_STATE_READONLY,
+ AX_STATE_REQUIRED,
+ AX_STATE_SELECTABLE,
+ AX_STATE_SELECTED,
+ AX_STATE_VERTICAL,
+ AX_STATE_VISITED
+};
+
+enum AXStringAttribute {
+ // Document attributes.
+ AX_ATTR_DOC_URL,
+ AX_ATTR_DOC_TITLE,
+ AX_ATTR_DOC_MIMETYPE,
+ AX_ATTR_DOC_DOCTYPE,
+
+ // Attributes that could apply to any node.
+ AX_ATTR_ACCESS_KEY,
+ AX_ATTR_ACTION,
+ AX_ATTR_CONTAINER_LIVE_RELEVANT,
+ AX_ATTR_CONTAINER_LIVE_STATUS,
+ AX_ATTR_DESCRIPTION,
+ AX_ATTR_DISPLAY,
+ AX_ATTR_HELP,
+ AX_ATTR_HTML_TAG,
+ AX_ATTR_NAME,
+ AX_ATTR_LIVE_RELEVANT,
+ AX_ATTR_LIVE_STATUS,
+ AX_ATTR_ROLE,
+ AX_ATTR_SHORTCUT,
+ AX_ATTR_URL,
+ AX_ATTR_VALUE,
+};
+
+enum AXIntAttribute {
+ // Scrollable container attributes.
+ AX_ATTR_SCROLL_X,
+ AX_ATTR_SCROLL_X_MIN,
+ AX_ATTR_SCROLL_X_MAX,
+ AX_ATTR_SCROLL_Y,
+ AX_ATTR_SCROLL_Y_MIN,
+ AX_ATTR_SCROLL_Y_MAX,
+
+ // Editable text attributes.
+ AX_ATTR_TEXT_SEL_START,
+ AX_ATTR_TEXT_SEL_END,
+
+ // Table attributes.
+ AX_ATTR_TABLE_ROW_COUNT,
+ AX_ATTR_TABLE_COLUMN_COUNT,
+ AX_ATTR_TABLE_HEADER_ID,
+
+ // Table row attributes.
+ AX_ATTR_TABLE_ROW_INDEX,
+ AX_ATTR_TABLE_ROW_HEADER_ID,
+
+ // Table column attributes.
+ AX_ATTR_TABLE_COLUMN_INDEX,
+ AX_ATTR_TABLE_COLUMN_HEADER_ID,
+
+ // Table cell attributes.
+ AX_ATTR_TABLE_CELL_COLUMN_INDEX,
+ AX_ATTR_TABLE_CELL_COLUMN_SPAN,
+ AX_ATTR_TABLE_CELL_ROW_INDEX,
+ AX_ATTR_TABLE_CELL_ROW_SPAN,
+
+ // Tree control attributes.
+ AX_ATTR_HIERARCHICAL_LEVEL,
+
+ // Relationships between this element and other elements.
+ AX_ATTR_TITLE_UI_ELEMENT,
+
+ // Color value for AX_ROLE_COLOR_WELL, each component is 0..255
+ AX_ATTR_COLOR_VALUE_RED,
+ AX_ATTR_COLOR_VALUE_GREEN,
+ AX_ATTR_COLOR_VALUE_BLUE,
+
+ // Inline text attributes.
+ AX_ATTR_TEXT_DIRECTION
+};
+
+enum AXFloatAttribute {
+ // Document attributes.
+ AX_ATTR_DOC_LOADING_PROGRESS,
+
+ // Range attributes.
+ AX_ATTR_VALUE_FOR_RANGE,
+ AX_ATTR_MIN_VALUE_FOR_RANGE,
+ AX_ATTR_MAX_VALUE_FOR_RANGE,
+};
+
+enum AXBoolAttribute {
+ // Document attributes.
+ AX_ATTR_DOC_LOADED,
+
+ // True if a checkbox or radio button is in the "mixed" state.
+ AX_ATTR_BUTTON_MIXED,
+
+ // Live region attributes.
+ AX_ATTR_CONTAINER_LIVE_ATOMIC,
+ AX_ATTR_CONTAINER_LIVE_BUSY,
+ AX_ATTR_LIVE_ATOMIC,
+ AX_ATTR_LIVE_BUSY,
+
+ // ARIA readonly flag.
+ AX_ATTR_ARIA_READONLY,
+
+ // Writeable attributes
+ AX_ATTR_CAN_SET_VALUE,
+
+ // If this is set, all of the other fields in this struct should
+ // be ignored and only the locations should change.
+ AX_ATTR_UPDATE_LOCATION_ONLY,
+
+ // Set on a canvas element if it has fallback content.
+ AX_ATTR_CANVAS_HAS_FALLBACK,
+};
+
+enum AXIntListAttribute {
+ // Ids of nodes that are children of this node logically, but are
+ // not children of this node in the tree structure. As an example,
+ // a table cell is a child of a row, and an 'indirect' child of a
+ // column.
+ AX_ATTR_INDIRECT_CHILD_IDS,
+
+ // Character indices where line breaks occur.
+ AX_ATTR_LINE_BREAKS,
+
+ // For a table, the cell ids in row-major order, with duplicate entries
+ // when there's a rowspan or colspan, and with -1 for missing cells.
+ // There are always exactly rows * columns entries.
+ AX_ATTR_CELL_IDS,
+
+ // For a table, the unique cell ids in row-major order of their first
+ // occurrence.
+ AX_ATTR_UNIQUE_CELL_IDS,
+
+ // For inline text. This is the pixel position of the end of this
+ // character within the bounding rectangle of this object, in the
+ // direction given by AX_ATTR_TEXT_DIRECTION. For example, for left-to-right
+ // text, the first offset is the right coordinate of the first character
+ // within the object's bounds, the second offset is the right coordinate
+ // of the second character, and so on.
+ AX_ATTR_CHARACTER_OFFSETS,
+
+ // For inline text. These int lists must be the same size; they represent
+ // the start and end character index of each word within this text.
+ AX_ATTR_WORD_STARTS,
+ AX_ATTR_WORD_ENDS,
+};
+
+enum AXTextDirection {
+ AX_TEXT_DIRECTION_LR,
+ AX_TEXT_DIRECTION_RL,
+ AX_TEXT_DIRECTION_TB,
+ AX_TEXT_DIRECTION_BT,
+};
+
+} // namespace ui
+
+#endif // UI_ACCESSIBILITY_AX_ENUMS_H_
diff --git a/ui/accessibility/ax_node_data.cc b/ui/accessibility/ax_node_data.cc
index 1655fe8..2e8b9c2 100644
--- a/ui/accessibility/ax_node_data.cc
+++ b/ui/accessibility/ax_node_data.cc
@@ -16,6 +16,20 @@ using base::IntToString;
namespace ui {
+namespace {
+
+std::string IntVectorToString(const std::vector<int>& items) {
+ std::string str;
+ for (size_t i = 0; i < items.size(); ++i) {
+ if (i > 0)
+ str += ",";
+ str += IntToString(items[i]);
+ }
+ return str;
+}
+
+} // Anonymous namespace
+
AXNodeData::AXNodeData()
: id(-1),
role(AX_ROLE_UNKNOWN),
@@ -26,36 +40,449 @@ AXNodeData::~AXNodeData() {
}
void AXNodeData::AddStringAttribute(
- StringAttribute attribute, const std::string& value) {
+ AXStringAttribute attribute, const std::string& value) {
string_attributes.push_back(std::make_pair(attribute, value));
}
void AXNodeData::AddIntAttribute(
- IntAttribute attribute, int value) {
+ AXIntAttribute attribute, int value) {
int_attributes.push_back(std::make_pair(attribute, value));
}
void AXNodeData::AddFloatAttribute(
- FloatAttribute attribute, float value) {
+ AXFloatAttribute attribute, float value) {
float_attributes.push_back(std::make_pair(attribute, value));
}
void AXNodeData::AddBoolAttribute(
- BoolAttribute attribute, bool value) {
+ AXBoolAttribute attribute, bool value) {
bool_attributes.push_back(std::make_pair(attribute, value));
}
void AXNodeData::AddIntListAttribute(
- IntListAttribute attribute, const std::vector<int32>& value) {
+ AXIntListAttribute attribute, const std::vector<int32>& value) {
intlist_attributes.push_back(std::make_pair(attribute, value));
}
void AXNodeData::SetName(std::string name) {
- string_attributes.push_back(std::make_pair(ATTR_NAME, name));
+ string_attributes.push_back(std::make_pair(AX_ATTR_NAME, name));
}
void AXNodeData::SetValue(std::string value) {
- string_attributes.push_back(std::make_pair(ATTR_VALUE, value));
+ string_attributes.push_back(std::make_pair(AX_ATTR_VALUE, value));
+}
+
+std::string AXNodeData::ToString() const {
+ std::string result;
+
+ result += "id=" + IntToString(id);
+
+ switch (role) {
+ case ui::AX_ROLE_ALERT: result += " ALERT"; break;
+ case ui::AX_ROLE_ALERT_DIALOG: result += " ALERT_DIALOG"; break;
+ case ui::AX_ROLE_ANNOTATION: result += " ANNOTATION"; break;
+ case ui::AX_ROLE_APPLICATION: result += " APPLICATION"; break;
+ case ui::AX_ROLE_ARTICLE: result += " ARTICLE"; break;
+ case ui::AX_ROLE_BANNER: result += " BANNER"; break;
+ case ui::AX_ROLE_BROWSER: result += " BROWSER"; break;
+ case ui::AX_ROLE_BUSY_INDICATOR: result += " BUSY_INDICATOR"; break;
+ case ui::AX_ROLE_BUTTON: result += " BUTTON"; break;
+ case ui::AX_ROLE_CANVAS: result += " CANVAS"; break;
+ case ui::AX_ROLE_CELL: result += " CELL"; break;
+ case ui::AX_ROLE_CHECK_BOX: result += " CHECKBOX"; break;
+ case ui::AX_ROLE_COLOR_WELL: result += " COLOR_WELL"; break;
+ case ui::AX_ROLE_COLUMN: result += " COLUMN"; break;
+ case ui::AX_ROLE_COLUMN_HEADER: result += " COLUMN_HEADER"; break;
+ case ui::AX_ROLE_COMBO_BOX: result += " COMBO_BOX"; break;
+ case ui::AX_ROLE_COMPLEMENTARY: result += " COMPLEMENTARY"; break;
+ case ui::AX_ROLE_CONTENT_INFO: result += " CONTENTINFO"; break;
+ case ui::AX_ROLE_DEFINITION: result += " DEFINITION"; break;
+ case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: result += " DD"; break;
+ case ui::AX_ROLE_DESCRIPTION_LIST_TERM: result += " DT"; break;
+ case ui::AX_ROLE_DIALOG: result += " DIALOG"; break;
+ case ui::AX_ROLE_DIRECTORY: result += " DIRECTORY"; break;
+ case ui::AX_ROLE_DISCLOSURE_TRIANGLE:
+ result += " DISCLOSURE_TRIANGLE"; break;
+ case ui::AX_ROLE_DIV: result += " DIV"; break;
+ case ui::AX_ROLE_DOCUMENT: result += " DOCUMENT"; break;
+ case ui::AX_ROLE_DRAWER: result += " DRAWER"; break;
+ case ui::AX_ROLE_EDITABLE_TEXT: result += " EDITABLE_TEXT"; break;
+ case ui::AX_ROLE_FOOTER: result += " FOOTER"; break;
+ case ui::AX_ROLE_FORM: result += " FORM"; break;
+ case ui::AX_ROLE_GRID: result += " GRID"; break;
+ case ui::AX_ROLE_GROUP: result += " GROUP"; break;
+ case ui::AX_ROLE_GROW_AREA: result += " GROW_AREA"; break;
+ case ui::AX_ROLE_HEADING: result += " HEADING"; break;
+ case ui::AX_ROLE_HELP_TAG: result += " HELP_TAG"; break;
+ case ui::AX_ROLE_HORIZONTAL_RULE: result += " HORIZONTAL_RULE"; break;
+ case ui::AX_ROLE_IGNORED: result += " IGNORED"; break;
+ case ui::AX_ROLE_IMAGE: result += " IMAGE"; break;
+ case ui::AX_ROLE_IMAGE_MAP: result += " IMAGE_MAP"; break;
+ case ui::AX_ROLE_IMAGE_MAP_LINK: result += " IMAGE_MAP_LINK"; break;
+ case ui::AX_ROLE_INCREMENTOR: result += " INCREMENTOR"; break;
+ case ui::AX_ROLE_INLINE_TEXT_BOX: result += " INLINE_TEXT_BOX"; break;
+ case ui::AX_ROLE_LABEL: result += " LABEL"; break;
+ case ui::AX_ROLE_LINK: result += " LINK"; break;
+ case ui::AX_ROLE_LIST: result += " LIST"; break;
+ case ui::AX_ROLE_LIST_BOX: result += " LISTBOX"; break;
+ case ui::AX_ROLE_LIST_BOX_OPTION: result += " LISTBOX_OPTION"; break;
+ case ui::AX_ROLE_LIST_ITEM: result += " LIST_ITEM"; break;
+ case ui::AX_ROLE_LIST_MARKER: result += " LIST_MARKER"; break;
+ case ui::AX_ROLE_LOG: result += " LOG"; break;
+ case ui::AX_ROLE_MAIN: result += " MAIN"; break;
+ case ui::AX_ROLE_MARQUEE: result += " MARQUEE"; break;
+ case ui::AX_ROLE_MATH: result += " MATH"; break;
+ case ui::AX_ROLE_MATTE: result += " MATTE"; break;
+ case ui::AX_ROLE_MENU: result += " MENU"; break;
+ case ui::AX_ROLE_MENU_BAR: result += " MENU_BAR"; break;
+ case ui::AX_ROLE_MENU_BUTTON: result += " MENU_BUTTON"; break;
+ case ui::AX_ROLE_MENU_ITEM: result += " MENU_ITEM"; break;
+ case ui::AX_ROLE_MENU_LIST_OPTION: result += " MENU_LIST_OPTION"; break;
+ case ui::AX_ROLE_MENU_LIST_POPUP: result += " MENU_LIST_POPUP"; break;
+ case ui::AX_ROLE_NAVIGATION: result += " NAVIGATION"; break;
+ case ui::AX_ROLE_NOTE: result += " NOTE"; break;
+ case ui::AX_ROLE_OUTLINE: result += " OUTLINE"; break;
+ case ui::AX_ROLE_PARAGRAPH: result += " PARAGRAPH"; break;
+ case ui::AX_ROLE_POP_UP_BUTTON: result += " POPUP_BUTTON"; break;
+ case ui::AX_ROLE_PRESENTATIONAL: result += " PRESENTATIONAL"; break;
+ case ui::AX_ROLE_PROGRESS_INDICATOR:
+ result += " PROGRESS_INDICATOR"; break;
+ case ui::AX_ROLE_RADIO_BUTTON: result += " RADIO_BUTTON"; break;
+ case ui::AX_ROLE_RADIO_GROUP: result += " RADIO_GROUP"; break;
+ case ui::AX_ROLE_REGION: result += " REGION"; break;
+ case ui::AX_ROLE_ROOT_WEB_AREA: result += " ROOT_WEB_AREA"; break;
+ case ui::AX_ROLE_ROW: result += " ROW"; break;
+ case ui::AX_ROLE_ROW_HEADER: result += " ROW_HEADER"; break;
+ case ui::AX_ROLE_RULER: result += " RULER"; break;
+ case ui::AX_ROLE_RULER_MARKER: result += " RULER_MARKER"; break;
+ case ui::AX_ROLE_SVG_ROOT: result += " SVG_ROOT"; break;
+ case ui::AX_ROLE_SCROLL_AREA: result += " SCROLLAREA"; break;
+ case ui::AX_ROLE_SCROLL_BAR: result += " SCROLLBAR"; break;
+ case ui::AX_ROLE_SEARCH: result += " SEARCH"; break;
+ case ui::AX_ROLE_SHEET: result += " SHEET"; break;
+ case ui::AX_ROLE_SLIDER: result += " SLIDER"; break;
+ case ui::AX_ROLE_SLIDER_THUMB: result += " SLIDER_THUMB"; break;
+ case ui::AX_ROLE_SPIN_BUTTON: result += " SPIN_BUTTON"; break;
+ case ui::AX_ROLE_SPIN_BUTTON_PART: result += " SPIN_BUTTON_PART"; break;
+ case ui::AX_ROLE_SPLIT_GROUP: result += " SPLIT_GROUP"; break;
+ case ui::AX_ROLE_SPLITTER: result += " SPLITTER"; break;
+ case ui::AX_ROLE_STATIC_TEXT: result += " STATIC_TEXT"; break;
+ case ui::AX_ROLE_STATUS: result += " STATUS"; break;
+ case ui::AX_ROLE_SYSTEM_WIDE: result += " SYSTEM_WIDE"; break;
+ case ui::AX_ROLE_TAB: result += " TAB"; break;
+ case ui::AX_ROLE_TAB_LIST: result += " TAB_LIST"; break;
+ case ui::AX_ROLE_TAB_PANEL: result += " TAB_PANEL"; break;
+ case ui::AX_ROLE_TABLE: result += " TABLE"; break;
+ case ui::AX_ROLE_TABLE_HEADER_CONTAINER:
+ result += " TABLE_HDR_CONTAINER"; break;
+ case ui::AX_ROLE_TEXT_AREA: result += " TEXTAREA"; break;
+ case ui::AX_ROLE_TEXT_FIELD: result += " TEXT_FIELD"; break;
+ case ui::AX_ROLE_TIMER: result += " TIMER"; break;
+ case ui::AX_ROLE_TOGGLE_BUTTON: result += " TOGGLE_BUTTON"; break;
+ case ui::AX_ROLE_TOOLBAR: result += " TOOLBAR"; break;
+ case ui::AX_ROLE_TREE: result += " TREE"; break;
+ case ui::AX_ROLE_TREE_GRID: result += " TREE_GRID"; break;
+ case ui::AX_ROLE_TREE_ITEM: result += " TREE_ITEM"; break;
+ case ui::AX_ROLE_UNKNOWN: result += " UNKNOWN"; break;
+ case ui::AX_ROLE_TOOLTIP: result += " TOOLTIP"; break;
+ case ui::AX_ROLE_VALUE_INDICATOR: result += " VALUE_INDICATOR"; break;
+ case ui::AX_ROLE_WEB_AREA: result += " WEB_AREA"; break;
+ case ui::AX_ROLE_WINDOW: result += " WINDOW"; break;
+ default:
+ assert(false);
+ }
+
+ if (state & (1 << ui::AX_STATE_BUSY))
+ result += " BUSY";
+ if (state & (1 << ui::AX_STATE_CHECKED))
+ result += " CHECKED";
+ if (state & (1 << ui::AX_STATE_COLLAPSED))
+ result += " COLLAPSED";
+ if (state & (1 << ui::AX_STATE_EXPANDED))
+ result += " EXPANDED";
+ if (state & (1 << ui::AX_STATE_FOCUSABLE))
+ result += " FOCUSABLE";
+ if (state & (1 << ui::AX_STATE_FOCUSED))
+ result += " FOCUSED";
+ if (state & (1 << ui::AX_STATE_HASPOPUP))
+ result += " HASPOPUP";
+ if (state & (1 << ui::AX_STATE_HOVERED))
+ result += " HOVERED";
+ if (state & (1 << ui::AX_STATE_INDETERMINATE))
+ result += " INDETERMINATE";
+ if (state & (1 << ui::AX_STATE_INVISIBLE))
+ result += " INVISIBLE";
+ if (state & (1 << ui::AX_STATE_LINKED))
+ result += " LINKED";
+ if (state & (1 << ui::AX_STATE_MULTISELECTABLE))
+ result += " MULTISELECTABLE";
+ if (state & (1 << ui::AX_STATE_OFFSCREEN))
+ result += " OFFSCREEN";
+ if (state & (1 << ui::AX_STATE_PRESSED))
+ result += " PRESSED";
+ if (state & (1 << ui::AX_STATE_PROTECTED))
+ result += " PROTECTED";
+ if (state & (1 << ui::AX_STATE_READONLY))
+ result += " READONLY";
+ if (state & (1 << ui::AX_STATE_REQUIRED))
+ result += " REQUIRED";
+ if (state & (1 << ui::AX_STATE_SELECTABLE))
+ result += " SELECTABLE";
+ if (state & (1 << ui::AX_STATE_SELECTED))
+ result += " SELECTED";
+ if (state & (1 << ui::AX_STATE_VERTICAL))
+ result += " VERTICAL";
+ if (state & (1 << ui::AX_STATE_VISITED))
+ result += " VISITED";
+
+ result += " (" + IntToString(location.x()) + ", " +
+ IntToString(location.y()) + ")-(" +
+ IntToString(location.width()) + ", " +
+ IntToString(location.height()) + ")";
+
+ for (size_t i = 0; i < int_attributes.size(); ++i) {
+ std::string value = IntToString(int_attributes[i].second);
+ switch (int_attributes[i].first) {
+ case AX_ATTR_SCROLL_X:
+ result += " scroll_x=" + value;
+ break;
+ case AX_ATTR_SCROLL_X_MIN:
+ result += " scroll_x_min=" + value;
+ break;
+ case AX_ATTR_SCROLL_X_MAX:
+ result += " scroll_x_max=" + value;
+ break;
+ case AX_ATTR_SCROLL_Y:
+ result += " scroll_y=" + value;
+ break;
+ case AX_ATTR_SCROLL_Y_MIN:
+ result += " scroll_y_min=" + value;
+ break;
+ case AX_ATTR_SCROLL_Y_MAX:
+ result += " scroll_y_max=" + value;
+ break;
+ case AX_ATTR_HIERARCHICAL_LEVEL:
+ result += " level=" + value;
+ break;
+ case AX_ATTR_TEXT_SEL_START:
+ result += " sel_start=" + value;
+ break;
+ case AX_ATTR_TEXT_SEL_END:
+ result += " sel_end=" + value;
+ break;
+ case AX_ATTR_TABLE_ROW_COUNT:
+ result += " rows=" + value;
+ break;
+ case AX_ATTR_TABLE_COLUMN_COUNT:
+ result += " cols=" + value;
+ break;
+ case AX_ATTR_TABLE_CELL_COLUMN_INDEX:
+ result += " col=" + value;
+ break;
+ case AX_ATTR_TABLE_CELL_ROW_INDEX:
+ result += " row=" + value;
+ break;
+ case AX_ATTR_TABLE_CELL_COLUMN_SPAN:
+ result += " colspan=" + value;
+ break;
+ case AX_ATTR_TABLE_CELL_ROW_SPAN:
+ result += " rowspan=" + value;
+ break;
+ case AX_ATTR_TABLE_COLUMN_HEADER_ID:
+ result += " column_header_id=" + value;
+ break;
+ case AX_ATTR_TABLE_COLUMN_INDEX:
+ result += " column_index=" + value;
+ break;
+ case AX_ATTR_TABLE_HEADER_ID:
+ result += " header_id=" + value;
+ break;
+ case AX_ATTR_TABLE_ROW_HEADER_ID:
+ result += " row_header_id=" + value;
+ break;
+ case AX_ATTR_TABLE_ROW_INDEX:
+ result += " row_index=" + value;
+ break;
+ case AX_ATTR_TITLE_UI_ELEMENT:
+ result += " title_elem=" + value;
+ break;
+ case AX_ATTR_COLOR_VALUE_RED:
+ result += " color_value_red=" + value;
+ break;
+ case AX_ATTR_COLOR_VALUE_GREEN:
+ result += " color_value_green=" + value;
+ break;
+ case AX_ATTR_COLOR_VALUE_BLUE:
+ result += " color_value_blue=" + value;
+ break;
+ case AX_ATTR_TEXT_DIRECTION:
+ switch (int_attributes[i].second) {
+ case AX_TEXT_DIRECTION_LR:
+ default:
+ result += " text_direction=lr";
+ break;
+ case AX_TEXT_DIRECTION_RL:
+ result += " text_direction=rl";
+ break;
+ case AX_TEXT_DIRECTION_TB:
+ result += " text_direction=tb";
+ break;
+ case AX_TEXT_DIRECTION_BT:
+ result += " text_direction=bt";
+ break;
+ }
+ break;
+ }
+ }
+
+ for (size_t i = 0; i < string_attributes.size(); ++i) {
+ std::string value = string_attributes[i].second;
+ switch (string_attributes[i].first) {
+ case AX_ATTR_DOC_URL:
+ result += " doc_url=" + value;
+ break;
+ case AX_ATTR_DOC_TITLE:
+ result += " doc_title=" + value;
+ break;
+ case AX_ATTR_DOC_MIMETYPE:
+ result += " doc_mimetype=" + value;
+ break;
+ case AX_ATTR_DOC_DOCTYPE:
+ result += " doc_doctype=" + value;
+ break;
+ case AX_ATTR_ACCESS_KEY:
+ result += " access_key=" + value;
+ break;
+ case AX_ATTR_ACTION:
+ result += " action=" + value;
+ break;
+ case AX_ATTR_DESCRIPTION:
+ result += " description=" + value;
+ break;
+ case AX_ATTR_DISPLAY:
+ result += " display=" + value;
+ break;
+ case AX_ATTR_HELP:
+ result += " help=" + value;
+ break;
+ case AX_ATTR_HTML_TAG:
+ result += " html_tag=" + value;
+ break;
+ case AX_ATTR_LIVE_RELEVANT:
+ result += " relevant=" + value;
+ break;
+ case AX_ATTR_LIVE_STATUS:
+ result += " live=" + value;
+ break;
+ case AX_ATTR_CONTAINER_LIVE_RELEVANT:
+ result += " container_relevant=" + value;
+ break;
+ case AX_ATTR_CONTAINER_LIVE_STATUS:
+ result += " container_live=" + value;
+ break;
+ case AX_ATTR_ROLE:
+ result += " role=" + value;
+ break;
+ case AX_ATTR_SHORTCUT:
+ result += " shortcut=" + value;
+ break;
+ case AX_ATTR_URL:
+ result += " url=" + value;
+ break;
+ case AX_ATTR_NAME:
+ result += " name=" + value;
+ break;
+ case AX_ATTR_VALUE:
+ result += " value=" + value;
+ break;
+ }
+ }
+
+ for (size_t i = 0; i < float_attributes.size(); ++i) {
+ std::string value = DoubleToString(float_attributes[i].second);
+ switch (float_attributes[i].first) {
+ case AX_ATTR_DOC_LOADING_PROGRESS:
+ result += " doc_progress=" + value;
+ break;
+ case AX_ATTR_VALUE_FOR_RANGE:
+ result += " value_for_range=" + value;
+ break;
+ case AX_ATTR_MAX_VALUE_FOR_RANGE:
+ result += " max_value=" + value;
+ break;
+ case AX_ATTR_MIN_VALUE_FOR_RANGE:
+ result += " min_value=" + value;
+ break;
+ }
+ }
+
+ for (size_t i = 0; i < bool_attributes.size(); ++i) {
+ std::string value = bool_attributes[i].second ? "true" : "false";
+ switch (bool_attributes[i].first) {
+ case AX_ATTR_DOC_LOADED:
+ result += " doc_loaded=" + value;
+ break;
+ case AX_ATTR_BUTTON_MIXED:
+ result += " mixed=" + value;
+ break;
+ case AX_ATTR_LIVE_ATOMIC:
+ result += " atomic=" + value;
+ break;
+ case AX_ATTR_LIVE_BUSY:
+ result += " busy=" + value;
+ break;
+ case AX_ATTR_CONTAINER_LIVE_ATOMIC:
+ result += " container_atomic=" + value;
+ break;
+ case AX_ATTR_CONTAINER_LIVE_BUSY:
+ result += " container_busy=" + value;
+ break;
+ case AX_ATTR_ARIA_READONLY:
+ result += " aria_readonly=" + value;
+ break;
+ case AX_ATTR_CAN_SET_VALUE:
+ result += " can_set_value=" + value;
+ break;
+ case AX_ATTR_UPDATE_LOCATION_ONLY:
+ result += " update_location_only=" + value;
+ break;
+ case AX_ATTR_CANVAS_HAS_FALLBACK:
+ result += " has_fallback=" + value;
+ break;
+ }
+ }
+
+ for (size_t i = 0; i < intlist_attributes.size(); ++i) {
+ const std::vector<int32>& values = intlist_attributes[i].second;
+ switch (intlist_attributes[i].first) {
+ case AX_ATTR_INDIRECT_CHILD_IDS:
+ result += " indirect_child_ids=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_LINE_BREAKS:
+ result += " line_breaks=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_CELL_IDS:
+ result += " cell_ids=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_UNIQUE_CELL_IDS:
+ result += " unique_cell_ids=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_CHARACTER_OFFSETS:
+ result += " character_offsets=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_WORD_STARTS:
+ result += " word_starts=" + IntVectorToString(values);
+ break;
+ case AX_ATTR_WORD_ENDS:
+ result += " word_ends=" + IntVectorToString(values);
+ break;
+ }
+ }
+
+ if (!child_ids.empty())
+ result += " child_ids=" + IntVectorToString(child_ids);
+
+ return result;
}
} // namespace ui
diff --git a/ui/accessibility/ax_node_data.h b/ui/accessibility/ax_node_data.h
index 1c5defb..cd30fbb 100644
--- a/ui/accessibility/ax_node_data.h
+++ b/ui/accessibility/ax_node_data.h
@@ -20,159 +20,15 @@ namespace ui {
// single web object, in a form that can be serialized and sent from
// one process to another.
struct AX_EXPORT AXNodeData {
- // Additional optional attributes that can be optionally attached to
- // a node.
- enum StringAttribute {
- // Document attributes.
- ATTR_DOC_URL,
- ATTR_DOC_TITLE,
- ATTR_DOC_MIMETYPE,
- ATTR_DOC_DOCTYPE,
-
- // Attributes that could apply to any node.
- ATTR_ACCESS_KEY,
- ATTR_ACTION,
- ATTR_CONTAINER_LIVE_RELEVANT,
- ATTR_CONTAINER_LIVE_STATUS,
- ATTR_DESCRIPTION,
- ATTR_DISPLAY,
- ATTR_HELP,
- ATTR_HTML_TAG,
- ATTR_NAME,
- ATTR_LIVE_RELEVANT,
- ATTR_LIVE_STATUS,
- ATTR_ROLE,
- ATTR_SHORTCUT,
- ATTR_URL,
- ATTR_VALUE,
- };
-
- enum IntAttribute {
- // Scrollable container attributes.
- ATTR_SCROLL_X,
- ATTR_SCROLL_X_MIN,
- ATTR_SCROLL_X_MAX,
- ATTR_SCROLL_Y,
- ATTR_SCROLL_Y_MIN,
- ATTR_SCROLL_Y_MAX,
-
- // Editable text attributes.
- ATTR_TEXT_SEL_START,
- ATTR_TEXT_SEL_END,
-
- // Table attributes.
- ATTR_TABLE_ROW_COUNT,
- ATTR_TABLE_COLUMN_COUNT,
- ATTR_TABLE_HEADER_ID,
-
- // Table row attributes.
- ATTR_TABLE_ROW_INDEX,
- ATTR_TABLE_ROW_HEADER_ID,
-
- // Table column attributes.
- ATTR_TABLE_COLUMN_INDEX,
- ATTR_TABLE_COLUMN_HEADER_ID,
-
- // Table cell attributes.
- ATTR_TABLE_CELL_COLUMN_INDEX,
- ATTR_TABLE_CELL_COLUMN_SPAN,
- ATTR_TABLE_CELL_ROW_INDEX,
- ATTR_TABLE_CELL_ROW_SPAN,
-
- // Tree control attributes.
- ATTR_HIERARCHICAL_LEVEL,
-
- // Relationships between this element and other elements.
- ATTR_TITLE_UI_ELEMENT,
-
- // Color value for AX_ROLE_COLOR_WELL, each component is 0..255
- ATTR_COLOR_VALUE_RED,
- ATTR_COLOR_VALUE_GREEN,
- ATTR_COLOR_VALUE_BLUE,
-
- // Inline text attributes.
- ATTR_TEXT_DIRECTION
- };
-
- enum FloatAttribute {
- // Document attributes.
- ATTR_DOC_LOADING_PROGRESS,
-
- // Range attributes.
- ATTR_VALUE_FOR_RANGE,
- ATTR_MIN_VALUE_FOR_RANGE,
- ATTR_MAX_VALUE_FOR_RANGE,
- };
-
- enum BoolAttribute {
- // Document attributes.
- ATTR_DOC_LOADED,
-
- // True if a checkbox or radio button is in the "mixed" state.
- ATTR_BUTTON_MIXED,
-
- // Live region attributes.
- ATTR_CONTAINER_LIVE_ATOMIC,
- ATTR_CONTAINER_LIVE_BUSY,
- ATTR_LIVE_ATOMIC,
- ATTR_LIVE_BUSY,
-
- // ARIA readonly flag.
- ATTR_ARIA_READONLY,
-
- // Writeable attributes
- ATTR_CAN_SET_VALUE,
-
- // If this is set, all of the other fields in this struct should
- // be ignored and only the locations should change.
- ATTR_UPDATE_LOCATION_ONLY,
-
- // Set on a canvas element if it has fallback content.
- ATTR_CANVAS_HAS_FALLBACK,
- };
-
- enum IntListAttribute {
- // Ids of nodes that are children of this node logically, but are
- // not children of this node in the tree structure. As an example,
- // a table cell is a child of a row, and an 'indirect' child of a
- // column.
- ATTR_INDIRECT_CHILD_IDS,
-
- // Character indices where line breaks occur.
- ATTR_LINE_BREAKS,
-
- // For a table, the cell ids in row-major order, with duplicate entries
- // when there's a rowspan or colspan, and with -1 for missing cells.
- // There are always exactly rows * columns entries.
- ATTR_CELL_IDS,
-
- // For a table, the unique cell ids in row-major order of their first
- // occurrence.
- ATTR_UNIQUE_CELL_IDS,
-
- // For inline text. This is the pixel position of the end of this
- // character within the bounding rectangle of this object, in the
- // direction given by ATTR_TEXT_DIRECTION. For example, for left-to-right
- // text, the first offset is the right coordinate of the first character
- // within the object's bounds, the second offset is the right coordinate
- // of the second character, and so on.
- ATTR_CHARACTER_OFFSETS,
-
- // For inline text. These int lists must be the same size; they represent
- // the start and end character index of each word within this text.
- ATTR_WORD_STARTS,
- ATTR_WORD_ENDS,
- };
-
AXNodeData();
virtual ~AXNodeData();
- void AddStringAttribute(StringAttribute attribute,
+ void AddStringAttribute(AXStringAttribute attribute,
const std::string& value);
- void AddIntAttribute(IntAttribute attribute, int value);
- void AddFloatAttribute(FloatAttribute attribute, float value);
- void AddBoolAttribute(BoolAttribute attribute, bool value);
- void AddIntListAttribute(IntListAttribute attribute,
+ void AddIntAttribute(AXIntAttribute attribute, int value);
+ void AddFloatAttribute(AXFloatAttribute attribute, float value);
+ void AddBoolAttribute(AXBoolAttribute attribute, bool value);
+ void AddIntListAttribute(AXIntListAttribute attribute,
const std::vector<int32>& value);
// Convenience functions, mainly for writing unit tests.
@@ -181,17 +37,20 @@ struct AX_EXPORT AXNodeData {
// Equivalent to AddStringAttribute(ATTR_VALUE, value).
void SetValue(std::string value);
+ // Return a string representation of this data, for debugging.
+ std::string ToString() const;
+
// This is a simple serializable struct. All member variables should be
// public and copyable.
int32 id;
AXRole role;
uint32 state;
gfx::Rect location;
- std::vector<std::pair<StringAttribute, std::string> > string_attributes;
- std::vector<std::pair<IntAttribute, int32> > int_attributes;
- std::vector<std::pair<FloatAttribute, float> > float_attributes;
- std::vector<std::pair<BoolAttribute, bool> > bool_attributes;
- std::vector<std::pair<IntListAttribute, std::vector<int32> > >
+ std::vector<std::pair<AXStringAttribute, std::string> > string_attributes;
+ std::vector<std::pair<AXIntAttribute, int32> > int_attributes;
+ std::vector<std::pair<AXFloatAttribute, float> > float_attributes;
+ std::vector<std::pair<AXBoolAttribute, bool> > bool_attributes;
+ std::vector<std::pair<AXIntListAttribute, std::vector<int32> > >
intlist_attributes;
std::vector<std::pair<std::string, std::string> > html_attributes;
std::vector<int32> child_ids;
diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
index 5edb649..51aa13f 100644
--- a/ui/accessibility/ax_tree.cc
+++ b/ui/accessibility/ax_tree.cc
@@ -12,6 +12,20 @@
namespace ui {
+namespace {
+
+std::string TreeToStringHelper(AXNode* node, int indent) {
+ std::string result;
+ for (int i = 0; i < indent; i++)
+ result += " ";
+ result += node->data().ToString() + "\n";
+ for (int i = 0; i < node->child_count(); ++i)
+ result += TreeToStringHelper(node->ChildAtIndex(i), indent + 1);
+ return result;
+}
+
+} // anonymous namespace
+
AXTree::AXTree()
: root_(NULL) {
AXNodeData root;
@@ -81,6 +95,10 @@ bool AXTree::Unserialize(const AXTreeUpdate& update) {
return true;
}
+std::string AXTree::ToString() const {
+ return TreeToStringHelper(root_, 0);
+}
+
AXNode* AXTree::CreateNode(AXNode* parent, int32 id, int32 index_in_parent) {
return new AXNode(parent, id, index_in_parent);
}
diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
index 773a773..0241d3e 100644
--- a/ui/accessibility/ax_tree.h
+++ b/ui/accessibility/ax_tree.h
@@ -35,6 +35,9 @@ class AX_EXPORT AXTree {
// should not be trusted any longer.
virtual bool Unserialize(const AXTreeUpdate& update);
+ // Return a multi-line indented string representation, for logging.
+ std::string ToString() const;
+
// A string describing the error from an unsuccessful Unserialize,
// for testing and debugging.
const std::string& error() { return error_; }
diff --git a/ui/accessibility/ax_tree_unittest.cc b/ui/accessibility/ax_tree_unittest.cc
index 9e21280..68a2911 100644
--- a/ui/accessibility/ax_tree_unittest.cc
+++ b/ui/accessibility/ax_tree_unittest.cc
@@ -16,6 +16,8 @@ TEST(AXTreeTest, SerializeSimpleAXTree) {
AXNodeData root;
root.id = 1;
root.role = AX_ROLE_ROOT_WEB_AREA;
+ root.state = (1 << AX_STATE_FOCUSABLE) | (1 << AX_STATE_FOCUSED);
+ root.location = gfx::Rect(0, 0, 800, 600);
root.child_ids.push_back(2);
root.child_ids.push_back(3);
@@ -23,10 +25,13 @@ TEST(AXTreeTest, SerializeSimpleAXTree) {
button.id = 2;
button.role = AX_ROLE_BUTTON;
button.state = 0;
+ button.location = gfx::Rect(20, 20, 200, 30);
AXNodeData checkbox;
checkbox.id = 3;
checkbox.role = AX_ROLE_CHECK_BOX;
+ checkbox.state = 0;
+ checkbox.location = gfx::Rect(20, 50, 200, 30);
AXTreeUpdate initial_state;
initial_state.nodes.push_back(root);
@@ -57,6 +62,12 @@ TEST(AXTreeTest, SerializeSimpleAXTree) {
AXNode* checkbox_node = root_node->ChildAtIndex(1);
EXPECT_EQ(checkbox.id, checkbox_node->id());
EXPECT_EQ(checkbox.role, checkbox_node->data().role);
+
+ EXPECT_EQ(
+ "id=1 ROOT_WEB_AREA FOCUSABLE FOCUSED (0, 0)-(800, 600) child_ids=2,3\n"
+ " id=2 BUTTON (20, 20)-(200, 30)\n"
+ " id=3 CHECKBOX (20, 50)-(200, 30)\n",
+ dst_tree.ToString());
}
TEST(AXTreeTest, DeleteUnknownSubtreeFails) {