使用 Talkback 宣布一个 TextView
Announce a TextView with Talkback
我正在开发一个使用 google 地图 api 的应用程序,它应该供看不见的人使用,因此辅助功能很重要。
如何制作一个已经作为文本和 contentDescription 的 TextView,以便在 activity 启动时立即公布,而无需用户触摸它?
我的问题的另一点是我有一条公交路线,我想在某些点得到通知并附上说明,我的问题是对讲功能正常,但如果我触摸 googlemap 或 activity 中的任何其他地方,对讲停止说出描述。 (此描述显示在 Toast 中)
您在第一点中概述的关于在 activity 星级后立即阅读文本的内容是不受欢迎的行为。让 TalkBack 用户浏览您的应用以查找此信息。如果您必须 post 公告,您正在寻找的是辅助功能公告事件,它允许您向辅助技术层发送任意文本公告。
if (AccessibilityManager.getInstance(context).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT);
onInitializeAccessibilityEvent(event);
event.getText().add("some text");
event.setContentDescription(null);
yourContentView.requestSendAccessibilityEvent(this, event);
}
您在第二点中概述的是期望的行为。想象一下,如果 TalkBack 用户不能打断各种通知,如果他们不小心连续聚焦了几段文字,他们要等多久才能听到按钮之类的简单名称?那将是一个非常令人沮丧的用户体验。
同上答案,最新代码更新:
private void sendAccessibiltyEvent(@NonNull String message) {
AccessibilityManager accessibilityManager = (AccessibilityManager)requireActivity().getApplicationContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
if (accessibilityManager.isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
event.getText().add(message);
accessibilityManager.sendAccessibilityEvent(event);
}
}
我正在开发一个使用 google 地图 api 的应用程序,它应该供看不见的人使用,因此辅助功能很重要。
如何制作一个已经作为文本和 contentDescription 的 TextView,以便在 activity 启动时立即公布,而无需用户触摸它?
我的问题的另一点是我有一条公交路线,我想在某些点得到通知并附上说明,我的问题是对讲功能正常,但如果我触摸 googlemap 或 activity 中的任何其他地方,对讲停止说出描述。 (此描述显示在 Toast 中)
您在第一点中概述的关于在 activity 星级后立即阅读文本的内容是不受欢迎的行为。让 TalkBack 用户浏览您的应用以查找此信息。如果您必须 post 公告,您正在寻找的是辅助功能公告事件,它允许您向辅助技术层发送任意文本公告。
if (AccessibilityManager.getInstance(context).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT);
onInitializeAccessibilityEvent(event);
event.getText().add("some text");
event.setContentDescription(null);
yourContentView.requestSendAccessibilityEvent(this, event);
}
您在第二点中概述的是期望的行为。想象一下,如果 TalkBack 用户不能打断各种通知,如果他们不小心连续聚焦了几段文字,他们要等多久才能听到按钮之类的简单名称?那将是一个非常令人沮丧的用户体验。
同上答案,最新代码更新:
private void sendAccessibiltyEvent(@NonNull String message) {
AccessibilityManager accessibilityManager = (AccessibilityManager)requireActivity().getApplicationContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
if (accessibilityManager.isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
event.getText().add(message);
accessibilityManager.sendAccessibilityEvent(event);
}
}