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

Side by Side 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, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/test_runner/web_ax_object_proxy.h" 5 #include "components/test_runner/web_ax_object_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 .SetProperty("height", &WebAXObjectProxy::Height) 528 .SetProperty("height", &WebAXObjectProxy::Height)
529 .SetProperty("intValue", &WebAXObjectProxy::IntValue) 529 .SetProperty("intValue", &WebAXObjectProxy::IntValue)
530 .SetProperty("minValue", &WebAXObjectProxy::MinValue) 530 .SetProperty("minValue", &WebAXObjectProxy::MinValue)
531 .SetProperty("maxValue", &WebAXObjectProxy::MaxValue) 531 .SetProperty("maxValue", &WebAXObjectProxy::MaxValue)
532 .SetProperty("valueDescription", &WebAXObjectProxy::ValueDescription) 532 .SetProperty("valueDescription", &WebAXObjectProxy::ValueDescription)
533 .SetProperty("childrenCount", &WebAXObjectProxy::ChildrenCount) 533 .SetProperty("childrenCount", &WebAXObjectProxy::ChildrenCount)
534 .SetProperty("selectionAnchorObject", 534 .SetProperty("selectionAnchorObject",
535 &WebAXObjectProxy::SelectionAnchorObject) 535 &WebAXObjectProxy::SelectionAnchorObject)
536 .SetProperty("selectionAnchorOffset", 536 .SetProperty("selectionAnchorOffset",
537 &WebAXObjectProxy::SelectionAnchorOffset) 537 &WebAXObjectProxy::SelectionAnchorOffset)
538 .SetProperty("selectionAnchorAffinity",
539 &WebAXObjectProxy::SelectionAnchorAffinity)
538 .SetProperty("selectionFocusObject", 540 .SetProperty("selectionFocusObject",
539 &WebAXObjectProxy::SelectionFocusObject) 541 &WebAXObjectProxy::SelectionFocusObject)
540 .SetProperty("selectionFocusOffset", 542 .SetProperty("selectionFocusOffset",
541 &WebAXObjectProxy::SelectionFocusOffset) 543 &WebAXObjectProxy::SelectionFocusOffset)
544 .SetProperty("selectionFocusAffinity",
545 &WebAXObjectProxy::SelectionFocusAffinity)
542 .SetProperty("selectionStart", &WebAXObjectProxy::SelectionStart) 546 .SetProperty("selectionStart", &WebAXObjectProxy::SelectionStart)
543 .SetProperty("selectionEnd", &WebAXObjectProxy::SelectionEnd) 547 .SetProperty("selectionEnd", &WebAXObjectProxy::SelectionEnd)
544 .SetProperty("selectionStartLineNumber", 548 .SetProperty("selectionStartLineNumber",
545 &WebAXObjectProxy::SelectionStartLineNumber) 549 &WebAXObjectProxy::SelectionStartLineNumber)
546 .SetProperty("selectionEndLineNumber", 550 .SetProperty("selectionEndLineNumber",
547 &WebAXObjectProxy::SelectionEndLineNumber) 551 &WebAXObjectProxy::SelectionEndLineNumber)
548 .SetProperty("isEnabled", &WebAXObjectProxy::IsEnabled) 552 .SetProperty("isEnabled", &WebAXObjectProxy::IsEnabled)
549 .SetProperty("isRequired", &WebAXObjectProxy::IsRequired) 553 .SetProperty("isRequired", &WebAXObjectProxy::IsRequired)
550 .SetProperty("isEditable", &WebAXObjectProxy::IsEditable) 554 .SetProperty("isEditable", &WebAXObjectProxy::IsEditable)
551 .SetProperty("isRichlyEditable", &WebAXObjectProxy::IsRichlyEditable) 555 .SetProperty("isRichlyEditable", &WebAXObjectProxy::IsRichlyEditable)
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 if (!IsRoot()) 785 if (!IsRoot())
782 count = accessibility_object_.childCount(); 786 count = accessibility_object_.childCount();
783 return count; 787 return count;
784 } 788 }
785 789
786 v8::Local<v8::Value> WebAXObjectProxy::SelectionAnchorObject() { 790 v8::Local<v8::Value> WebAXObjectProxy::SelectionAnchorObject() {
787 accessibility_object_.updateLayoutAndCheckValidity(); 791 accessibility_object_.updateLayoutAndCheckValidity();
788 792
789 blink::WebAXObject anchorObject; 793 blink::WebAXObject anchorObject;
790 int anchorOffset = -1; 794 int anchorOffset = -1;
795 blink::WebAXTextAffinity anchorAffinity;
791 blink::WebAXObject focusObject; 796 blink::WebAXObject focusObject;
792 int focusOffset = -1; 797 int focusOffset = -1;
793 accessibility_object_.selection(anchorObject, anchorOffset, 798 blink::WebAXTextAffinity focusAffinity;
794 focusObject, focusOffset); 799 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
800 focusObject, focusOffset, focusAffinity);
795 if (anchorObject.isNull()) 801 if (anchorObject.isNull())
796 return v8::Null(blink::mainThreadIsolate()); 802 return v8::Null(blink::mainThreadIsolate());
797 803
798 return factory_->GetOrCreate(anchorObject); 804 return factory_->GetOrCreate(anchorObject);
799 } 805 }
800 806
801 int WebAXObjectProxy::SelectionAnchorOffset() { 807 int WebAXObjectProxy::SelectionAnchorOffset() {
802 accessibility_object_.updateLayoutAndCheckValidity(); 808 accessibility_object_.updateLayoutAndCheckValidity();
803 809
804 blink::WebAXObject anchorObject; 810 blink::WebAXObject anchorObject;
805 int anchorOffset = -1; 811 int anchorOffset = -1;
812 blink::WebAXTextAffinity anchorAffinity;
806 blink::WebAXObject focusObject; 813 blink::WebAXObject focusObject;
807 int focusOffset = -1; 814 int focusOffset = -1;
808 accessibility_object_.selection(anchorObject, anchorOffset, 815 blink::WebAXTextAffinity focusAffinity;
809 focusObject, focusOffset); 816 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
817 focusObject, focusOffset, focusAffinity);
810 if (anchorOffset < 0) 818 if (anchorOffset < 0)
811 return -1; 819 return -1;
812 820
813 return anchorOffset; 821 return anchorOffset;
814 } 822 }
815 823
824 std::string WebAXObjectProxy::SelectionAnchorAffinity() {
825 accessibility_object_.updateLayoutAndCheckValidity();
826
827 blink::WebAXObject anchorObject;
828 int anchorOffset = -1;
829 blink::WebAXTextAffinity anchorAffinity;
830 blink::WebAXObject focusObject;
831 int focusOffset = -1;
832 blink::WebAXTextAffinity focusAffinity;
833 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
834 focusObject, focusOffset, focusAffinity);
835 return anchorAffinity == blink::WebAXTextAffinityUpstream ?
836 "upstream" : "downstream";
837 }
838
816 v8::Local<v8::Value> WebAXObjectProxy::SelectionFocusObject() { 839 v8::Local<v8::Value> WebAXObjectProxy::SelectionFocusObject() {
817 accessibility_object_.updateLayoutAndCheckValidity(); 840 accessibility_object_.updateLayoutAndCheckValidity();
818 841
819 blink::WebAXObject anchorObject; 842 blink::WebAXObject anchorObject;
820 int anchorOffset = -1; 843 int anchorOffset = -1;
844 blink::WebAXTextAffinity anchorAffinity;
821 blink::WebAXObject focusObject; 845 blink::WebAXObject focusObject;
822 int focusOffset = -1; 846 int focusOffset = -1;
823 accessibility_object_.selection(anchorObject, anchorOffset, 847 blink::WebAXTextAffinity focusAffinity;
824 focusObject, focusOffset); 848 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
849 focusObject, focusOffset, focusAffinity);
825 if (focusObject.isNull()) 850 if (focusObject.isNull())
826 return v8::Null(blink::mainThreadIsolate()); 851 return v8::Null(blink::mainThreadIsolate());
827 852
828 return factory_->GetOrCreate(focusObject); 853 return factory_->GetOrCreate(focusObject);
829 } 854 }
830 855
831 int WebAXObjectProxy::SelectionFocusOffset() { 856 int WebAXObjectProxy::SelectionFocusOffset() {
832 accessibility_object_.updateLayoutAndCheckValidity(); 857 accessibility_object_.updateLayoutAndCheckValidity();
833 858
834 blink::WebAXObject anchorObject; 859 blink::WebAXObject anchorObject;
835 int anchorOffset = -1; 860 int anchorOffset = -1;
861 blink::WebAXTextAffinity anchorAffinity;
836 blink::WebAXObject focusObject; 862 blink::WebAXObject focusObject;
837 int focusOffset = -1; 863 int focusOffset = -1;
838 accessibility_object_.selection(anchorObject, anchorOffset, 864 blink::WebAXTextAffinity focusAffinity;
839 focusObject, focusOffset); 865 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
866 focusObject, focusOffset, focusAffinity);
840 if (focusOffset < 0) 867 if (focusOffset < 0)
841 return -1; 868 return -1;
842 869
843 return focusOffset; 870 return focusOffset;
844 } 871 }
845 872
873 std::string WebAXObjectProxy::SelectionFocusAffinity() {
874 accessibility_object_.updateLayoutAndCheckValidity();
875
876 blink::WebAXObject anchorObject;
877 int anchorOffset = -1;
878 blink::WebAXTextAffinity anchorAffinity;
879 blink::WebAXObject focusObject;
880 int focusOffset = -1;
881 blink::WebAXTextAffinity focusAffinity;
882 accessibility_object_.selection(anchorObject, anchorOffset, anchorAffinity,
883 focusObject, focusOffset, focusAffinity);
884 return focusAffinity == blink::WebAXTextAffinityUpstream ?
885 "upstream" : "downstream";
886 }
887
846 int WebAXObjectProxy::SelectionStart() { 888 int WebAXObjectProxy::SelectionStart() {
847 accessibility_object_.updateLayoutAndCheckValidity(); 889 accessibility_object_.updateLayoutAndCheckValidity();
848 return accessibility_object_.selectionStart(); 890 return accessibility_object_.selectionStart();
849 } 891 }
850 892
851 int WebAXObjectProxy::SelectionEnd() { 893 int WebAXObjectProxy::SelectionEnd() {
852 accessibility_object_.updateLayoutAndCheckValidity(); 894 accessibility_object_.updateLayoutAndCheckValidity();
853 return accessibility_object_.selectionEnd(); 895 return accessibility_object_.selectionEnd();
854 } 896 }
855 897
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1652 v8::Local<v8::Value> value_handle = gin::CreateHandle( 1694 v8::Local<v8::Value> value_handle = gin::CreateHandle(
1653 isolate, new WebAXObjectProxy(object, this)).ToV8(); 1695 isolate, new WebAXObjectProxy(object, this)).ToV8();
1654 if (value_handle.IsEmpty()) 1696 if (value_handle.IsEmpty())
1655 return v8::Local<v8::Object>(); 1697 return v8::Local<v8::Object>();
1656 v8::Local<v8::Object> handle = value_handle->ToObject(isolate); 1698 v8::Local<v8::Object> handle = value_handle->ToObject(isolate);
1657 elements_.Append(handle); 1699 elements_.Append(handle);
1658 return handle; 1700 return handle;
1659 } 1701 }
1660 1702
1661 } // namespace test_runner 1703 } // namespace test_runner
OLDNEW
« 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