| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |