2016-06-15 9 views
2

これは複数のクラスタイプのいくつかの場所で起こっていますが、今はボタンの例に固執します。Android - Talkbackは、コンテンツの説明の終わりにクラスタイプをアナウンスします。

私は、トークバックを "再生"としてアナウンスしたいボタンがあります。コンテンツの説明は「再生」に設定されています。しかし、トークバックもクラスを発表しているので、 "再生ボタン"と読みます。

私は、私は完全に働いたが、私はすぐにこのソリューションはAPIのみ23以上のために働いてい「」にクラス名を設定onInitializeAccessibilityNodeInfo方法に

private void setupContentDescriptors() { 
    mPlayPauseButton.setAccessibilityDelegate(new View.AccessibilityDelegate() { 
     public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) 
     { 
      super.onInitializeAccessibilityNodeInfo(host, info); 

      //blanked to prevent talkback from announcing class/type 
      info.setClassName(""); 
      info.setContentDescription("Play"); 
     } 
    }); 
} 

に過負荷をかけることにより、他の場所で見つかったソリューションを試してみました。 ドキュメントによると、「デリゲートメソッドはホストメソッドの後に呼び出されます。すべてのプロパティがホストクラスによって上書きされることなく変更されます。

私は利用できないいくつかの方法を試しました。 アイデア?

答えて

3

API 23より前では、サブクラスを作成し、クラス名をオーバーライドする必要がある場合はonInitializeAccessibilityNodeInfo()を実装する必要があります。デリゲートを使用してそれをオーバーライドすることはできません。

つまり、TalkBackは役割の説明を話すことによって、ユーザーにとって一貫性のある高品質な体験を提供しようとしています。ほとんどの場合、この動作を無効にするべきではありません。

0

よく知られている小規模のユーザーサークルがいる場合は、これはalanvの回答の別の方法です。あなたがこれを行うことができますトーク5.2.1(*)で

: - >アクセシビリティ - >トークバック - >設定 - 設定」の下

が>冗長性

あなたは/エントリをオフに切り替えることができます彼は要素型かどうかを聞きたい場合は、ユーザー自身が決めることができます。これにより

「要素の型を話す」。これは、トークバックは要素を読み込む方法をいじくり回すしないように別の引数である。


(*)スピーキングエレメントの冗長設定が導入された時期に関するドキュメントはありませんでした。 Talkback 5.2.1を搭載したAndroid搭載端末では動作していますが、Talkback 5.0.3搭載の端末ではこの設定がありません。その間のどこにでも導入する必要がありました。

関連する問題