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
我有一个 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