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 e44e912fff66ebf79124cf6f5a4ef3ef179db159..901666af7a82542abb964881666ca4efff0b4ba8 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -3323,6 +3323,19 @@ void BrowserAccessibilityWin::UpdateStep1ComputeWinAttributes() { |
} |
} |
+ //Expose aria-colcount and aria-rowcount in a table, grid or treegrid |
+ if (IsTableOrGridOrTreeGridRole()) { |
+ IntAttributeToIA2(ui::AX_ATTR_ARIA_COL_COUNT, "colcount"); |
+ IntAttributeToIA2(ui::AX_ATTR_ARIA_ROW_COUNT, "rowcount"); |
+ } |
+ |
+ //Expose aria-colindex and aria-rowindex in a cell or row |
+ if (IsCellOrTableHeaderRole() || GetRole() == ui::AX_ROLE_ROW) { |
+ if (GetRole() != ui::AX_ROLE_ROW) |
+ IntAttributeToIA2(ui::AX_ATTR_ARIA_COL_INDEX, "colindex"); |
+ IntAttributeToIA2(ui::AX_ATTR_ARIA_ROW_INDEX, "rowindex"); |
+ } |
+ |
// Expose invalid state for form controls and elements with aria-invalid. |
int invalid_state; |
if (GetIntAttribute(ui::AX_ATTR_INVALID_STATE, &invalid_state)) { |
@@ -3413,6 +3426,15 @@ void BrowserAccessibilityWin::UpdateStep1ComputeWinAttributes() { |
AddRelations(ui::AX_ATTR_FLOWTO_IDS, IA2_RELATION_FLOWS_TO); |
AddRelations(ui::AX_ATTR_LABELLEDBY_IDS, IA2_RELATION_LABELLED_BY); |
+ // 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); |
+ } |
+ |
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 |
@@ -4052,13 +4074,19 @@ bool BrowserAccessibilityWin::IsListBoxOptionOrMenuListOption() { |
} |
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); |
+ if (IsCellOrTableHeaderRole()) { |
+ // Expose colspan attribute. |
+ base::string16 colspan; |
+ if (GetHtmlAttribute("aria-colspan", &colspan)) { |
+ SanitizeStringAttributeForIA2(colspan, &colspan); |
+ win_attributes_->ia2_attributes.push_back(L"colspan:" + colspan); |
+ } |
+ // Expose rowspan attribute. |
+ base::string16 rowspan; |
+ if (GetHtmlAttribute("aria-rowspan", &rowspan)) { |
+ SanitizeStringAttributeForIA2(rowspan, &rowspan); |
+ win_attributes_->ia2_attributes.push_back(L"rowspan:" + rowspan); |
+ } |
} |
// Expose dropeffect attribute. |