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 <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> |
10 | 11 |
11 #include "base/macros.h" | 12 #include "base/macros.h" |
12 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
13 #include "base/win/scoped_bstr.h" | 14 #include "base/win/scoped_bstr.h" |
14 #include "base/win/scoped_comptr.h" | 15 #include "base/win/scoped_comptr.h" |
15 #include "base/win/scoped_variant.h" | 16 #include "base/win/scoped_variant.h" |
16 #include "content/browser/accessibility/browser_accessibility_manager.h" | 17 #include "content/browser/accessibility/browser_accessibility_manager.h" |
17 #include "content/browser/accessibility/browser_accessibility_manager_win.h" | 18 #include "content/browser/accessibility/browser_accessibility_manager_win.h" |
18 #include "content/browser/accessibility/browser_accessibility_state_impl.h" | 19 #include "content/browser/accessibility/browser_accessibility_state_impl.h" |
19 #include "content/browser/renderer_host/legacy_render_widget_host_win.h" | 20 #include "content/browser/renderer_host/legacy_render_widget_host_win.h" |
(...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1061 textarea.role = ui::AX_ROLE_TEXT_FIELD; | 1062 textarea.role = ui::AX_ROLE_TEXT_FIELD; |
1062 textarea_div.role = ui::AX_ROLE_DIV; | 1063 textarea_div.role = ui::AX_ROLE_DIV; |
1063 textarea_text.role = ui::AX_ROLE_STATIC_TEXT; | 1064 textarea_text.role = ui::AX_ROLE_STATIC_TEXT; |
1064 textarea.state = (1 << ui::AX_STATE_EDITABLE) | | 1065 textarea.state = (1 << ui::AX_STATE_EDITABLE) | |
1065 (1 << ui::AX_STATE_FOCUSABLE) | | 1066 (1 << ui::AX_STATE_FOCUSABLE) | |
1066 (1 << ui::AX_STATE_MULTILINE); | 1067 (1 << ui::AX_STATE_MULTILINE); |
1067 textarea_div.state = 1 << ui::AX_STATE_EDITABLE; | 1068 textarea_div.state = 1 << ui::AX_STATE_EDITABLE; |
1068 textarea_text.state = 1 << ui::AX_STATE_EDITABLE; | 1069 textarea_text.state = 1 << ui::AX_STATE_EDITABLE; |
1069 textarea.SetValue(base::UTF16ToUTF8(text)); | 1070 textarea.SetValue(base::UTF16ToUTF8(text)); |
1070 textarea_text.SetName(base::UTF16ToUTF8(text)); | 1071 textarea_text.SetName(base::UTF16ToUTF8(text)); |
| 1072 textarea.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "textarea"); |
1071 textarea.child_ids.push_back(textarea_div.id); | 1073 textarea.child_ids.push_back(textarea_div.id); |
1072 textarea_div.child_ids.push_back(textarea_text.id); | 1074 textarea_div.child_ids.push_back(textarea_text.id); |
1073 | 1075 |
1074 ui::AXNodeData textarea_line1, textarea_line2; | 1076 ui::AXNodeData textarea_line1, textarea_line2; |
1075 textarea_line1.id = 5; | 1077 textarea_line1.id = 5; |
1076 textarea_line2.id = 6; | 1078 textarea_line2.id = 6; |
1077 textarea_line1.role = ui::AX_ROLE_INLINE_TEXT_BOX; | 1079 textarea_line1.role = ui::AX_ROLE_INLINE_TEXT_BOX; |
1078 textarea_line2.role = ui::AX_ROLE_INLINE_TEXT_BOX; | 1080 textarea_line2.role = ui::AX_ROLE_INLINE_TEXT_BOX; |
1079 textarea_line1.state = 1 << ui::AX_STATE_EDITABLE; | 1081 textarea_line1.state = 1 << ui::AX_STATE_EDITABLE; |
1080 textarea_line2.state = 1 << ui::AX_STATE_EDITABLE; | 1082 textarea_line2.state = 1 << ui::AX_STATE_EDITABLE; |
(...skipping 12 matching lines...) Expand all Loading... |
1093 text_field_text.id = 9; | 1095 text_field_text.id = 9; |
1094 text_field.role = ui::AX_ROLE_TEXT_FIELD; | 1096 text_field.role = ui::AX_ROLE_TEXT_FIELD; |
1095 text_field_div.role = ui::AX_ROLE_DIV; | 1097 text_field_div.role = ui::AX_ROLE_DIV; |
1096 text_field_text.role = ui::AX_ROLE_STATIC_TEXT; | 1098 text_field_text.role = ui::AX_ROLE_STATIC_TEXT; |
1097 text_field.state = | 1099 text_field.state = |
1098 (1 << ui::AX_STATE_EDITABLE) | (1 << ui::AX_STATE_FOCUSABLE); | 1100 (1 << ui::AX_STATE_EDITABLE) | (1 << ui::AX_STATE_FOCUSABLE); |
1099 text_field_div.state = 1 << ui::AX_STATE_EDITABLE; | 1101 text_field_div.state = 1 << ui::AX_STATE_EDITABLE; |
1100 text_field_text.state = 1 << ui::AX_STATE_EDITABLE; | 1102 text_field_text.state = 1 << ui::AX_STATE_EDITABLE; |
1101 text_field.SetValue(base::UTF16ToUTF8(line1)); | 1103 text_field.SetValue(base::UTF16ToUTF8(line1)); |
1102 text_field_text.SetName(base::UTF16ToUTF8(line1)); | 1104 text_field_text.SetName(base::UTF16ToUTF8(line1)); |
| 1105 text_field.AddStringAttribute(ui::AX_ATTR_HTML_TAG, "input"); |
| 1106 text_field.html_attributes.push_back(std::make_pair("type", "text")); |
1103 text_field.child_ids.push_back(text_field_div.id); | 1107 text_field.child_ids.push_back(text_field_div.id); |
1104 text_field_div.child_ids.push_back(text_field_text.id); | 1108 text_field_div.child_ids.push_back(text_field_text.id); |
1105 | 1109 |
1106 ui::AXNodeData text_field_line; | 1110 ui::AXNodeData text_field_line; |
1107 text_field_line.id = 10; | 1111 text_field_line.id = 10; |
1108 text_field_line.role = ui::AX_ROLE_INLINE_TEXT_BOX; | 1112 text_field_line.role = ui::AX_ROLE_INLINE_TEXT_BOX; |
1109 text_field_line.state = 1 << ui::AX_STATE_EDITABLE; | 1113 text_field_line.state = 1 << ui::AX_STATE_EDITABLE; |
1110 text_field_line.SetName(base::UTF16ToUTF8(line1)); | 1114 text_field_line.SetName(base::UTF16ToUTF8(line1)); |
1111 text_field_line.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, | 1115 text_field_line.AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, |
1112 line1_word_starts); | 1116 line1_word_starts); |
(...skipping 1367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2480 std::vector<AXEventNotificationDetails> events = {event}; | 2484 std::vector<AXEventNotificationDetails> events = {event}; |
2481 manager->OnAccessibilityEvents(events); | 2485 manager->OnAccessibilityEvents(events); |
2482 | 2486 |
2483 EXPECT_HRESULT_SUCCEEDED(ax_child1->get_nRelations(&n_relations)); | 2487 EXPECT_HRESULT_SUCCEEDED(ax_child1->get_nRelations(&n_relations)); |
2484 EXPECT_EQ(2, n_relations); | 2488 EXPECT_EQ(2, n_relations); |
2485 EXPECT_HRESULT_SUCCEEDED(ax_child2->get_nRelations(&n_relations)); | 2489 EXPECT_HRESULT_SUCCEEDED(ax_child2->get_nRelations(&n_relations)); |
2486 EXPECT_EQ(2, n_relations); | 2490 EXPECT_EQ(2, n_relations); |
2487 } | 2491 } |
2488 | 2492 |
2489 } // namespace content | 2493 } // namespace content |
OLD | NEW |