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

Unified Diff: chrome/browser/accessibility/browser_accessibility_win.cc

Issue 3551015: Make BrowserAccessibilityManager cross platform. Step 2. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Addressing linux (shlib dbg) and mac (clang) buildbot compile errors. Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/accessibility/browser_accessibility_win.cc
===================================================================
--- chrome/browser/accessibility/browser_accessibility_win.cc (revision 61758)
+++ chrome/browser/accessibility/browser_accessibility_win.cc (working copy)
@@ -12,135 +12,26 @@
using webkit_glue::WebAccessibility;
-BrowserAccessibilityWin::BrowserAccessibilityWin()
- : manager_(NULL),
- parent_(NULL),
- child_id_(-1),
- index_in_parent_(-1),
- renderer_id_(-1),
- instance_active_(false) {
+// static
+BrowserAccessibility* BrowserAccessibility::Create() {
+ CComObject<BrowserAccessibilityWin>* instance;
+ HRESULT hr = CComObject<BrowserAccessibilityWin>::CreateInstance(&instance);
+ DCHECK(SUCCEEDED(hr));
+ return instance->NewReference();
}
-BrowserAccessibilityWin::~BrowserAccessibilityWin() {
- InactivateTree();
+BrowserAccessibilityWin* BrowserAccessibility::toBrowserAccessibilityWin() {
+ return static_cast<BrowserAccessibilityWin*>(this);
}
-void BrowserAccessibilityWin::Initialize(
- BrowserAccessibilityManagerWin* manager,
- BrowserAccessibilityWin* parent,
- LONG child_id,
- LONG index_in_parent,
- const webkit_glue::WebAccessibility& src) {
- manager_ = manager;
- parent_ = parent;
- child_id_ = child_id;
- index_in_parent_ = index_in_parent;
-
- renderer_id_ = src.id;
- name_ = src.name;
- value_ = src.value;
- attributes_ = src.attributes;
- html_attributes_ = src.html_attributes;
- location_ = src.location;
- src_role_ = src.role;
- InitRoleAndState(src.role, src.state);
-
- // Expose headings levels to NVDA with the "level" object attribute.
- if (src.role == WebAccessibility::ROLE_HEADING && role_name_.size() == 2 &&
- IsAsciiDigit(role_name_[1])) {
- html_attributes_.push_back(std::make_pair(L"level", role_name_.substr(1)));
- }
-
- // If this object doesn't have a name but it does have a description,
- // use the description as its name - because some screen readers only
- // announce the name.
- if (name_.empty() && HasAttribute(WebAccessibility::ATTR_DESCRIPTION)) {
- GetAttribute(WebAccessibility::ATTR_DESCRIPTION, &name_);
- }
-
- instance_active_ = true;
+BrowserAccessibilityWin::BrowserAccessibilityWin()
+ : instance_active_(false) {
}
-void BrowserAccessibilityWin::AddChild(BrowserAccessibilityWin* child) {
- children_.push_back(child);
+BrowserAccessibilityWin::~BrowserAccessibilityWin() {
+ ReleaseTree();
}
-void BrowserAccessibilityWin::InactivateTree() {
- if (!instance_active_)
- return;
-
- // Mark this object as inactive, so calls to all COM methods will return
- // failure.
- instance_active_ = false;
-
- // Now we can safely call InactivateTree on our children and remove
- // references to them, so that as much of the tree as possible will be
- // destroyed now - however, nodes that still have references to them
- // might stick around a while until all clients have released them.
- for (std::vector<BrowserAccessibilityWin*>::iterator iter =
- children_.begin();
- iter != children_.end(); ++iter) {
- (*iter)->InactivateTree();
- (*iter)->Release();
- }
- children_.clear();
- manager_->Remove(child_id_);
-}
-
-bool BrowserAccessibilityWin::IsDescendantOf(
- BrowserAccessibilityWin* ancestor) {
- if (this == ancestor) {
- return true;
- } else if (parent_) {
- return parent_->IsDescendantOf(ancestor);
- }
-
- return false;
-}
-
-BrowserAccessibilityWin* BrowserAccessibilityWin::GetParent() {
- return parent_;
-}
-
-uint32 BrowserAccessibilityWin::GetChildCount() {
- return children_.size();
-}
-
-BrowserAccessibilityWin* BrowserAccessibilityWin::GetChild(uint32 child_index) {
- DCHECK(child_index >= 0 && child_index < children_.size());
- return children_[child_index];
-}
-
-BrowserAccessibilityWin* BrowserAccessibilityWin::GetPreviousSibling() {
- if (parent_ && index_in_parent_ > 0)
- return parent_->children_[index_in_parent_ - 1];
-
- return NULL;
-}
-
-BrowserAccessibilityWin* BrowserAccessibilityWin::GetNextSibling() {
- if (parent_ &&
- index_in_parent_ >= 0 &&
- index_in_parent_ < static_cast<int>(parent_->children_.size() - 1)) {
- return parent_->children_[index_in_parent_ + 1];
- }
-
- return NULL;
-}
-
-void BrowserAccessibilityWin::ReplaceChild(
- const BrowserAccessibilityWin* old_acc, BrowserAccessibilityWin* new_acc) {
- DCHECK_EQ(children_[old_acc->index_in_parent_], old_acc);
-
- old_acc = children_[old_acc->index_in_parent_];
- children_[old_acc->index_in_parent_] = new_acc;
-}
-
-BrowserAccessibilityWin* BrowserAccessibilityWin::NewReference() {
- AddRef();
- return this;
-}
-
//
// IAccessible methods.
//
@@ -188,7 +79,7 @@
// Find the top left corner of the containing window in screen coords, and
// adjust the output position by this amount.
- HWND parent_hwnd = manager_->GetParentWindow();
+ HWND parent_hwnd = manager_->GetParentView();
POINT top_left = {0, 0};
::ClientToScreen(parent_hwnd, &top_left);
@@ -212,7 +103,7 @@
return E_INVALIDARG;
}
- BrowserAccessibilityWin* result = NULL;
+ BrowserAccessibility* result = NULL;
switch (nav_dir) {
case NAVDIR_DOWN:
case NAVDIR_UP:
@@ -242,7 +133,7 @@
}
end->vt = VT_DISPATCH;
- end->pdispVal = result->NewReference();
+ end->pdispVal = result->toBrowserAccessibilityWin()->NewReference();
return S_OK;
}
@@ -384,11 +275,12 @@
if (!disp_parent)
return E_INVALIDARG;
- IAccessible* parent = parent_;
+ IAccessible* parent = parent_->toBrowserAccessibilityWin();
if (parent == NULL) {
// This happens if we're the root of the tree;
// return the IAccessible for the window.
- parent = manager_->GetParentWindowIAccessible();
+ parent = manager_->toBrowserAccessibilityManagerWin()->
+ GetParentWindowIAccessible();
}
parent->AddRef();
@@ -413,7 +305,7 @@
role->bstrVal = SysAllocString(target->role_name_.c_str());
} else {
role->vt = VT_I4;
- role->lVal = target->role_;
+ role->lVal = target->ia_role_;
}
return S_OK;
}
@@ -431,7 +323,7 @@
return E_INVALIDARG;
state->vt = VT_I4;
- state->lVal = target->state_;
+ state->lVal = target->ia_state_;
if (manager_->GetFocus(NULL) == this)
state->lVal |= STATE_SYSTEM_FOCUSED;
@@ -553,7 +445,7 @@
if (!window_handle)
return E_INVALIDARG;
- *window_handle = manager_->GetParentWindow();
+ *window_handle = manager_->GetParentView();
return S_OK;
}
@@ -591,7 +483,7 @@
return E_INVALIDARG;
if (coordinate_type == IA2_COORDTYPE_SCREEN_RELATIVE) {
- HWND parent_hwnd = manager_->GetParentWindow();
+ HWND parent_hwnd = manager_->GetParentView();
POINT top_left = {0, 0};
::ClientToScreen(parent_hwnd, &top_left);
*x = location_.x + top_left.x;
@@ -600,8 +492,8 @@
*x = location_.x;
*y = location_.y;
if (parent_) {
- *x -= parent_->location_.x;
- *y -= parent_->location_.y;
+ *x -= parent_->location().x;
+ *y -= parent_->location().y;
}
} else {
return E_INVALIDARG;
@@ -633,7 +525,7 @@
if (!n_characters)
return E_INVALIDARG;
- if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) {
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD) {
*n_characters = value_.length();
} else {
*n_characters = name_.length();
@@ -651,7 +543,7 @@
return E_INVALIDARG;
string16 text_str;
- if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) {
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD) {
text_str = value_;
} else {
text_str = name_;
@@ -688,7 +580,7 @@
if (!offset)
return E_INVALIDARG;
- if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) {
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD) {
int sel_start = 0;
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start)) {
*offset = sel_start;
@@ -709,7 +601,7 @@
if (!n_selections)
return E_INVALIDARG;
- if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) {
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD) {
int sel_start = 0;
int sel_end = 0;
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start) &&
@@ -735,7 +627,7 @@
if (!start_offset || !end_offset || selection_index != 0)
return E_INVALIDARG;
- if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) {
+ if (role_ == WebAccessibility::ROLE_TEXT_FIELD) {
int sel_start = 0;
int sel_end = 0;
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start) &&
@@ -828,9 +720,9 @@
*num_children = children_.size();
*unique_id = child_id_;
- if (role_ == ROLE_SYSTEM_DOCUMENT) {
+ if (ia_role_ == ROLE_SYSTEM_DOCUMENT) {
*node_type = NODETYPE_DOCUMENT;
- } else if (role_ == ROLE_SYSTEM_TEXT &&
+ } else if (ia_role_ == ROLE_SYSTEM_TEXT &&
((ia2_state_ & IA2_STATE_EDITABLE) == 0)) {
*node_type = NODETYPE_TEXT;
} else {
@@ -961,7 +853,7 @@
if (!node)
return E_INVALIDARG;
- *node = parent_->NewReference();
+ *node = parent_->toBrowserAccessibilityWin()->NewReference();
return S_OK;
}
@@ -973,7 +865,7 @@
return E_INVALIDARG;
if (children_.size()) {
- *node = children_[0]->NewReference();
+ *node = children_[0]->toBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -989,7 +881,8 @@
return E_INVALIDARG;
if (children_.size()) {
- *node = children_[children_.size() - 1]->NewReference();
+ *node = children_[children_.size() - 1]->toBrowserAccessibilityWin()->
+ NewReference();
return S_OK;
} else {
*node = NULL;
@@ -1006,7 +899,8 @@
return E_INVALIDARG;
if (parent_ && index_in_parent_ > 0) {
- *node = parent_->children_[index_in_parent_ - 1]->NewReference();
+ *node = parent_->children()[index_in_parent_ - 1]->
+ toBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -1023,8 +917,9 @@
if (parent_ &&
index_in_parent_ >= 0 &&
- index_in_parent_ < static_cast<int>(parent_->children_.size()) - 1) {
- *node = parent_->children_[index_in_parent_ + 1]->NewReference();
+ index_in_parent_ < static_cast<int>(parent_->children().size()) - 1) {
+ *node = parent_->children()[index_in_parent_ + 1]->
+ toBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -1042,7 +937,7 @@
return E_INVALIDARG;
if (child_index < children_.size()) {
- *node = children_[child_index]->NewReference();
+ *node = children_[child_index]->toBrowserAccessibilityWin()->NewReference();
return S_OK;
} else {
*node = NULL;
@@ -1102,17 +997,17 @@
REFIID iid,
void** object) {
if (iid == IID_IAccessibleText) {
- if (role_ != ROLE_SYSTEM_LINK && role_ != ROLE_SYSTEM_TEXT) {
+ if (ia_role_ != ROLE_SYSTEM_LINK && ia_role_ != ROLE_SYSTEM_TEXT) {
*object = NULL;
return E_NOINTERFACE;
}
} else if (iid == IID_IAccessibleImage) {
- if (role_ != ROLE_SYSTEM_GRAPHIC) {
+ if (ia_role_ != ROLE_SYSTEM_GRAPHIC) {
*object = NULL;
return E_NOINTERFACE;
}
} else if (iid == IID_ISimpleDOMDocument) {
- if (role_ != ROLE_SYSTEM_DOCUMENT) {
+ if (ia_role_ != ROLE_SYSTEM_DOCUMENT) {
*object = NULL;
return E_NOINTERFACE;
}
@@ -1126,6 +1021,50 @@
// Private methods.
//
+// Initialize this object and mark it as active.
+void BrowserAccessibilityWin::Initialize() {
+ InitRoleAndState();
+
+ // Expose headings levels to NVDA with the "level" object attribute.
+ if (role_ == WebAccessibility::ROLE_HEADING && role_name_.size() == 2 &&
+ IsAsciiDigit(role_name_[1])) {
+ html_attributes_.push_back(std::make_pair(L"level", role_name_.substr(1)));
+ }
+
+ // If this object doesn't have a name but it does have a description,
+ // use the description as its name - because some screen readers only
+ // announce the name.
+ if (name_.empty() && HasAttribute(WebAccessibility::ATTR_DESCRIPTION)) {
+ GetAttribute(WebAccessibility::ATTR_DESCRIPTION, &name_);
+ }
+
+ instance_active_ = true;
+}
+
+// Mark this object as inactive, and remove references to all children.
+// When no other clients hold any references to this object it will be
+// deleted, and in the meantime, calls to any methods will return E_FAIL.
+void BrowserAccessibilityWin::ReleaseTree() {
+ if (!instance_active_)
+ return;
+
+ // Mark this object as inactive, so calls to all COM methods will return
+ // failure.
+ instance_active_ = false;
+
+ BrowserAccessibility::ReleaseTree();
+}
+
+void BrowserAccessibilityWin::ReleaseReference() {
+ Release();
+}
+
+
+BrowserAccessibilityWin* BrowserAccessibilityWin::NewReference() {
+ AddRef();
+ return this;
+}
+
BrowserAccessibilityWin* BrowserAccessibilityWin::GetTargetFromChildID(
const VARIANT& var_id) {
if (var_id.vt != VT_I4)
@@ -1136,9 +1075,9 @@
return this;
if (child_id >= 1 && child_id <= static_cast<LONG>(children_.size()))
- return children_[child_id - 1];
+ return children_[child_id - 1]->toBrowserAccessibilityWin();
- return manager_->GetFromChildID(child_id);
+ return manager_->GetFromChildID(child_id)->toBrowserAccessibilityWin();
}
bool BrowserAccessibilityWin::HasAttribute(
@@ -1190,110 +1129,109 @@
return EscapeQueryParamValueUTF8(str, false);
}
-void BrowserAccessibilityWin::InitRoleAndState(LONG web_role,
- LONG web_state) {
- state_ = 0;
+void BrowserAccessibilityWin::InitRoleAndState() {
+ ia_state_ = 0;
ia2_state_ = IA2_STATE_OPAQUE;
- if ((web_state >> WebAccessibility::STATE_CHECKED) & 1)
- state_ |= STATE_SYSTEM_CHECKED;
- if ((web_state >> WebAccessibility::STATE_COLLAPSED) & 1)
- state_ |= STATE_SYSTEM_COLLAPSED;
- if ((web_state >> WebAccessibility::STATE_EXPANDED) & 1)
- state_ |= STATE_SYSTEM_EXPANDED;
- if ((web_state >> WebAccessibility::STATE_FOCUSABLE) & 1)
- state_ |= STATE_SYSTEM_FOCUSABLE;
- if ((web_state >> WebAccessibility::STATE_HASPOPUP) & 1)
- state_ |= STATE_SYSTEM_HASPOPUP;
- if ((web_state >> WebAccessibility::STATE_HOTTRACKED) & 1)
- state_ |= STATE_SYSTEM_HOTTRACKED;
- if ((web_state >> WebAccessibility::STATE_INDETERMINATE) & 1)
- state_ |= STATE_SYSTEM_INDETERMINATE;
- if ((web_state >> WebAccessibility::STATE_INVISIBLE) & 1)
- state_ |= STATE_SYSTEM_INVISIBLE;
- if ((web_state >> WebAccessibility::STATE_LINKED) & 1)
- state_ |= STATE_SYSTEM_LINKED;
- if ((web_state >> WebAccessibility::STATE_MULTISELECTABLE) & 1)
- state_ |= STATE_SYSTEM_MULTISELECTABLE;
+ if ((state_ >> WebAccessibility::STATE_CHECKED) & 1)
+ ia_state_ |= STATE_SYSTEM_CHECKED;
+ if ((state_ >> WebAccessibility::STATE_COLLAPSED) & 1)
+ ia_state_|= STATE_SYSTEM_COLLAPSED;
+ if ((state_ >> WebAccessibility::STATE_EXPANDED) & 1)
+ ia_state_|= STATE_SYSTEM_EXPANDED;
+ if ((state_ >> WebAccessibility::STATE_FOCUSABLE) & 1)
+ ia_state_|= STATE_SYSTEM_FOCUSABLE;
+ if ((state_ >> WebAccessibility::STATE_HASPOPUP) & 1)
+ ia_state_|= STATE_SYSTEM_HASPOPUP;
+ if ((state_ >> WebAccessibility::STATE_HOTTRACKED) & 1)
+ ia_state_|= STATE_SYSTEM_HOTTRACKED;
+ if ((state_ >> WebAccessibility::STATE_INDETERMINATE) & 1)
+ ia_state_|= STATE_SYSTEM_INDETERMINATE;
+ if ((state_ >> WebAccessibility::STATE_INVISIBLE) & 1)
+ ia_state_|= STATE_SYSTEM_INVISIBLE;
+ if ((state_ >> WebAccessibility::STATE_LINKED) & 1)
+ ia_state_|= STATE_SYSTEM_LINKED;
+ if ((state_ >> WebAccessibility::STATE_MULTISELECTABLE) & 1)
+ ia_state_|= STATE_SYSTEM_MULTISELECTABLE;
// TODO(ctguil): Support STATE_SYSTEM_EXTSELECTABLE/accSelect.
- if ((web_state >> WebAccessibility::STATE_OFFSCREEN) & 1)
- state_ |= STATE_SYSTEM_OFFSCREEN;
- if ((web_state >> WebAccessibility::STATE_PRESSED) & 1)
- state_ |= STATE_SYSTEM_PRESSED;
- if ((web_state >> WebAccessibility::STATE_PROTECTED) & 1)
- state_ |= STATE_SYSTEM_PROTECTED;
- if ((web_state >> WebAccessibility::STATE_SELECTABLE) & 1)
- state_ |= STATE_SYSTEM_SELECTABLE;
- if ((web_state >> WebAccessibility::STATE_SELECTED) & 1)
- state_ |= STATE_SYSTEM_SELECTED;
- if ((web_state >> WebAccessibility::STATE_READONLY) & 1)
- state_ |= STATE_SYSTEM_READONLY;
- if ((web_state >> WebAccessibility::STATE_TRAVERSED) & 1)
- state_ |= STATE_SYSTEM_TRAVERSED;
- if ((web_state >> WebAccessibility::STATE_BUSY) & 1)
- state_ |= STATE_SYSTEM_BUSY;
- if ((web_state >> WebAccessibility::STATE_UNAVAILABLE) & 1)
- state_ |= STATE_SYSTEM_UNAVAILABLE;
+ if ((state_ >> WebAccessibility::STATE_OFFSCREEN) & 1)
+ ia_state_|= STATE_SYSTEM_OFFSCREEN;
+ if ((state_ >> WebAccessibility::STATE_PRESSED) & 1)
+ ia_state_|= STATE_SYSTEM_PRESSED;
+ if ((state_ >> WebAccessibility::STATE_PROTECTED) & 1)
+ ia_state_|= STATE_SYSTEM_PROTECTED;
+ if ((state_ >> WebAccessibility::STATE_SELECTABLE) & 1)
+ ia_state_|= STATE_SYSTEM_SELECTABLE;
+ if ((state_ >> WebAccessibility::STATE_SELECTED) & 1)
+ ia_state_|= STATE_SYSTEM_SELECTED;
+ if ((state_ >> WebAccessibility::STATE_READONLY) & 1)
+ ia_state_|= STATE_SYSTEM_READONLY;
+ if ((state_ >> WebAccessibility::STATE_TRAVERSED) & 1)
+ ia_state_|= STATE_SYSTEM_TRAVERSED;
+ if ((state_ >> WebAccessibility::STATE_BUSY) & 1)
+ ia_state_|= STATE_SYSTEM_BUSY;
+ if ((state_ >> WebAccessibility::STATE_UNAVAILABLE) & 1)
+ ia_state_|= STATE_SYSTEM_UNAVAILABLE;
- role_ = 0;
+ ia_role_ = 0;
ia2_role_ = 0;
- switch (web_role) {
+ switch (role_) {
case WebAccessibility::ROLE_ALERT:
case WebAccessibility::ROLE_ALERT_DIALOG:
- role_ = ROLE_SYSTEM_ALERT;
+ ia_role_ = ROLE_SYSTEM_ALERT;
break;
case WebAccessibility::ROLE_APPLICATION:
- role_ = ROLE_SYSTEM_APPLICATION;
+ ia_role_ = ROLE_SYSTEM_APPLICATION;
break;
case WebAccessibility::ROLE_ARTICLE:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
case WebAccessibility::ROLE_BUTTON:
- role_ = ROLE_SYSTEM_PUSHBUTTON;
+ ia_role_ = ROLE_SYSTEM_PUSHBUTTON;
break;
case WebAccessibility::ROLE_CELL:
- role_ = ROLE_SYSTEM_CELL;
+ ia_role_ = ROLE_SYSTEM_CELL;
break;
case WebAccessibility::ROLE_CHECKBOX:
- role_ = ROLE_SYSTEM_CHECKBUTTON;
+ ia_role_ = ROLE_SYSTEM_CHECKBUTTON;
break;
case WebAccessibility::ROLE_COLOR_WELL:
- role_ = ROLE_SYSTEM_CLIENT;
+ ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_COLOR_CHOOSER;
break;
case WebAccessibility::ROLE_COLUMN:
- role_ = ROLE_SYSTEM_COLUMN;
+ ia_role_ = ROLE_SYSTEM_COLUMN;
break;
case WebAccessibility::ROLE_COLUMN_HEADER:
- role_ = ROLE_SYSTEM_COLUMNHEADER;
+ ia_role_ = ROLE_SYSTEM_COLUMNHEADER;
break;
case WebAccessibility::ROLE_COMBO_BOX:
- role_ = ROLE_SYSTEM_COMBOBOX;
+ ia_role_ = ROLE_SYSTEM_COMBOBOX;
break;
case WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION:
GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
ia2_role_ = IA2_ROLE_PARAGRAPH;
break;
case WebAccessibility::ROLE_DEFINITION_LIST_TERM:
- role_ = ROLE_SYSTEM_LISTITEM;
+ ia_role_ = ROLE_SYSTEM_LISTITEM;
break;
case WebAccessibility::ROLE_DIALOG:
- role_ = ROLE_SYSTEM_DIALOG;
+ ia_role_ = ROLE_SYSTEM_DIALOG;
break;
case WebAccessibility::ROLE_DOCUMENT:
case WebAccessibility::ROLE_WEB_AREA:
- role_ = ROLE_SYSTEM_DOCUMENT;
- state_ |= STATE_SYSTEM_READONLY;
- state_ |= STATE_SYSTEM_FOCUSABLE;
+ ia_role_ = ROLE_SYSTEM_DOCUMENT;
+ ia_state_|= STATE_SYSTEM_READONLY;
+ ia_state_|= STATE_SYSTEM_FOCUSABLE;
break;
case WebAccessibility::ROLE_EDITABLE_TEXT:
- role_ = ROLE_SYSTEM_TEXT;
+ ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_SINGLE_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
break;
case WebAccessibility::ROLE_GRID:
- role_ = ROLE_SYSTEM_TABLE;
+ ia_role_ = ROLE_SYSTEM_TABLE;
break;
case WebAccessibility::ROLE_GROUP:
GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
@@ -1306,15 +1244,15 @@
ia2_role_ = IA2_ROLE_HEADING;
break;
case WebAccessibility::ROLE_IMAGE:
- role_ = ROLE_SYSTEM_GRAPHIC;
+ ia_role_ = ROLE_SYSTEM_GRAPHIC;
break;
case WebAccessibility::ROLE_IMAGE_MAP:
GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
ia2_role_ = IA2_ROLE_IMAGE_MAP;
break;
case WebAccessibility::ROLE_IMAGE_MAP_LINK:
- role_ = ROLE_SYSTEM_LINK;
- state_ |= STATE_SYSTEM_LINKED;
+ ia_role_ = ROLE_SYSTEM_LINK;
+ ia_state_|= STATE_SYSTEM_LINKED;
break;
case WebAccessibility::ROLE_LANDMARK_APPLICATION:
case WebAccessibility::ROLE_LANDMARK_BANNER:
@@ -1323,136 +1261,136 @@
case WebAccessibility::ROLE_LANDMARK_MAIN:
case WebAccessibility::ROLE_LANDMARK_NAVIGATION:
case WebAccessibility::ROLE_LANDMARK_SEARCH:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
case WebAccessibility::ROLE_LINK:
case WebAccessibility::ROLE_WEBCORE_LINK:
- role_ = ROLE_SYSTEM_LINK;
- state_ |= STATE_SYSTEM_LINKED;
+ ia_role_ = ROLE_SYSTEM_LINK;
+ ia_state_|= STATE_SYSTEM_LINKED;
break;
case WebAccessibility::ROLE_LIST:
- role_ = ROLE_SYSTEM_LIST;
+ ia_role_ = ROLE_SYSTEM_LIST;
break;
case WebAccessibility::ROLE_LISTBOX:
- role_ = ROLE_SYSTEM_LIST;
+ ia_role_ = ROLE_SYSTEM_LIST;
break;
case WebAccessibility::ROLE_LISTBOX_OPTION:
case WebAccessibility::ROLE_LIST_ITEM:
case WebAccessibility::ROLE_LIST_MARKER:
- role_ = ROLE_SYSTEM_LISTITEM;
+ ia_role_ = ROLE_SYSTEM_LISTITEM;
break;
case WebAccessibility::ROLE_MENU:
case WebAccessibility::ROLE_MENU_BUTTON:
- role_ = ROLE_SYSTEM_MENUPOPUP;
+ ia_role_ = ROLE_SYSTEM_MENUPOPUP;
break;
case WebAccessibility::ROLE_MENU_BAR:
- role_ = ROLE_SYSTEM_MENUBAR;
+ ia_role_ = ROLE_SYSTEM_MENUBAR;
break;
case WebAccessibility::ROLE_MENU_ITEM:
case WebAccessibility::ROLE_MENU_LIST_OPTION:
- role_ = ROLE_SYSTEM_MENUITEM;
+ ia_role_ = ROLE_SYSTEM_MENUITEM;
break;
case WebAccessibility::ROLE_MENU_LIST_POPUP:
- role_ = ROLE_SYSTEM_MENUPOPUP;
+ ia_role_ = ROLE_SYSTEM_MENUPOPUP;
break;
case WebAccessibility::ROLE_NOTE:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_NOTE;
break;
case WebAccessibility::ROLE_OUTLINE:
- role_ = ROLE_SYSTEM_OUTLINE;
+ ia_role_ = ROLE_SYSTEM_OUTLINE;
break;
case WebAccessibility::ROLE_POPUP_BUTTON:
- role_ = ROLE_SYSTEM_COMBOBOX;
+ ia_role_ = ROLE_SYSTEM_COMBOBOX;
break;
case WebAccessibility::ROLE_PROGRESS_INDICATOR:
- role_ = ROLE_SYSTEM_PROGRESSBAR;
+ ia_role_ = ROLE_SYSTEM_PROGRESSBAR;
break;
case WebAccessibility::ROLE_RADIO_BUTTON:
- role_ = ROLE_SYSTEM_RADIOBUTTON;
+ ia_role_ = ROLE_SYSTEM_RADIOBUTTON;
break;
case WebAccessibility::ROLE_RADIO_GROUP:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
case WebAccessibility::ROLE_REGION:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
case WebAccessibility::ROLE_ROW:
- role_ = ROLE_SYSTEM_ROW;
+ ia_role_ = ROLE_SYSTEM_ROW;
break;
case WebAccessibility::ROLE_ROW_HEADER:
- role_ = ROLE_SYSTEM_ROWHEADER;
+ ia_role_ = ROLE_SYSTEM_ROWHEADER;
break;
case WebAccessibility::ROLE_RULER:
- role_ = ROLE_SYSTEM_CLIENT;
+ ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_RULER;
break;
case WebAccessibility::ROLE_SCROLLAREA:
- role_ = ROLE_SYSTEM_CLIENT;
+ ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_SCROLL_PANE;
break;
case WebAccessibility::ROLE_SCROLLBAR:
- role_ = ROLE_SYSTEM_SCROLLBAR;
+ ia_role_ = ROLE_SYSTEM_SCROLLBAR;
break;
case WebAccessibility::ROLE_SLIDER:
- role_ = ROLE_SYSTEM_SLIDER;
+ ia_role_ = ROLE_SYSTEM_SLIDER;
break;
case WebAccessibility::ROLE_SPLIT_GROUP:
- role_ = ROLE_SYSTEM_CLIENT;
+ ia_role_ = ROLE_SYSTEM_CLIENT;
ia2_role_ = IA2_ROLE_SPLIT_PANE;
break;
case WebAccessibility::ROLE_ANNOTATION:
case WebAccessibility::ROLE_STATIC_TEXT:
- role_ = ROLE_SYSTEM_TEXT;
+ ia_role_ = ROLE_SYSTEM_TEXT;
break;
case WebAccessibility::ROLE_STATUS:
- role_ = ROLE_SYSTEM_STATUSBAR;
+ ia_role_ = ROLE_SYSTEM_STATUSBAR;
break;
case WebAccessibility::ROLE_TAB:
- role_ = ROLE_SYSTEM_PAGETAB;
+ ia_role_ = ROLE_SYSTEM_PAGETAB;
break;
case WebAccessibility::ROLE_TABLE:
- role_ = ROLE_SYSTEM_TABLE;
+ ia_role_ = ROLE_SYSTEM_TABLE;
break;
case WebAccessibility::ROLE_TABLE_HEADER_CONTAINER:
- role_ = ROLE_SYSTEM_GROUPING;
+ ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
break;
case WebAccessibility::ROLE_TAB_GROUP:
case WebAccessibility::ROLE_TAB_LIST:
case WebAccessibility::ROLE_TAB_PANEL:
- role_ = ROLE_SYSTEM_PAGETABLIST;
+ ia_role_ = ROLE_SYSTEM_PAGETABLIST;
break;
case WebAccessibility::ROLE_TEXTAREA:
- role_ = ROLE_SYSTEM_TEXT;
+ ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_MULTI_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
break;
case WebAccessibility::ROLE_TEXT_FIELD:
- role_ = ROLE_SYSTEM_TEXT;
+ ia_role_ = ROLE_SYSTEM_TEXT;
ia2_state_ |= IA2_STATE_SINGLE_LINE;
ia2_state_ |= IA2_STATE_EDITABLE;
break;
case WebAccessibility::ROLE_TOOLBAR:
- role_ = ROLE_SYSTEM_TOOLBAR;
+ ia_role_ = ROLE_SYSTEM_TOOLBAR;
break;
case WebAccessibility::ROLE_TOOLTIP:
- role_ = ROLE_SYSTEM_TOOLTIP;
+ ia_role_ = ROLE_SYSTEM_TOOLTIP;
break;
case WebAccessibility::ROLE_TREE:
- role_ = ROLE_SYSTEM_OUTLINE;
+ ia_role_ = ROLE_SYSTEM_OUTLINE;
break;
case WebAccessibility::ROLE_TREE_GRID:
- role_ = ROLE_SYSTEM_OUTLINE;
+ ia_role_ = ROLE_SYSTEM_OUTLINE;
break;
case WebAccessibility::ROLE_TREE_ITEM:
- role_ = ROLE_SYSTEM_OUTLINEITEM;
+ ia_role_ = ROLE_SYSTEM_OUTLINEITEM;
break;
case WebAccessibility::ROLE_WINDOW:
- role_ = ROLE_SYSTEM_WINDOW;
+ ia_role_ = ROLE_SYSTEM_WINDOW;
break;
// TODO(dmazzoni): figure out the proper MSAA role for all of these.
@@ -1477,15 +1415,15 @@
case WebAccessibility::ROLE_TIMER:
case WebAccessibility::ROLE_VALUE_INDICATOR:
default:
- role_ = ROLE_SYSTEM_CLIENT;
+ ia_role_ = ROLE_SYSTEM_CLIENT;
break;
}
// The role should always be set.
- DCHECK(!role_name_.empty() || role_);
+ DCHECK(!role_name_.empty() || ia_role_);
// If we didn't explicitly set the IAccessible2 role, make it the same
// as the MSAA role.
if (!ia2_role_)
- ia2_role_ = role_;
+ ia2_role_ = ia_role_;
}

Powered by Google App Engine
This is Rietveld 408576698