0

私はandroid.widget.Buttonから継承しないカスタムビューをボタンとしてAndroidビューに使用しています。アクセシビリティサービスをボタンとして伝える最良の方法は何ですか?TalkBackにカスタムビューがボタンとして使用されています

ビューでsetClickable(true)と電話するだけで十分ですか?

標準Buttonの場合、TalkBackは「ボタン」という単語をヒントとして追加しますが、カスタムビューではそのようにはなりません。私はどこかのヒントとして "ボタン"という言葉を追加するべきですか?

iOSでは、「特性」ボタンをビューに追加し、VoiceOverはボタンとして表記します。 Androidに似たものはありますか?

答えて

3

あなたトークバックプロジェクトを通じて掘る場合は、Role.javaに、あなたがヒントテキスト「ボタン」が次の状況で適用されていることがわかります。

  • 要素はandroid.widgetのクラスがあります。ボタン

OR

  1. 要素がandroid.widget.ImageView
  2. のクラスを持っています要素isClickable()

いずれにしても、isClickable()には、ヒントテキスト「Double tap to ....」が適用されます。だから答えはいいえ、あなたはしてはいけません。 「ボタン」はTalkBackユーザーに特有のものを意味し、AndroidオペレーティングシステムとTalkBackが連携してその機能を把握することをお勧めします。

TalkBackでは、遅延ヒントテキストにその情報を入れるのではなく、トリビュアでクリック可能なすべてのものをボタンとして発表したほうがよいでしょうか?「...をタップしてください」(... =展開、アクティブ化など) on control)はい、おそらくそうです。

Androidがあなたに「はい、私がサブクラス化したものはボタンです」と言うことができればいいですか?iOSの特徴と同じです。はい、おそらくそうです。

実際、私は、このシナリオの「ボタン」の発表は追加情報であることを考えると、 「ボタン」とは、ダブルタップして行動させることだけを意味します。 「ボタン」アナウンスが「ボタン」にのみ適用された場合、「android.widget.Button」オブジェクトは特定の方法(通常はスタイル指定されている)であるため、そうではありません。しかし、これはIMAGE_VIEWSにも適用されるので、他の単純な「クリック可能」ビューには適用されず、その目的は泥であり、最終的には役に立たず混乱します。そして、あなたはこれを修正しようとすべきではありません。この権利を取得することはTalkBackの仕事であり、他の方法でもできます。私に説明させてください:

ボタンの発表は本質的に廃止され、遅延アナウンス "double tap to ..."に置き換えられました。 「ボタン」の発表は、その発表に慣れていたユーザーのための従来のサポートとして残されました。

要約:「ダブルタップする....」があなたのコントロールの後で発表されていることを確認してください。ただし、ノードにクリックリスナーと "isClickable"があることを確認するだけで十分です。この遅延ヒント発表は重要なビットです。 「ボタン」の発表は重要ではなく、TalkBackプロジェクトの開発の初期に残された不幸な意思決定から残ったごみは残されています。それは、将来のリリースでクリック可能なすべてのもの(カスタムコントロールなど)に適用されるように修正されます。いずれにしても、コンテンツの説明に「ボタン」という言葉を追加することはお勧めできません。

関連する問題