Commit 5fa6e2ee authored by Wei-Yin Chen (陳威尹)'s avatar Wei-Yin Chen (陳威尹) Committed by Commit Bot

Announce text on ReaderModeInfoBar as a Button for accessibility

Use a fake Button class for the TextViews on Reader Mode Infobar, so
that it can be announced as a button with TalkBack.

Bug: 773763
Change-Id: I0a3f62a0752604e7fe94d9bc61d8b69edb4be8d0
Reviewed-on: https://chromium-review.googlesource.com/713755
Commit-Queue: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509241}
parent 268afa0f
...@@ -6,9 +6,13 @@ package org.chromium.chrome.browser.infobar; ...@@ -6,9 +6,13 @@ package org.chromium.chrome.browser.infobar;
import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO; import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO;
import android.content.Context;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
...@@ -40,6 +44,27 @@ public class ReaderModeInfoBar extends InfoBar { ...@@ -40,6 +44,27 @@ public class ReaderModeInfoBar extends InfoBar {
} }
}; };
/**
* Fake Button class, used so TextViews can announce themselves as Buttons, for accessibility.
*/
public static class AccessibleTextView extends TextView {
public AccessibleTextView(Context context) {
super(context);
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
event.setClassName(Button.class.getName());
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(Button.class.getName());
}
}
/** /**
* Default constructor. * Default constructor.
*/ */
...@@ -59,7 +84,7 @@ public class ReaderModeInfoBar extends InfoBar { ...@@ -59,7 +84,7 @@ public class ReaderModeInfoBar extends InfoBar {
@Override @Override
protected void createCompactLayoutContent(InfoBarCompactLayout layout) { protected void createCompactLayoutContent(InfoBarCompactLayout layout) {
TextView prompt = new TextView(getContext()); TextView prompt = new AccessibleTextView(getContext());
if (ChromeFeatureList.isEnabled(ChromeFeatureList.ALLOW_READER_FOR_ACCESSIBILITY)) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.ALLOW_READER_FOR_ACCESSIBILITY)) {
prompt.setText(R.string.reader_view_text_alt); prompt.setText(R.string.reader_view_text_alt);
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment