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

Unified Diff: content/renderer/accessibility/blink_ax_tree_source.cc

Issue 1547643002: ARIA 1.1: implementation for aria-col-* and aria-row-*. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adds MODULES_EXPORT Created 5 years 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: content/renderer/accessibility/blink_ax_tree_source.cc
diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc
index 4451834f74c95ca04293670c3cc8673c8070b134..2531b928c55729acc4eb9a14e203d91cd7a29867 100644
--- a/content/renderer/accessibility/blink_ax_tree_source.cc
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc
@@ -89,6 +89,8 @@ std::string GetEquivalentAriaRoleString(const ui::AXRole role) {
return "region";
case ui::AX_ROLE_SLIDER:
return "slider";
+ case ui::AX_ROLE_TIME:
+ return "time";
default:
break;
}
@@ -453,8 +455,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
std::string role = GetEquivalentAriaRoleString(dst->role);
if (!role.empty())
dst->AddStringAttribute(ui::AX_ATTR_ROLE, role);
- else if (dst->role == ui::AX_ROLE_TIME)
- dst->AddStringAttribute(ui::AX_ATTR_ROLE, "time");
}
// Browser plugin (used in a <webview>).
@@ -550,6 +550,18 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
}
}
+ if (dst->role == ui::AX_ROLE_TABLE ||
+ dst->role == ui::AX_ROLE_GRID ||
+ dst->role == ui::AX_ROLE_TREE_GRID) {
+ int aria_colcount = src.ariaColumnCount();
+ if (aria_colcount)
+ dst->AddIntAttribute(ui::AX_ATTR_ARIA_COL_COUNT, aria_colcount);
+
+ int aria_rowcount = src.ariaRowCount();
+ if (aria_rowcount)
+ dst->AddIntAttribute(ui::AX_ATTR_ARIA_ROW_COUNT, aria_rowcount);
+ }
+
if (dst->role == ui::AX_ROLE_ROW) {
dst->AddIntAttribute(ui::AX_ATTR_TABLE_ROW_INDEX, src.rowIndex());
WebAXObject header = src.rowHeader();
@@ -566,13 +578,25 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
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(ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN,
- src.cellColumnSpan());
- dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, src.cellRowIndex());
- dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_SPAN, src.cellRowSpan());
+ dst->role == ui::AX_ROLE_COLUMN_HEADER ||
+ dst->role == ui::AX_ROLE_ROW) {
+ if (dst->role != ui::AX_ROLE_ROW) {
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX,
+ src.cellColumnIndex());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_SPAN,
+ src.cellColumnSpan());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX,
+ src.cellRowIndex());
+ dst->AddIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_SPAN,src.cellRowSpan());
+
+ int aria_colindex = src.ariaColumnIndex();
+ if (aria_colindex)
+ dst->AddIntAttribute(ui::AX_ATTR_ARIA_COL_INDEX, aria_colindex);
+ }
+
+ int aria_rowindex = src.ariaRowIndex();
+ if (aria_rowindex)
+ dst->AddIntAttribute(ui::AX_ATTR_ARIA_ROW_INDEX, aria_rowindex);
}
if ((dst->role == ui::AX_ROLE_ROW_HEADER ||

Powered by Google App Engine
This is Rietveld 408576698