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

Side by Side Diff: chrome/browser/accessibility/browser_accessibility_win.cc

Issue 6372012: Map a few more WebKit roles to MSAA roles - thanks to Charles... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/accessibility/browser_accessibility_win.h" 5 #include "chrome/browser/accessibility/browser_accessibility_win.h"
6 6
7 #include "base/string_number_conversions.h" 7 #include "base/string_number_conversions.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/accessibility/browser_accessibility_manager_win.h" 10 #include "chrome/browser/accessibility/browser_accessibility_manager_win.h"
(...skipping 1306 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 case WebAccessibility::ROLE_ALERT_DIALOG: 1317 case WebAccessibility::ROLE_ALERT_DIALOG:
1318 ia_role_ = ROLE_SYSTEM_ALERT; 1318 ia_role_ = ROLE_SYSTEM_ALERT;
1319 break; 1319 break;
1320 case WebAccessibility::ROLE_APPLICATION: 1320 case WebAccessibility::ROLE_APPLICATION:
1321 ia_role_ = ROLE_SYSTEM_APPLICATION; 1321 ia_role_ = ROLE_SYSTEM_APPLICATION;
1322 break; 1322 break;
1323 case WebAccessibility::ROLE_ARTICLE: 1323 case WebAccessibility::ROLE_ARTICLE:
1324 ia_role_ = ROLE_SYSTEM_GROUPING; 1324 ia_role_ = ROLE_SYSTEM_GROUPING;
1325 ia2_role_ = IA2_ROLE_SECTION; 1325 ia2_role_ = IA2_ROLE_SECTION;
1326 break; 1326 break;
1327 case WebAccessibility::ROLE_BUSY_INDICATOR:
1328 ia_role_ = ROLE_SYSTEM_ANIMATION;
1329 break;
1327 case WebAccessibility::ROLE_BUTTON: 1330 case WebAccessibility::ROLE_BUTTON:
1328 ia_role_ = ROLE_SYSTEM_PUSHBUTTON; 1331 ia_role_ = ROLE_SYSTEM_PUSHBUTTON;
1329 break; 1332 break;
1330 case WebAccessibility::ROLE_CELL: 1333 case WebAccessibility::ROLE_CELL:
1331 ia_role_ = ROLE_SYSTEM_CELL; 1334 ia_role_ = ROLE_SYSTEM_CELL;
1332 break; 1335 break;
1333 case WebAccessibility::ROLE_CHECKBOX: 1336 case WebAccessibility::ROLE_CHECKBOX:
1334 ia_role_ = ROLE_SYSTEM_CHECKBUTTON; 1337 ia_role_ = ROLE_SYSTEM_CHECKBUTTON;
1335 break; 1338 break;
1336 case WebAccessibility::ROLE_COLOR_WELL: 1339 case WebAccessibility::ROLE_COLOR_WELL:
(...skipping 12 matching lines...) Expand all
1349 case WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION: 1352 case WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION:
1350 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_); 1353 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
1351 ia2_role_ = IA2_ROLE_PARAGRAPH; 1354 ia2_role_ = IA2_ROLE_PARAGRAPH;
1352 break; 1355 break;
1353 case WebAccessibility::ROLE_DEFINITION_LIST_TERM: 1356 case WebAccessibility::ROLE_DEFINITION_LIST_TERM:
1354 ia_role_ = ROLE_SYSTEM_LISTITEM; 1357 ia_role_ = ROLE_SYSTEM_LISTITEM;
1355 break; 1358 break;
1356 case WebAccessibility::ROLE_DIALOG: 1359 case WebAccessibility::ROLE_DIALOG:
1357 ia_role_ = ROLE_SYSTEM_DIALOG; 1360 ia_role_ = ROLE_SYSTEM_DIALOG;
1358 break; 1361 break;
1362 case WebAccessibility::ROLE_DISCLOSURE_TRIANGLE:
1363 ia_role_ = ROLE_SYSTEM_OUTLINEBUTTON;
1364 break;
1359 case WebAccessibility::ROLE_DOCUMENT: 1365 case WebAccessibility::ROLE_DOCUMENT:
1360 case WebAccessibility::ROLE_WEB_AREA: 1366 case WebAccessibility::ROLE_WEB_AREA:
1361 ia_role_ = ROLE_SYSTEM_DOCUMENT; 1367 ia_role_ = ROLE_SYSTEM_DOCUMENT;
1362 ia_state_|= STATE_SYSTEM_READONLY; 1368 ia_state_|= STATE_SYSTEM_READONLY;
1363 ia_state_|= STATE_SYSTEM_FOCUSABLE; 1369 ia_state_|= STATE_SYSTEM_FOCUSABLE;
1364 break; 1370 break;
1365 case WebAccessibility::ROLE_EDITABLE_TEXT: 1371 case WebAccessibility::ROLE_EDITABLE_TEXT:
1366 ia_role_ = ROLE_SYSTEM_TEXT; 1372 ia_role_ = ROLE_SYSTEM_TEXT;
1367 ia2_state_ |= IA2_STATE_SINGLE_LINE; 1373 ia2_state_ |= IA2_STATE_SINGLE_LINE;
1368 ia2_state_ |= IA2_STATE_EDITABLE; 1374 ia2_state_ |= IA2_STATE_EDITABLE;
1369 break; 1375 break;
1370 case WebAccessibility::ROLE_GRID: 1376 case WebAccessibility::ROLE_GRID:
1371 ia_role_ = ROLE_SYSTEM_TABLE; 1377 ia_role_ = ROLE_SYSTEM_TABLE;
1372 break; 1378 break;
1373 case WebAccessibility::ROLE_GROUP: 1379 case WebAccessibility::ROLE_GROUP:
1374 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_); 1380 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
1375 if (role_name_.empty()) 1381 if (role_name_.empty())
1376 role_name_ = L"div"; 1382 role_name_ = L"div";
1377 ia2_role_ = IA2_ROLE_SECTION; 1383 ia2_role_ = IA2_ROLE_SECTION;
1378 break; 1384 break;
1385 case WebAccessibility::ROLE_GROW_AREA:
1386 ia_role_ = ROLE_SYSTEM_GRIP;
1387 break;
1379 case WebAccessibility::ROLE_HEADING: 1388 case WebAccessibility::ROLE_HEADING:
1380 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_); 1389 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
1381 ia2_role_ = IA2_ROLE_HEADING; 1390 ia2_role_ = IA2_ROLE_HEADING;
1382 break; 1391 break;
1383 case WebAccessibility::ROLE_IMAGE: 1392 case WebAccessibility::ROLE_IMAGE:
1384 ia_role_ = ROLE_SYSTEM_GRAPHIC; 1393 ia_role_ = ROLE_SYSTEM_GRAPHIC;
1385 break; 1394 break;
1386 case WebAccessibility::ROLE_IMAGE_MAP: 1395 case WebAccessibility::ROLE_IMAGE_MAP:
1387 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_); 1396 GetAttribute(WebAccessibility::ATTR_HTML_TAG, &role_name_);
1388 ia2_role_ = IA2_ROLE_IMAGE_MAP; 1397 ia2_role_ = IA2_ROLE_IMAGE_MAP;
(...skipping 21 matching lines...) Expand all
1410 ia_role_ = ROLE_SYSTEM_LIST; 1419 ia_role_ = ROLE_SYSTEM_LIST;
1411 break; 1420 break;
1412 case WebAccessibility::ROLE_LISTBOX: 1421 case WebAccessibility::ROLE_LISTBOX:
1413 ia_role_ = ROLE_SYSTEM_LIST; 1422 ia_role_ = ROLE_SYSTEM_LIST;
1414 break; 1423 break;
1415 case WebAccessibility::ROLE_LISTBOX_OPTION: 1424 case WebAccessibility::ROLE_LISTBOX_OPTION:
1416 case WebAccessibility::ROLE_LIST_ITEM: 1425 case WebAccessibility::ROLE_LIST_ITEM:
1417 case WebAccessibility::ROLE_LIST_MARKER: 1426 case WebAccessibility::ROLE_LIST_MARKER:
1418 ia_role_ = ROLE_SYSTEM_LISTITEM; 1427 ia_role_ = ROLE_SYSTEM_LISTITEM;
1419 break; 1428 break;
1429 case WebAccessibility::ROLE_MATH:
1430 ia_role_ = ROLE_SYSTEM_EQUATION;
1431 break;
1420 case WebAccessibility::ROLE_MENU: 1432 case WebAccessibility::ROLE_MENU:
1421 case WebAccessibility::ROLE_MENU_BUTTON: 1433 case WebAccessibility::ROLE_MENU_BUTTON:
1422 ia_role_ = ROLE_SYSTEM_MENUPOPUP; 1434 ia_role_ = ROLE_SYSTEM_MENUPOPUP;
1423 break; 1435 break;
1424 case WebAccessibility::ROLE_MENU_BAR: 1436 case WebAccessibility::ROLE_MENU_BAR:
1425 ia_role_ = ROLE_SYSTEM_MENUBAR; 1437 ia_role_ = ROLE_SYSTEM_MENUBAR;
1426 break; 1438 break;
1427 case WebAccessibility::ROLE_MENU_ITEM: 1439 case WebAccessibility::ROLE_MENU_ITEM:
1428 case WebAccessibility::ROLE_MENU_LIST_OPTION: 1440 case WebAccessibility::ROLE_MENU_LIST_OPTION:
1429 ia_role_ = ROLE_SYSTEM_MENUITEM; 1441 ia_role_ = ROLE_SYSTEM_MENUITEM;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 ia_role_ = ROLE_SYSTEM_CLIENT; 1491 ia_role_ = ROLE_SYSTEM_CLIENT;
1480 ia2_role_ = IA2_ROLE_SPLIT_PANE; 1492 ia2_role_ = IA2_ROLE_SPLIT_PANE;
1481 break; 1493 break;
1482 case WebAccessibility::ROLE_ANNOTATION: 1494 case WebAccessibility::ROLE_ANNOTATION:
1483 case WebAccessibility::ROLE_STATIC_TEXT: 1495 case WebAccessibility::ROLE_STATIC_TEXT:
1484 ia_role_ = ROLE_SYSTEM_TEXT; 1496 ia_role_ = ROLE_SYSTEM_TEXT;
1485 break; 1497 break;
1486 case WebAccessibility::ROLE_STATUS: 1498 case WebAccessibility::ROLE_STATUS:
1487 ia_role_ = ROLE_SYSTEM_STATUSBAR; 1499 ia_role_ = ROLE_SYSTEM_STATUSBAR;
1488 break; 1500 break;
1501 case WebAccessibility::ROLE_SPLITTER:
1502 ia_role_ = ROLE_SYSTEM_SEPARATOR;
1503 break;
1489 case WebAccessibility::ROLE_TAB: 1504 case WebAccessibility::ROLE_TAB:
1490 ia_role_ = ROLE_SYSTEM_PAGETAB; 1505 ia_role_ = ROLE_SYSTEM_PAGETAB;
1491 break; 1506 break;
1492 case WebAccessibility::ROLE_TABLE: 1507 case WebAccessibility::ROLE_TABLE:
1493 ia_role_ = ROLE_SYSTEM_TABLE; 1508 ia_role_ = ROLE_SYSTEM_TABLE;
1494 break; 1509 break;
1495 case WebAccessibility::ROLE_TABLE_HEADER_CONTAINER: 1510 case WebAccessibility::ROLE_TABLE_HEADER_CONTAINER:
1496 ia_role_ = ROLE_SYSTEM_GROUPING; 1511 ia_role_ = ROLE_SYSTEM_GROUPING;
1497 ia2_role_ = IA2_ROLE_SECTION; 1512 ia2_role_ = IA2_ROLE_SECTION;
1498 break; 1513 break;
1499 case WebAccessibility::ROLE_TAB_GROUP: 1514 case WebAccessibility::ROLE_TAB_GROUP:
1500 case WebAccessibility::ROLE_TAB_LIST: 1515 case WebAccessibility::ROLE_TAB_LIST:
1501 case WebAccessibility::ROLE_TAB_PANEL: 1516 case WebAccessibility::ROLE_TAB_PANEL:
1502 ia_role_ = ROLE_SYSTEM_PAGETABLIST; 1517 ia_role_ = ROLE_SYSTEM_PAGETABLIST;
1503 break; 1518 break;
1504 case WebAccessibility::ROLE_TEXTAREA: 1519 case WebAccessibility::ROLE_TEXTAREA:
1505 ia_role_ = ROLE_SYSTEM_TEXT; 1520 ia_role_ = ROLE_SYSTEM_TEXT;
1506 ia2_state_ |= IA2_STATE_MULTI_LINE; 1521 ia2_state_ |= IA2_STATE_MULTI_LINE;
1507 ia2_state_ |= IA2_STATE_EDITABLE; 1522 ia2_state_ |= IA2_STATE_EDITABLE;
1508 break; 1523 break;
1509 case WebAccessibility::ROLE_TEXT_FIELD: 1524 case WebAccessibility::ROLE_TEXT_FIELD:
1510 ia_role_ = ROLE_SYSTEM_TEXT; 1525 ia_role_ = ROLE_SYSTEM_TEXT;
1511 ia2_state_ |= IA2_STATE_SINGLE_LINE; 1526 ia2_state_ |= IA2_STATE_SINGLE_LINE;
1512 ia2_state_ |= IA2_STATE_EDITABLE; 1527 ia2_state_ |= IA2_STATE_EDITABLE;
1513 break; 1528 break;
1529 case WebAccessibility::ROLE_TIMER:
1530 ia_role_ = ROLE_SYSTEM_CLOCK;
1531 break;
1514 case WebAccessibility::ROLE_TOOLBAR: 1532 case WebAccessibility::ROLE_TOOLBAR:
1515 ia_role_ = ROLE_SYSTEM_TOOLBAR; 1533 ia_role_ = ROLE_SYSTEM_TOOLBAR;
1516 break; 1534 break;
1517 case WebAccessibility::ROLE_TOOLTIP: 1535 case WebAccessibility::ROLE_TOOLTIP:
1518 ia_role_ = ROLE_SYSTEM_TOOLTIP; 1536 ia_role_ = ROLE_SYSTEM_TOOLTIP;
1519 break; 1537 break;
1520 case WebAccessibility::ROLE_TREE: 1538 case WebAccessibility::ROLE_TREE:
1521 ia_role_ = ROLE_SYSTEM_OUTLINE; 1539 ia_role_ = ROLE_SYSTEM_OUTLINE;
1522 break; 1540 break;
1523 case WebAccessibility::ROLE_TREE_GRID: 1541 case WebAccessibility::ROLE_TREE_GRID:
1524 ia_role_ = ROLE_SYSTEM_OUTLINE; 1542 ia_role_ = ROLE_SYSTEM_OUTLINE;
1525 break; 1543 break;
1526 case WebAccessibility::ROLE_TREE_ITEM: 1544 case WebAccessibility::ROLE_TREE_ITEM:
1527 ia_role_ = ROLE_SYSTEM_OUTLINEITEM; 1545 ia_role_ = ROLE_SYSTEM_OUTLINEITEM;
1528 break; 1546 break;
1529 case WebAccessibility::ROLE_WINDOW: 1547 case WebAccessibility::ROLE_WINDOW:
1530 ia_role_ = ROLE_SYSTEM_WINDOW; 1548 ia_role_ = ROLE_SYSTEM_WINDOW;
1531 break; 1549 break;
1532 1550
1533 // TODO(dmazzoni): figure out the proper MSAA role for all of these. 1551 // TODO(dmazzoni): figure out the proper MSAA role for all of these.
1534 case WebAccessibility::ROLE_BROWSER: 1552 case WebAccessibility::ROLE_BROWSER:
1535 case WebAccessibility::ROLE_BUSY_INDICATOR:
1536 case WebAccessibility::ROLE_DIRECTORY: 1553 case WebAccessibility::ROLE_DIRECTORY:
1537 case WebAccessibility::ROLE_DISCLOSURE_TRIANGLE:
1538 case WebAccessibility::ROLE_DRAWER: 1554 case WebAccessibility::ROLE_DRAWER:
1539 case WebAccessibility::ROLE_GROW_AREA:
1540 case WebAccessibility::ROLE_HELP_TAG: 1555 case WebAccessibility::ROLE_HELP_TAG:
1541 case WebAccessibility::ROLE_IGNORED: 1556 case WebAccessibility::ROLE_IGNORED:
1542 case WebAccessibility::ROLE_INCREMENTOR: 1557 case WebAccessibility::ROLE_INCREMENTOR:
1543 case WebAccessibility::ROLE_LOG: 1558 case WebAccessibility::ROLE_LOG:
1544 case WebAccessibility::ROLE_MARQUEE: 1559 case WebAccessibility::ROLE_MARQUEE:
1545 case WebAccessibility::ROLE_MATH:
1546 case WebAccessibility::ROLE_MATTE: 1560 case WebAccessibility::ROLE_MATTE:
1547 case WebAccessibility::ROLE_RULER_MARKER: 1561 case WebAccessibility::ROLE_RULER_MARKER:
1548 case WebAccessibility::ROLE_SHEET: 1562 case WebAccessibility::ROLE_SHEET:
1549 case WebAccessibility::ROLE_SLIDER_THUMB: 1563 case WebAccessibility::ROLE_SLIDER_THUMB:
1550 case WebAccessibility::ROLE_SPLITTER:
1551 case WebAccessibility::ROLE_SYSTEM_WIDE: 1564 case WebAccessibility::ROLE_SYSTEM_WIDE:
1552 case WebAccessibility::ROLE_TIMER:
1553 case WebAccessibility::ROLE_VALUE_INDICATOR: 1565 case WebAccessibility::ROLE_VALUE_INDICATOR:
1554 default: 1566 default:
1555 ia_role_ = ROLE_SYSTEM_CLIENT; 1567 ia_role_ = ROLE_SYSTEM_CLIENT;
1556 break; 1568 break;
1557 } 1569 }
1558 1570
1559 // The role should always be set. 1571 // The role should always be set.
1560 DCHECK(!role_name_.empty() || ia_role_); 1572 DCHECK(!role_name_.empty() || ia_role_);
1561 1573
1562 // If we didn't explicitly set the IAccessible2 role, make it the same 1574 // If we didn't explicitly set the IAccessible2 role, make it the same
1563 // as the MSAA role. 1575 // as the MSAA role.
1564 if (!ia2_role_) 1576 if (!ia2_role_)
1565 ia2_role_ = ia_role_; 1577 ia2_role_ = ia_role_;
1566 } 1578 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698