Index: chrome/browser/accessibility/browser_accessibility_win.cc |
=================================================================== |
--- chrome/browser/accessibility/browser_accessibility_win.cc (revision 61706) |
+++ chrome/browser/accessibility/browser_accessibility_win.cc (working copy) |
@@ -12,26 +12,135 @@ |
using webkit_glue::WebAccessibility; |
-// static |
-BrowserAccessibility* BrowserAccessibility::Create() { |
- CComObject<BrowserAccessibilityWin>* instance; |
- HRESULT hr = CComObject<BrowserAccessibilityWin>::CreateInstance(&instance); |
- DCHECK(SUCCEEDED(hr)); |
- return instance->NewReference(); |
+BrowserAccessibilityWin::BrowserAccessibilityWin() |
+ : manager_(NULL), |
+ parent_(NULL), |
+ child_id_(-1), |
+ index_in_parent_(-1), |
+ renderer_id_(-1), |
+ instance_active_(false) { |
} |
-BrowserAccessibilityWin* BrowserAccessibility::toBrowserAccessibilityWin() { |
- return static_cast<BrowserAccessibilityWin*>(this); |
+BrowserAccessibilityWin::~BrowserAccessibilityWin() { |
+ InactivateTree(); |
} |
-BrowserAccessibilityWin::BrowserAccessibilityWin() |
- : instance_active_(false) { |
+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() { |
- ReleaseTree(); |
+void BrowserAccessibilityWin::AddChild(BrowserAccessibilityWin* child) { |
+ children_.push_back(child); |
} |
+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. |
// |
@@ -79,7 +188,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_->GetParentView(); |
+ HWND parent_hwnd = manager_->GetParentWindow(); |
POINT top_left = {0, 0}; |
::ClientToScreen(parent_hwnd, &top_left); |
@@ -103,7 +212,7 @@ |
return E_INVALIDARG; |
} |
- BrowserAccessibility* result = NULL; |
+ BrowserAccessibilityWin* result = NULL; |
switch (nav_dir) { |
case NAVDIR_DOWN: |
case NAVDIR_UP: |
@@ -133,7 +242,7 @@ |
} |
end->vt = VT_DISPATCH; |
- end->pdispVal = result->toBrowserAccessibilityWin()->NewReference(); |
+ end->pdispVal = result->NewReference(); |
return S_OK; |
} |
@@ -275,12 +384,11 @@ |
if (!disp_parent) |
return E_INVALIDARG; |
- IAccessible* parent = parent_->toBrowserAccessibilityWin(); |
+ IAccessible* parent = parent_; |
if (parent == NULL) { |
// This happens if we're the root of the tree; |
// return the IAccessible for the window. |
- parent = manager_->toBrowserAccessibilityManagerWin()-> |
- GetParentWindowIAccessible(); |
+ parent = manager_->GetParentWindowIAccessible(); |
} |
parent->AddRef(); |
@@ -305,7 +413,7 @@ |
role->bstrVal = SysAllocString(target->role_name_.c_str()); |
} else { |
role->vt = VT_I4; |
- role->lVal = target->ia_role_; |
+ role->lVal = target->role_; |
} |
return S_OK; |
} |
@@ -323,7 +431,7 @@ |
return E_INVALIDARG; |
state->vt = VT_I4; |
- state->lVal = target->ia_state_; |
+ state->lVal = target->state_; |
if (manager_->GetFocus(NULL) == this) |
state->lVal |= STATE_SYSTEM_FOCUSED; |
@@ -445,7 +553,7 @@ |
if (!window_handle) |
return E_INVALIDARG; |
- *window_handle = manager_->GetParentView(); |
+ *window_handle = manager_->GetParentWindow(); |
return S_OK; |
} |
@@ -483,7 +591,7 @@ |
return E_INVALIDARG; |
if (coordinate_type == IA2_COORDTYPE_SCREEN_RELATIVE) { |
- HWND parent_hwnd = manager_->GetParentView(); |
+ HWND parent_hwnd = manager_->GetParentWindow(); |
POINT top_left = {0, 0}; |
::ClientToScreen(parent_hwnd, &top_left); |
*x = location_.x + top_left.x; |
@@ -492,8 +600,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; |
@@ -525,7 +633,7 @@ |
if (!n_characters) |
return E_INVALIDARG; |
- if (role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
+ if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
*n_characters = value_.length(); |
} else { |
*n_characters = name_.length(); |
@@ -543,7 +651,7 @@ |
return E_INVALIDARG; |
string16 text_str; |
- if (role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
+ if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
text_str = value_; |
} else { |
text_str = name_; |
@@ -580,7 +688,7 @@ |
if (!offset) |
return E_INVALIDARG; |
- if (role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
+ if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
int sel_start = 0; |
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start)) { |
*offset = sel_start; |
@@ -601,7 +709,7 @@ |
if (!n_selections) |
return E_INVALIDARG; |
- if (role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
+ if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
int sel_start = 0; |
int sel_end = 0; |
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start) && |
@@ -627,7 +735,7 @@ |
if (!start_offset || !end_offset || selection_index != 0) |
return E_INVALIDARG; |
- if (role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
+ if (src_role_ == WebAccessibility::ROLE_TEXT_FIELD) { |
int sel_start = 0; |
int sel_end = 0; |
if (GetAttributeAsInt(WebAccessibility::ATTR_TEXT_SEL_START, &sel_start) && |
@@ -720,9 +828,9 @@ |
*num_children = children_.size(); |
*unique_id = child_id_; |
- if (ia_role_ == ROLE_SYSTEM_DOCUMENT) { |
+ if (role_ == ROLE_SYSTEM_DOCUMENT) { |
*node_type = NODETYPE_DOCUMENT; |
- } else if (ia_role_ == ROLE_SYSTEM_TEXT && |
+ } else if (role_ == ROLE_SYSTEM_TEXT && |
((ia2_state_ & IA2_STATE_EDITABLE) == 0)) { |
*node_type = NODETYPE_TEXT; |
} else { |
@@ -853,7 +961,7 @@ |
if (!node) |
return E_INVALIDARG; |
- *node = parent_->toBrowserAccessibilityWin()->NewReference(); |
+ *node = parent_->NewReference(); |
return S_OK; |
} |
@@ -865,7 +973,7 @@ |
return E_INVALIDARG; |
if (children_.size()) { |
- *node = children_[0]->toBrowserAccessibilityWin()->NewReference(); |
+ *node = children_[0]->NewReference(); |
return S_OK; |
} else { |
*node = NULL; |
@@ -881,8 +989,7 @@ |
return E_INVALIDARG; |
if (children_.size()) { |
- *node = children_[children_.size() - 1]->toBrowserAccessibilityWin()-> |
- NewReference(); |
+ *node = children_[children_.size() - 1]->NewReference(); |
return S_OK; |
} else { |
*node = NULL; |
@@ -899,8 +1006,7 @@ |
return E_INVALIDARG; |
if (parent_ && index_in_parent_ > 0) { |
- *node = parent_->children()[index_in_parent_ - 1]-> |
- toBrowserAccessibilityWin()->NewReference(); |
+ *node = parent_->children_[index_in_parent_ - 1]->NewReference(); |
return S_OK; |
} else { |
*node = NULL; |
@@ -917,9 +1023,8 @@ |
if (parent_ && |
index_in_parent_ >= 0 && |
- index_in_parent_ < static_cast<int>(parent_->children().size()) - 1) { |
- *node = parent_->children()[index_in_parent_ + 1]-> |
- toBrowserAccessibilityWin()->NewReference(); |
+ index_in_parent_ < static_cast<int>(parent_->children_.size()) - 1) { |
+ *node = parent_->children_[index_in_parent_ + 1]->NewReference(); |
return S_OK; |
} else { |
*node = NULL; |
@@ -937,7 +1042,7 @@ |
return E_INVALIDARG; |
if (child_index < children_.size()) { |
- *node = children_[child_index]->toBrowserAccessibilityWin()->NewReference(); |
+ *node = children_[child_index]->NewReference(); |
return S_OK; |
} else { |
*node = NULL; |
@@ -997,17 +1102,17 @@ |
REFIID iid, |
void** object) { |
if (iid == IID_IAccessibleText) { |
- if (ia_role_ != ROLE_SYSTEM_LINK && ia_role_ != ROLE_SYSTEM_TEXT) { |
+ if (role_ != ROLE_SYSTEM_LINK && role_ != ROLE_SYSTEM_TEXT) { |
*object = NULL; |
return E_NOINTERFACE; |
} |
} else if (iid == IID_IAccessibleImage) { |
- if (ia_role_ != ROLE_SYSTEM_GRAPHIC) { |
+ if (role_ != ROLE_SYSTEM_GRAPHIC) { |
*object = NULL; |
return E_NOINTERFACE; |
} |
} else if (iid == IID_ISimpleDOMDocument) { |
- if (ia_role_ != ROLE_SYSTEM_DOCUMENT) { |
+ if (role_ != ROLE_SYSTEM_DOCUMENT) { |
*object = NULL; |
return E_NOINTERFACE; |
} |
@@ -1021,46 +1126,6 @@ |
// Private methods. |
// |
-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; |
-} |
- |
-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) |
@@ -1071,9 +1136,9 @@ |
return this; |
if (child_id >= 1 && child_id <= static_cast<LONG>(children_.size())) |
- return children_[child_id - 1]->toBrowserAccessibilityWin(); |
+ return children_[child_id - 1]; |
- return manager_->GetFromChildID(child_id)->toBrowserAccessibilityWin(); |
+ return manager_->GetFromChildID(child_id); |
} |
bool BrowserAccessibilityWin::HasAttribute( |
@@ -1125,109 +1190,110 @@ |
return EscapeQueryParamValueUTF8(str, false); |
} |
-void BrowserAccessibilityWin::InitRoleAndState() { |
- ia_state_ = 0; |
+void BrowserAccessibilityWin::InitRoleAndState(LONG web_role, |
+ LONG web_state) { |
+ state_ = 0; |
ia2_state_ = IA2_STATE_OPAQUE; |
- 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; |
+ 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; |
// TODO(ctguil): Support STATE_SYSTEM_EXTSELECTABLE/accSelect. |
- 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; |
+ 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; |
- ia_role_ = 0; |
+ role_ = 0; |
ia2_role_ = 0; |
- switch (role_) { |
+ switch (web_role) { |
case WebAccessibility::ROLE_ALERT: |
case WebAccessibility::ROLE_ALERT_DIALOG: |
- ia_role_ = ROLE_SYSTEM_ALERT; |
+ role_ = ROLE_SYSTEM_ALERT; |
break; |
case WebAccessibility::ROLE_APPLICATION: |
- ia_role_ = ROLE_SYSTEM_APPLICATION; |
+ role_ = ROLE_SYSTEM_APPLICATION; |
break; |
case WebAccessibility::ROLE_ARTICLE: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ role_ = ROLE_SYSTEM_GROUPING; |
ia2_role_ = IA2_ROLE_SECTION; |
break; |
case WebAccessibility::ROLE_BUTTON: |
- ia_role_ = ROLE_SYSTEM_PUSHBUTTON; |
+ role_ = ROLE_SYSTEM_PUSHBUTTON; |
break; |
case WebAccessibility::ROLE_CELL: |
- ia_role_ = ROLE_SYSTEM_CELL; |
+ role_ = ROLE_SYSTEM_CELL; |
break; |
case WebAccessibility::ROLE_CHECKBOX: |
- ia_role_ = ROLE_SYSTEM_CHECKBUTTON; |
+ role_ = ROLE_SYSTEM_CHECKBUTTON; |
break; |
case WebAccessibility::ROLE_COLOR_WELL: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
+ role_ = ROLE_SYSTEM_CLIENT; |
ia2_role_ = IA2_ROLE_COLOR_CHOOSER; |
break; |
case WebAccessibility::ROLE_COLUMN: |
- ia_role_ = ROLE_SYSTEM_COLUMN; |
+ role_ = ROLE_SYSTEM_COLUMN; |
break; |
case WebAccessibility::ROLE_COLUMN_HEADER: |
- ia_role_ = ROLE_SYSTEM_COLUMNHEADER; |
+ role_ = ROLE_SYSTEM_COLUMNHEADER; |
break; |
case WebAccessibility::ROLE_COMBO_BOX: |
- ia_role_ = ROLE_SYSTEM_COMBOBOX; |
+ 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: |
- ia_role_ = ROLE_SYSTEM_LISTITEM; |
+ role_ = ROLE_SYSTEM_LISTITEM; |
break; |
case WebAccessibility::ROLE_DIALOG: |
- ia_role_ = ROLE_SYSTEM_DIALOG; |
+ role_ = ROLE_SYSTEM_DIALOG; |
break; |
case WebAccessibility::ROLE_DOCUMENT: |
case WebAccessibility::ROLE_WEB_AREA: |
- ia_role_ = ROLE_SYSTEM_DOCUMENT; |
- ia_state_|= STATE_SYSTEM_READONLY; |
- ia_state_|= STATE_SYSTEM_FOCUSABLE; |
+ role_ = ROLE_SYSTEM_DOCUMENT; |
+ state_ |= STATE_SYSTEM_READONLY; |
+ state_ |= STATE_SYSTEM_FOCUSABLE; |
break; |
case WebAccessibility::ROLE_EDITABLE_TEXT: |
- ia_role_ = ROLE_SYSTEM_TEXT; |
+ role_ = ROLE_SYSTEM_TEXT; |
ia2_state_ |= IA2_STATE_SINGLE_LINE; |
ia2_state_ |= IA2_STATE_EDITABLE; |
break; |
case WebAccessibility::ROLE_GRID: |
- ia_role_ = ROLE_SYSTEM_TABLE; |
+ role_ = ROLE_SYSTEM_TABLE; |
break; |
case WebAccessibility::ROLE_GROUP: |
GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_); |
@@ -1240,15 +1306,15 @@ |
ia2_role_ = IA2_ROLE_HEADING; |
break; |
case WebAccessibility::ROLE_IMAGE: |
- ia_role_ = ROLE_SYSTEM_GRAPHIC; |
+ 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: |
- ia_role_ = ROLE_SYSTEM_LINK; |
- ia_state_|= STATE_SYSTEM_LINKED; |
+ role_ = ROLE_SYSTEM_LINK; |
+ state_ |= STATE_SYSTEM_LINKED; |
break; |
case WebAccessibility::ROLE_LANDMARK_APPLICATION: |
case WebAccessibility::ROLE_LANDMARK_BANNER: |
@@ -1257,136 +1323,136 @@ |
case WebAccessibility::ROLE_LANDMARK_MAIN: |
case WebAccessibility::ROLE_LANDMARK_NAVIGATION: |
case WebAccessibility::ROLE_LANDMARK_SEARCH: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ role_ = ROLE_SYSTEM_GROUPING; |
ia2_role_ = IA2_ROLE_SECTION; |
break; |
case WebAccessibility::ROLE_LINK: |
case WebAccessibility::ROLE_WEBCORE_LINK: |
- ia_role_ = ROLE_SYSTEM_LINK; |
- ia_state_|= STATE_SYSTEM_LINKED; |
+ role_ = ROLE_SYSTEM_LINK; |
+ state_ |= STATE_SYSTEM_LINKED; |
break; |
case WebAccessibility::ROLE_LIST: |
- ia_role_ = ROLE_SYSTEM_LIST; |
+ role_ = ROLE_SYSTEM_LIST; |
break; |
case WebAccessibility::ROLE_LISTBOX: |
- ia_role_ = ROLE_SYSTEM_LIST; |
+ role_ = ROLE_SYSTEM_LIST; |
break; |
case WebAccessibility::ROLE_LISTBOX_OPTION: |
case WebAccessibility::ROLE_LIST_ITEM: |
case WebAccessibility::ROLE_LIST_MARKER: |
- ia_role_ = ROLE_SYSTEM_LISTITEM; |
+ role_ = ROLE_SYSTEM_LISTITEM; |
break; |
case WebAccessibility::ROLE_MENU: |
case WebAccessibility::ROLE_MENU_BUTTON: |
- ia_role_ = ROLE_SYSTEM_MENUPOPUP; |
+ role_ = ROLE_SYSTEM_MENUPOPUP; |
break; |
case WebAccessibility::ROLE_MENU_BAR: |
- ia_role_ = ROLE_SYSTEM_MENUBAR; |
+ role_ = ROLE_SYSTEM_MENUBAR; |
break; |
case WebAccessibility::ROLE_MENU_ITEM: |
case WebAccessibility::ROLE_MENU_LIST_OPTION: |
- ia_role_ = ROLE_SYSTEM_MENUITEM; |
+ role_ = ROLE_SYSTEM_MENUITEM; |
break; |
case WebAccessibility::ROLE_MENU_LIST_POPUP: |
- ia_role_ = ROLE_SYSTEM_MENUPOPUP; |
+ role_ = ROLE_SYSTEM_MENUPOPUP; |
break; |
case WebAccessibility::ROLE_NOTE: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ role_ = ROLE_SYSTEM_GROUPING; |
ia2_role_ = IA2_ROLE_NOTE; |
break; |
case WebAccessibility::ROLE_OUTLINE: |
- ia_role_ = ROLE_SYSTEM_OUTLINE; |
+ role_ = ROLE_SYSTEM_OUTLINE; |
break; |
case WebAccessibility::ROLE_POPUP_BUTTON: |
- ia_role_ = ROLE_SYSTEM_COMBOBOX; |
+ role_ = ROLE_SYSTEM_COMBOBOX; |
break; |
case WebAccessibility::ROLE_PROGRESS_INDICATOR: |
- ia_role_ = ROLE_SYSTEM_PROGRESSBAR; |
+ role_ = ROLE_SYSTEM_PROGRESSBAR; |
break; |
case WebAccessibility::ROLE_RADIO_BUTTON: |
- ia_role_ = ROLE_SYSTEM_RADIOBUTTON; |
+ role_ = ROLE_SYSTEM_RADIOBUTTON; |
break; |
case WebAccessibility::ROLE_RADIO_GROUP: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ role_ = ROLE_SYSTEM_GROUPING; |
ia2_role_ = IA2_ROLE_SECTION; |
break; |
case WebAccessibility::ROLE_REGION: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ role_ = ROLE_SYSTEM_GROUPING; |
ia2_role_ = IA2_ROLE_SECTION; |
break; |
case WebAccessibility::ROLE_ROW: |
- ia_role_ = ROLE_SYSTEM_ROW; |
+ role_ = ROLE_SYSTEM_ROW; |
break; |
case WebAccessibility::ROLE_ROW_HEADER: |
- ia_role_ = ROLE_SYSTEM_ROWHEADER; |
+ role_ = ROLE_SYSTEM_ROWHEADER; |
break; |
case WebAccessibility::ROLE_RULER: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
+ role_ = ROLE_SYSTEM_CLIENT; |
ia2_role_ = IA2_ROLE_RULER; |
break; |
case WebAccessibility::ROLE_SCROLLAREA: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
+ role_ = ROLE_SYSTEM_CLIENT; |
ia2_role_ = IA2_ROLE_SCROLL_PANE; |
break; |
case WebAccessibility::ROLE_SCROLLBAR: |
- ia_role_ = ROLE_SYSTEM_SCROLLBAR; |
+ role_ = ROLE_SYSTEM_SCROLLBAR; |
break; |
case WebAccessibility::ROLE_SLIDER: |
- ia_role_ = ROLE_SYSTEM_SLIDER; |
+ role_ = ROLE_SYSTEM_SLIDER; |
break; |
case WebAccessibility::ROLE_SPLIT_GROUP: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
+ role_ = ROLE_SYSTEM_CLIENT; |
ia2_role_ = IA2_ROLE_SPLIT_PANE; |
break; |
case WebAccessibility::ROLE_ANNOTATION: |
case WebAccessibility::ROLE_STATIC_TEXT: |
- ia_role_ = ROLE_SYSTEM_TEXT; |
+ role_ = ROLE_SYSTEM_TEXT; |
break; |
case WebAccessibility::ROLE_STATUS: |
- ia_role_ = ROLE_SYSTEM_STATUSBAR; |
+ role_ = ROLE_SYSTEM_STATUSBAR; |
break; |
case WebAccessibility::ROLE_TAB: |
- ia_role_ = ROLE_SYSTEM_PAGETAB; |
+ role_ = ROLE_SYSTEM_PAGETAB; |
break; |
case WebAccessibility::ROLE_TABLE: |
- ia_role_ = ROLE_SYSTEM_TABLE; |
+ role_ = ROLE_SYSTEM_TABLE; |
break; |
case WebAccessibility::ROLE_TABLE_HEADER_CONTAINER: |
- ia_role_ = ROLE_SYSTEM_GROUPING; |
+ 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: |
- ia_role_ = ROLE_SYSTEM_PAGETABLIST; |
+ role_ = ROLE_SYSTEM_PAGETABLIST; |
break; |
case WebAccessibility::ROLE_TEXTAREA: |
- ia_role_ = ROLE_SYSTEM_TEXT; |
+ role_ = ROLE_SYSTEM_TEXT; |
ia2_state_ |= IA2_STATE_MULTI_LINE; |
ia2_state_ |= IA2_STATE_EDITABLE; |
break; |
case WebAccessibility::ROLE_TEXT_FIELD: |
- ia_role_ = ROLE_SYSTEM_TEXT; |
+ role_ = ROLE_SYSTEM_TEXT; |
ia2_state_ |= IA2_STATE_SINGLE_LINE; |
ia2_state_ |= IA2_STATE_EDITABLE; |
break; |
case WebAccessibility::ROLE_TOOLBAR: |
- ia_role_ = ROLE_SYSTEM_TOOLBAR; |
+ role_ = ROLE_SYSTEM_TOOLBAR; |
break; |
case WebAccessibility::ROLE_TOOLTIP: |
- ia_role_ = ROLE_SYSTEM_TOOLTIP; |
+ role_ = ROLE_SYSTEM_TOOLTIP; |
break; |
case WebAccessibility::ROLE_TREE: |
- ia_role_ = ROLE_SYSTEM_OUTLINE; |
+ role_ = ROLE_SYSTEM_OUTLINE; |
break; |
case WebAccessibility::ROLE_TREE_GRID: |
- ia_role_ = ROLE_SYSTEM_OUTLINE; |
+ role_ = ROLE_SYSTEM_OUTLINE; |
break; |
case WebAccessibility::ROLE_TREE_ITEM: |
- ia_role_ = ROLE_SYSTEM_OUTLINEITEM; |
+ role_ = ROLE_SYSTEM_OUTLINEITEM; |
break; |
case WebAccessibility::ROLE_WINDOW: |
- ia_role_ = ROLE_SYSTEM_WINDOW; |
+ role_ = ROLE_SYSTEM_WINDOW; |
break; |
// TODO(dmazzoni): figure out the proper MSAA role for all of these. |
@@ -1411,15 +1477,15 @@ |
case WebAccessibility::ROLE_TIMER: |
case WebAccessibility::ROLE_VALUE_INDICATOR: |
default: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
+ role_ = ROLE_SYSTEM_CLIENT; |
break; |
} |
// The role should always be set. |
- DCHECK(!role_name_.empty() || ia_role_); |
+ DCHECK(!role_name_.empty() || role_); |
// If we didn't explicitly set the IAccessible2 role, make it the same |
// as the MSAA role. |
if (!ia2_role_) |
- ia2_role_ = ia_role_; |
+ ia2_role_ = role_; |
} |