我正在努力使現有的Android應用程序可訪問,並且發現它非常令人沮喪,許多事情本該工作。Android輔助功能 - 使用ImageView進行內容分組無法正常工作
我想組一起爲剛剛在Google Codelabs example喜歡說明中的內容,但仍使手勢導航欄中的內容可成爲焦點的一部分:
我有一個LinearLayout
一個Fragment
與垂直方向爲根查看三個RelativeLayouts
,其中每個包含一個ImageView
和一個TextView
。
就像在codelabs,我已經設置了RelativeLayout
到可獲得焦點,爲ImageViews
我已經設置了ContentDescription
爲null,因爲它們是純粹的裝飾。
這是XML
佈局這些RelativeLayouts
與根LinearLayout
之一:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical"
tools:context="com.my.fancyapp.fragments.OtherFragment">
<RelativeLayout
android:id="@+id/item_youtube"
android:layout_width="match_parent"
android:layout_height="@dimen/other_item_height"
android:focusable="true"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/other_item_padding">
<ImageView
android:id="@+id/ivYouTube"
android:layout_width="@dimen/other_icon_width"
android:contentDescription="@null"
android:layout_height="match_parent"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/other_text_margin_left"
android:text="YouTube"
android:textAppearance="@style/ArtistTextAppearance" />
</RelativeLayout>
...
</LinearLayout>
在Fragment
,我設置一個onClickListener
每個RelativeLayout
,其鏈接到立體圖(YouTube頻道,Facebook頁面或與IMPRESSUM網頁視圖)並裝載ImageView
與Picasso
:
itemYoutube.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(youTubeUrl));
startActivity(intent);
}
}
});
Picasso.with(getActivity())
.load(R.drawable.icon_youtube)
.fit()
.centerInside()
.into(iconYoutube);
itemYoutube.setContentDescription(getString(R.string.youtube));
現在proble M是想點擊一個項目,然後通過滑動到下一個項目導航導致文本中強調,不通過導航到下一個RelativeLayout
有沒有人有一個想法,爲什麼重點跳轉到TextView
而不是下一個RelativeLayout
?
我曾嘗試以下:
- 設置ContentDescription爲
RelativeLayouts
在XML - 設置ContentDescription爲
TextViews
爲null(可能不太好) - 改變順序時設置的內容說明
- 將
TextViews
設置爲可對焦:false - 刪除了ContentDescription的
RelativeLayouts
,這導致導航到TextViews
,而不是強調整個RelativeLayout
爲希望
難道是一個問題,即違背Codelabs例子,我有RelativeLayout
內的ImageView
,而當時只有TextViews
應該全部被讀出來?或者是否有什麼時候通過代碼動態地設置xml和其他類似ClickListener
的值? 我完全無能爲力。