OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |