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

Side by Side Diff: ui/accessibility/platform/ax_platform_node_win.cc

Issue 2909853002: Forward BrowserAccessibility get_accRole to AXPlatformNode. (Closed)
Patch Set: Add default cases to switch stmt Created 3 years, 6 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
« no previous file with comments | « ui/accessibility/platform/ax_platform_node_win.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <atlbase.h> 5 #include <atlbase.h>
6 #include <atlcom.h> 6 #include <atlcom.h>
7 #include <limits.h> 7 #include <limits.h>
8 #include <oleacc.h> 8 #include <oleacc.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 return S_OK; 492 return S_OK;
493 } 493 }
494 494
495 return S_FALSE; 495 return S_FALSE;
496 } 496 }
497 497
498 STDMETHODIMP AXPlatformNodeWin::get_accRole( 498 STDMETHODIMP AXPlatformNodeWin::get_accRole(
499 VARIANT var_id, VARIANT* role) { 499 VARIANT var_id, VARIANT* role) {
500 AXPlatformNodeWin* target; 500 AXPlatformNodeWin* target;
501 COM_OBJECT_VALIDATE_VAR_ID_1_ARG_AND_GET_TARGET(var_id, role, target); 501 COM_OBJECT_VALIDATE_VAR_ID_1_ARG_AND_GET_TARGET(var_id, role, target);
502
503 // Some MSAA roles require us to return a specific string or the html
dmazzoni 2017/05/30 15:17:34 I'd say this instead: For historical reasons, we r
dougt 2017/05/31 02:05:13 Done.
504 // element's name.
505 std::string role_string = target->StringOverrideForMSAARole();
506 if (role_string != "") {
dmazzoni 2017/05/30 15:17:34 if (!role_string.empty())
dougt 2017/05/31 02:05:14 Done.
507 role->vt = VT_BSTR;
508 std::wstring wsTmp(role_string.begin(), role_string.end());
509 role->bstrVal = SysAllocString(wsTmp.c_str());
510 return S_OK;
511 }
512
502 role->vt = VT_I4; 513 role->vt = VT_I4;
503 role->lVal = target->MSAARole(); 514 role->lVal = target->MSAARole();
504 return S_OK; 515 return S_OK;
505 } 516 }
506 517
507 STDMETHODIMP AXPlatformNodeWin::get_accState( 518 STDMETHODIMP AXPlatformNodeWin::get_accState(
508 VARIANT var_id, VARIANT* state) { 519 VARIANT var_id, VARIANT* state) {
509 AXPlatformNodeWin* target; 520 AXPlatformNodeWin* target;
510 COM_OBJECT_VALIDATE_VAR_ID_1_ARG_AND_GET_TARGET(var_id, state, target); 521 COM_OBJECT_VALIDATE_VAR_ID_1_ARG_AND_GET_TARGET(var_id, state, target);
511 state->vt = VT_I4; 522 state->vt = VT_I4;
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 return E_FAIL; 1033 return E_FAIL;
1023 } 1034 }
1024 1035
1025 // 1036 //
1026 // Private member functions. 1037 // Private member functions.
1027 // 1038 //
1028 int AXPlatformNodeWin::MSAARole() { 1039 int AXPlatformNodeWin::MSAARole() {
1029 switch (GetData().role) { 1040 switch (GetData().role) {
1030 case ui::AX_ROLE_ALERT: 1041 case ui::AX_ROLE_ALERT:
1031 return ROLE_SYSTEM_ALERT; 1042 return ROLE_SYSTEM_ALERT;
1043
1044 case ui::AX_ROLE_ALERT_DIALOG:
1045 return ROLE_SYSTEM_DIALOG;
1046
1047 case ui::AX_ROLE_ANCHOR:
1048 return ROLE_SYSTEM_LINK;
1049
1032 case ui::AX_ROLE_APPLICATION: 1050 case ui::AX_ROLE_APPLICATION:
1033 return ROLE_SYSTEM_APPLICATION; 1051 return ROLE_SYSTEM_APPLICATION;
1034 case ui::AX_ROLE_BUTTON_DROP_DOWN: 1052
1035 return ROLE_SYSTEM_BUTTONDROPDOWN; 1053 case ui::AX_ROLE_ARTICLE:
1036 case ui::AX_ROLE_POP_UP_BUTTON: 1054 return ROLE_SYSTEM_DOCUMENT;
1037 return ROLE_SYSTEM_BUTTONMENU; 1055
1038 case ui::AX_ROLE_CARET: 1056 case ui::AX_ROLE_AUDIO:
1039 return ROLE_SYSTEM_CARET; 1057 return ROLE_SYSTEM_GROUPING;
1058
1059 case ui::AX_ROLE_BANNER:
1060 return ROLE_SYSTEM_GROUPING;
1061
1062 case ui::AX_ROLE_BUSY_INDICATOR:
1063 return ROLE_SYSTEM_ANIMATION;
1064
1065 case ui::AX_ROLE_BUTTON:
1066 return ROLE_SYSTEM_PUSHBUTTON;
1067
1068 case ui::AX_ROLE_CANVAS:
1069 return ROLE_SYSTEM_GRAPHIC;
1070
1071 case ui::AX_ROLE_CAPTION:
1072 return ROLE_SYSTEM_TEXT;
1073
1074 case ui::AX_ROLE_CELL:
1075 return ROLE_SYSTEM_CELL;
1076
1040 case ui::AX_ROLE_CHECK_BOX: 1077 case ui::AX_ROLE_CHECK_BOX:
1041 return ROLE_SYSTEM_CHECKBUTTON; 1078 return ROLE_SYSTEM_CHECKBUTTON;
1079
1080 case ui::AX_ROLE_COLOR_WELL:
1081 return ROLE_SYSTEM_TEXT;
1082
1083 case ui::AX_ROLE_COLUMN:
1084 return ROLE_SYSTEM_COLUMN;
1085
1086 case ui::AX_ROLE_COLUMN_HEADER:
1087 return ROLE_SYSTEM_COLUMNHEADER;
1088
1042 case ui::AX_ROLE_COMBO_BOX: 1089 case ui::AX_ROLE_COMBO_BOX:
1043 return ROLE_SYSTEM_COMBOBOX; 1090 return ROLE_SYSTEM_COMBOBOX;
1091
1092 case ui::AX_ROLE_COMPLEMENTARY:
1093 return ROLE_SYSTEM_GROUPING;
1094
1095 case ui::AX_ROLE_CONTENT_INFO:
1096 return ROLE_SYSTEM_TEXT;
1097
1098 case ui::AX_ROLE_DATE:
1099 case ui::AX_ROLE_DATE_TIME:
1100 return ROLE_SYSTEM_DROPLIST;
1101
1102 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL:
1103 return ROLE_SYSTEM_TEXT;
1104
1105 case ui::AX_ROLE_DESCRIPTION_LIST:
1106 return ROLE_SYSTEM_LIST;
1107
1108 case ui::AX_ROLE_DESCRIPTION_LIST_TERM:
1109 return ROLE_SYSTEM_LISTITEM;
1110
1111 case ui::AX_ROLE_DETAILS:
1112 return ROLE_SYSTEM_GROUPING;
1113
1044 case ui::AX_ROLE_DIALOG: 1114 case ui::AX_ROLE_DIALOG:
1045 return ROLE_SYSTEM_DIALOG; 1115 return ROLE_SYSTEM_DIALOG;
1116
1117 case ui::AX_ROLE_DISCLOSURE_TRIANGLE:
1118 return ROLE_SYSTEM_PUSHBUTTON;
1119
1120 case ui::AX_ROLE_DOCUMENT:
1121 case ui::AX_ROLE_ROOT_WEB_AREA:
1122 case ui::AX_ROLE_WEB_AREA:
1123 return ROLE_SYSTEM_DOCUMENT;
1124
1125 case ui::AX_ROLE_EMBEDDED_OBJECT:
1126 if (delegate_->GetChildCount()) {
1127 return ROLE_SYSTEM_GROUPING;
1128 } else {
1129 return ROLE_SYSTEM_CLIENT;
1130 }
1131
1132 case ui::AX_ROLE_FIGURE:
1133 return ROLE_SYSTEM_GROUPING;
1134
1135 case ui::AX_ROLE_FEED:
1136 return ROLE_SYSTEM_GROUPING;
1137
1046 case ui::AX_ROLE_GENERIC_CONTAINER: 1138 case ui::AX_ROLE_GENERIC_CONTAINER:
1047 return ROLE_SYSTEM_GROUPING; 1139 return ROLE_SYSTEM_GROUPING;
1140
1141 case ui::AX_ROLE_GRID:
1142 return ROLE_SYSTEM_TABLE;
1143
1048 case ui::AX_ROLE_GROUP: 1144 case ui::AX_ROLE_GROUP:
1049 return ROLE_SYSTEM_GROUPING; 1145 return ROLE_SYSTEM_GROUPING;
1146
1147 case ui::AX_ROLE_HEADING:
1148 return ROLE_SYSTEM_GROUPING;
1149
1150 case ui::AX_ROLE_IFRAME:
1151 return ROLE_SYSTEM_DOCUMENT;
1152
1153 case ui::AX_ROLE_IFRAME_PRESENTATIONAL:
1154 return ROLE_SYSTEM_GROUPING;
1155
1050 case ui::AX_ROLE_IMAGE: 1156 case ui::AX_ROLE_IMAGE:
1051 return ROLE_SYSTEM_GRAPHIC; 1157 return ROLE_SYSTEM_GRAPHIC;
1158
1159 case ui::AX_ROLE_IMAGE_MAP_LINK:
1160 return ROLE_SYSTEM_LINK;
1161
1162 case ui::AX_ROLE_INPUT_TIME:
1163 return ROLE_SYSTEM_GROUPING;
1164
1165 case ui::AX_ROLE_LABEL_TEXT:
1166 case ui::AX_ROLE_LEGEND:
1167 return ROLE_SYSTEM_TEXT;
1168
1052 case ui::AX_ROLE_LINK: 1169 case ui::AX_ROLE_LINK:
1053 return ROLE_SYSTEM_LINK; 1170 return ROLE_SYSTEM_LINK;
1054 case ui::AX_ROLE_LOCATION_BAR: 1171
1055 return ROLE_SYSTEM_GROUPING; 1172 case ui::AX_ROLE_LIST:
1173 return ROLE_SYSTEM_LIST;
1174
1175 case ui::AX_ROLE_LIST_BOX:
1176 return ROLE_SYSTEM_LIST;
1177
1178 case ui::AX_ROLE_LIST_BOX_OPTION:
1179 return ROLE_SYSTEM_LISTITEM;
1180
1181 case ui::AX_ROLE_LIST_ITEM:
1182 return ROLE_SYSTEM_LISTITEM;
1183
1184 case ui::AX_ROLE_MAIN:
1185 return ROLE_SYSTEM_GROUPING;
1186
1187 case ui::AX_ROLE_MARK:
1188 return ROLE_SYSTEM_TEXT;
1189
1190 case ui::AX_ROLE_MARQUEE:
1191 return ROLE_SYSTEM_ANIMATION;
1192
1193 case ui::AX_ROLE_MATH:
1194 return ROLE_SYSTEM_EQUATION;
1195
1196 case ui::AX_ROLE_MENU:
1197 case ui::AX_ROLE_MENU_BUTTON:
1198 return ROLE_SYSTEM_MENUPOPUP;
1199
1056 case ui::AX_ROLE_MENU_BAR: 1200 case ui::AX_ROLE_MENU_BAR:
1057 return ROLE_SYSTEM_MENUBAR; 1201 return ROLE_SYSTEM_MENUBAR;
1202
1058 case ui::AX_ROLE_MENU_ITEM: 1203 case ui::AX_ROLE_MENU_ITEM:
1059 return ROLE_SYSTEM_MENUITEM; 1204 return ROLE_SYSTEM_MENUITEM;
1205
1206 case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
1207 return ROLE_SYSTEM_MENUITEM;
1208
1209 case ui::AX_ROLE_MENU_ITEM_RADIO:
1210 return ROLE_SYSTEM_MENUITEM;
1211
1060 case ui::AX_ROLE_MENU_LIST_POPUP: 1212 case ui::AX_ROLE_MENU_LIST_POPUP:
1061 return ROLE_SYSTEM_MENUPOPUP; 1213 return ROLE_SYSTEM_LIST;
1214
1215 case ui::AX_ROLE_MENU_LIST_OPTION:
1216 return ROLE_SYSTEM_LISTITEM;
1217
1218 case ui::AX_ROLE_NAVIGATION:
1219 return ROLE_SYSTEM_GROUPING;
1220
1221 case ui::AX_ROLE_NOTE:
1222 return ROLE_SYSTEM_GROUPING;
1223
1224 case ui::AX_ROLE_OUTLINE:
1225 return ROLE_SYSTEM_OUTLINE;
1226
1227 case ui::AX_ROLE_POP_UP_BUTTON: {
1228 std::string html_tag = GetData().GetStringAttribute(ui::AX_ATTR_HTML_TAG);
1229 if (html_tag == "select")
1230 return ROLE_SYSTEM_COMBOBOX;
1231 return ROLE_SYSTEM_BUTTONMENU;
1232 }
1233 case ui::AX_ROLE_PRE:
1234 return ROLE_SYSTEM_TEXT;
1235
1236 case ui::AX_ROLE_PROGRESS_INDICATOR:
1237 return ROLE_SYSTEM_PROGRESSBAR;
1238
1239 case ui::AX_ROLE_RADIO_BUTTON:
1240 return ROLE_SYSTEM_RADIOBUTTON;
1241
1242 case ui::AX_ROLE_RADIO_GROUP:
1243 return ROLE_SYSTEM_GROUPING;
1244
1245 case ui::AX_ROLE_REGION: {
1246 std::string html_tag = GetData().GetStringAttribute(ui::AX_ATTR_HTML_TAG);
1247 if (html_tag == "section")
1248 return ROLE_SYSTEM_GROUPING;
1249 return ROLE_SYSTEM_PANE;
1250 }
1251
1252 case ui::AX_ROLE_ROW: {
1253 // Role changes depending on whether row is inside a treegrid
1254 // https://www.w3.org/TR/core-aam-1.1/#role-map-row
1255 auto* container = FromNativeViewAccessible(GetParent());
1256 if (container && container->GetData().role == ui::AX_ROLE_GROUP) {
1257 // If parent was a rowgroup, we need to look at the grandparent
1258 container = FromNativeViewAccessible(container->GetParent());
1259 }
1260
1261 if (!container)
1262 return ROLE_SYSTEM_ROW;
1263
1264 return ROLE_SYSTEM_OUTLINEITEM;
1265 }
1266
1267 case ui::AX_ROLE_ROW_HEADER:
1268 return ROLE_SYSTEM_ROWHEADER;
1269
1270 case ui::AX_ROLE_RUBY:
1271 return ROLE_SYSTEM_TEXT;
1272
1273 case ui::AX_ROLE_RULER:
1274 return ROLE_SYSTEM_CLIENT;
1275
1276 case ui::AX_ROLE_SCROLL_AREA:
1277 return ROLE_SYSTEM_CLIENT;
1278
1279 case ui::AX_ROLE_SCROLL_BAR:
1280 return ROLE_SYSTEM_SCROLLBAR;
1281
1282 case ui::AX_ROLE_SEARCH:
1283 return ROLE_SYSTEM_GROUPING;
1284
1285 case ui::AX_ROLE_SLIDER:
1286 return ROLE_SYSTEM_SLIDER;
1287
1288 case ui::AX_ROLE_SPIN_BUTTON:
1289 return ROLE_SYSTEM_SPINBUTTON;
1290
1291 case ui::AX_ROLE_SPIN_BUTTON_PART:
1292 return ROLE_SYSTEM_PUSHBUTTON;
1293
1294 case ui::AX_ROLE_ANNOTATION:
1295 case ui::AX_ROLE_LIST_MARKER:
1296 case ui::AX_ROLE_STATIC_TEXT:
1297 return ROLE_SYSTEM_STATICTEXT;
1298
1299 case ui::AX_ROLE_STATUS:
1300 return ROLE_SYSTEM_STATUSBAR;
1301
1302 case ui::AX_ROLE_SPLITTER:
1303 return ROLE_SYSTEM_SEPARATOR;
1304
1305 case ui::AX_ROLE_SVG_ROOT:
1306 return ROLE_SYSTEM_GRAPHIC;
1307
1308 case ui::AX_ROLE_TAB:
1309 return ROLE_SYSTEM_PAGETAB;
1310
1311 case ui::AX_ROLE_TABLE:
1312 return ROLE_SYSTEM_TABLE;
1313
1314 case ui::AX_ROLE_TABLE_HEADER_CONTAINER:
1315 return ROLE_SYSTEM_GROUPING;
1316
1317 case ui::AX_ROLE_TAB_LIST:
1318 return ROLE_SYSTEM_PAGETABLIST;
1319
1320 case ui::AX_ROLE_TAB_PANEL:
1321 return ROLE_SYSTEM_PROPERTYPAGE;
1322
1323 case ui::AX_ROLE_TERM:
1324 return ROLE_SYSTEM_LISTITEM;
1325
1326 case ui::AX_ROLE_TOGGLE_BUTTON:
1327 return ROLE_SYSTEM_PUSHBUTTON;
1328
1329 case ui::AX_ROLE_TEXT_FIELD:
1330 case ui::AX_ROLE_SEARCH_BOX:
1331 return ROLE_SYSTEM_TEXT;
1332
1333 case ui::AX_ROLE_ABBR:
1334 case ui::AX_ROLE_TIME:
1335 return ROLE_SYSTEM_TEXT;
1336
1337 case ui::AX_ROLE_TIMER:
1338 return ROLE_SYSTEM_CLOCK;
1339
1340 case ui::AX_ROLE_TOOLBAR:
1341 return ROLE_SYSTEM_TOOLBAR;
1342
1343 case ui::AX_ROLE_TOOLTIP:
1344 return ROLE_SYSTEM_TOOLTIP;
1345
1062 case ui::AX_ROLE_TREE: 1346 case ui::AX_ROLE_TREE:
1063 return ROLE_SYSTEM_OUTLINE; 1347 return ROLE_SYSTEM_OUTLINE;
1348
1349 case ui::AX_ROLE_TREE_GRID:
1350 return ROLE_SYSTEM_OUTLINE;
1351
1064 case ui::AX_ROLE_TREE_ITEM: 1352 case ui::AX_ROLE_TREE_ITEM:
1065 return ROLE_SYSTEM_OUTLINEITEM; 1353 return ROLE_SYSTEM_OUTLINEITEM;
1066 case ui::AX_ROLE_TAB: 1354
1067 return ROLE_SYSTEM_PAGETAB; 1355 case ui::AX_ROLE_LINE_BREAK:
1068 case ui::AX_ROLE_TAB_LIST: 1356 return ROLE_SYSTEM_WHITESPACE;
1069 return ROLE_SYSTEM_PAGETABLIST; 1357
1070 case ui::AX_ROLE_PANE: 1358 case ui::AX_ROLE_VIDEO:
1071 return ROLE_SYSTEM_PANE; 1359 return ROLE_SYSTEM_GROUPING;
1072 case ui::AX_ROLE_PROGRESS_INDICATOR: 1360
1073 return ROLE_SYSTEM_PROGRESSBAR;
1074 case ui::AX_ROLE_BUTTON:
1075 return ROLE_SYSTEM_PUSHBUTTON;
1076 case ui::AX_ROLE_RADIO_BUTTON:
1077 return ROLE_SYSTEM_RADIOBUTTON;
1078 case ui::AX_ROLE_SCROLL_BAR:
1079 return ROLE_SYSTEM_SCROLLBAR;
1080 case ui::AX_ROLE_SPLITTER:
1081 return ROLE_SYSTEM_SEPARATOR;
1082 case ui::AX_ROLE_SLIDER:
1083 return ROLE_SYSTEM_SLIDER;
1084 case ui::AX_ROLE_STATIC_TEXT:
1085 return ROLE_SYSTEM_STATICTEXT;
1086 case ui::AX_ROLE_TEXT_FIELD:
1087 return ROLE_SYSTEM_TEXT;
1088 case ui::AX_ROLE_TITLE_BAR:
1089 return ROLE_SYSTEM_TITLEBAR;
1090 case ui::AX_ROLE_TOOLBAR:
1091 return ROLE_SYSTEM_TOOLBAR;
1092 case ui::AX_ROLE_WEB_VIEW:
1093 return ROLE_SYSTEM_GROUPING;
1094 case ui::AX_ROLE_WINDOW: 1361 case ui::AX_ROLE_WINDOW:
1095 return ROLE_SYSTEM_WINDOW; 1362 return ROLE_SYSTEM_WINDOW;
1096 case ui::AX_ROLE_CLIENT: 1363
1364 // TODO(dmazzoni): figure out the proper MSAA role for roles not called out
1365 // here.
1097 default: 1366 default:
1098 // This is the default role for MSAA.
1099 return ROLE_SYSTEM_CLIENT; 1367 return ROLE_SYSTEM_CLIENT;
1100 } 1368 }
1101 } 1369 }
1102 1370
1371 std::string AXPlatformNodeWin::StringOverrideForMSAARole() {
1372 std::string html_tag = GetData().GetStringAttribute(ui::AX_ATTR_HTML_TAG);
1373
1374 switch (GetData().role) {
1375 case ui::AX_ROLE_BLOCKQUOTE:
1376 case ui::AX_ROLE_DEFINITION:
1377 case ui::AX_ROLE_IMAGE_MAP:
1378 return html_tag;
1379
1380 case ui::AX_ROLE_CANVAS:
1381 if (GetData().GetBoolAttribute(ui::AX_ATTR_CANVAS_HAS_FALLBACK)) {
1382 // TODO(dougt) why not just use the html_tag?
dmazzoni 2017/05/30 15:17:34 I'm fine with html_tag
1383 return "canvas";
1384 }
1385 break;
1386
1387 case ui::AX_ROLE_FORM:
1388 // TODO(dougt) why not just use the html_tag?
dmazzoni 2017/05/30 15:17:34 This could be <div role="form">
1389 return "form";
1390
1391 case ui::AX_ROLE_HEADING:
1392 if (!html_tag.empty())
1393 return html_tag;
1394 break;
1395
1396 case ui::AX_ROLE_PARAGRAPH:
1397 // TODO(dougt) why not just use the html_tag and why upper case?
dmazzoni 2017/05/30 15:17:34 I'm fine with html_tag
1398 return "P";
1399
1400 case ui::AX_ROLE_GENERIC_CONTAINER:
1401 // TODO(dougt) why can't we always use div in this case?
1402 if (html_tag.empty())
1403 return "div";
1404 return html_tag;
1405
1406 case ui::AX_ROLE_SWITCH:
1407 return "switch";
1408
1409 default:
1410 return "";
1411 }
1412
1413 return "";
1414 }
1415
1103 int AXPlatformNodeWin::MSAAState() { 1416 int AXPlatformNodeWin::MSAAState() {
1104 const AXNodeData& data = GetData(); 1417 const AXNodeData& data = GetData();
1105 const uint32_t state = data.state; 1418 const uint32_t state = data.state;
1106 1419
1107 int msaa_state = 0; 1420 int msaa_state = 0;
1108 if (state & (1 << ui::AX_STATE_COLLAPSED)) 1421 if (state & (1 << ui::AX_STATE_COLLAPSED))
1109 msaa_state |= STATE_SYSTEM_COLLAPSED; 1422 msaa_state |= STATE_SYSTEM_COLLAPSED;
1110 if (state & (1 << ui::AX_STATE_DEFAULT)) 1423 if (state & (1 << ui::AX_STATE_DEFAULT))
1111 msaa_state |= STATE_SYSTEM_DEFAULT; 1424 msaa_state |= STATE_SYSTEM_DEFAULT;
1112 if (state & (1 << ui::AX_STATE_EXPANDED)) 1425 if (state & (1 << ui::AX_STATE_EXPANDED))
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 1604
1292 AXPlatformNodeBase* base = 1605 AXPlatformNodeBase* base =
1293 FromNativeViewAccessible(node->GetNativeViewAccessible()); 1606 FromNativeViewAccessible(node->GetNativeViewAccessible());
1294 if (base && !IsDescendant(base)) 1607 if (base && !IsDescendant(base))
1295 base = nullptr; 1608 base = nullptr;
1296 1609
1297 return static_cast<AXPlatformNodeWin*>(base); 1610 return static_cast<AXPlatformNodeWin*>(base);
1298 } 1611 }
1299 1612
1300 } // namespace ui 1613 } // namespace ui
OLDNEW
« no previous file with comments | « ui/accessibility/platform/ax_platform_node_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698