| 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 <UIAutomationClient.h> | 7 #include <UIAutomationClient.h> |
| 8 #include <UIAutomationCoreApi.h> | 8 #include <UIAutomationCoreApi.h> |
| 9 | 9 |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 3421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3432 ia_role_ = ROLE_SYSTEM_COLUMN; | 3432 ia_role_ = ROLE_SYSTEM_COLUMN; |
| 3433 ia_state_ |= STATE_SYSTEM_READONLY; | 3433 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3434 break; | 3434 break; |
| 3435 case ui::AX_ROLE_COLUMN_HEADER: | 3435 case ui::AX_ROLE_COLUMN_HEADER: |
| 3436 ia_role_ = ROLE_SYSTEM_COLUMNHEADER; | 3436 ia_role_ = ROLE_SYSTEM_COLUMNHEADER; |
| 3437 ia_state_ |= STATE_SYSTEM_READONLY; | 3437 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3438 break; | 3438 break; |
| 3439 case ui::AX_ROLE_COMBO_BOX: | 3439 case ui::AX_ROLE_COMBO_BOX: |
| 3440 ia_role_ = ROLE_SYSTEM_COMBOBOX; | 3440 ia_role_ = ROLE_SYSTEM_COMBOBOX; |
| 3441 break; | 3441 break; |
| 3442 case ui::AX_ROLE_COMPLEMENTARY: |
| 3443 ia_role_ = ROLE_SYSTEM_GROUPING; |
| 3444 ia2_role_ = IA2_ROLE_NOTE; |
| 3445 break; |
| 3446 case ui::AX_ROLE_CONTENT_INFO: |
| 3447 ia_role_ = ROLE_SYSTEM_TEXT; |
| 3448 ia2_role_ = IA2_ROLE_PARAGRAPH; |
| 3449 break; |
| 3442 case ui::AX_ROLE_DIV: | 3450 case ui::AX_ROLE_DIV: |
| 3443 role_name_ = L"div"; | 3451 role_name_ = L"div"; |
| 3444 ia2_role_ = IA2_ROLE_SECTION; | 3452 ia2_role_ = IA2_ROLE_SECTION; |
| 3445 break; | 3453 break; |
| 3446 case ui::AX_ROLE_DEFINITION: | 3454 case ui::AX_ROLE_DEFINITION: |
| 3447 role_name_ = html_tag; | 3455 role_name_ = html_tag; |
| 3448 ia2_role_ = IA2_ROLE_PARAGRAPH; | 3456 ia2_role_ = IA2_ROLE_PARAGRAPH; |
| 3449 ia_state_ |= STATE_SYSTEM_READONLY; | 3457 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3450 break; | 3458 break; |
| 3451 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: | 3459 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3549 break; | 3557 break; |
| 3550 case ui::AX_ROLE_IMAGE_MAP_LINK: | 3558 case ui::AX_ROLE_IMAGE_MAP_LINK: |
| 3551 ia_role_ = ROLE_SYSTEM_LINK; | 3559 ia_role_ = ROLE_SYSTEM_LINK; |
| 3552 ia_state_ |= STATE_SYSTEM_LINKED; | 3560 ia_state_ |= STATE_SYSTEM_LINKED; |
| 3553 ia_state_ |= STATE_SYSTEM_READONLY; | 3561 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3554 break; | 3562 break; |
| 3555 case ui::AX_ROLE_LABEL_TEXT: | 3563 case ui::AX_ROLE_LABEL_TEXT: |
| 3556 ia_role_ = ROLE_SYSTEM_TEXT; | 3564 ia_role_ = ROLE_SYSTEM_TEXT; |
| 3557 ia2_role_ = IA2_ROLE_LABEL; | 3565 ia2_role_ = IA2_ROLE_LABEL; |
| 3558 break; | 3566 break; |
| 3559 case ui::AX_ROLE_MAIN: | |
| 3560 ia_role_ = ROLE_SYSTEM_GROUPING; | |
| 3561 break; | |
| 3562 case ui::AX_ROLE_BANNER: | 3567 case ui::AX_ROLE_BANNER: |
| 3563 case ui::AX_ROLE_COMPLEMENTARY: | |
| 3564 case ui::AX_ROLE_CONTENT_INFO: | |
| 3565 case ui::AX_ROLE_NAVIGATION: | |
| 3566 case ui::AX_ROLE_SEARCH: | 3568 case ui::AX_ROLE_SEARCH: |
| 3567 ia_role_ = ROLE_SYSTEM_GROUPING; | 3569 ia_role_ = ROLE_SYSTEM_GROUPING; |
| 3568 ia2_role_ = IA2_ROLE_SECTION; | 3570 ia2_role_ = IA2_ROLE_SECTION; |
| 3569 ia_state_ |= STATE_SYSTEM_READONLY; | 3571 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3570 break; | 3572 break; |
| 3571 case ui::AX_ROLE_LINK: | 3573 case ui::AX_ROLE_LINK: |
| 3572 ia_role_ = ROLE_SYSTEM_LINK; | 3574 ia_role_ = ROLE_SYSTEM_LINK; |
| 3573 ia_state_ |= STATE_SYSTEM_LINKED; | 3575 ia_state_ |= STATE_SYSTEM_LINKED; |
| 3574 break; | 3576 break; |
| 3575 case ui::AX_ROLE_LIST: | 3577 case ui::AX_ROLE_LIST: |
| 3576 ia_role_ = ROLE_SYSTEM_LIST; | 3578 ia_role_ = ROLE_SYSTEM_LIST; |
| 3577 ia_state_ |= STATE_SYSTEM_READONLY; | 3579 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3578 break; | 3580 break; |
| 3579 case ui::AX_ROLE_LIST_BOX: | 3581 case ui::AX_ROLE_LIST_BOX: |
| 3580 ia_role_ = ROLE_SYSTEM_LIST; | 3582 ia_role_ = ROLE_SYSTEM_LIST; |
| 3581 break; | 3583 break; |
| 3582 case ui::AX_ROLE_LIST_BOX_OPTION: | 3584 case ui::AX_ROLE_LIST_BOX_OPTION: |
| 3583 ia_role_ = ROLE_SYSTEM_LISTITEM; | 3585 ia_role_ = ROLE_SYSTEM_LISTITEM; |
| 3584 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { | 3586 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { |
| 3585 ia_state_ |= STATE_SYSTEM_FOCUSABLE; | 3587 ia_state_ |= STATE_SYSTEM_FOCUSABLE; |
| 3586 if (HasState(ui::AX_STATE_FOCUSED)) | 3588 if (HasState(ui::AX_STATE_FOCUSED)) |
| 3587 ia_state_ |= STATE_SYSTEM_FOCUSED; | 3589 ia_state_ |= STATE_SYSTEM_FOCUSED; |
| 3588 } | 3590 } |
| 3589 break; | 3591 break; |
| 3590 case ui::AX_ROLE_LIST_ITEM: | 3592 case ui::AX_ROLE_LIST_ITEM: |
| 3591 ia_role_ = ROLE_SYSTEM_LISTITEM; | 3593 ia_role_ = ROLE_SYSTEM_LISTITEM; |
| 3592 ia_state_ |= STATE_SYSTEM_READONLY; | 3594 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3593 break; | 3595 break; |
| 3596 case ui::AX_ROLE_MAIN: |
| 3597 ia_role_ = ROLE_SYSTEM_GROUPING; |
| 3598 ia2_role_ = IA2_ROLE_PARAGRAPH; |
| 3599 break; |
| 3594 case ui::AX_ROLE_MATH_ELEMENT: | 3600 case ui::AX_ROLE_MATH_ELEMENT: |
| 3595 ia_role_ = ROLE_SYSTEM_EQUATION; | 3601 ia_role_ = ROLE_SYSTEM_EQUATION; |
| 3596 ia_state_ |= STATE_SYSTEM_READONLY; | 3602 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3597 break; | 3603 break; |
| 3598 case ui::AX_ROLE_MENU: | 3604 case ui::AX_ROLE_MENU: |
| 3599 case ui::AX_ROLE_MENU_BUTTON: | 3605 case ui::AX_ROLE_MENU_BUTTON: |
| 3600 ia_role_ = ROLE_SYSTEM_MENUPOPUP; | 3606 ia_role_ = ROLE_SYSTEM_MENUPOPUP; |
| 3601 break; | 3607 break; |
| 3602 case ui::AX_ROLE_MENU_BAR: | 3608 case ui::AX_ROLE_MENU_BAR: |
| 3603 ia_role_ = ROLE_SYSTEM_MENUBAR; | 3609 ia_role_ = ROLE_SYSTEM_MENUBAR; |
| 3604 break; | 3610 break; |
| 3605 case ui::AX_ROLE_MENU_ITEM: | 3611 case ui::AX_ROLE_MENU_ITEM: |
| 3606 ia_role_ = ROLE_SYSTEM_MENUITEM; | 3612 ia_role_ = ROLE_SYSTEM_MENUITEM; |
| 3607 break; | 3613 break; |
| 3608 case ui::AX_ROLE_MENU_LIST_POPUP: | 3614 case ui::AX_ROLE_MENU_LIST_POPUP: |
| 3609 ia_role_ = ROLE_SYSTEM_CLIENT; | 3615 ia_role_ = ROLE_SYSTEM_CLIENT; |
| 3610 break; | 3616 break; |
| 3611 case ui::AX_ROLE_MENU_LIST_OPTION: | 3617 case ui::AX_ROLE_MENU_LIST_OPTION: |
| 3612 ia_role_ = ROLE_SYSTEM_LISTITEM; | 3618 ia_role_ = ROLE_SYSTEM_LISTITEM; |
| 3613 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { | 3619 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { |
| 3614 ia_state_ |= STATE_SYSTEM_FOCUSABLE; | 3620 ia_state_ |= STATE_SYSTEM_FOCUSABLE; |
| 3615 if (HasState(ui::AX_STATE_FOCUSED)) | 3621 if (HasState(ui::AX_STATE_FOCUSED)) |
| 3616 ia_state_ |= STATE_SYSTEM_FOCUSED; | 3622 ia_state_ |= STATE_SYSTEM_FOCUSED; |
| 3617 } | 3623 } |
| 3618 break; | 3624 break; |
| 3625 case ui::AX_ROLE_NAVIGATION: |
| 3626 ia_role_ = ROLE_SYSTEM_GROUPING; |
| 3627 ia2_role_ = IA2_ROLE_SECTION; |
| 3628 break; |
| 3619 case ui::AX_ROLE_NOTE: | 3629 case ui::AX_ROLE_NOTE: |
| 3620 ia_role_ = ROLE_SYSTEM_GROUPING; | 3630 ia_role_ = ROLE_SYSTEM_GROUPING; |
| 3621 ia2_role_ = IA2_ROLE_NOTE; | 3631 ia2_role_ = IA2_ROLE_NOTE; |
| 3622 ia_state_ |= STATE_SYSTEM_READONLY; | 3632 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3623 break; | 3633 break; |
| 3624 case ui::AX_ROLE_OUTLINE: | 3634 case ui::AX_ROLE_OUTLINE: |
| 3625 ia_role_ = ROLE_SYSTEM_OUTLINE; | 3635 ia_role_ = ROLE_SYSTEM_OUTLINE; |
| 3626 ia_state_ |= STATE_SYSTEM_READONLY; | 3636 ia_state_ |= STATE_SYSTEM_READONLY; |
| 3627 break; | 3637 break; |
| 3628 case ui::AX_ROLE_PARAGRAPH: | 3638 case ui::AX_ROLE_PARAGRAPH: |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3812 // The role should always be set. | 3822 // The role should always be set. |
| 3813 DCHECK(!role_name_.empty() || ia_role_); | 3823 DCHECK(!role_name_.empty() || ia_role_); |
| 3814 | 3824 |
| 3815 // If we didn't explicitly set the IAccessible2 role, make it the same | 3825 // If we didn't explicitly set the IAccessible2 role, make it the same |
| 3816 // as the MSAA role. | 3826 // as the MSAA role. |
| 3817 if (!ia2_role_) | 3827 if (!ia2_role_) |
| 3818 ia2_role_ = ia_role_; | 3828 ia2_role_ = ia_role_; |
| 3819 } | 3829 } |
| 3820 | 3830 |
| 3821 } // namespace content | 3831 } // namespace content |
| OLD | NEW |