From e01879eae821d5b72ac89bbb3de73a5e1555d323 Mon Sep 17 00:00:00 2001 From: cgspine Date: Tue, 26 Apr 2022 17:35:34 +0800 Subject: [PATCH] feat: add text to AccessibilityNodeInfo. --- .../java/com/qmuiteam/qmui/qqface/QMUIQQFaceView.java | 8 ++++++++ .../main/java/com/qmuiteam/qmui/type/view/LineTypeView.kt | 7 +++++++ .../java/com/qmuiteam/qmui/type/view/MarqueeTypeView.kt | 7 +++++++ 3 files changed, 22 insertions(+) diff --git a/qmui/src/main/java/com/qmuiteam/qmui/qqface/QMUIQQFaceView.java b/qmui/src/main/java/com/qmuiteam/qmui/qqface/QMUIQQFaceView.java index 736d1e49..1fde7353 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/qqface/QMUIQQFaceView.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/qqface/QMUIQQFaceView.java @@ -32,6 +32,7 @@ import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.accessibility.AccessibilityNodeInfo; import androidx.annotation.ColorInt; import androidx.annotation.Nullable; @@ -812,6 +813,13 @@ public class QMUIQQFaceView extends View { mListener = listener; } + @Override + public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { + super.onInitializeAccessibilityNodeInfo(info); + info.setText(getText()); + info.setContentDescription(getText()); + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { long start = System.currentTimeMillis(); diff --git a/type/src/main/java/com/qmuiteam/qmui/type/view/LineTypeView.kt b/type/src/main/java/com/qmuiteam/qmui/type/view/LineTypeView.kt index f5825c85..5db620c5 100644 --- a/type/src/main/java/com/qmuiteam/qmui/type/view/LineTypeView.kt +++ b/type/src/main/java/com/qmuiteam/qmui/type/view/LineTypeView.kt @@ -23,6 +23,7 @@ import android.text.TextUtils import android.util.AttributeSet import android.util.Log import android.view.MotionEvent +import android.view.accessibility.AccessibilityNodeInfo import androidx.annotation.ColorInt import com.qmuiteam.qmui.type.LineLayout import com.qmuiteam.qmui.type.TypeEnvironment @@ -98,6 +99,12 @@ open class LineTypeView : BaseTypeView { } } + override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) { + super.onInitializeAccessibilityNodeInfo(info) + info.text = text + info.contentDescription = text + } + fun addClickEffect( start: Int, end: Int, textColorGetter: (isPressed: Boolean) -> Int, diff --git a/type/src/main/java/com/qmuiteam/qmui/type/view/MarqueeTypeView.kt b/type/src/main/java/com/qmuiteam/qmui/type/view/MarqueeTypeView.kt index d17f330c..0381821a 100644 --- a/type/src/main/java/com/qmuiteam/qmui/type/view/MarqueeTypeView.kt +++ b/type/src/main/java/com/qmuiteam/qmui/type/view/MarqueeTypeView.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.* import android.os.SystemClock import android.util.AttributeSet +import android.view.accessibility.AccessibilityNodeInfo import com.qmuiteam.qmui.type.TypeModel import com.qmuiteam.qmui.type.parser.PlainTextParser import com.qmuiteam.qmui.type.parser.TextParser @@ -61,6 +62,12 @@ class MarqueeTypeView : BaseTypeView { invalidate() } + override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) { + super.onInitializeAccessibilityNodeInfo(info) + info.text = text + info.contentDescription = text + } + override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { val widthSize = MeasureSpec.getSize(widthMeasureSpec) val widthMode = MeasureSpec.getMode(widthMeasureSpec)