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

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

Issue 618273002: IA2 role, xml-roles are not correct for {address, aside, nav, main} (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updating expectation for android Created 6 years, 2 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
« no previous file with comments | « no previous file | content/browser/accessibility/dump_accessibility_tree_browsertest.cc » ('j') | 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) 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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | content/browser/accessibility/dump_accessibility_tree_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698