安卓TalkBack EditText - 提示 vs. 内容描述

5
我有一个TextView和一个EditText。TextView使用android:labelFor="@+id/EditTextId"属性;
EditText还有一个提示,表示输入示例,我只希望对不使用TalkBack的用户可见,而不被TalkBack读取。 android:contentDescription="必填字段" android:hint="输入示例" TalkBack通常会读取(我希望它的工作方式):
"Mandatory field, Edit Box for Text View"
但是实际上,它读取:
"Example of input, Edit Box for Text View"
1个回答

4
这是通过以下方式实现的:
View.AccessibilityDelegate accessibilityDelegate = new View.AccessibilityDelegate() {
            @Override
            public void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfo info) {
                super.onInitializeAccessibilityNodeInfo(v, info);
                info.setText("Mandatory field");
            }
        };

        myEditTex.setAccessibilityDelegate(accessibilityDelegate);

这样,辅助功能TalkBack将会读出:"必填字段" + "编辑框" + 带有android:labelFor的TextView


维克多,这确实有效,但我注意到在你向编辑文本添加文本后,它会返回到提示。我猜可能需要调整其他委托方法之一?你遇到过这种情况吗(基本上是在空白时点击ET,它是正确的,在添加文本后再次点击,它会读取提示)? - Eggman87
维克多,这个提示出了点问题。为了让提示正常工作,你需要在info对象上分配hintText,否则Talkback会忽略提示文本。info.hintText =“您的提示” - Harminder Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接