Android TalkBack EditText - 提示与 contentDescription

Android TalkBack EditText - hint vs. contentDescription

我有一个 TextView 和一个 EditText。 TextView 使用 android:labelFor="@+id/EditTextId"

EditText 也有一个表示输入示例的提示,我只想对不使用 TalkBack 的用户可见,而不是被 TalkBack 读取。

android:contentDescription="Mandatory field" android:hint="Example of input"

TalkBack 通常会显示(我希望它如何工作):

"Mandatory field, Edit Box for Text View"

而是改为:

"Example of input, Edit Box for Text View"

这可以通过以下方式实现:

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 将显示为:"Mandatory field " + "Edit box for " + 具有 android:labelFor

的 TextView