現在、アプリ内の新機能としてアクセシビリティを追加しています。私の目標は、ユーザーがAndroid によって統合されたTalkBackサービスを使用してナビゲートすることです。
アクティビティレイアウト内の要素にコンテンツの説明を設定しているため、すべてがうまく機能しています。
<View
style="@style/custom.style"
android:contentDescription="@string/my_string_value"/>
このように、アクティビティが表示されるたびに、TalkBack はコンテンツの説明の値を読み取ります。
複数のフラグメントをプッシュする 1 つのアクティビティだけを使用しても、同じ成功はありませんでした。したがって、フラグメント レイアウト内の任意の要素にコンテンツの説明を設定しようとすると、タッチ イベントが検出されるまで、これは (自動的に) 読み取られません (あるビューのように、TalkBack が自動的にそれを行うことを期待しています)。アクティビティのレイアウト)
私が期待する結果を得るために、フラグメントクラス内でこれを行います:
public abstract class myFragment extends Fragment {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
myCustomView = (LinearLayout) rootView.findViewById(R.id.duende);
myCustomView.requestFocus();
}
}
これはこれまでのところ成功していません。コンテンツとしてアクセシビリティを設定するのと同じことが変更されました。
getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
誰かが同様の問題に直面していましたか?