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 e72cd6e91faeca13d158ee5c992f0b9167b9fc9e..2ef46bf58cdf87b8d27460d17d02c9e9dc69aaa9 100644 |
--- a/content/renderer/accessibility/blink_ax_tree_source.cc |
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc |
@@ -513,6 +513,18 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
UTF16ToUTF8(base::StringPiece16(doctype.name()))); |
} |
+ WebAXObject anchor_object, focus_object; |
+ int anchor_offset, focus_offset; |
+ src.selection(anchor_object, anchor_offset, focus_object, focus_offset); |
+ if (!anchor_object.isNull() && !focus_object.isNull() && |
+ anchor_offset >= 0 && focus_offset >= 0) { |
+ int32 anchor_id = anchor_object.axID(); |
+ int32 focus_id = focus_object.axID(); |
+ dst->AddIntAttribute(ui::AX_ATTR_ANCHOR_OBJECT_ID, anchor_id); |
+ dst->AddIntAttribute(ui::AX_ATTR_ANCHOR_OFFSET, anchor_offset); |
+ dst->AddIntAttribute(ui::AX_ATTR_FOCUS_OBJECT_ID, focus_id); |
+ dst->AddIntAttribute(ui::AX_ATTR_FOCUS_OFFSET, focus_offset); |
+ } |
} |
if (dst->role == ui::AX_ROLE_TABLE) { |