我正在探索 android sdk, android version > 4.1 中提供的 API Demos。API 演示 -> 可访问性 -> 可访问性节点提供程序
AccessibilityNodeProvider 包含一些具有红色、绿色、蓝色颜色的自定义视图。如活动中所述,我启用了对讲并尝试将鼠标悬停在视图上。Talkback 无法读取颜色。Talkback 正在阅读活动中可用的文本,而不是颜色。我想知道 Talkback 是否读取活动中的颜色(自定义视图)?
提前致谢
我正在探索 android sdk, android version > 4.1 中提供的 API Demos。API 演示 -> 可访问性 -> 可访问性节点提供程序
AccessibilityNodeProvider 包含一些具有红色、绿色、蓝色颜色的自定义视图。如活动中所述,我启用了对讲并尝试将鼠标悬停在视图上。Talkback 无法读取颜色。Talkback 正在阅读活动中可用的文本,而不是颜色。我想知道 Talkback 是否读取活动中的颜色(自定义视图)?
提前致谢
在 AccessibilityNodeProviderActivity 类的 com.example.android.apis.accessibility 包中,找到 sendAccessibilityEventForVirtualView() 方法。您需要将 AccessibilityEvent 上的 eventType 设置为 AccessibilityEvent.TYPE_ANNOUNCEMENT,如下所示:
event.getText().add(virtualView.mText);
event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
getParent().requestSendAccessibilityEvent(VirtualSubtreeRootView.this, event);
这应该使它宣布文本。但它仍然没有突出显示视图——不知道预期的行为是否应该突出显示节点。
我发现这个 Google 代码示例是在节点提供程序设置中说出文本的更好示例。
(下面的旧答案。)
在AccessibilityNodeProviderActivity
课堂上,看方法sendAccessibilityEventForVirtualView()
。您会看到设置到事件中的文本是在accessibility_node_provider.xml
. 您可以用不同颜色值的措辞替换该文本,以获得您所要求的内容。