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

Unified Diff: components/test_runner/web_ax_object_proxy.cc

Issue 2191833003: Use text affinity to return correct accessible line boundaries. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bug in browser_accessibility_win.cc Created 4 years, 5 months 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
« no previous file with comments | « components/test_runner/web_ax_object_proxy.h ('k') | content/browser/accessibility/browser_accessibility.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/test_runner/web_ax_object_proxy.cc
diff --git a/components/test_runner/web_ax_object_proxy.cc b/components/test_runner/web_ax_object_proxy.cc
index 1e3de2563968680d7a3af6a0e8e3fd6e3b93531e..be5d6111cf4d80fee5c69b74233cca6280f5e7fc 100644
--- a/components/test_runner/web_ax_object_proxy.cc
+++ b/components/test_runner/web_ax_object_proxy.cc
@@ -535,10 +535,14 @@ WebAXObjectProxy::GetObjectTemplateBuilder(v8::Isolate* isolate) {
&WebAXObjectProxy::SelectionAnchorObject)
.SetProperty("selectionAnchorOffset",
&WebAXObjectProxy::SelectionAnchorOffset)
+ .SetProperty("selectionAnchorAffinity",
+ &WebAXObjectProxy::SelectionAnchorAffinity)
.SetProperty("selectionFocusObject",
&WebAXObjectProxy::SelectionFocusObject)
.SetProperty("selectionFocusOffset",
&WebAXObjectProxy::SelectionFocusOffset)
+ .SetProperty("selectionFocusAffinity",
+ &WebAXObjectProxy::SelectionFocusAffinity)
.SetProperty("selectionStart", &WebAXObjectProxy::SelectionStart)
.SetProperty("selectionEnd", &WebAXObjectProxy::SelectionEnd)
.SetProperty("selectionStartLineNumber",
@@ -788,10 +792,12 @@ v8::Local<v8::Value> WebAXObjectProxy::SelectionAnchorObject() {
blink::WebAXObject anchorObject;
int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
blink::WebAXObject focusObject;
int focusOffset = -1;
- accessibility_object_.selection(anchorObject, anchorOffset,
- focusObject, focusOffset);
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
if (anchorObject.isNull())
return v8::Null(blink::mainThreadIsolate());
@@ -803,25 +809,44 @@ int WebAXObjectProxy::SelectionAnchorOffset() {
blink::WebAXObject anchorObject;
int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
blink::WebAXObject focusObject;
int focusOffset = -1;
- accessibility_object_.selection(anchorObject, anchorOffset,
- focusObject, focusOffset);
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
if (anchorOffset < 0)
return -1;
return anchorOffset;
}
+std::string WebAXObjectProxy::SelectionAnchorAffinity() {
+ accessibility_object_.updateLayoutAndCheckValidity();
+
+ blink::WebAXObject anchorObject;
+ int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
+ blink::WebAXObject focusObject;
+ int focusOffset = -1;
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
+ return anchorAffinity == blink::WebAXTextAffinityUpstream ?
+ "upstream" : "downstream";
+}
+
v8::Local<v8::Value> WebAXObjectProxy::SelectionFocusObject() {
accessibility_object_.updateLayoutAndCheckValidity();
blink::WebAXObject anchorObject;
int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
blink::WebAXObject focusObject;
int focusOffset = -1;
- accessibility_object_.selection(anchorObject, anchorOffset,
- focusObject, focusOffset);
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
if (focusObject.isNull())
return v8::Null(blink::mainThreadIsolate());
@@ -833,16 +858,33 @@ int WebAXObjectProxy::SelectionFocusOffset() {
blink::WebAXObject anchorObject;
int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
blink::WebAXObject focusObject;
int focusOffset = -1;
- accessibility_object_.selection(anchorObject, anchorOffset,
- focusObject, focusOffset);
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
if (focusOffset < 0)
return -1;
return focusOffset;
}
+std::string WebAXObjectProxy::SelectionFocusAffinity() {
+ accessibility_object_.updateLayoutAndCheckValidity();
+
+ blink::WebAXObject anchorObject;
+ int anchorOffset = -1;
+ blink::WebAXTextAffinity anchorAffinity;
+ blink::WebAXObject focusObject;
+ int focusOffset = -1;
+ blink::WebAXTextAffinity focusAffinity;
+ accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
+ focusObject, focusOffset, focusAffinity);
+ return focusAffinity == blink::WebAXTextAffinityUpstream ?
+ "upstream" : "downstream";
+}
+
int WebAXObjectProxy::SelectionStart() {
accessibility_object_.updateLayoutAndCheckValidity();
return accessibility_object_.selectionStart();
« no previous file with comments | « components/test_runner/web_ax_object_proxy.h ('k') | content/browser/accessibility/browser_accessibility.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698