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

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

Issue 683063002: Add DumpAccessibilityTree tests (9 of 20) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
OLDNEW
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 3423 matching lines...) Expand 10 before | Expand all | Expand 10 after
3434 case ui::AX_ROLE_CHECK_BOX: 3434 case ui::AX_ROLE_CHECK_BOX:
3435 ia_role_ = ROLE_SYSTEM_CHECKBUTTON; 3435 ia_role_ = ROLE_SYSTEM_CHECKBUTTON;
3436 ia2_state_ |= IA2_STATE_CHECKABLE; 3436 ia2_state_ |= IA2_STATE_CHECKABLE;
3437 break; 3437 break;
3438 case ui::AX_ROLE_COLOR_WELL: 3438 case ui::AX_ROLE_COLOR_WELL:
3439 ia_role_ = ROLE_SYSTEM_CLIENT; 3439 ia_role_ = ROLE_SYSTEM_CLIENT;
3440 ia2_role_ = IA2_ROLE_COLOR_CHOOSER; 3440 ia2_role_ = IA2_ROLE_COLOR_CHOOSER;
3441 break; 3441 break;
3442 case ui::AX_ROLE_COLUMN: 3442 case ui::AX_ROLE_COLUMN:
3443 ia_role_ = ROLE_SYSTEM_COLUMN; 3443 ia_role_ = ROLE_SYSTEM_COLUMN;
3444 ia_state_ |= STATE_SYSTEM_READONLY;
3445 break; 3444 break;
3446 case ui::AX_ROLE_COLUMN_HEADER: 3445 case ui::AX_ROLE_COLUMN_HEADER:
3447 ia_role_ = ROLE_SYSTEM_COLUMNHEADER; 3446 ia_role_ = ROLE_SYSTEM_COLUMNHEADER;
3448 ia_state_ |= STATE_SYSTEM_READONLY;
3449 break; 3447 break;
3450 case ui::AX_ROLE_COMBO_BOX: 3448 case ui::AX_ROLE_COMBO_BOX:
3451 ia_role_ = ROLE_SYSTEM_COMBOBOX; 3449 ia_role_ = ROLE_SYSTEM_COMBOBOX;
3452 break; 3450 break;
3453 case ui::AX_ROLE_COMPLEMENTARY: 3451 case ui::AX_ROLE_COMPLEMENTARY:
3454 ia_role_ = ROLE_SYSTEM_GROUPING; 3452 ia_role_ = ROLE_SYSTEM_GROUPING;
3455 ia2_role_ = IA2_ROLE_NOTE; 3453 ia2_role_ = IA2_ROLE_NOTE;
3456 break; 3454 break;
3457 case ui::AX_ROLE_CONTENT_INFO: 3455 case ui::AX_ROLE_CONTENT_INFO:
3458 ia_role_ = ROLE_SYSTEM_TEXT; 3456 ia_role_ = ROLE_SYSTEM_TEXT;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
3533 ia_role_ = ROLE_SYSTEM_TABLE; 3531 ia_role_ = ROLE_SYSTEM_TABLE;
3534 ia_state_ |= STATE_SYSTEM_READONLY; 3532 ia_state_ |= STATE_SYSTEM_READONLY;
3535 break; 3533 break;
3536 case ui::AX_ROLE_GROUP: { 3534 case ui::AX_ROLE_GROUP: {
3537 base::string16 aria_role = GetString16Attribute( 3535 base::string16 aria_role = GetString16Attribute(
3538 ui::AX_ATTR_ROLE); 3536 ui::AX_ATTR_ROLE);
3539 if (aria_role == L"group" || html_tag == L"fieldset") { 3537 if (aria_role == L"group" || html_tag == L"fieldset") {
3540 ia_role_ = ROLE_SYSTEM_GROUPING; 3538 ia_role_ = ROLE_SYSTEM_GROUPING;
3541 } else if (html_tag == L"li") { 3539 } else if (html_tag == L"li") {
3542 ia_role_ = ROLE_SYSTEM_LISTITEM; 3540 ia_role_ = ROLE_SYSTEM_LISTITEM;
3541 ia_state_ |= STATE_SYSTEM_READONLY;
3543 } else { 3542 } else {
3544 if (html_tag.empty()) 3543 if (html_tag.empty())
3545 role_name_ = L"div"; 3544 role_name_ = L"div";
3546 else 3545 else
3547 role_name_ = html_tag; 3546 role_name_ = html_tag;
3548 ia2_role_ = IA2_ROLE_SECTION; 3547 ia2_role_ = IA2_ROLE_SECTION;
3549 } 3548 }
3550 ia_state_ |= STATE_SYSTEM_READONLY;
3551 break; 3549 break;
3552 } 3550 }
3553 case ui::AX_ROLE_GROW_AREA: 3551 case ui::AX_ROLE_GROW_AREA:
3554 ia_role_ = ROLE_SYSTEM_GRIP; 3552 ia_role_ = ROLE_SYSTEM_GRIP;
3555 ia_state_ |= STATE_SYSTEM_READONLY; 3553 ia_state_ |= STATE_SYSTEM_READONLY;
3556 break; 3554 break;
3557 case ui::AX_ROLE_HEADING: 3555 case ui::AX_ROLE_HEADING:
3558 role_name_ = html_tag; 3556 role_name_ = html_tag;
3559 ia2_role_ = IA2_ROLE_HEADING; 3557 ia2_role_ = IA2_ROLE_HEADING;
3560 ia_state_ |= STATE_SYSTEM_READONLY;
3561 break; 3558 break;
3562 case ui::AX_ROLE_HORIZONTAL_RULE: 3559 case ui::AX_ROLE_HORIZONTAL_RULE:
3563 ia_role_ = ROLE_SYSTEM_SEPARATOR; 3560 ia_role_ = ROLE_SYSTEM_SEPARATOR;
3564 break; 3561 break;
3565 case ui::AX_ROLE_IFRAME: 3562 case ui::AX_ROLE_IFRAME:
3566 ia_role_ = ROLE_SYSTEM_CLIENT; 3563 ia_role_ = ROLE_SYSTEM_DOCUMENT;
3567 ia2_role_ = IA2_ROLE_INTERNAL_FRAME; 3564 ia2_role_ = IA2_ROLE_INTERNAL_FRAME;
3565 ia_state_ = STATE_SYSTEM_READONLY;
3568 break; 3566 break;
3569 case ui::AX_ROLE_IMAGE: 3567 case ui::AX_ROLE_IMAGE:
3570 ia_role_ = ROLE_SYSTEM_GRAPHIC; 3568 ia_role_ = ROLE_SYSTEM_GRAPHIC;
3571 ia_state_ |= STATE_SYSTEM_READONLY; 3569 ia_state_ |= STATE_SYSTEM_READONLY;
3572 break; 3570 break;
3573 case ui::AX_ROLE_IMAGE_MAP: 3571 case ui::AX_ROLE_IMAGE_MAP:
3574 role_name_ = html_tag; 3572 role_name_ = html_tag;
3575 ia2_role_ = IA2_ROLE_IMAGE_MAP; 3573 ia2_role_ = IA2_ROLE_IMAGE_MAP;
3576 ia_state_ |= STATE_SYSTEM_READONLY; 3574 ia_state_ |= STATE_SYSTEM_READONLY;
3577 break; 3575 break;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
3661 ia_role_ = ROLE_SYSTEM_GROUPING; 3659 ia_role_ = ROLE_SYSTEM_GROUPING;
3662 ia2_role_ = IA2_ROLE_SECTION; 3660 ia2_role_ = IA2_ROLE_SECTION;
3663 break; 3661 break;
3664 case ui::AX_ROLE_NOTE: 3662 case ui::AX_ROLE_NOTE:
3665 ia_role_ = ROLE_SYSTEM_GROUPING; 3663 ia_role_ = ROLE_SYSTEM_GROUPING;
3666 ia2_role_ = IA2_ROLE_NOTE; 3664 ia2_role_ = IA2_ROLE_NOTE;
3667 ia_state_ |= STATE_SYSTEM_READONLY; 3665 ia_state_ |= STATE_SYSTEM_READONLY;
3668 break; 3666 break;
3669 case ui::AX_ROLE_OUTLINE: 3667 case ui::AX_ROLE_OUTLINE:
3670 ia_role_ = ROLE_SYSTEM_OUTLINE; 3668 ia_role_ = ROLE_SYSTEM_OUTLINE;
3671 ia_state_ |= STATE_SYSTEM_READONLY;
3672 break; 3669 break;
3673 case ui::AX_ROLE_PARAGRAPH: 3670 case ui::AX_ROLE_PARAGRAPH:
3674 role_name_ = L"P"; 3671 role_name_ = L"P";
3675 ia2_role_ = IA2_ROLE_PARAGRAPH; 3672 ia2_role_ = IA2_ROLE_PARAGRAPH;
3676 break; 3673 break;
3677 case ui::AX_ROLE_POP_UP_BUTTON: 3674 case ui::AX_ROLE_POP_UP_BUTTON:
3678 if (html_tag == L"select") { 3675 if (html_tag == L"select") {
3679 ia_role_ = ROLE_SYSTEM_COMBOBOX; 3676 ia_role_ = ROLE_SYSTEM_COMBOBOX;
3680 } else { 3677 } else {
3681 ia_role_ = ROLE_SYSTEM_BUTTONMENU; 3678 ia_role_ = ROLE_SYSTEM_BUTTONMENU;
(...skipping 17 matching lines...) Expand all
3699 case ui::AX_ROLE_REGION: 3696 case ui::AX_ROLE_REGION:
3700 if (html_tag == L"section") { 3697 if (html_tag == L"section") {
3701 ia_role_ = ROLE_SYSTEM_GROUPING; 3698 ia_role_ = ROLE_SYSTEM_GROUPING;
3702 ia2_role_ = IA2_ROLE_SECTION; 3699 ia2_role_ = IA2_ROLE_SECTION;
3703 } else { 3700 } else {
3704 ia_role_ = ROLE_SYSTEM_PANE; 3701 ia_role_ = ROLE_SYSTEM_PANE;
3705 } 3702 }
3706 break; 3703 break;
3707 case ui::AX_ROLE_ROW: 3704 case ui::AX_ROLE_ROW:
3708 ia_role_ = ROLE_SYSTEM_ROW; 3705 ia_role_ = ROLE_SYSTEM_ROW;
3709 ia_state_ |= STATE_SYSTEM_READONLY;
3710 break; 3706 break;
3711 case ui::AX_ROLE_ROW_HEADER: 3707 case ui::AX_ROLE_ROW_HEADER:
3712 ia_role_ = ROLE_SYSTEM_ROWHEADER; 3708 ia_role_ = ROLE_SYSTEM_ROWHEADER;
3713 ia_state_ |= STATE_SYSTEM_READONLY;
3714 break; 3709 break;
3715 case ui::AX_ROLE_RULER: 3710 case ui::AX_ROLE_RULER:
3716 ia_role_ = ROLE_SYSTEM_CLIENT; 3711 ia_role_ = ROLE_SYSTEM_CLIENT;
3717 ia2_role_ = IA2_ROLE_RULER; 3712 ia2_role_ = IA2_ROLE_RULER;
3718 ia_state_ |= STATE_SYSTEM_READONLY; 3713 ia_state_ |= STATE_SYSTEM_READONLY;
3719 break; 3714 break;
3720 case ui::AX_ROLE_SCROLL_AREA: 3715 case ui::AX_ROLE_SCROLL_AREA:
3721 ia_role_ = ROLE_SYSTEM_CLIENT; 3716 ia_role_ = ROLE_SYSTEM_CLIENT;
3722 ia2_role_ = IA2_ROLE_SCROLL_PANE; 3717 ia2_role_ = IA2_ROLE_SCROLL_PANE;
3723 ia_state_ |= STATE_SYSTEM_READONLY; 3718 ia_state_ |= STATE_SYSTEM_READONLY;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3758 case ui::AX_ROLE_TAB: 3753 case ui::AX_ROLE_TAB:
3759 ia_role_ = ROLE_SYSTEM_PAGETAB; 3754 ia_role_ = ROLE_SYSTEM_PAGETAB;
3760 break; 3755 break;
3761 case ui::AX_ROLE_TABLE: { 3756 case ui::AX_ROLE_TABLE: {
3762 base::string16 aria_role = GetString16Attribute( 3757 base::string16 aria_role = GetString16Attribute(
3763 ui::AX_ATTR_ROLE); 3758 ui::AX_ATTR_ROLE);
3764 if (aria_role == L"treegrid") { 3759 if (aria_role == L"treegrid") {
3765 ia_role_ = ROLE_SYSTEM_OUTLINE; 3760 ia_role_ = ROLE_SYSTEM_OUTLINE;
3766 } else { 3761 } else {
3767 ia_role_ = ROLE_SYSTEM_TABLE; 3762 ia_role_ = ROLE_SYSTEM_TABLE;
3768 ia_state_ |= STATE_SYSTEM_READONLY;
3769 } 3763 }
3770 break; 3764 break;
3771 } 3765 }
3772 case ui::AX_ROLE_TABLE_HEADER_CONTAINER: 3766 case ui::AX_ROLE_TABLE_HEADER_CONTAINER:
3773 ia_role_ = ROLE_SYSTEM_GROUPING; 3767 ia_role_ = ROLE_SYSTEM_GROUPING;
3774 ia2_role_ = IA2_ROLE_SECTION; 3768 ia2_role_ = IA2_ROLE_SECTION;
3775 ia_state_ |= STATE_SYSTEM_READONLY; 3769 ia_state_ |= STATE_SYSTEM_READONLY;
3776 break; 3770 break;
3777 case ui::AX_ROLE_TAB_LIST: 3771 case ui::AX_ROLE_TAB_LIST:
3778 ia_role_ = ROLE_SYSTEM_PAGETABLIST; 3772 ia_role_ = ROLE_SYSTEM_PAGETABLIST;
(...skipping 27 matching lines...) Expand all
3806 case ui::AX_ROLE_TOOLBAR: 3800 case ui::AX_ROLE_TOOLBAR:
3807 ia_role_ = ROLE_SYSTEM_TOOLBAR; 3801 ia_role_ = ROLE_SYSTEM_TOOLBAR;
3808 ia_state_ |= STATE_SYSTEM_READONLY; 3802 ia_state_ |= STATE_SYSTEM_READONLY;
3809 break; 3803 break;
3810 case ui::AX_ROLE_TOOLTIP: 3804 case ui::AX_ROLE_TOOLTIP:
3811 ia_role_ = ROLE_SYSTEM_TOOLTIP; 3805 ia_role_ = ROLE_SYSTEM_TOOLTIP;
3812 ia_state_ |= STATE_SYSTEM_READONLY; 3806 ia_state_ |= STATE_SYSTEM_READONLY;
3813 break; 3807 break;
3814 case ui::AX_ROLE_TREE: 3808 case ui::AX_ROLE_TREE:
3815 ia_role_ = ROLE_SYSTEM_OUTLINE; 3809 ia_role_ = ROLE_SYSTEM_OUTLINE;
3816 ia_state_ |= STATE_SYSTEM_READONLY;
3817 break; 3810 break;
3818 case ui::AX_ROLE_TREE_GRID: 3811 case ui::AX_ROLE_TREE_GRID:
3819 ia_role_ = ROLE_SYSTEM_OUTLINE; 3812 ia_role_ = ROLE_SYSTEM_OUTLINE;
3820 ia_state_ |= STATE_SYSTEM_READONLY;
3821 break; 3813 break;
3822 case ui::AX_ROLE_TREE_ITEM: 3814 case ui::AX_ROLE_TREE_ITEM:
3823 ia_role_ = ROLE_SYSTEM_OUTLINEITEM; 3815 ia_role_ = ROLE_SYSTEM_OUTLINEITEM;
3824 ia_state_ |= STATE_SYSTEM_READONLY;
3825 break; 3816 break;
3826 case ui::AX_ROLE_WINDOW: 3817 case ui::AX_ROLE_WINDOW:
3827 ia_role_ = ROLE_SYSTEM_WINDOW; 3818 ia_role_ = ROLE_SYSTEM_WINDOW;
3828 break; 3819 break;
3829 3820
3830 // TODO(dmazzoni): figure out the proper MSAA role for all of these. 3821 // TODO(dmazzoni): figure out the proper MSAA role for all of these.
3831 case ui::AX_ROLE_BROWSER: 3822 case ui::AX_ROLE_BROWSER:
3832 case ui::AX_ROLE_DIRECTORY: 3823 case ui::AX_ROLE_DIRECTORY:
3833 case ui::AX_ROLE_DRAWER: 3824 case ui::AX_ROLE_DRAWER:
3834 case ui::AX_ROLE_HELP_TAG: 3825 case ui::AX_ROLE_HELP_TAG:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3866 // The role should always be set. 3857 // The role should always be set.
3867 DCHECK(!role_name_.empty() || ia_role_); 3858 DCHECK(!role_name_.empty() || ia_role_);
3868 3859
3869 // If we didn't explicitly set the IAccessible2 role, make it the same 3860 // If we didn't explicitly set the IAccessible2 role, make it the same
3870 // as the MSAA role. 3861 // as the MSAA role.
3871 if (!ia2_role_) 3862 if (!ia2_role_)
3872 ia2_role_ = ia_role_; 3863 ia2_role_ = ia_role_;
3873 } 3864 }
3874 3865
3875 } // namespace content 3866 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698