默认情况下,Android上的可点击视图将使用在内容描述后朗读(如果已启用TalkBack且用户关注该视图)的使用提示进行呈现:
“双击激活”
我可以更改这个,以便它读出一些不那么抽象,更具体的应用程序吗?喜欢:
“双击播放视频”
是的,这绝对是可能的!
如果您有自定义视图,则可以覆盖 onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) 方法并添加带有 ACTION_CLICK ID的操作,以覆盖标签:
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)
ACTION_CLICK
@Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.addAction( new AccessibilityNodeInfo.AccessibilityAction( AccessibilityNodeInfo.ACTION_CLICK, "play video" ) ); }
如果该View具有单击侦听器,则通过添加此新 Action ,您将覆盖默认标签,因此TalkBack将改为"Double tap to " .
Action
这仅适用于API 21 - 如果您想要在较低API版本上工作或想要在非自定义视图上设置自定义使用提示,该怎么办?你可以使用 ViewCompat 和 AccessibilityDelegateCompat !
ViewCompat
AccessibilityDelegateCompat
它非常相似 - 您可以覆盖扩展的自定义AccessibilityDelegate中的等效方法:
public static class PlayVideoAccessibilityDelegate extends AccessibilityDelegateCompat { @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) { super.onInitializeAccessibilityNodeInfo(host, info); info.addAction( new AccessibilityNodeInfoCompat.AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_CLICK, "play video" ) ); } }
然后使用它,你用 ViewCompat 设置委托:
ViewCompat.setAccessibilityDelegate(playButton, new PlayVideoAccessibilityDelegate());
Novoda有一个实用程序库,可以帮助Android上的辅助功能 . 这包括一些帮助设置使用提示的工具:
UsageHintsAccessibilityDelegate delegate = new UsageHintsAccessibilityDelegate(resources); delegate.setClickLabel("play video"); ViewCompat.setAccesibilityDelegate(playButton, delegate);
我写了一个blogpost which is an overview of accessibilitools(我也是图书馆的撰稿人) .
1 回答
是的,这绝对是可能的!
重写onInitializeAccessibilityNodeInfo方法
如果您有自定义视图,则可以覆盖
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)
方法并添加带有ACTION_CLICK
ID的操作,以覆盖标签:如果该View具有单击侦听器,则通过添加此新
Action
,您将覆盖默认标签,因此TalkBack将改为"Double tap to " .这仅适用于API 21 - 如果您想要在较低API版本上工作或想要在非自定义视图上设置自定义使用提示,该怎么办?你可以使用
ViewCompat
和AccessibilityDelegateCompat
!改为使用AccessibilityDelegate
它非常相似 - 您可以覆盖扩展的自定义AccessibilityDelegate中的等效方法:
然后使用它,你用
ViewCompat
设置委托:使用accessibilitools
Novoda有一个实用程序库,可以帮助Android上的辅助功能 . 这包括一些帮助设置使用提示的工具:
我写了一个blogpost which is an overview of accessibilitools(我也是图书馆的撰稿人) .