当使用TalkBack时,Android中focusable和importantForAccessibility有什么区别?

14
我注意到在许多情况下,android:importantForAccessibility="yes" 可以被 android:focusable="true" 替换,并且在 TalkBack 中可以完全相同地工作。什么时候应该使用 android:importantForAccessibility="yes" 而不是使用 focusable? Android 将 android:importantForAccessibility 定义为: 描述此视图是否对辅助功能重要。如果重要,则视图会触发辅助功能事件,并报告给查询屏幕的辅助功能服务。注意:虽然不建议这样做,但辅助功能服务可能决定忽略此属性并操作视图树中的所有视图。https://developer.android.com/reference/android/view/View.html#attr_android:importantForAccessibility 而将 android:focusable="true" 定义为: 控制视图是否可以获得焦点。默认情况下,这是“auto”,允许框架确定用户是否可以将焦点移动到视图。通过将此属性设置为 true,允许视图获得焦点。将其设置为 "false" 时,视图将无法获得焦点。这个值不影响直接调用 requestFocus() 的行为,它将始终请求焦点,而不管此视图如何。它只影响焦点导航尝试移动焦点的位置。https://developer.android.com/reference/android/view/View.html#attr_android:focusable
1个回答

18

“Focusable”指的是“输入焦点”和“键盘焦点”。可聚焦控件是指可以接收输入焦点(光标)或键盘焦点的控件......这基本上意味着用户可以使用轨迹球/键盘导航来突出显示并与此类控件进行交互,通过“选择”操作...例如:按下键盘上的"Enter"。

“isImportantForAccessibility”指的是辅助功能焦点。这与输入焦点密切相关,但非常不同。例如,对于仅文本内容的信息性内容设置输入焦点是没有意义的。然而,允许段落获得辅助功能焦点非常重要。这使得使用TalkBack的用户可以集中精力并听到此类信息性控件的口头反馈。

如果用户正在使用键盘导航,则输入焦点和辅助功能焦点将相同,但如果用户正在使用TalkBack滑动导航,则输入焦点和辅助功能焦点可能不同。

例如:

光标可以在EditText框中,而辅助功能焦点则集中在其下面的段落中,通过VoiceFeedback向用户解释该控件的作用。


https://www.linkedin.com/learning/android-app-development-accessibility/focus-navigation - RamPrasadBismil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,