基于无障碍设计的Android手机导航方法
2015-03-11周国祥
倪 琴, 周国祥
(合肥工业大学 计算机与信息学院,安徽 合肥 230009)
0 引 言
近年来,中国的智能手机市场有着快速的发展,使用手机的用户迅速增长。截至2012年底,中国智能手机的用户人数已达到3.8亿人[1]。但绝大部分智能手机产品设计都只能满足具有正常生理机能人群的需求,残疾人作为社会的弱势群体很少从中获得先进科技带来的益处。我国现有8 500多万残疾人,占全国人口6.34%。无障碍环境是残疾人参与社会生活的基本条件[2],因此基于无障碍需求的手机交互设计研究迫在眉睫并受到广泛关注。
触屏操作的交互设计作为现今移动智能终端市场的主流成为了人机交互领域的研究热点。触屏操作可以使用户方便地修改手机界面,通过触点变化、虚拟键盘以及可调节适配器来进行界面更改,然而这种便捷式的智能操作方式却给残疾人使用智能手机带来了新的壁垒[3]。
迄今为止,只有网页内容无障碍准则WCAG2.0和 MWBP[4]。还没有一个统一的移动终端无障碍设计准则,而一些知名的移动终端制造商又各自推出了多种操作系统,如苹果iOS、谷歌Android、诺基亚Symbian与BlackBerry OS以及微软Windows Phone等。这些平台虽也有一些基于无障碍设计的应用程序[5-9],因设计成本和普及率低等问题,可用性及功能都不够完善。
根据IDC 2013最新统计,谷歌的Android系统已占有75%的智能手机市场[10],另外考虑到作为目前最普及和开放的智能手机平台,Android系统提供了基于无障碍的标准辅助性服务(如Text-to-Speech)以及其他便于开发人员创建和分配等服务[11]。在此基础上,本文提出一种在Android系统平台上的开放式导航方法,主要服务对象为视障患者以及上肢功能障碍人群。该方法通过单一触点触发以及外接适配器触发,可解决用户无法精确定位触点的难题,通过自动扫描系统配合同步语音的输出,实现Android智能手机的无障碍导航。
1 系统框架设计
1.1 用户需求分析
(1)视障碍人群。对于视障人群,由于此类用户的视觉器官存在着一定的缺陷,对于智能手机运用最大的障碍就是他们不能看见或者不能看清手机屏幕以及使用手指进行精准的定位。针对此类特殊人群的智能手机设计,可以倾向于使用听觉功能来引导他们完成手机操作。采用自动扫描系统对手机屏幕上的信息进行语音输出,使用户能够了解屏幕上的信息。
(2)上肢功能障碍人群。主要包括上肢受到损伤不能灵活使用手指以及由老年帕金森氏症等引起手指颤抖的人群。由于他们无法使用手指进行手机触屏操作,因此在系统设计中要尽量避免手指直接触屏的操作,使用外接的适配器代替手指进行操作将可以较好地实现单点触屏功能。
1.2 Android系统架构
Android是一个基于Linux平台的开源手机操作系统,它采用4层设计,由5个部分组成,从下至上分别是:Linux内核、Android运行环境、开发库、应用程序接口和应用程序,其架构如图1所示。
Android核心系统服务依赖于Linux内核,它是系统架构的底层,位于硬件和软件栈之间,用来提供系统的底层服务如内存管理、进程管理、网络协议等。开发库和Android运行环境是用C/C++实现的,包含C/C++库,被Android系统中不同的组件使用,通过Android应用程序接口为开发者进行服务。Android运行环境提供了Java编程语言核心库的大部分功能,由Dalvik Java虚拟机和基础Java类库组成。Dalvik是基于寄存器的虚拟机,可以根据硬件实现更大的优化。应用程序接口提供了核心应用程序所使用的API框架,开发人员可以直接引用,简化了组件的重用。在应用程序层中,Android提供了丰富的核心程序,比如电话、联系人管理程序、SMS短消息程序等,它们都是基于Android系统的API构建的[11]。
图1 Android系统架构
1.3 应用程序模块
为残疾人设计的无障碍应用程序主要是实现残疾人对智能手机基本功能的使用。根据用户需求分析和Android系统的特点,具体的功能模块划分如图2所示。
图2 应用程序模块
在用户操作模块,Android会侦测到用户的事件触发从而开始相应的服务,在用户界面的帮助下,用户可以通过触屏或者外接适配器引发事件。
在开发初期实现了一些手机的基本功能,如电话操作、短信操作以及联系人管理,除此之外,根据残疾人的残障种类和不同用户场景,对系统设计了用户个性化设置的模块,对各种交互方式进行详细的划分,方便残疾人根据自身的限制选择适合自己的个性化设置。
数据处理模块使用了Android系统集成的SQLite数据库。SQLite是一个开源的、嵌入式的关系型数据库,支持SQL语言,在遵守ACID关联式数据库管理系统的同时还可以和很多程序语言结合,处理数据速度快。Android提供的API可以方便地使用SQLite来实现数据库操作[12]。根据软件的需求,创建DBAdapter辅助类和SQLHelper类进行数据库操作。DBAdapter辅助类可以封装所有对数据库的复杂访问,由它创建、打开、关闭和使用SQLite数据库;SQLHelper类主要用于数据库的基本操作,它可以覆盖onCreate()和onUpgrade()方法,用于创建数据库获得SQLiteDatabase的实例,通过执行SQL语句对数据库进行如新增、查询、删除等操作,并进行数据库的版本升级。
2 导航方法交互设计
Android系统集成了很多可用的服务以完成类似于触摸屏的交互方法。文本转语音引擎(TTS)可以读取手机屏幕上的可用文本,并通过同步语音输出使用户获得信息。视障用户可以通过单一手势触屏完成选择操作,上肢功能障碍人群可以通过外接适配器完成类似的触屏选择操作。因此无需借助外界的帮助,仅凭单一的手势触发便可以完成手机基本功能的操作,大大提高了这类特殊人群的社会参与度以及个人的自主性和隐私保护。
2.1 用户界面和扫描方法
由于用户完成操作的方法单一,并且扫描屏幕的文本需要耗费时间,因此用户界面的设计变得尤为重要。用户界面要简单清晰,这样可以简化扫描程序以节约用户的等待时间。受手机屏幕尺寸的限制,图标和文字要尽量简洁,基于手机无障碍需求的设计原则[13],将用户界面设置成3个区域:2个控制区域和1个信息区域。2个控制区域分别置于用户界面的上下端,信息区域置于用户界面的中间,如图3所示。
上端控制区域为功能性区域,最多允许6个功能图标来进行不同选项的设置,用户可以在这个区域选择个人偏好的操作;下端控制区域为选择性区域,最多允许3个选择图标,如确认、删除、返回等。
下端的控制区域主要是对上端控制区域的选择进行确认或撤销;中间的信息区域用来显示上端控制区域选择的图标的详细信息。
图3 用户界面划分
当用户通过事件触发进入主界面后,先由垂直扫描开始进行导航,垂直扫描是在上下端控制区域内进行的,以行为单位进行循环扫描,直到用户通过单点触屏或外界适配器触发选择上下端控制区域内的事件后,开始进行平行扫描,平行扫描是在行内的功能图标间进行的,平行扫描允许用户选择一个选项用以激活事件并开始相应的功能操作。为了防止错选现象的出现,在每个事件中要设置一个返回操作。扫描过程如图4所示。
图4 扫描顺序
2.2 文本转语音引擎(TTS)
扫描过程伴随的语音输出是通过Android系统 集 成 的 文 本 转 语 音 引 擎 (Text-to-Speech,TTS)来实现的。文本转语音引擎可以将指定的文本转换成不同的语言进行语音输出,通过API接口可以直接调用。TTS引擎采取资源预加载的方法,根据一系列参数在库中提取相应的资源,加载到当前的系统中。实现TTS调用的代码为:
private TextToSpeech mTts;
protected void onActivityResult(Intent data){Intent installIntent=new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION-INSTALL-TTSDATA);
startActivity(installIntent);
}
在创建了一个TTS的实例后,要通过OnInitListener()接口来通知系统当前TTS引擎已经处于可用状态。每个TTS需要执行的语音消息队列统一由TTS引擎管理队列来请求优先级和顺序。一般有2种不同的方式[14]来实现:引用“TextToSpeech.QUEUE-FLUSH”调用Speak()方法时,会中断当前实例正在运行的任务,转向执行新的队列任务;引用“TextToSpeech.QUEUEADD”调用Speak()方法时,语音任务会被添加到当前任务队列之后。
2.3 个性化
用户的个性化设置,如扫描速度、间隔时间、是否使用音频、键盘的分布等是为了适应不同用户的实际需求,可以通过Android系统的Shared Preference来进行管理。状态机可以获取每一个时刻用户的个性化偏好,并根据检测到的时间来引发不同的功能。文本到语音引擎是完全集成在Android应用程序中,因此用户在每一个时刻都可以看到或听到手机屏幕上的可用功能。通过这项特殊的功能,用户可以完全自主地进行手机操作,系统允许用户通过单点触屏或外接开关来接听、挂断或忽略来点呼叫。此外,用户可以进行个性化设置的事件还包括:
(1)是否选择语音输出、是否使用耳机和设置文本转语音的音频播报速度。
(2)设置自动扫描的速度和重复次数。
(3)选择屏幕虚拟键盘的行数和每个按钮的字母数来设置键盘的不同外观。
(4)对联系人进行设置,是否创建常用联系人群组。
(5)设置交互方式(触屏或者通过外接适配器)。
2.4 人机交互方式
上述的导航方法是建立在单一手势触发完成手机操作的基础上。视障患者可以在手机屏幕上的任意位置进行按压以触发扫描及选择的操作,与普通的智能手机需要精确位置触发相比,这种单点触发更容易被视障患者操作。为上肢功能障碍人群设计的一款可以通过直接按压开关触发手机操作的适配器,如图5所示。
外接适配器是一个可替换的硬件组件,可以通过外部开关控制智能手机。此设备有2个3.5mm的输入插孔连接免提和开关,1个3.5mm的输出插孔来连接设备终端。这种类型的接口(3.5mm插孔)是符合国际移动通信手持机有线耳机接口标准的[15],在内部,适配器具有硬件开关设置,在基于Android系统开发的手机上易于操作,兼容性强,以符合不同生产厂家的手机型号。
图5 外接适配器
3 实验结果
基于无障碍需求为Android系统的用户界面提供了另一种导航方法,在需求分析、设计以及编程实现之后,用户界面如图6所示。
图6 主界面
此界面简洁友好,适合残疾人进行简单快捷的操作。在性能提升方面,由于目前的Android应用程序市场并没有很多专门针对残疾人群体的应用程序,外接适配器的使用更是考虑到了残疾人功能性障碍的个体差异性,因此该应用不仅方便了残疾人用户对智能手机的使用,而且大大地满足其日常生活的通信需求。
经过Android虚拟机上的一系列模拟仿真后,基于无障碍设计的导航方法被投入了实体设备测试。在通用性测试中,选取6个大的Android手机制造商生产的6种不同的机型进行测试,包 括 HTC-Desire (G7)、Samsung Galaxy-Note、Huawei C8813、Motorola MB525、Sony Ericsson LT22i和LG G2。测试结果表明该导航方法兼容于多种型号的Android智能手机并运行良好,基于Android系统开发的智能手机更是占据近59%的市场份额,考虑到部分残疾人收入相对较低,因此基于Android开发的导航方法可以应用于价格较低的智能手机上供用户选择。
此外,为了验证导航方法的实用性,提供测试版APP给9位残疾人(5名视障患者和4名上肢功能障碍患者)进行用户体验,实验结果表明残疾人用户在简单的指导后就可以根据实际情况进行个性化设置,并能完全自主地操作手机并实现其基本功能。以发一条“OK”的信息为例,实验结果见表1、表2所列,9位用户均能成功完成并且平均所用时间为47.4s。
表1 视障用户实验完成时间 s
表2 上肢功能障碍用户实验完成时间 s
4 结束语
基于Android系统开发的智能手机价格相对低廉,并且Android平台具有很大的开放性、兼容性和大量集成的服务等优点,将其作为为残疾人服务的通信产品具有很强的经济性和实用性。目前该方法已经可以应用于Android系统中,并且通过控制事件完成了与外部适配器开关元件的整合,与不同型号Android智能手机的兼容,使残疾用户可以独立完成智能手机的基本功能操作。未来基于无障碍需求的设计将不仅停留在基本的手机功能操作上,还将会对复杂一些的功能比如收发邮件、网页浏览、GPS导航等手机服务进行开发,并对更多的用户进行反馈意见采集,使残疾人能够更加便捷地享受现代科技带来的便利并更好地参与社会生活。
[1] 刘天铮,蓝 菲.中国智能手机市场现状和发展趋势[J].管理学家,2013(14):13.
[2] 吕世明.我国无障碍环境建设现状及发展思考[J].残疾人研究,2013(2):3-8.
[3] 刘少宇,王晋丹.触屏式智能手机人机交互特征探析[J].数字技术与应用,2013(1):190.
[4] Kamoun F,Aimourad B M,Bataineh E.WCAG 1.0versus WCAG 2.0Web accessibility compliance:a case study[C]//The International Conference on Digital Information Processing, E-Business and Cloud Computing(DIPECC2013).The Society of Digital Information and Wireless Communication,2013:94-101.
[5] Accessibility Programming Guide for iOS.Apple,2012.[EB/OL].[2013-11-10].http://developer.apple.com.
[6] Kandeel A,Sali D.The effect of customer preferences dynamism on incumbent firms:the case of nokia in the mobile phone industry[Z].2013.
[7] Sullivan T,Matson R.Barriers to use:usability and content accessibility on the Web's most popular sites[C]//Proceedings on the 2000conference on Universal Usability.ACM,2000:139-144.
[8] Burton D.A review of Oratio:a screen reader for Black-Berry[J].Accessworld:Technology for Consumers with Visual Impairments,2010,11(2):3.
[9] Burton D.Can an Android make your mobile phone ccessible?[J].Accessworld:Technology for Consumers with Visual Impairments,2010,11(2):2.
[10] Chen B,FU Z,OU YANG H,et al.Fish measurement using Android smart phone:the example of swamp eel[C]//Third International Conference on Photonics and Image in Agriculture Engineering (PIAGENG 2013).International Society for Optics and Photonics,2013:876110-876110-5.
[11] 曾健平,邵艳洁.Android系统架构及应用程序开发研究[J].微计算机信息,2011,27(9):1-3.
[12] Junyan L,Shiguo X,Yijie L.Application research of embedded database SQLite information technology and applications[C]//IFITA'09.International Forum on.IEEE,2009,2:539-543.
[13] Tory Higgins E,Rholes W S,Jones C R.Category accessibility and impression formation[J].Journal of Experimental Social Psychology,1977,13(2):141-154.
[14] Yu R,Yu T L,Zbib I.Animating TTS messages in android using Open-Source Tools[C]//Proceeedings of The 2013International Conference on Computer Graphics &Virtual Reality,2013:10-15.
[15] Corey J F,Donaldson M.Audio jack with plug or head set identification circuit:US,6988905[P].2006-01-24.