| Index: content/browser/accessibility/browser_accessibility_win.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
|
| index 71cf9b634b8d51c1cb0ca6a0f59d547ba530e7ac..c0a64e072277b3065fcae1802a8fca675cece015 100644
|
| --- a/content/browser/accessibility/browser_accessibility_win.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_win.cc
|
| @@ -3405,44 +3405,7 @@ void BrowserAccessibilityWin::UpdateStep1ComputeWinAttributes() {
|
| relations_.push_back(relation);
|
| }
|
|
|
| - // Expose slider value.
|
| - if (ia_role() == ROLE_SYSTEM_PROGRESSBAR ||
|
| - ia_role() == ROLE_SYSTEM_SCROLLBAR ||
|
| - ia_role() == ROLE_SYSTEM_SLIDER) {
|
| - base::string16 value_text = GetValueText();
|
| - SanitizeStringAttributeForIA2(value_text, &value_text);
|
| - win_attributes_->ia2_attributes.push_back(L"valuetext:" + value_text);
|
| - }
|
| -
|
| - // Expose dropeffect attribute.
|
| - base::string16 drop_effect;
|
| - if (GetHtmlAttribute("aria-dropeffect", &drop_effect)) {
|
| - SanitizeStringAttributeForIA2(drop_effect, &drop_effect);
|
| - win_attributes_->ia2_attributes.push_back(L"dropeffect:" + drop_effect);
|
| - }
|
| -
|
| - // Expose grabbed attribute.
|
| - base::string16 grabbed;
|
| - if (GetHtmlAttribute("aria-grabbed", &grabbed)) {
|
| - SanitizeStringAttributeForIA2(grabbed, &grabbed);
|
| - win_attributes_->ia2_attributes.push_back(L"grabbed:" + grabbed);
|
| - }
|
| -
|
| - // Expose datetime attribute.
|
| - base::string16 datetime;
|
| - if (GetRole() == ui::AX_ROLE_TIME &&
|
| - GetHtmlAttribute("datetime", &datetime)) {
|
| - SanitizeStringAttributeForIA2(datetime, &datetime);
|
| - win_attributes_->ia2_attributes.push_back(L"datetime:" + datetime);
|
| - }
|
| -
|
| - // Expose input-text type attribute.
|
| - base::string16 type;
|
| - if (GetRole() == ui::AX_ROLE_TEXT_FIELD && GetHtmlAttribute("type", &type)) {
|
| - SanitizeStringAttributeForIA2(type, &type);
|
| - win_attributes_->ia2_attributes.push_back(L"text-input-type:" + type);
|
| - }
|
| -
|
| + UpdateRequiredAttributes();
|
| // If this is a web area for a presentational iframe, give it a role of
|
| // something other than DOCUMENT so that the fact that it's a separate doc
|
| // is not exposed to AT.
|
| @@ -4099,6 +4062,69 @@ bool BrowserAccessibilityWin::IsListBoxOptionOrMenuListOption() {
|
| return false;
|
| }
|
|
|
| +void BrowserAccessibilityWin::UpdateRequiredAttributes() {
|
| + // Expose slider value.
|
| + if (ia_role() == ROLE_SYSTEM_PROGRESSBAR ||
|
| + ia_role() == ROLE_SYSTEM_SCROLLBAR ||
|
| + ia_role() == ROLE_SYSTEM_SLIDER) {
|
| + base::string16 value_text = GetValueText();
|
| + SanitizeStringAttributeForIA2(value_text, &value_text);
|
| + win_attributes_->ia2_attributes.push_back(L"valuetext:" + value_text);
|
| + }
|
| +
|
| + // Expose dropeffect attribute.
|
| + base::string16 drop_effect;
|
| + if (GetHtmlAttribute("aria-dropeffect", &drop_effect)) {
|
| + SanitizeStringAttributeForIA2(drop_effect, &drop_effect);
|
| + win_attributes_->ia2_attributes.push_back(L"dropeffect:" + drop_effect);
|
| + }
|
| +
|
| + // Expose grabbed attribute.
|
| + base::string16 grabbed;
|
| + if (GetHtmlAttribute("aria-grabbed", &grabbed)) {
|
| + SanitizeStringAttributeForIA2(grabbed, &grabbed);
|
| + win_attributes_->ia2_attributes.push_back(L"grabbed:" + grabbed);
|
| + }
|
| +
|
| + // Expose class attribute.
|
| + base::string16 class_attr;
|
| + if (GetHtmlAttribute("class", &class_attr)) {
|
| + SanitizeStringAttributeForIA2(class_attr, &class_attr);
|
| + win_attributes_->ia2_attributes.push_back(L"class:" + class_attr);
|
| + }
|
| +
|
| + // Expose datetime attribute.
|
| + base::string16 datetime;
|
| + if (GetRole() == ui::AX_ROLE_TIME &&
|
| + GetHtmlAttribute("datetime", &datetime)) {
|
| + SanitizeStringAttributeForIA2(datetime, &datetime);
|
| + win_attributes_->ia2_attributes.push_back(L"datetime:" + datetime);
|
| + }
|
| +
|
| + // Expose id attribute.
|
| + base::string16 id;
|
| + if (GetHtmlAttribute("id", &id)) {
|
| + SanitizeStringAttributeForIA2(id, &id);
|
| + win_attributes_->ia2_attributes.push_back(L"id:" + id);
|
| + }
|
| +
|
| + // Expose src attribute.
|
| + base::string16 src;
|
| + if (GetRole() == ui::AX_ROLE_IMAGE && GetHtmlAttribute("src", &src)) {
|
| + SanitizeStringAttributeForIA2(src, &src);
|
| + win_attributes_->ia2_attributes.push_back(L"src:" + src);
|
| + }
|
| +
|
| + // Expose input-text type attribute.
|
| + base::string16 type;
|
| + base::string16 html_tag = GetString16Attribute(ui::AX_ATTR_HTML_TAG);
|
| + if (GetRole() == ui::AX_ROLE_TEXT_FIELD && html_tag == L"input" &&
|
| + GetHtmlAttribute("type", &type)) {
|
| + SanitizeStringAttributeForIA2(type, &type);
|
| + win_attributes_->ia2_attributes.push_back(L"text-input-type:" + type);
|
| + }
|
| +}
|
| +
|
| void BrowserAccessibilityWin::InitRoleAndState() {
|
| int32 ia_role = 0;
|
| int32 ia_state = 0;
|
|
|