| 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 |