android开发手机talkback模式总结
2022-05-28 本文已影响0人
奔跑吧李博
TalkBack(盲人模式)是专为盲人和有视力障碍的人士提供的辅助功能,其操作方式与普通方式有较大差异。
进入TalkBack模式
通常在 设置 -> 更多设置 -> 无障碍 -> 视觉 里面开启。
退出TalkBack模式
同样在如上路径里关闭。或者直接音量+-键同时按关闭。
TalkBack模式操作特点:
进入TalkBack模式后,单指触摸屏幕,屏幕上会用绿色的方框包围当前点击的区域,同时手机还会发出语音提示,任何操作动作和消息通知来了也会播报。需要用双击代替正常模式下的单击操作,双指滑动代替正常模式下的单指滑动操作。
无障碍模式下view的事件分发流程:
在实际开发中遇到问题总结:
类型一:无障碍模式下点击View播报“未加标签”
原因:该view触摸范围内无文字,并且没有设置contentDescription属性
解决方案:在该 View 的 android:contentDescription 属性上设置需要播报的内容。
类型二:焦点过多,需要删除多余焦点或需要某个 View 能够进行播报
解决方案:将不需要播报的 View 的 android:importantForAccessibility 属性设置为 no,将需要播报的 View 的该属性设置为 yes。
<attr name="importantForAccessibility" format="integer">
<!--默认行为,系统根据其子view的类型自动判断是否对其进行读取-->
<enum name="auto" value="0" />
<!--允许在无障碍模式下访问-->
<enum name="yes" value="1" />
<!--禁止在无障碍模式下访问-->
<enum name="no" value="2" />
<!--表示其子view都禁止无障碍模式下访问-->
<enum name="noHideDescendants" value="4" />
</attr>
还有一种情况是合并焦点,将某些文字去除焦点,然后给包裹文字的View将文字内容添加到contentDescription中,合并为一个焦点进行播报。
类型三:无障碍模式下在上层页面点击仍能选中下层 View
解决方案:将下层的根 View 的 android:importantForAccessibility 属性设置为"noHideDescendants",去除下层view的焦点,关闭的时候再恢复焦点。