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

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

Issue 2726433002: Complete initial role and state mappings for ARC++ accessibility (Closed)
Patch Set: Export. Created 3 years, 9 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_android.h" 5 #include "content/browser/accessibility/browser_accessibility_android.h"
6 6
7 #include "base/i18n/break_iterator.h" 7 #include "base/i18n/break_iterator.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "content/app/strings/grit/content_strings.h" 12 #include "content/app/strings/grit/content_strings.h"
13 #include "content/browser/accessibility/browser_accessibility_manager_android.h" 13 #include "content/browser/accessibility/browser_accessibility_manager_android.h"
14 #include "content/common/accessibility_messages.h" 14 #include "content/common/accessibility_messages.h"
15 #include "content/public/common/content_client.h" 15 #include "content/public/common/content_client.h"
16 #include "third_party/skia/include/core/SkColor.h" 16 #include "third_party/skia/include/core/SkColor.h"
17 #include "ui/accessibility/platform/ax_android_constants.h"
17 18
18 namespace { 19 namespace {
19 20
20 const base::char16 kSecurePasswordBullet = 0x2022; 21 const base::char16 kSecurePasswordBullet = 0x2022;
21 22
22 // These are enums from android.text.InputType in Java: 23 // These are enums from android.text.InputType in Java:
23 enum { 24 enum {
24 ANDROID_TEXT_INPUTTYPE_TYPE_NULL = 0, 25 ANDROID_TEXT_INPUTTYPE_TYPE_NULL = 0,
25 ANDROID_TEXT_INPUTTYPE_TYPE_DATETIME = 0x4, 26 ANDROID_TEXT_INPUTTYPE_TYPE_DATETIME = 0x4,
26 ANDROID_TEXT_INPUTTYPE_TYPE_DATETIME_DATE = 0x14, 27 ANDROID_TEXT_INPUTTYPE_TYPE_DATETIME_DATE = 0x14,
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 return HasState(ui::AX_STATE_HASPOPUP); 324 return HasState(ui::AX_STATE_HASPOPUP);
324 } 325 }
325 326
326 const char* BrowserAccessibilityAndroid::GetClassName() const { 327 const char* BrowserAccessibilityAndroid::GetClassName() const {
327 const char* class_name = NULL; 328 const char* class_name = NULL;
328 329
329 switch (GetRole()) { 330 switch (GetRole()) {
330 case ui::AX_ROLE_SEARCH_BOX: 331 case ui::AX_ROLE_SEARCH_BOX:
331 case ui::AX_ROLE_SPIN_BUTTON: 332 case ui::AX_ROLE_SPIN_BUTTON:
332 case ui::AX_ROLE_TEXT_FIELD: 333 case ui::AX_ROLE_TEXT_FIELD:
333 class_name = "android.widget.EditText"; 334 class_name = ui::kAXEditTextClassname;
334 break; 335 break;
335 case ui::AX_ROLE_SLIDER: 336 case ui::AX_ROLE_SLIDER:
336 class_name = "android.widget.SeekBar"; 337 class_name = ui::kAXSeekBarClassname;
337 break; 338 break;
338 case ui::AX_ROLE_COLOR_WELL: 339 case ui::AX_ROLE_COLOR_WELL:
339 case ui::AX_ROLE_COMBO_BOX: 340 case ui::AX_ROLE_COMBO_BOX:
340 case ui::AX_ROLE_DATE: 341 case ui::AX_ROLE_DATE:
341 case ui::AX_ROLE_POP_UP_BUTTON: 342 case ui::AX_ROLE_POP_UP_BUTTON:
342 case ui::AX_ROLE_INPUT_TIME: 343 case ui::AX_ROLE_INPUT_TIME:
343 class_name = "android.widget.Spinner"; 344 class_name = ui::kAXSpinnerClassname;
344 break; 345 break;
345 case ui::AX_ROLE_BUTTON: 346 case ui::AX_ROLE_BUTTON:
346 case ui::AX_ROLE_MENU_BUTTON: 347 case ui::AX_ROLE_MENU_BUTTON:
347 class_name = "android.widget.Button"; 348 class_name = ui::kAXButtonClassname;
348 break; 349 break;
349 case ui::AX_ROLE_CHECK_BOX: 350 case ui::AX_ROLE_CHECK_BOX:
350 case ui::AX_ROLE_SWITCH: 351 case ui::AX_ROLE_SWITCH:
351 class_name = "android.widget.CheckBox"; 352 class_name = ui::kAXCheckBoxClassname;
352 break; 353 break;
353 case ui::AX_ROLE_RADIO_BUTTON: 354 case ui::AX_ROLE_RADIO_BUTTON:
354 class_name = "android.widget.RadioButton"; 355 class_name = ui::kAXRadioButtonClassname;
355 break; 356 break;
356 case ui::AX_ROLE_TOGGLE_BUTTON: 357 case ui::AX_ROLE_TOGGLE_BUTTON:
357 class_name = "android.widget.ToggleButton"; 358 class_name = ui::kAXToggleButtonClassname;
358 break; 359 break;
359 case ui::AX_ROLE_CANVAS: 360 case ui::AX_ROLE_CANVAS:
360 case ui::AX_ROLE_IMAGE: 361 case ui::AX_ROLE_IMAGE:
361 case ui::AX_ROLE_SVG_ROOT: 362 case ui::AX_ROLE_SVG_ROOT:
362 class_name = "android.widget.Image"; 363 class_name = ui::kAXImageClassname;
363 break; 364 break;
364 case ui::AX_ROLE_METER: 365 case ui::AX_ROLE_METER:
365 case ui::AX_ROLE_PROGRESS_INDICATOR: 366 case ui::AX_ROLE_PROGRESS_INDICATOR:
366 class_name = "android.widget.ProgressBar"; 367 class_name = ui::kAXProgressBarClassname;
367 break; 368 break;
368 case ui::AX_ROLE_TAB_LIST: 369 case ui::AX_ROLE_TAB_LIST:
369 class_name = "android.widget.TabWidget"; 370 class_name = ui::kAXTabWidgetClassname;
370 break; 371 break;
371 case ui::AX_ROLE_GRID: 372 case ui::AX_ROLE_GRID:
372 case ui::AX_ROLE_TABLE: 373 case ui::AX_ROLE_TABLE:
373 class_name = "android.widget.GridView"; 374 class_name = ui::kAXGridViewClassname;
374 break; 375 break;
375 case ui::AX_ROLE_LIST: 376 case ui::AX_ROLE_LIST:
376 case ui::AX_ROLE_LIST_BOX: 377 case ui::AX_ROLE_LIST_BOX:
377 case ui::AX_ROLE_DESCRIPTION_LIST: 378 case ui::AX_ROLE_DESCRIPTION_LIST:
378 class_name = "android.widget.ListView"; 379 class_name = ui::kAXListViewClassname;
379 break; 380 break;
380 case ui::AX_ROLE_DIALOG: 381 case ui::AX_ROLE_DIALOG:
381 class_name = "android.app.Dialog"; 382 class_name = ui::kAXDialogClassname;
382 break; 383 break;
383 case ui::AX_ROLE_ROOT_WEB_AREA: 384 case ui::AX_ROLE_ROOT_WEB_AREA:
384 if (GetParent() == nullptr) 385 if (GetParent() == nullptr)
385 class_name = "android.webkit.WebView"; 386 class_name = ui::kAXWebViewClassname;
386 else 387 else
387 class_name = "android.view.View"; 388 class_name = ui::kAXViewClassname;
388 break; 389 break;
389 case ui::AX_ROLE_MENU_ITEM: 390 case ui::AX_ROLE_MENU_ITEM:
390 case ui::AX_ROLE_MENU_ITEM_CHECK_BOX: 391 case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
391 case ui::AX_ROLE_MENU_ITEM_RADIO: 392 case ui::AX_ROLE_MENU_ITEM_RADIO:
392 class_name = "android.view.MenuItem"; 393 class_name = ui::kAXMenuItemClassname;
393 break; 394 break;
394 default: 395 default:
395 class_name = "android.view.View"; 396 class_name = ui::kAXViewClassname;
396 break; 397 break;
397 } 398 }
398 399
399 return class_name; 400 return class_name;
400 } 401 }
401 402
402 base::string16 BrowserAccessibilityAndroid::GetText() const { 403 base::string16 BrowserAccessibilityAndroid::GetText() const {
403 if (IsIframe() || 404 if (IsIframe() ||
404 GetRole() == ui::AX_ROLE_WEB_AREA) { 405 GetRole() == ui::AX_ROLE_WEB_AREA) {
405 return base::string16(); 406 return base::string16();
(...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const { 1499 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const {
1499 int count = 0; 1500 int count = 0;
1500 for (uint32_t i = 0; i < PlatformChildCount(); i++) { 1501 for (uint32_t i = 0; i < PlatformChildCount(); i++) {
1501 if (PlatformGetChild(i)->GetRole() == role) 1502 if (PlatformGetChild(i)->GetRole() == role)
1502 count++; 1503 count++;
1503 } 1504 }
1504 return count; 1505 return count;
1505 } 1506 }
1506 1507
1507 } // namespace content 1508 } // namespace content
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc ('k') | ui/accessibility/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698