Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java |
index 772aea5a9fa958255acdc16167c26514d4365115..347a5fe4f537a37cb8d708accb891ae1b9ea0f33 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java |
@@ -25,8 +25,11 @@ import java.util.Locale; |
* A preference category that accepts clicks for toggling on/off. |
*/ |
public class ExpandablePreferenceGroup extends PreferenceGroup { |
- private Drawable mDrawable = null; |
- private ImageView mImageView = null; |
+ private Drawable mDrawable; |
+ private ImageView mImageView; |
+ |
+ // Whether the PreferenceGroup is in an expanded or collapsed state. |
+ private boolean mExpanded; |
public ExpandablePreferenceGroup(Context context, AttributeSet attrs) { |
super(context, attrs, android.R.attr.preferenceStyle); |
@@ -63,6 +66,10 @@ public class ExpandablePreferenceGroup extends PreferenceGroup { |
setTitle(spannable); |
} |
+ public void setExpanded(boolean expanded) { |
+ mExpanded = expanded; |
+ } |
+ |
@Override |
public void setIcon(Drawable drawable) { |
mDrawable = drawable; |
@@ -74,5 +81,11 @@ public class ExpandablePreferenceGroup extends PreferenceGroup { |
super.onBindView(view); |
mImageView = (ImageView) view.findViewById(R.id.expando); |
if (mDrawable != null) mImageView.setImageDrawable(mDrawable); |
+ |
+ // For accessibility, read out the whole title and whether the group is collapsed/expanded. |
+ String description = getTitle() + getContext().getResources().getString(mExpanded |
+ ? R.string.accessibility_expanded_group |
+ : R.string.accessibility_collapsed_group); |
+ view.setContentDescription(description); |
} |
} |