Android - prevent TalkBack from announcing TextView title aloud

accessibility, android, talkback, textview

Solution

I was trying to do the same today, and was able to set an `'empty'` contentDescription on a `TextView` like so (using a non-breaking whitespace):

decorativeTextView.setContentDescription("\u00A0"); 

now `TalkBack` doesn't say anything for that `TextView`.

but I agree with Nick about leaving the label as readable in your case, because hint is only read for empty `EditTexts`.

Problem

I am developing an accessible android application where people would be using Explore by Touch and TalkBack accessibility services to use my application. This is my Android XML code: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/forename" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dip" android:layout_marginLeft="15dip" android:textSize="20sp" android:text="@string/forenameText" android:contentDescription="@null"/> <EditText android:id="@+id/EditTextForename" android:layout_width="285dp" android:layout_height="65dp" android:layout_marginTop="10dip" android:layout_marginLeft="15dip" android:hint="@string/forenameHint" android:inputType="textPersonName" android:lines="1" android:singleLine="true" android:textSize="20sp" > </EditText> </LinearLayout> ``` strings.xml ``` <string name="forenameText">Forename</string> <string name="forenameHint">Enter your forename here</string> ``` TextView displays the title "Forename" and EditText allows me to enter some details in the form field. The problem I have is that when I drag my finger across the screen by using Explore by Touch, TalkBack picks up the title of the TextView and announces it aloud as "Forename". I want the TextView to only display text and not provide any audible feedback. I have set contentDescription to @null as you can see from the code above, but TalkBack still announces "Forename" when my finger is located over the TextView. I have also tried setting contentDescription in my Java class: ``` TextView forename=(TextView)findViewById(R.id.forename); forename.setContentDescription(""); ``` However, I still get the same problem. Is there any other way to set contentDescription to null/empty and prevent TalkBack from announcing it aloud? Java code: ``` public class MainActivity extends Activity{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View forename = findViewById(R.id.forename); forename.setAccessibilityDelegate(new AccessibilityDelegate() { public boolean performAccessibilityAction (View host, int action, Bundle args){ return true; } }); } } ```

Original source