OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/accessibility/browser_accessibility_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_win.h" |
6 | 6 |
7 #include <objbase.h> | 7 #include <objbase.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 EXPECT_EQ(1 << ui::AX_STATE_BUSY | 1 << ui::AX_STATE_READ_ONLY, | 733 EXPECT_EQ(1 << ui::AX_STATE_BUSY | 1 << ui::AX_STATE_READ_ONLY, |
734 root->GetState()); | 734 root->GetState()); |
735 | 735 |
736 int32_t unique_id = ToBrowserAccessibilityWin(root)->unique_id(); | 736 int32_t unique_id = ToBrowserAccessibilityWin(root)->unique_id(); |
737 ASSERT_EQ(root, BrowserAccessibility::GetFromUniqueID(unique_id)); | 737 ASSERT_EQ(root, BrowserAccessibility::GetFromUniqueID(unique_id)); |
738 } | 738 } |
739 | 739 |
740 TEST_F(BrowserAccessibilityTest, TestIA2Attributes) { | 740 TEST_F(BrowserAccessibilityTest, TestIA2Attributes) { |
741 ui::AXNodeData pseudo_before; | 741 ui::AXNodeData pseudo_before; |
742 pseudo_before.id = 2; | 742 pseudo_before.id = 2; |
743 pseudo_before.role = ui::AX_ROLE_DIV; | 743 pseudo_before.role = ui::AX_ROLE_GENERIC_CONTAINER; |
744 pseudo_before.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "<pseudo:before>"); | 744 pseudo_before.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "<pseudo:before>"); |
745 pseudo_before.AddStringAttribute(ui::AX_ATTR_DISPLAY, "none"); | 745 pseudo_before.AddStringAttribute(ui::AX_ATTR_DISPLAY, "none"); |
746 | 746 |
747 ui::AXNodeData checkbox; | 747 ui::AXNodeData checkbox; |
748 checkbox.id = 3; | 748 checkbox.id = 3; |
749 checkbox.SetName("Checkbox"); | 749 checkbox.SetName("Checkbox"); |
750 checkbox.role = ui::AX_ROLE_CHECK_BOX; | 750 checkbox.role = ui::AX_ROLE_CHECK_BOX; |
751 checkbox.AddIntAttribute(ui::AX_ATTR_CHECKED_STATE, | 751 checkbox.AddIntAttribute(ui::AX_ATTR_CHECKED_STATE, |
752 ui::AX_CHECKED_STATE_TRUE); | 752 ui::AX_CHECKED_STATE_TRUE); |
753 | 753 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
966 root.id = 1; | 966 root.id = 1; |
967 root.role = ui::AX_ROLE_ROOT_WEB_AREA; | 967 root.role = ui::AX_ROLE_ROOT_WEB_AREA; |
968 root.AddState(ui::AX_STATE_READ_ONLY); | 968 root.AddState(ui::AX_STATE_READ_ONLY); |
969 root.AddState(ui::AX_STATE_FOCUSABLE); | 969 root.AddState(ui::AX_STATE_FOCUSABLE); |
970 | 970 |
971 ui::AXNodeData textarea, textarea_div, textarea_text; | 971 ui::AXNodeData textarea, textarea_div, textarea_text; |
972 textarea.id = 2; | 972 textarea.id = 2; |
973 textarea_div.id = 3; | 973 textarea_div.id = 3; |
974 textarea_text.id = 4; | 974 textarea_text.id = 4; |
975 textarea.role = ui::AX_ROLE_TEXT_FIELD; | 975 textarea.role = ui::AX_ROLE_TEXT_FIELD; |
976 textarea_div.role = ui::AX_ROLE_DIV; | 976 textarea_div.role = ui::AX_ROLE_GENERIC_CONTAINER; |
977 textarea_text.role = ui::AX_ROLE_STATIC_TEXT; | 977 textarea_text.role = ui::AX_ROLE_STATIC_TEXT; |
978 textarea.AddState(ui::AX_STATE_EDITABLE); | 978 textarea.AddState(ui::AX_STATE_EDITABLE); |
979 textarea.AddState(ui::AX_STATE_FOCUSABLE); | 979 textarea.AddState(ui::AX_STATE_FOCUSABLE); |
980 textarea.AddState(ui::AX_STATE_MULTILINE); | 980 textarea.AddState(ui::AX_STATE_MULTILINE); |
981 textarea_div.AddState(ui::AX_STATE_EDITABLE); | 981 textarea_div.AddState(ui::AX_STATE_EDITABLE); |
982 textarea_text.AddState(ui::AX_STATE_EDITABLE); | 982 textarea_text.AddState(ui::AX_STATE_EDITABLE); |
983 textarea.SetValue(base::UTF16ToUTF8(text)); | 983 textarea.SetValue(base::UTF16ToUTF8(text)); |
984 textarea_text.SetName(base::UTF16ToUTF8(text)); | 984 textarea_text.SetName(base::UTF16ToUTF8(text)); |
985 textarea.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "textarea"); | 985 textarea.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "textarea"); |
986 textarea.child_ids.push_back(textarea_div.id); | 986 textarea.child_ids.push_back(textarea_div.id); |
(...skipping 13 matching lines...) Expand all Loading... |
1000 textarea_line2.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, | 1000 textarea_line2.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, |
1001 line2_word_starts); | 1001 line2_word_starts); |
1002 textarea_text.child_ids.push_back(textarea_line1.id); | 1002 textarea_text.child_ids.push_back(textarea_line1.id); |
1003 textarea_text.child_ids.push_back(textarea_line2.id); | 1003 textarea_text.child_ids.push_back(textarea_line2.id); |
1004 | 1004 |
1005 ui::AXNodeData text_field, text_field_div, text_field_text; | 1005 ui::AXNodeData text_field, text_field_div, text_field_text; |
1006 text_field.id = 7; | 1006 text_field.id = 7; |
1007 text_field_div.id = 8; | 1007 text_field_div.id = 8; |
1008 text_field_text.id = 9; | 1008 text_field_text.id = 9; |
1009 text_field.role = ui::AX_ROLE_TEXT_FIELD; | 1009 text_field.role = ui::AX_ROLE_TEXT_FIELD; |
1010 text_field_div.role = ui::AX_ROLE_DIV; | 1010 text_field_div.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1011 text_field_text.role = ui::AX_ROLE_STATIC_TEXT; | 1011 text_field_text.role = ui::AX_ROLE_STATIC_TEXT; |
1012 text_field.AddState(ui::AX_STATE_EDITABLE); | 1012 text_field.AddState(ui::AX_STATE_EDITABLE); |
1013 text_field.AddState(ui::AX_STATE_FOCUSABLE); | 1013 text_field.AddState(ui::AX_STATE_FOCUSABLE); |
1014 text_field_div.AddState(ui::AX_STATE_EDITABLE); | 1014 text_field_div.AddState(ui::AX_STATE_EDITABLE); |
1015 text_field_text.AddState(ui::AX_STATE_EDITABLE); | 1015 text_field_text.AddState(ui::AX_STATE_EDITABLE); |
1016 text_field.SetValue(base::UTF16ToUTF8(line1)); | 1016 text_field.SetValue(base::UTF16ToUTF8(line1)); |
1017 text_field_text.SetName(base::UTF16ToUTF8(line1)); | 1017 text_field_text.SetName(base::UTF16ToUTF8(line1)); |
1018 text_field.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "input"); | 1018 text_field.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "input"); |
1019 text_field.html_attributes.push_back(std::make_pair("type", "text")); | 1019 text_field.html_attributes.push_back(std::make_pair("type", "text")); |
1020 text_field.child_ids.push_back(text_field_div.id); | 1020 text_field.child_ids.push_back(text_field_div.id); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1200 | 1200 |
1201 TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) { | 1201 TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) { |
1202 ui::AXNodeData root; | 1202 ui::AXNodeData root; |
1203 root.id = 1; | 1203 root.id = 1; |
1204 root.role = ui::AX_ROLE_ROOT_WEB_AREA; | 1204 root.role = ui::AX_ROLE_ROOT_WEB_AREA; |
1205 root.AddState(ui::AX_STATE_READ_ONLY); | 1205 root.AddState(ui::AX_STATE_READ_ONLY); |
1206 root.AddState(ui::AX_STATE_FOCUSABLE); | 1206 root.AddState(ui::AX_STATE_FOCUSABLE); |
1207 | 1207 |
1208 ui::AXNodeData div_editable; | 1208 ui::AXNodeData div_editable; |
1209 div_editable.id = 2; | 1209 div_editable.id = 2; |
1210 div_editable.role = ui::AX_ROLE_DIV; | 1210 div_editable.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1211 div_editable.AddState(ui::AX_STATE_EDITABLE); | 1211 div_editable.AddState(ui::AX_STATE_EDITABLE); |
1212 div_editable.AddState(ui::AX_STATE_FOCUSABLE); | 1212 div_editable.AddState(ui::AX_STATE_FOCUSABLE); |
1213 | 1213 |
1214 ui::AXNodeData text; | 1214 ui::AXNodeData text; |
1215 text.id = 3; | 1215 text.id = 3; |
1216 text.role = ui::AX_ROLE_STATIC_TEXT; | 1216 text.role = ui::AX_ROLE_STATIC_TEXT; |
1217 text.AddState(ui::AX_STATE_EDITABLE); | 1217 text.AddState(ui::AX_STATE_EDITABLE); |
1218 text.SetName("Click "); | 1218 text.SetName("Click "); |
1219 | 1219 |
1220 ui::AXNodeData link; | 1220 ui::AXNodeData link; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1322 | 1322 |
1323 TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) { | 1323 TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) { |
1324 ui::AXNodeData root; | 1324 ui::AXNodeData root; |
1325 root.id = 1; | 1325 root.id = 1; |
1326 root.role = ui::AX_ROLE_ROOT_WEB_AREA; | 1326 root.role = ui::AX_ROLE_ROOT_WEB_AREA; |
1327 root.AddState(ui::AX_STATE_READ_ONLY); | 1327 root.AddState(ui::AX_STATE_READ_ONLY); |
1328 root.AddState(ui::AX_STATE_FOCUSABLE); | 1328 root.AddState(ui::AX_STATE_FOCUSABLE); |
1329 | 1329 |
1330 ui::AXNodeData div_editable; | 1330 ui::AXNodeData div_editable; |
1331 div_editable.id = 2; | 1331 div_editable.id = 2; |
1332 div_editable.role = ui::AX_ROLE_DIV; | 1332 div_editable.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1333 div_editable.AddState(ui::AX_STATE_FOCUSABLE); | 1333 div_editable.AddState(ui::AX_STATE_FOCUSABLE); |
1334 div_editable.AddState(ui::AX_STATE_EDITABLE); | 1334 div_editable.AddState(ui::AX_STATE_EDITABLE); |
1335 | 1335 |
1336 ui::AXNodeData text; | 1336 ui::AXNodeData text; |
1337 text.id = 3; | 1337 text.id = 3; |
1338 text.role = ui::AX_ROLE_STATIC_TEXT; | 1338 text.role = ui::AX_ROLE_STATIC_TEXT; |
1339 text.AddState(ui::AX_STATE_FOCUSABLE); | 1339 text.AddState(ui::AX_STATE_FOCUSABLE); |
1340 text.AddState(ui::AX_STATE_EDITABLE); | 1340 text.AddState(ui::AX_STATE_EDITABLE); |
1341 text.SetName("Click "); | 1341 text.SetName("Click "); |
1342 | 1342 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1479 | 1479 |
1480 TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) { | 1480 TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) { |
1481 ui::AXNodeData root; | 1481 ui::AXNodeData root; |
1482 root.id = 1; | 1482 root.id = 1; |
1483 root.role = ui::AX_ROLE_ROOT_WEB_AREA; | 1483 root.role = ui::AX_ROLE_ROOT_WEB_AREA; |
1484 root.AddState(ui::AX_STATE_READ_ONLY); | 1484 root.AddState(ui::AX_STATE_READ_ONLY); |
1485 root.AddState(ui::AX_STATE_FOCUSABLE); | 1485 root.AddState(ui::AX_STATE_FOCUSABLE); |
1486 | 1486 |
1487 ui::AXNodeData div; | 1487 ui::AXNodeData div; |
1488 div.id = 2; | 1488 div.id = 2; |
1489 div.role = ui::AX_ROLE_DIV; | 1489 div.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1490 div.AddState(ui::AX_STATE_FOCUSABLE); | 1490 div.AddState(ui::AX_STATE_FOCUSABLE); |
1491 | 1491 |
1492 ui::AXNodeData text; | 1492 ui::AXNodeData text; |
1493 text.id = 3; | 1493 text.id = 3; |
1494 text.role = ui::AX_ROLE_STATIC_TEXT; | 1494 text.role = ui::AX_ROLE_STATIC_TEXT; |
1495 text.SetName("Click "); | 1495 text.SetName("Click "); |
1496 | 1496 |
1497 ui::AXNodeData link; | 1497 ui::AXNodeData link; |
1498 link.id = 4; | 1498 link.id = 4; |
1499 link.role = ui::AX_ROLE_LINK; | 1499 link.role = ui::AX_ROLE_LINK; |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1641 | 1641 |
1642 TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) { | 1642 TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) { |
1643 ui::AXNodeData root; | 1643 ui::AXNodeData root; |
1644 root.id = 1; | 1644 root.id = 1; |
1645 root.role = ui::AX_ROLE_ROOT_WEB_AREA; | 1645 root.role = ui::AX_ROLE_ROOT_WEB_AREA; |
1646 root.AddState(ui::AX_STATE_READ_ONLY); | 1646 root.AddState(ui::AX_STATE_READ_ONLY); |
1647 root.AddState(ui::AX_STATE_FOCUSABLE); | 1647 root.AddState(ui::AX_STATE_FOCUSABLE); |
1648 | 1648 |
1649 ui::AXNodeData div_editable; | 1649 ui::AXNodeData div_editable; |
1650 div_editable.id = 2; | 1650 div_editable.id = 2; |
1651 div_editable.role = ui::AX_ROLE_DIV; | 1651 div_editable.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1652 div_editable.AddState(ui::AX_STATE_EDITABLE); | 1652 div_editable.AddState(ui::AX_STATE_EDITABLE); |
1653 div_editable.AddState(ui::AX_STATE_FOCUSABLE); | 1653 div_editable.AddState(ui::AX_STATE_FOCUSABLE); |
1654 div_editable.AddStringAttribute(ui::AX_ATTR_FONT_FAMILY, "Helvetica"); | 1654 div_editable.AddStringAttribute(ui::AX_ATTR_FONT_FAMILY, "Helvetica"); |
1655 | 1655 |
1656 ui::AXNodeData text_before; | 1656 ui::AXNodeData text_before; |
1657 text_before.id = 3; | 1657 text_before.id = 3; |
1658 text_before.role = ui::AX_ROLE_STATIC_TEXT; | 1658 text_before.role = ui::AX_ROLE_STATIC_TEXT; |
1659 text_before.AddState(ui::AX_STATE_EDITABLE); | 1659 text_before.AddState(ui::AX_STATE_EDITABLE); |
1660 text_before.SetName("Before "); | 1660 text_before.SetName("Before "); |
1661 text_before.AddIntAttribute( | 1661 text_before.AddIntAttribute( |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1888 | 1888 |
1889 ui::AXNodeData combo_box; | 1889 ui::AXNodeData combo_box; |
1890 combo_box.id = 2; | 1890 combo_box.id = 2; |
1891 combo_box.role = ui::AX_ROLE_COMBO_BOX; | 1891 combo_box.role = ui::AX_ROLE_COMBO_BOX; |
1892 combo_box.AddState(ui::AX_STATE_EDITABLE); | 1892 combo_box.AddState(ui::AX_STATE_EDITABLE); |
1893 combo_box.AddState(ui::AX_STATE_FOCUSABLE); | 1893 combo_box.AddState(ui::AX_STATE_FOCUSABLE); |
1894 combo_box.SetValue(value1 + value2); | 1894 combo_box.SetValue(value1 + value2); |
1895 | 1895 |
1896 ui::AXNodeData combo_box_div; | 1896 ui::AXNodeData combo_box_div; |
1897 combo_box_div.id = 3; | 1897 combo_box_div.id = 3; |
1898 combo_box_div.role = ui::AX_ROLE_DIV; | 1898 combo_box_div.role = ui::AX_ROLE_GENERIC_CONTAINER; |
1899 combo_box_div.AddState(ui::AX_STATE_EDITABLE); | 1899 combo_box_div.AddState(ui::AX_STATE_EDITABLE); |
1900 | 1900 |
1901 ui::AXNodeData static_text1; | 1901 ui::AXNodeData static_text1; |
1902 static_text1.id = 4; | 1902 static_text1.id = 4; |
1903 static_text1.role = ui::AX_ROLE_STATIC_TEXT; | 1903 static_text1.role = ui::AX_ROLE_STATIC_TEXT; |
1904 static_text1.AddState(ui::AX_STATE_EDITABLE); | 1904 static_text1.AddState(ui::AX_STATE_EDITABLE); |
1905 static_text1.SetName(value1); | 1905 static_text1.SetName(value1); |
1906 | 1906 |
1907 ui::AXNodeData static_text2; | 1907 ui::AXNodeData static_text2; |
1908 static_text2.id = 5; | 1908 static_text2.id = 5; |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2400 std::vector<AXEventNotificationDetails> events = {event}; | 2400 std::vector<AXEventNotificationDetails> events = {event}; |
2401 manager->OnAccessibilityEvents(events); | 2401 manager->OnAccessibilityEvents(events); |
2402 | 2402 |
2403 EXPECT_HRESULT_SUCCEEDED(ax_child1->GetCOM()->get_nRelations(&n_relations)); | 2403 EXPECT_HRESULT_SUCCEEDED(ax_child1->GetCOM()->get_nRelations(&n_relations)); |
2404 EXPECT_EQ(2, n_relations); | 2404 EXPECT_EQ(2, n_relations); |
2405 EXPECT_HRESULT_SUCCEEDED(ax_child2->GetCOM()->get_nRelations(&n_relations)); | 2405 EXPECT_HRESULT_SUCCEEDED(ax_child2->GetCOM()->get_nRelations(&n_relations)); |
2406 EXPECT_EQ(2, n_relations); | 2406 EXPECT_EQ(2, n_relations); |
2407 } | 2407 } |
2408 | 2408 |
2409 } // namespace content | 2409 } // namespace content |
OLD | NEW |