對於標籤本身,如果你是負責充氣視圖,則可以使用該修改是根據它的激活(或選定的)狀態下的內容描述的自定義的TextView:
public class TabTextView extends TextView {
public TabTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public CharSequence getContentDescription() {
CharSequence contentDescription = super.getContentDescription();
return isActivated() ? appendSelectedTo(contentDescription) : contentDescription;
}
private String appendSelectedTo(CharSequence contentDescription) {
return getResources().getString(R.string.tab_selected, contentDescription);
}
}
其中R.string.tab_selected
是<string name="tab_selected">%1$s selected</string>
該預假設你(或the library you're using)被選擇時(和所有其它選項卡與setActivated(false)/setSelected(false)
)的標記用setActivated(true)/setSelected(true)
的標籤圖。
宣佈該內容已經改變了用戶最簡單的方法是添加ViewPager.OnPageChangeListener
宣告當頁面的變化:
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO: format correctly with String resource to support translation
viewPager.announceForAccessibility("Showing " + viewPager.getAdapter().getPageTitle(position));
}
});
我知道Android的話語提示用戶用於沒有跡象表明什麼是可點擊的行爲
(默認情況下)在@ChrisCM提到的可點擊元素上有一個提示 - TalkBack會在附帶的View.OnClickListener
上追加「雙擊啓動」(以前稱爲「雙擊選擇」)視圖。
可以修改話語提示通過重寫onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info)
方法有無障礙代表朗讀動作:
class TabAccessibilityDelegate extends AccessibilityDelegateCompat {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.addAction(
new AccessibilityNodeInfoCompat.AccessibilityActionCompat(
AccessibilityNodeInfoCompat.ACTION_CLICK,
"select tab"
)
);
}
}
,並設置它在每個標籤瀏覽的:
ViewCompat.setAccessibilityDelegate(tabView, new TabAccessibilityDelegate());
這樣,現在話語提示將顯示爲:"<tab content description>... double tap to select tab"
。
其他定製使用提示的方法在this answer中給出。
Thansk很多,它的工作!我用我的OnPageChangeListener來選擇當前的Talkback選項卡,而不是最後一個被點擊的選項卡。我知道Android TalkBack用戶習慣於沒有指示什麼是可點擊的行爲,我想我會等待用戶測試;-) – user1980386 2015-02-13 15:46:47