| Index: content/browser/accessibility/browser_accessibility_android.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc
|
| index 599a6b3ed7c702972dc506dc120803e50c13a8da..fd0bab70144f0a8f95c61b7533cc33c9d88387a2 100644
|
| --- a/content/browser/accessibility/browser_accessibility_android.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_android.cc
|
| @@ -266,7 +266,8 @@ bool BrowserAccessibilityAndroid::IsRangeType() const {
|
| return (GetRole() == ui::AX_ROLE_PROGRESS_INDICATOR ||
|
| GetRole() == ui::AX_ROLE_METER ||
|
| GetRole() == ui::AX_ROLE_SCROLL_BAR ||
|
| - GetRole() == ui::AX_ROLE_SLIDER);
|
| + GetRole() == ui::AX_ROLE_SLIDER ||
|
| + (GetRole() == ui::AX_ROLE_SPLITTER && IsFocusable()));
|
| }
|
|
|
| bool BrowserAccessibilityAndroid::IsScrollable() const {
|
| @@ -853,46 +854,45 @@ base::string16 BrowserAccessibilityAndroid::GetRoleDescription() const {
|
|
|
| int BrowserAccessibilityAndroid::GetItemIndex() const {
|
| int index = 0;
|
| - switch (GetRole()) {
|
| - case ui::AX_ROLE_LIST_ITEM:
|
| - case ui::AX_ROLE_LIST_BOX_OPTION:
|
| - case ui::AX_ROLE_TREE_ITEM:
|
| - index = GetIntAttribute(ui::AX_ATTR_POS_IN_SET) - 1;
|
| - break;
|
| - case ui::AX_ROLE_SLIDER:
|
| - case ui::AX_ROLE_PROGRESS_INDICATOR: {
|
| - // Return a percentage here for live feedback in an AccessibilityEvent.
|
| - // The exact value is returned in RangeCurrentValue.
|
| - float min = GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE);
|
| - float max = GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE);
|
| - float value = GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE);
|
| - if (max > min && value >= min && value <= max)
|
| - index = static_cast<int>(((value - min)) * 100 / (max - min));
|
| - break;
|
| + if (IsRangeType()) {
|
| + // Return a percentage here for live feedback in an AccessibilityEvent.
|
| + // The exact value is returned in RangeCurrentValue.
|
| + float min = GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE);
|
| + float max = GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE);
|
| + float value = GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE);
|
| + if (max > min && value >= min && value <= max)
|
| + index = static_cast<int>(((value - min)) * 100 / (max - min));
|
| + } else {
|
| + switch (GetRole()) {
|
| + case ui::AX_ROLE_LIST_ITEM:
|
| + case ui::AX_ROLE_LIST_BOX_OPTION:
|
| + case ui::AX_ROLE_TREE_ITEM:
|
| + index = GetIntAttribute(ui::AX_ATTR_POS_IN_SET) - 1;
|
| + break;
|
| + default:
|
| + break;
|
| }
|
| - default:
|
| - break;
|
| }
|
| return index;
|
| }
|
|
|
| int BrowserAccessibilityAndroid::GetItemCount() const {
|
| int count = 0;
|
| - switch (GetRole()) {
|
| - case ui::AX_ROLE_LIST:
|
| - case ui::AX_ROLE_LIST_BOX:
|
| - case ui::AX_ROLE_DESCRIPTION_LIST:
|
| - count = PlatformChildCount();
|
| - break;
|
| - case ui::AX_ROLE_SLIDER:
|
| - case ui::AX_ROLE_PROGRESS_INDICATOR:
|
| - // An AccessibilityEvent can only return integer information about a
|
| - // seek control, so we return a percentage. The real range is returned
|
| - // in RangeMin and RangeMax.
|
| - count = 100;
|
| - break;
|
| - default:
|
| - break;
|
| + if (IsRangeType()) {
|
| + // An AccessibilityEvent can only return integer information about a
|
| + // seek control, so we return a percentage. The real range is returned
|
| + // in RangeMin and RangeMax.
|
| + count = 100;
|
| + } else {
|
| + switch (GetRole()) {
|
| + case ui::AX_ROLE_LIST:
|
| + case ui::AX_ROLE_LIST_BOX:
|
| + case ui::AX_ROLE_DESCRIPTION_LIST:
|
| + count = PlatformChildCount();
|
| + break;
|
| + default:
|
| + break;
|
| + }
|
| }
|
| return count;
|
| }
|
|
|