API 21 以降では、ビューの でカスタム アクションを設定することにより、アクション名をカスタマイズできますAccessibilityNodeInfo
。これには 2 つの方法があります。1) デリゲート メソッドを設定しAccessibilityDelegate
てオーバーライドするonInitializeAccessibilityNodeInfo
か、2) ビューのクラスを拡張してオーバーライドしますonInitializeAccessibilityNodeInfo
。
いずれにしても、新しいAccessibilityActionを作成し、 AccessibilityNodeInfo.addActionを使用してノードに設定します。
デリゲートの使用を選択した場合は、次のようにクリック アクションのカスタム説明を設定します。
view.setAccessibilityDelegate(new AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(
View v, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(v, info);
// A custom action description. For example, you could use "pause"
// to have TalkBack speak "double-tap to pause."
CharSequence description = getResources().getText(R.string.my_click_desc);
AccessibilityAction customClick = new AccessibilityAction(
AccessibilityAction.ACTION_CLICK, description);
info.addAction(customClick);
}
});
アプリケーションが 21 未満の API をターゲットにしている場合は、適切な*Compat
サポート ライブラリ メソッドに置き換えてください。この機能はバックポートされていないため、21 未満の API ではカスタムの説明を取得できませんが、アプリケーション コードでの明示的なバージョン チェックを回避できます。