2013-10-07 13 views
9

アカウントを作成するときに、名字を入力するためのedittextがあり、そのヒントが "Jane"(名字)です。私はまた、このedittextに "first name"というアクセシビリティのためのコンテンツ記述をしたいと思っています。 ヒントとコンテンツの両方の説明を設定すると、「contentDescriptionとヒントの両方を設定しないでください:contentDescriptionはヒントをマスクします」という警告が表示され、これは問題ありません。 TalkBackをオンにすると、コンテンツの説明ではなくヒントが読み込まれます。ヒント付きのテキスト編集のAndroidアクセシビリティ

誰でも私にこれを手伝ってもらえますか? Thnx。

+0

あなたは[ここ](http://stackoverflow.com/a/37074785/6300678)の回答を見つけることができます。 –

答えて

2

アンドロイド:contentDescriptionはテキスト以外のテキストの説明であるのに対し、アンドロイド:テキストはテキストを表示しない限り、アンドロイド:ヒントはTextViews(およびそのサブクラス)のテキストのプレースホルダーを意味します。コンテンツ(画像...)。したがって、私はEditTextについてのみヒントを設定します。

+1

入力タイプtextPasswordを選択するとコンテンツの説明が表示され、ヒントは表示されませんが、このプロパティがアクセシビリティに与える影響はわかりません。明らかに私はすべての編集テキストにこの入力タイプを使用できません – Damir

+0

@Damir私はそれを認識していませんでしたが、意味があります。 inputType textPasswordを持つEditTextは多かれ少なかれ非テキストコンテンツなので、contentDescriptionが必要です。私が理解する限り、ヒントはアクセシビリティソフトウェアによってのみ読み取られます。アクセシビリティソフトウェアはテキストコンテンツが現在TextViewに存在しない場合にのみ表示され、それ以外の場合はテキストが読み込まれます。私はアクセシビリティソフトウェアは入力タイプtextPaswort EditTextのテキストを読んでいないと思います。何かが既に入力されているので、ヒントは読み込まれませんが、どちらの場合もcontentDescription(テキスト入力済みかどうか)。 –

+0

"私が理解する限り、ヒントはアクセシビリティソフトウェアによってのみ読み込まれます。テキストコンテンツが現在TextViewに存在しない場合、テキストは読み込まれます。 - 私は同じことを考えましたが、そうではありません。Eclipseの状態で違った警告をしながらコンテンツの記述を追加しても、ヒントが読み込まれます。 "contentDescriptionとヒントの両方を設定しないでください:contentDescriptionはヒント" – Damir

0

同じ問題が発生し、アクセシビリティサービスが有効になっているときにヒントをnullに設定して解決しました。これを有効にすると、ユーザーはおそらくヒントは必要ありません。

private void setAccessibility() 
{ 
    if (isExploreByTouchEnabled()) 
    {   
     firstName.setHint(null); 
     firstName.setContentDescription("first name"); 
    } 
} 

public boolean isExploreByTouchEnabled() 
{ 
    AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(ACCESSIBILITY_SERVICE); 
    boolean isAccessibilityEnabled = am.isEnabled(); 
    boolean isExploreByTouchEnabled = am.isTouchExplorationEnabled(); 
    return isAccessibilityEnabled && isExploreByTouchEnabled; 
} 
関連する問題