2013-10-07 5 views
9

Ich habe Edittext für die Eingabe des Vornamens beim Erstellen von Konto und seinen Hinweis ist "Jane" (als Vorname). Ich möchte auch eine Inhaltsbeschreibung in diesem Edittext für die Barrierefreiheit haben, die "Vorname" sagt. Wenn ich sowohl Hinweis als auch Inhaltsbeschreibung Warnung Pop-up öffnet "nicht sowohl contentDescription und Hinweis: die contentDescription wird den Hinweis maskieren" und das ist in Ordnung, es ist nur, dass Inhaltsbeschreibung Hinweis nicht maskiert. Wenn ich TalkBack aktiviere, liest es immer noch einen Hinweis und keine Inhaltsbeschreibung.Android-Zugänglichkeit in bearbeiten Text mit Hinweis

Könnte jemand mir dabei helfen. Thnx.

+0

finden Sie die Antwort [hier] (http://stackoverflow.com/a/37074785/6300678). –

Antwort

2

Von was ich verstehe, Androiden: Hinweis ist als Platzhalter für Text in TextViews (und seine Unterklassen) gemeint, solange sie keinen Text anzeigen, während Android: ContentDescription als alternative Textbeschreibung für nicht textuell gemeint ist Inhalt (Bilder ...). Daher würde ich nur einen Hinweis auf den EditText setzen.

+1

Ich habe gerade festgestellt, wenn ich den Eingabe-Typ TextPassword wählen wird es Inhalt Beschreibung lesen und nicht Hinweis, aber ich verstehe nicht, warum diese Eigenschaft Auswirkungen auf die Zugänglichkeit hat. Natürlich kann ich diesen Eingabe-Typ nicht für alle Editier-Texte verwenden. – Damir

+0

@Damir, obwohl mir das nicht bewusst war, macht es Sinn. Ein EditText mit inputType textPassword ist mehr oder weniger nicht-textueller Inhalt, daher benötigt er eine contentDescription. Soweit ich weiß, wird der Hinweis nur dann von der Eingabehilfe gelesen, wenn Textinhalte in einem TextView nicht vorhanden sind und der Text sonst gelesen wird. Ich denke, dass keine Eingabehilfen-Software den Text eines Eingabetyps textPaswort EditText lesen würde, wenn etwas bereits eingegeben wurde, daher wird in beiden Fällen nicht der Hinweis gelesen, sondern die contentDescription (Text eingegeben oder nicht). –

+0

"Soweit ich verstehe, wird der Hinweis nur von der Eingabehilfen-Software gelesen, für den Fall, dass in einem TextView kein Textinhalt vorhanden ist und der Text sonst gelesen wird." - Ich dachte das gleiche, aber das ist nicht der Fall, Hinweis wird gelesen, auch wenn ich Inhalt Beschreibung während Warnung in Eclipse-Staaten anders hinzufügen. Msgstr "" "contentDescription" und "hint" nicht festlegen: Die contentDescription maskiert den Hinweis " – Damir

0

Ich stieß auf das gleiche Problem und löste es, indem ich den Hinweis auf Null setzte, wenn der Accessibility Service aktiviert war. Ursache Wenn der Benutzer aktiviert ist, wird der Hinweis wahrscheinlich nicht benötigt.

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; 
}