銀行口座番号のように、一度に 1 文字ずつ読み取る必要がある長い数字を処理するには、どのような方法が適していますか? ユーザーがこの方法で TalkBack に数字を読み上げさせることができることは知っていますが、最初からこれを行う必要があることを示唆できれば幸いです。
数字の間にスペースを入れてコンテンツの説明を設定するのは良い考えですか、それともユーザーがこれを煩わしく感じるでしょうか?
ありがとう!
銀行口座番号のように、一度に 1 文字ずつ読み取る必要がある長い数字を処理するには、どのような方法が適していますか? ユーザーがこの方法で TalkBack に数字を読み上げさせることができることは知っていますが、最初からこれを行う必要があることを示唆できれば幸いです。
数字の間にスペースを入れてコンテンツの説明を設定するのは良い考えですか、それともユーザーがこれを煩わしく感じるでしょうか?
ありがとう!
私は何人かのスクリーン リーダー ユーザーと話をしましたが、彼らは全員、このような場合に通常とは異なることをするべきではないことを確認しました。彼らは皆、「心配しないで、私たちが解決します。あなたが私たちを助ける必要はありません」と言っています。
スクリーン リーダーのユーザーは、より明確にする必要がある領域に到達すると、満足するまで矢印キーを使用して 1 文字ずつ移動し、スクリーン リーダーを続行させます。
editText または textView に次のデリゲートを使用します
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
switch (host.getId()) {
case R.id.tv_bookingID:
if (((TextView) host).getText().length() > 1) {
sb.delete(0, sb.length());
for (char c : ((TextView) host).getText().toString().toCharArray()) {
sb.append(c).append(" ");
}
//change text for talkback
info.setText(null);
info.setContentDescription(sb.toString().trim());
}
break;
}
}//if
}