Android教程进阶:开发可访问的应用程序

时间:2013-03-19 09:40来源:eoeAndroid 作者:adminjet 点击:

Android有几个可访问性焦点特性融入了平台,这些特性使你能够非常容易地优化你的应用应用程序,使之适应于那些在视力或肢体不方便的用户群。 但是,什么才是正确的、最优的,或者最简单的方法去利用这个框架去实现这个目标呢?有时候还不是那么显而易见的。 这节课将向你展示怎样去实现这样的策略和有助于使你的安卓应用程序具有更大可接入性的这么一些平台特性。

添加内容描述


一个精心设计的用户界面通常有一些元素,这些元素并不需要一个显式标签来向用户表明它们的用途。 在一个任务列表的应用中,一个复选框紧挨着一个选项(item)表现出一个很明显的用途——如同在文件管理应用中做一个垃圾桶。 但是,对于那些视弱的用户而言,还需要做一些其他UI提示。

幸运的是,你现在可以非常容易地在你的应用中的UI元素添加标签。 这些标签可以通过一个基于语音的辅助性服务比如TalkBack,向你的用户大声朗读。 如果你有一个标签,这个标签在整个应用程序的生命周期中都不会改变(例如"pause"或者"purchase"),你可以通过XML布局来设置。 只要通过设置UI元素的android:contentDescription这个属性,如下所示:


然而,在大多数情况下,需要在一些上下文中提供内容描述。 例如:一个开关按钮的状态,或者是像列表项类似的一些可选择数据。 为了在运行时编辑这些内容描述,可以使用setContentDescription()方法,作法如下:


这种添加方式对于应用程序而言是最简单的可接入性改善,却也是最有效的方式。 试着在任何需要有用信息的地方添加内容描述,但这样做的前提是该信息真的是需要的,不要为没有用的信息添加标签。 例如,为应用程序的图标设置相应的内容描述,那只会增加"噪音",因为这些内容描述对用户来说是没用的,用户只想要从你的界面获得对他有用的信息。

试一试!下载TalkBack(谷歌发行的一款辅助性服务)后,通过执行* Settings > Accessibility > TalkBack* 来使能它。 接下来打开你自己的应用程序,听听TalkBack提供的语音提示吧!

设计焦点引导


你的应用本该提供更多的引导方法而不仅仅只有触摸屏幕这一种方法。很多android设备都有引导硬件而不是触摸屏,像十字键,方向键,轨迹球。另外,后面版本也支持外部设备,比如以USB或蓝牙为媒介的键盘。

为了使能这种引导方式,对用户来说所有的引导元素如要需要设置焦点,可以通过使用相应UI控件的View.setFocusable()这个方法来设置,或者通过在XML布局文件中android:focusable这个属性。

并且,每一个UI控件有4个属性, android:nextFocusUp, android:nextFocusDown, android:nextFocusLeft  android:nextFocusRight。你可以使用这些属性来设计下一个视图从对应的方向接收焦点。尽管平台自动决定引导的顺序是基于布局邻近,如果它不适合于你的应用,你可以使用这些属性去重写那些顺序。

举个例子,下面是如何表示一个按钮和一个标签,两个都设置了focusable属性。当你按下按钮后会转到这个文本视图,松开后又回到这个按钮。


直观地验证你的应用在这些情形所产生效果。最简单的方法是直接在安卓模拟器运行你的应用,使用模拟器上的方向键操作用户界面,用OK键代替触摸动作来选择UI控件。

 触发辅助性事件


如果你在使用安卓框架中的视图组件,当在你的用户界面中选择一个item或改变焦点,一个AccessibilityEvent将被创建。这些事件会被辅助性服务检查,使它能够为用户提供如text-to-speech相似的特性。

如果你写一个自定义的视图,确保它在适当的时候触发事件。通常事件通过调用sendAccessibilityEvent(int)来生成,该方法的参数为一个表示事件触发的值。目前支持的较完整的事件类型列表可以在AccessibilityEvent这个类的参考文档中找到。

举例说明:当你想要拓展一个图像视图,当这个视图有焦点的时候,你能够通过键盘在这个视图上写入字幕。它可以去触发一个* TYPE_VIEW_TEXT_CHANGED* 事件,虽然这样构建图像视图并不是很标准。生成这个事件的代码如下:


测试你的应用


一定要测试这个辅助性功能当你把它加入到你的应用中。为了测试内容描述和辅助性事件,安装和使能一个辅助性服务。一个选择是Talkback,它是安卓市场上一个免费的,开源屏幕阅读器。启动服务后,在你的应用程序上测试所有的引导走向,然后听下所产生语音反馈。

并且,尝试使用方向控制器操作你的应用程序,而不仅仅是触摸屏幕。你也可以使用其他有方向键或轨迹球的设备,如果它可以用的话。如果不能用的话,使用安卓模拟器和它的模拟键盘控制器。

在该服务提供的反馈和方向盘操作你的应用时,你应该有一种感觉,你的应用程序可能被操作而没有任何视觉上的提示。修改有问题区域当它们出现,然后你就会拥有可接入性很强的这么一个安卓应用程序。

分享到:

凌阳教育安卓培训【凌阳科技旗下教育品牌】——专业的安卓培训机构,全国唯一“按班公布学员就业去向”的诚信机构

关注我们:

全国免费咨询电话:156-0117-5697 服务监督电话:010-62981113-2800

京ICP备09010168号  京公网安备11010802010586号

北京安卓培训中心:海淀区上地信息产业基地中黎科技园1号楼3层A段

Copyright © 2016 SunplusEdu Inc. All Rights Reserved