我正在开发一个可访问的
Android应用程序,人们将使用“探索触摸”和“话语提示”辅助功能来使用我的应用程序.
这是我的Android XML代码:
<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显示标题“Forename”,EditText允许我在表单域中输入一些细节.我遇到的问题是当我
通过使用“触摸探索”将手指拖动到屏幕上,“话语提示”会拾取TextView的标题,并将其大声宣布为“Forename”.我希望TextView只显示文字,而不提供任何可听见的反馈.
我已经将contentDescription设置为@null,您可以从上面的代码中看到,但是当我的手指位于上方时,TalkBack仍然会宣布“Forename”
TextView中.
我也尝试在我的Java类中设置contentDescription:
TextView forename=(TextView)findViewById(R.id.forename); forename.setContentDescription("");
但是,我仍然遇到同样的问题.有没有其他方法设置contentDescription为空/空,并阻止TalkBack大声公布?
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; } }); } }