我有最新版本的 Talkback 及其宣布“我的顶级文本标题”。Android 本机行为正在为我的顶级元素添加“标题”。我找不到打开/关闭航向通知的方法。是否有 API 来控制其行为。在先前版本的对讲版本中,它本身并没有宣布“标题”。
问问题
8102 次
4 回答
8
View
您可以启用或禁用任何API 19+ 上的“标题”可访问性属性:
ViewCompat.setAccessibilityDelegate(headingView, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setHeading(true); // false to mark a view as not a heading
}
});
如果你有 minSdk 28,你可以直接在你的 XML 中设置它:
android:accessibilityHeading="false"
于 2019-01-07T21:51:15.813 回答
4
在 API 19+ 上添加一个简单的方法:
ViewCompat.setAccessibilityHeading(headingView, false);
于 2020-07-16T07:40:04.590 回答
1
我通过将标题传递为 false 解决了这个问题
AccessibilityNodeInfoCompat.CollectionItemInfoCompat.obtain method.
// set the heading attribute to false so that heading is not announced in label
info.setCollectionItemInfo(
AccessibilityNodeInfoCompat.CollectionItemInfoCompat.obtain(glp.getSpanIndex(),
glp.getSpanSize(), spanGroupIndex, 1, false, false));
public static CollectionItemInfoCompat obtain(int rowIndex,
int rowSpan, int columnIndex, int columnSpan,
boolean heading, boolean selected)
于 2017-09-14T06:19:05.300 回答
1
如果您只支持 API 级别 23 及以上,您可以简单地执行以下操作。
textView.setAccessibilityDelegate(new View.AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
//blanked to prevent talkback from announcing class/type
info.setClassName("");
}
});
于 2017-09-13T21:11:56.873 回答