如何使可访问性焦点留在当前片段内

how to make accessibility focus stay inside current fragment

如何让 focus navigation 留在 current fragment? 中 或者,如何将整个片段的 focusable 设置为 false 或将其全部 child 视图设置为 false?

完整解释:

我正在使我的 Android 应用程序易于访问。

我遇到这种情况:

单击标题 "log in" 后,主页片段 (A) 被登录片段 (B) 覆盖。如您所见:

fragments diagram

点击 "log in" 后,登录片段获得焦点,直到点击 back 我希望 accessibility focus 留在登录片段内(当用户通过焦点导航进行导航时) 而不是继续在片段 A 中的覆盖元素之间跳转。

如何使焦点导航留在片段 B 内? 或者,改为:

如何为片段 A 中的所有 child 视图将 focusable 设置为 false?

谢谢!

您需要一个易于访问的模式对话框。这是一件很常见的事情。 NCSU 的前无障碍专家 Greg Kraus 就此主题写了一篇很棒的博客 - https://github.com/gdkraus/accessible-modal-dialog

你基本上需要创建一个大的 <div> 来覆盖你的主 window 并在你的主 window 之上制作 z 顺序。如果想让主 window 显示为禁用状态,这个大 <div> 可以设置不透明度。 <div> 不接受任何输入,因此用户无法将焦点移回主 window。那么您的登录对话框的 z 顺序将高于 <div>.