| OLD | NEW |
| 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2017 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_com_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_com_win.h" |
| 6 | 6 |
| 7 #include <UIAutomationClient.h> | 7 #include <UIAutomationClient.h> |
| 8 #include <UIAutomationCoreApi.h> | 8 #include <UIAutomationCoreApi.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 5267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5278 break; | 5278 break; |
| 5279 case ui::AX_ROLE_CONTENT_INFO: | 5279 case ui::AX_ROLE_CONTENT_INFO: |
| 5280 ia_role = ROLE_SYSTEM_TEXT; | 5280 ia_role = ROLE_SYSTEM_TEXT; |
| 5281 ia2_role = IA2_ROLE_PARAGRAPH; | 5281 ia2_role = IA2_ROLE_PARAGRAPH; |
| 5282 break; | 5282 break; |
| 5283 case ui::AX_ROLE_DATE: | 5283 case ui::AX_ROLE_DATE: |
| 5284 case ui::AX_ROLE_DATE_TIME: | 5284 case ui::AX_ROLE_DATE_TIME: |
| 5285 ia_role = ROLE_SYSTEM_DROPLIST; | 5285 ia_role = ROLE_SYSTEM_DROPLIST; |
| 5286 ia2_role = IA2_ROLE_DATE_EDITOR; | 5286 ia2_role = IA2_ROLE_DATE_EDITOR; |
| 5287 break; | 5287 break; |
| 5288 case ui::AX_ROLE_DIV: | |
| 5289 role_name = L"div"; | |
| 5290 ia_role = ROLE_SYSTEM_GROUPING; | |
| 5291 ia2_role = IA2_ROLE_SECTION; | |
| 5292 break; | |
| 5293 case ui::AX_ROLE_DEFINITION: | 5288 case ui::AX_ROLE_DEFINITION: |
| 5294 role_name = html_tag; | 5289 role_name = html_tag; |
| 5295 ia2_role = IA2_ROLE_PARAGRAPH; | 5290 ia2_role = IA2_ROLE_PARAGRAPH; |
| 5296 ia_state |= STATE_SYSTEM_READONLY; | 5291 ia_state |= STATE_SYSTEM_READONLY; |
| 5297 break; | 5292 break; |
| 5298 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: | 5293 case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL: |
| 5299 role_name = html_tag; | 5294 role_name = html_tag; |
| 5300 ia_role = ROLE_SYSTEM_TEXT; | 5295 ia_role = ROLE_SYSTEM_TEXT; |
| 5301 ia2_role = IA2_ROLE_PARAGRAPH; | 5296 ia2_role = IA2_ROLE_PARAGRAPH; |
| 5302 break; | 5297 break; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5348 ia_role = ROLE_SYSTEM_GROUPING; | 5343 ia_role = ROLE_SYSTEM_GROUPING; |
| 5349 break; | 5344 break; |
| 5350 case ui::AX_ROLE_FORM: | 5345 case ui::AX_ROLE_FORM: |
| 5351 role_name = L"form"; | 5346 role_name = L"form"; |
| 5352 ia2_role = IA2_ROLE_FORM; | 5347 ia2_role = IA2_ROLE_FORM; |
| 5353 break; | 5348 break; |
| 5354 case ui::AX_ROLE_FOOTER: | 5349 case ui::AX_ROLE_FOOTER: |
| 5355 ia_role = ROLE_SYSTEM_GROUPING; | 5350 ia_role = ROLE_SYSTEM_GROUPING; |
| 5356 ia2_role = IA2_ROLE_FOOTER; | 5351 ia2_role = IA2_ROLE_FOOTER; |
| 5357 break; | 5352 break; |
| 5353 case ui::AX_ROLE_GENERIC_CONTAINER: |
| 5354 ia_role = ROLE_SYSTEM_GROUPING; |
| 5355 ia2_role = IA2_ROLE_SECTION; |
| 5356 role_name = html_tag.empty() ? L"div" : html_tag; |
| 5357 break; |
| 5358 case ui::AX_ROLE_GRID: | 5358 case ui::AX_ROLE_GRID: |
| 5359 ia_role = ROLE_SYSTEM_TABLE; | 5359 ia_role = ROLE_SYSTEM_TABLE; |
| 5360 // TODO(aleventhal) this changed between ARIA 1.0 and 1.1, | 5360 // TODO(aleventhal) this changed between ARIA 1.0 and 1.1, |
| 5361 // need to determine whether grids/treegrids should really be readonly | 5361 // need to determine whether grids/treegrids should really be readonly |
| 5362 // or editable by default | 5362 // or editable by default |
| 5363 // ia_state |= STATE_SYSTEM_READONLY; | 5363 // ia_state |= STATE_SYSTEM_READONLY; |
| 5364 break; | 5364 break; |
| 5365 case ui::AX_ROLE_GROUP: { | 5365 case ui::AX_ROLE_GROUP: |
| 5366 base::string16 aria_role = | 5366 ia_role = ROLE_SYSTEM_GROUPING; |
| 5367 owner()->GetString16Attribute(ui::AX_ATTR_ROLE); | |
| 5368 if (aria_role == L"group" || html_tag == L"fieldset") { | |
| 5369 ia_role = ROLE_SYSTEM_GROUPING; | |
| 5370 } else if (html_tag == L"li") { | |
| 5371 ia_role = ROLE_SYSTEM_LISTITEM; | |
| 5372 ia_state |= STATE_SYSTEM_READONLY; | |
| 5373 } else { | |
| 5374 if (html_tag.empty()) | |
| 5375 role_name = L"div"; | |
| 5376 else | |
| 5377 role_name = html_tag; | |
| 5378 ia2_role = IA2_ROLE_SECTION; | |
| 5379 } | |
| 5380 break; | 5367 break; |
| 5381 } | |
| 5382 case ui::AX_ROLE_HEADING: | 5368 case ui::AX_ROLE_HEADING: |
| 5383 role_name = html_tag; | 5369 role_name = html_tag; |
| 5384 if (html_tag.empty()) | 5370 if (html_tag.empty()) |
| 5385 ia_role = ROLE_SYSTEM_GROUPING; | 5371 ia_role = ROLE_SYSTEM_GROUPING; |
| 5386 ia2_role = IA2_ROLE_HEADING; | 5372 ia2_role = IA2_ROLE_HEADING; |
| 5387 break; | 5373 break; |
| 5388 case ui::AX_ROLE_IFRAME: | 5374 case ui::AX_ROLE_IFRAME: |
| 5389 ia_role = ROLE_SYSTEM_DOCUMENT; | 5375 ia_role = ROLE_SYSTEM_DOCUMENT; |
| 5390 ia2_role = IA2_ROLE_INTERNAL_FRAME; | 5376 ia2_role = IA2_ROLE_INTERNAL_FRAME; |
| 5391 ia_state = STATE_SYSTEM_READONLY; | 5377 ia_state = STATE_SYSTEM_READONLY; |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5722 | 5708 |
| 5723 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( | 5709 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( |
| 5724 BrowserAccessibility* obj) { | 5710 BrowserAccessibility* obj) { |
| 5725 if (!obj || !obj->IsNative()) | 5711 if (!obj || !obj->IsNative()) |
| 5726 return nullptr; | 5712 return nullptr; |
| 5727 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM(); | 5713 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM(); |
| 5728 return result; | 5714 return result; |
| 5729 } | 5715 } |
| 5730 | 5716 |
| 5731 } // namespace content | 5717 } // namespace content |
| OLD | NEW |