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

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

Issue 1435113003: Make use of new AX name calc in Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix issue with ariaTextAlternative Created 5 years, 1 month 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 6ff315b05c1e659bcccbd6901f5c7a1b46ae83e9..57158f61a95c9464e4fbd95a12f1edcdfed604b8 100644
--- a/content/renderer/accessibility/blink_ax_tree_source.cc
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc
@@ -106,7 +106,7 @@ void AddIntListAttributeFromWebObjects(ui::AXIntListAttribute attr,
dst->AddIntListAttribute(attr, ids);
}
-} // Anonymous namespace
+} // namespace
BlinkAXTreeSource::BlinkAXTreeSource(RenderFrameImpl* render_frame)
: render_frame_(render_frame),
@@ -258,7 +258,32 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
dst->state = AXStateFromBlink(src);
dst->location = src.boundingBoxRect();
dst->id = src.axID();
- std::string name = src.deprecatedTitle().utf8();
+
+ blink::WebAXNameFrom nameFrom;
+ blink::WebVector<blink::WebAXObject> nameObjects;
+ blink::WebString web_name = src.name(nameFrom, nameObjects);
+ if (!web_name.isEmpty()) {
+ dst->AddStringAttribute(ui::AX_ATTR_NAME, web_name.utf8());
+ dst->AddIntAttribute(ui::AX_ATTR_NAME_FROM, AXNameFromFromBlink(nameFrom));
+ AddIntListAttributeFromWebObjects(
+ ui::AX_ATTR_LABELLEDBY_IDS, nameObjects, dst);
+ }
+
+ blink::WebAXDescriptionFrom descriptionFrom;
+ blink::WebVector<blink::WebAXObject> descriptionObjects;
+ blink::WebString web_description = src.description(
+ nameFrom, descriptionFrom, descriptionObjects);
+ if (!web_description.isEmpty()) {
+ dst->AddStringAttribute(ui::AX_ATTR_DESCRIPTION, web_description.utf8());
+ dst->AddIntAttribute(ui::AX_ATTR_DESCRIPTION_FROM,
+ AXDescriptionFromFromBlink(descriptionFrom));
+ AddIntListAttributeFromWebObjects(
+ ui::AX_ATTR_DESCRIBEDBY_IDS, descriptionObjects, dst);
+ }
+
+ blink::WebString web_placeholder = src.placeholder(nameFrom, descriptionFrom);
+ if (!web_placeholder.isEmpty())
+ dst->AddStringAttribute(ui::AX_ATTR_PLACEHOLDER, web_placeholder.utf8());
std::string value;
if (src.valueDescription().length()) {
@@ -288,8 +313,7 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
}
if (src.invalidState() == blink::WebAXInvalidStateOther) {
dst->AddStringAttribute(
- ui::AX_ATTR_ARIA_INVALID_VALUE,
- src.ariaInvalidValue().utf8());
+ ui::AX_ATTR_ARIA_INVALID_VALUE, src.ariaInvalidValue().utf8());
}
if (src.textDirection()) {
@@ -344,32 +368,15 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
dst->AddBoolAttribute(ui::AX_ATTR_BUTTON_MIXED, true);
if (src.canSetValueAttribute())
dst->AddBoolAttribute(ui::AX_ATTR_CAN_SET_VALUE, true);
- if (src.deprecatedAccessibilityDescription().length()) {
- dst->AddStringAttribute(
- ui::AX_ATTR_DESCRIPTION,
- src.deprecatedAccessibilityDescription().utf8());
- }
if (src.hasComputedStyle()) {
dst->AddStringAttribute(
- ui::AX_ATTR_DISPLAY,
- src.computedStyleDisplay().utf8());
- }
- if (src.deprecatedHelpText().length())
- dst->AddStringAttribute(ui::AX_ATTR_HELP, src.deprecatedHelpText().utf8());
- if (src.deprecatedPlaceholder().length()) {
- dst->AddStringAttribute(
- ui::AX_ATTR_PLACEHOLDER,
- src.deprecatedPlaceholder().utf8());
+ ui::AX_ATTR_DISPLAY, src.computedStyleDisplay().utf8());
}
if (src.keyboardShortcut().length()) {
dst->AddStringAttribute(
ui::AX_ATTR_SHORTCUT,
src.keyboardShortcut().utf8());
}
- if (!src.deprecatedTitleUIElement().isDetached()) {
- dst->AddIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT,
- src.deprecatedTitleUIElement().axID());
- }
if (!src.ariaActiveDescendant().isDetached()) {
dst->AddIntAttribute(ui::AX_ATTR_ACTIVEDESCENDANT_ID,
src.ariaActiveDescendant().axID());
@@ -510,12 +517,8 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
src.minValueForRange());
}
- if (dst->role == ui::AX_ROLE_WEB_AREA) {
+ if (dst->role == ui::AX_ROLE_WEB_AREA)
dst->AddStringAttribute(ui::AX_ATTR_HTML_TAG, "#document");
- const WebDocument& document = src.document();
- if (name.empty())
- name = document.title().utf8();
- }
if (dst->role == ui::AX_ROLE_TABLE) {
int column_count = src.columnCount();
@@ -578,8 +581,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
AXSortDirectionFromBlink(src.sortDirection()));
}
- dst->AddStringAttribute(ui::AX_ATTR_NAME, name);
-
// Add the ids of *indirect* children - those who are children of this node,
// but whose parent is *not* this node. One example is a table
// cell, which is a child of both a row and a column. Because the cell's
@@ -601,27 +602,10 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
if (src.ariaControls(controls))
AddIntListAttributeFromWebObjects(ui::AX_ATTR_CONTROLS_IDS, controls, dst);
- WebVector<WebAXObject> describedby;
- if (src.deprecatedAriaDescribedby(describedby)) {
- AddIntListAttributeFromWebObjects(
- ui::AX_ATTR_DESCRIBEDBY_IDS, describedby, dst);
- }
-
WebVector<WebAXObject> flowTo;
if (src.ariaFlowTo(flowTo))
AddIntListAttributeFromWebObjects(ui::AX_ATTR_FLOWTO_IDS, flowTo, dst);
- WebVector<WebAXObject> labelledby;
- if (src.deprecatedAriaLabelledby(labelledby)) {
- AddIntListAttributeFromWebObjects(
- ui::AX_ATTR_LABELLEDBY_IDS, labelledby, dst);
- }
-
- WebVector<WebAXObject> owns;
- if (src.ariaOwns(owns))
- AddIntListAttributeFromWebObjects(ui::AX_ATTR_OWNS_IDS, owns, dst);
-
-
if (src.isScrollableContainer()) {
const gfx::Point& scrollOffset = src.scrollOffset();
dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X, scrollOffset.x());

Powered by Google App Engine
This is Rietveld 408576698