Android: evita que TalkBack anuncie el título de TextView en voz alta

Estoy desarrollando una aplicación Android accesible donde la gente estaría utilizando los servicios de accesibilidad de Explorar por Toque y TalkBack para usar mi aplicación.

Este es mi código XML de Android:

<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 muestra el título "Nombre" y EditText me permite introducir algunos detalles en el campo de formulario. El problema que tengo es que cuando arrastre mi dedo a través de la pantalla mediante el uso de explorar por el tacto, TalkBack recoge el título de la TextView y lo anuncia en voz alta como "Nombre". Quiero que el TextView sólo muestre texto y no proporcione ningún comentario audible.

He definido contentDescription a @null como se puede ver en el código anterior, pero TalkBack todavía anuncia "Nombre" cuando mi dedo se encuentra sobre el TextView.

También he intentado setting contentDescription en mi clase de Java:

 TextView forename=(TextView)findViewById(R.id.forename); forename.setContentDescription(""); 

Sin embargo, todavía tengo el mismo problema. ¿Hay alguna otra forma de establecer contentDescription a null / empty y evitar que TalkBack lo anuncie en voz alta?

Código Java:

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

6 Solutions collect form web for “Android: evita que TalkBack anuncie el título de TextView en voz alta”

Yo estaba tratando de hacer lo mismo hoy en día, y fue capaz de establecer un 'empty' contentDescription en un TextView como tal (utilizando un espacio en blanco no-quebrando):

 decorativeTextView.setContentDescription("\u00A0"); 

Ahora TalkBack no dice nada para ese TextView .

Pero estoy de acuerdo con Nick sobre dejar la etiqueta como legible en su caso, porque la pista sólo se lee para EditTexts vacío.

Para una mejor compatibilidad hacia atrás:

 ViewCompat.setImportantForAccessibility( decorativeTextView, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO); 

Desde la API 16, Android presentó lo siguiente:

 android:importantForAccessibility="no" 

o

 setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO) 

Lo que permite a los desarrolladores desactivar el talkback todos juntos para determinadas vistas.

http://developer.android.com/reference/android/view/View.html

¿Por qué no desea que el TextView hable "nombre"? Se está utilizando como una etiqueta para el EditText. Una vez que el usuario ha introducido algún texto, la sugerencia "introduzca su nombre aquí" ya no se hablará – por lo que sé – por lo que TextView le dio al usuario algún contexto para el EditText.

Del mismo modo, el anuncio de "editbox" da al usuario el papel del control EditText. Si bien "campo de formulario" podría ser mejor que no sería el mismo comportamiento que en otras aplicaciones y en el sistema operativo.

Tuve un problema similar. Eventualmente lo resolví usando el método setAccessibilityDelegate y reemplazando View.AccessibilityDelegate's método View.AccessibilityDelegate's performAccessibilityAction .

prueba esto:

 View forename = findViewById(R.id.forename); forename.setAccessibilityDelegate(new AccessibilityDelegate() { public boolean performAccessibilityAction (View host, int action, Bundle args){ return true; } }); 

Tuve el mismo problema, y ​​lo único que funcionó para mí fue android:contentDescription=" " (espacio en blanco).

  • Cómo agregar contenidoDescrito a InfoWindow o marcador en Android GoogleMaps V2 para TalkBack
  • Cómo cambiar Android Talkback en caso de nombre de la aplicación
  • ¿Cómo puedo modificar la sugerencia de uso de TalkBack para una vista que se puede hacer clic en Android?
  • ¿Por qué nextFocusDown no funciona con la navegación de TalkBack?
  • Android: establece el enfoque de accesibilidad de TalkBack a una vista específica
  • Cuando utiliza TalkBack, ¿cuál es la forma preferida de alertar al usuario cuando el contenido de un TextView ha cambiado?
  • Configuración de la descripción del contenido del menú de opciones android Talkback
  • Android: evita que TalkBack anuncie el título de TextView en voz alta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.