From 8970ed53710f4e2cb889b3ddb5987cbfa777da21 Mon Sep 17 00:00:00 2001 From: Sysking1024 <38101886+Sysking1024@users.noreply.github.com> Date: Sun, 28 Jun 2020 22:07:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DTalkBack=E4=B8=8B=E8=81=9A?= =?UTF-8?q?=E7=84=A6=E5=88=B0TabView=E6=97=B6TalkBack=E4=B8=8D=E6=9C=97?= =?UTF-8?q?=E8=AF=BBTabView=E6=98=BE=E7=A4=BA=E7=9A=84=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TalkBack是Google推出的Android上的屏幕阅读器。透过TalkBack能让视力受损用户与Android设备上的app交互。当TalkBack聚焦TabView时,缺少contentDescription,TalkBack将不会向用户朗读所聚焦的TabView显示的文本,用户将无法得知所聚焦TabView的含义。 --- .../java/com/qmuiteam/qmui/widget/tab/QMUITabView.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java index f5266c7c..89cfc21b 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java @@ -666,6 +666,16 @@ public class QMUITabView extends FrameLayout implements IQMUISkinHandlerView { onDrawTab(canvas); super.draw(canvas); } + + @Override + public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { + super.onInitializeAccessibilityNodeInfo(info); + + // 给每个tab添加文本标签 + // 使得TalkBack等屏幕阅读器focus 到 tab上时可将tab的文本通过TTS朗读出来 + // 这样视力受损用户(如盲人、低、弱视力)就能和widget交互 + info.setContentDescription(mTab.getText()); + } protected void onDrawTab(Canvas canvas) { if (mTab == null) {