我注意到在很多情况下android:importantForAccessibility="yes"
可以替换为android:focusable="true"
,并且与TalkBack完全相同。应该何时使用android:importantForAccessibility="yes"
而不是使用可聚焦?
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
答案 0 :(得分:5)
可聚焦指的是“输入焦点”和“键盘焦点”。可聚焦控件是可以接收输入焦点(光标)或键盘焦点的控件...这基本上意味着用户可以使用轨迹球/键盘导航来突出显示这些控件并与“选择”动作进行交互...例如:按键进入键盘。
isImportantForAccessibility指的是辅助功能焦点。这与输入焦点高度相关,但却非常不同。例如,输入聚焦“信息性”文本的内容是非感性的。但是,允许段落获得可访问性焦点非常重要。这允许使用TalkBack的用户聚焦并听到这些信息控制的语音反馈。
如果用户使用键盘导航,则输入焦点和辅助功能焦点将相同,但如果用户使用TalkBack滑动导航,则输入焦点和辅助功能焦点可能会有所不同。
例如:
光标可以在EditText框中,而可访问性焦点在下面的段落上,它通过VoiceFeedback向用户解释该控件的用途。