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 3434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3445 case ui::AX_ROLE_COMPLEMENTARY: | 3445 case ui::AX_ROLE_COMPLEMENTARY: |
3446 ia_role_ = ROLE_SYSTEM_GROUPING; | 3446 ia_role_ = ROLE_SYSTEM_GROUPING; |
3447 ia2_role_ = IA2_ROLE_NOTE; | 3447 ia2_role_ = IA2_ROLE_NOTE; |
3448 break; | 3448 break; |
3449 case ui::AX_ROLE_CONTENT_INFO: | 3449 case ui::AX_ROLE_CONTENT_INFO: |
3450 ia_role_ = ROLE_SYSTEM_TEXT; | 3450 ia_role_ = ROLE_SYSTEM_TEXT; |
3451 ia2_role_ = IA2_ROLE_PARAGRAPH; | 3451 ia2_role_ = IA2_ROLE_PARAGRAPH; |
3452 break; | 3452 break; |
3453 case ui::AX_ROLE_DIV: | 3453 case ui::AX_ROLE_DIV: |
3454 role_name_ = L"div"; | 3454 role_name_ = L"div"; |
| 3455 ia_role_ = ROLE_SYSTEM_GROUPING; |
3455 ia2_role_ = IA2_ROLE_SECTION; | 3456 ia2_role_ = IA2_ROLE_SECTION; |
3456 break; | 3457 break; |
3457 case ui::AX_ROLE_DEFINITION: | 3458 case ui::AX_ROLE_DEFINITION: |
3458 role_name_ = html_tag; | 3459 role_name_ = html_tag; |
3459 ia2_role_ = IA2_ROLE_PARAGRAPH; | 3460 ia2_role_ = IA2_ROLE_PARAGRAPH; |
3460 ia_state_ |= STATE_SYSTEM_READONLY; | 3461 ia_state_ |= STATE_SYSTEM_READONLY; |
3461 break; | 3462 break; |
3462 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: | 3463 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: |
3463 role_name_ = html_tag; | 3464 role_name_ = html_tag; |
3464 ia2_role_ = IA2_ROLE_PARAGRAPH; | 3465 ia2_role_ = IA2_ROLE_PARAGRAPH; |
3465 ia_state_ |= STATE_SYSTEM_READONLY; | 3466 ia_state_ |= STATE_SYSTEM_READONLY; |
3466 break; | 3467 break; |
3467 case ui::AX_ROLE_DESCRIPTION_LIST: | 3468 case ui::AX_ROLE_DESCRIPTION_LIST: |
3468 role_name_ = html_tag; | 3469 role_name_ = html_tag; |
3469 ia_role_ = ROLE_SYSTEM_LIST; | 3470 ia_role_ = ROLE_SYSTEM_LIST; |
3470 ia_state_ |= STATE_SYSTEM_READONLY; | 3471 ia_state_ |= STATE_SYSTEM_READONLY; |
3471 break; | 3472 break; |
3472 case ui::AX_ROLE_DESCRIPTION_LIST_TERM: | 3473 case ui::AX_ROLE_DESCRIPTION_LIST_TERM: |
3473 ia_role_ = ROLE_SYSTEM_LISTITEM; | 3474 ia_role_ = ROLE_SYSTEM_LISTITEM; |
3474 ia_state_ |= STATE_SYSTEM_READONLY; | 3475 ia_state_ |= STATE_SYSTEM_READONLY; |
3475 break; | 3476 break; |
3476 case ui::AX_ROLE_DETAILS: | 3477 case ui::AX_ROLE_DETAILS: |
| 3478 role_name_ = html_tag; |
3477 ia_role_ = ROLE_SYSTEM_GROUPING; | 3479 ia_role_ = ROLE_SYSTEM_GROUPING; |
3478 break; | 3480 break; |
3479 case ui::AX_ROLE_DIALOG: | 3481 case ui::AX_ROLE_DIALOG: |
3480 ia_role_ = ROLE_SYSTEM_DIALOG; | 3482 ia_role_ = ROLE_SYSTEM_DIALOG; |
3481 ia_state_ |= STATE_SYSTEM_READONLY; | 3483 ia_state_ |= STATE_SYSTEM_READONLY; |
3482 break; | 3484 break; |
3483 case ui::AX_ROLE_DISCLOSURE_TRIANGLE: | 3485 case ui::AX_ROLE_DISCLOSURE_TRIANGLE: |
3484 ia_role_ = ROLE_SYSTEM_PUSHBUTTON; | 3486 ia_role_ = ROLE_SYSTEM_PUSHBUTTON; |
3485 break; | 3487 break; |
3486 case ui::AX_ROLE_DOCUMENT: | 3488 case ui::AX_ROLE_DOCUMENT: |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3629 ia_role_ = ROLE_SYSTEM_CLIENT; | 3631 ia_role_ = ROLE_SYSTEM_CLIENT; |
3630 break; | 3632 break; |
3631 case ui::AX_ROLE_MENU_LIST_OPTION: | 3633 case ui::AX_ROLE_MENU_LIST_OPTION: |
3632 ia_role_ = ROLE_SYSTEM_LISTITEM; | 3634 ia_role_ = ROLE_SYSTEM_LISTITEM; |
3633 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { | 3635 if (ia_state_ & STATE_SYSTEM_SELECTABLE) { |
3634 ia_state_ |= STATE_SYSTEM_FOCUSABLE; | 3636 ia_state_ |= STATE_SYSTEM_FOCUSABLE; |
3635 if (HasState(ui::AX_STATE_FOCUSED)) | 3637 if (HasState(ui::AX_STATE_FOCUSED)) |
3636 ia_state_ |= STATE_SYSTEM_FOCUSED; | 3638 ia_state_ |= STATE_SYSTEM_FOCUSED; |
3637 } | 3639 } |
3638 break; | 3640 break; |
| 3641 case ui::AX_ROLE_METER: |
| 3642 role_name_ = html_tag; |
| 3643 ia_role_ = ROLE_SYSTEM_PROGRESSBAR; |
| 3644 break; |
3639 case ui::AX_ROLE_NAVIGATION: | 3645 case ui::AX_ROLE_NAVIGATION: |
3640 ia_role_ = ROLE_SYSTEM_GROUPING; | 3646 ia_role_ = ROLE_SYSTEM_GROUPING; |
3641 ia2_role_ = IA2_ROLE_SECTION; | 3647 ia2_role_ = IA2_ROLE_SECTION; |
3642 break; | 3648 break; |
3643 case ui::AX_ROLE_NOTE: | 3649 case ui::AX_ROLE_NOTE: |
3644 ia_role_ = ROLE_SYSTEM_GROUPING; | 3650 ia_role_ = ROLE_SYSTEM_GROUPING; |
3645 ia2_role_ = IA2_ROLE_NOTE; | 3651 ia2_role_ = IA2_ROLE_NOTE; |
3646 ia_state_ |= STATE_SYSTEM_READONLY; | 3652 ia_state_ |= STATE_SYSTEM_READONLY; |
3647 break; | 3653 break; |
3648 case ui::AX_ROLE_OUTLINE: | 3654 case ui::AX_ROLE_OUTLINE: |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3835 // The role should always be set. | 3841 // The role should always be set. |
3836 DCHECK(!role_name_.empty() || ia_role_); | 3842 DCHECK(!role_name_.empty() || ia_role_); |
3837 | 3843 |
3838 // If we didn't explicitly set the IAccessible2 role, make it the same | 3844 // If we didn't explicitly set the IAccessible2 role, make it the same |
3839 // as the MSAA role. | 3845 // as the MSAA role. |
3840 if (!ia2_role_) | 3846 if (!ia2_role_) |
3841 ia2_role_ = ia_role_; | 3847 ia2_role_ = ia_role_; |
3842 } | 3848 } |
3843 | 3849 |
3844 } // namespace content | 3850 } // namespace content |
OLD | NEW |