文档章节

提高Android应用辅助功能的方法Accessibility

LiangX
 LiangX
发布于 2012/02/19 17:12
字数 1461
阅读 3606
收藏 0

盘点7种提高Android应用辅助功能的方法

在手机应用设计中,可接入性时常为人所忽略。可接入性的含义是,设计的应用适用于所有用户,包括那些有特殊需求的人或残障人士。这类辅助功能渐渐也需要满足某些特别情况的用户需求,比如,现在交通安全法限制汽车驾驶员使用他们的设备。

随着手机平台日渐成熟,尽管可接入性功能已成为开发者SDK的部分内容,但它们很容易被新开发者忽略和遗忘。开发者们简单迅速地制作出应用,然后将其投放到Android Market上。这些开发者本可以在设计时将简单完善的辅助功能整合到应用中,他们失去了让应用表现差异化的良好机遇。辅助功能对用户和开发者都有所帮助,前者可能需要这些功能来使用应用,后者需要更多用户下载并使用他们的应用。

Android SDK中有许多功能为应用辅助性提供支持。除辅助功能基本包之外,还有些小辅助功能散布于普遍使用的SDK之中。在下文中,我们将分析Android SDK设计和构建具有高度辅助性应用的主要功能,以下这些方法使用难度递增。

1、View中的内容描述

提高应用辅助性最简单的方法是在用户界面的每个View控制中提供内容描述。这些信息可以为屏幕阅读器等辅助服务和工具所使用,帮助弱视用户使用应用用户界面。在XML中,该属性称为android:contentDescription,相关View类型方法为setContentDescription。比如,如果你在ImageView控制中有张大猩猩的图片,你可以设置内容来描述这张图片。同样,如果屏幕上有多个Button控制,你可以用简短的内容描述各个控制的作用进行区分。

2、Haptic反馈功能

正如Android SDK程序说明书中的形象描述,Haptic反馈指你点击设备触摸屏上的控制时感觉到的小震动。View控制有某些内置Haptic反馈功能。但是,你可以轻易撇开默认的震动行为,自行为其他事件设置Haptic反馈功能。控制可以有Haptic功能,也可以没有,事件由开发者来决定。查看View控制属性以及与Haptic反馈相关方法,了解更多细节。

3、Text-to-Speech服务

Text-to-Speech(游戏邦注:下文简称“TTS”)服务可识别文字数据,让设备以计算机的“声音”大声“读出”内容。导航应用等免持应用经常用这项技术来提示司机,弱视用户也可以用此类型的服务来理解屏幕上的文字。Android SDK中可用的TTS功能在android.speech.tts包中,可以非常容易地将TTS嵌入到应用中。

4、语音识别服务

简单地说,语音识别服务正好与TTS相反,识别用户输入的声音并将其转化成为文本数据。这项服务经常用于搜索应用和联系管理应用中,设备会对“Call Mom”等特定指令做出回应。Android SDK中可用的语音识别功能在android.speech包中,使用android.speech.RecognizerIntent方式就可以为应用添加这项服务。该方式可用来开启内置录音应用,将识别的文字结果反馈给你的应用。

5、替代性输入方式

某些Android设备有方向键、轨迹球或箭头键之类的方向控制器。弱视用户偏爱这些类型的设备,它们可以系统地导航用户选择屏幕上的各个组件。确保应用支持这些输入方式。必须特别关注获得用户关注的布局中View控制的命令。你可以在使用android:nextFocus*属性的布局中跳过View控制的关注命令。

6、如果使用传统Views,确保它们能够恰当传达辅助事件

Android平台上有着大量系统服务,确保平台能够稳定流畅地运行。辅助服务就是此类服务之一。当Button控制之类的内置View控制被点击后,它传达的辅助服务是“我已经被点击了!”。如果你使用传统的View控制,就有责任向辅助服务恰当传达事件。为实现这个目标,你的传统View控制必须使用AccessibilityEventSource界面,来传达AccessibilityEvent事件。

7、使用自己的辅助技术

如果你有自己的辅助技术,就需要连接至所有的辅助事件。这可以通过执行你自己的AccessibilityService来实现,AccessibilityEvent动作被触发后,Android Service会收到信息。这项服务可以接收各种不同的事件,对提供某些类型的辅助组件很有帮助。这些事件包括用户点击View、控制注意力发生改变或物体上的文字发生改变等。如果使用自己的控制,必须确保能施行同种类型的事件。

总结

Android SDK的辅助功能健全、占容量少而且易于使用,多数人都会选择。在设计时忽略应用的辅助性会限制你的潜在用户数量,疏远某些用户群体实非明智之举。应用支持辅助功能的程度与目标用户和项目目标有关。只需一些小更新,所有应用都可以有效改善它们的辅助性。

© 著作权归作者所有

共有 人打赏支持
LiangX
粉丝 22
博文 33
码字总数 12468
作品 0
朝阳
程序员
私信 提问
Android辅助类病毒研究报告

  前言   近期,腾讯反诈骗实验通过AI引擎聚类关联发现,恶意利用Android辅助功能,究其原因是,从市场反馈来看,由于没有足够的安全意识,导致辅助功能被恶意使用,及诱导用户开启辅助功...

FreeBuf
2018/05/29
0
0
Android--判断App处于前台还是后台的方案

很多场景下,都需要判断某个App处于前台还是后台。本文集网上编写的前台判断方案于一体。 目前,有6种方案: 接下来,就对以上6种方法展开详细说明: 目录 1. RunningTask 1.1 原理 1.2 代码...

徐风来
2018/11/19
0
0
最新发现的安卓恶意软件-MysteryBot

        网络犯罪分子目前正在开发一种针对Android设备的新型恶意软件,它融合了银行木马、键盘记录器和移动勒索软件的功能。   根据来自ThreatFabric的安全研究人员称,这个恶意软件...

嘶吼RoarTalk
2018/06/20
0
0
【无USB连接、无ROOT】Android AccessibleService自动化测试实战(一)

背景: 说起Android自动化测试,相信有不少童鞋都会心头“隐隐作痛”,做这个选择也多,麻烦也多,貌似暂时就没有一个非常趁手的工具或框架可以一步到位,无论是基于Instrumentation的实现的...

测试开发栈
2018/11/12
0
0
Android设备新型恶意软件,融合银行木马、键盘记录器和移动勒索软件等功能

网络犯罪分子目前正在开发一种针对Android设备的新型恶意软件,它融合了银行木马、键盘记录器和移动勒索软件的功能。 根据来自ThreatFabric的安全研究人员称,这个恶意软件名为MysteryBot,是...

工作的事
2018/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot入门系列HelloWorld

根据咱们程序员学习的惯例,学习一门新技术都是从HelloWorld开始的。 感觉编程是一件非常富有意义的事情,程序员也是一群可爱的人,渴望被关怀和关注,因为我们总在和世界say Hi. 好了进入正...

凌宇之蓝
49分钟前
3
0
Linux之《荒岛余生》(二)CPU篇

温馨提示,动图已压缩,流量党放心查看。CPU方面内容不多,我们顺便学点命令。本篇是《荒岛余生》系列第二篇,垂直观测CPU。其余参见: Linux之《荒岛余生》(一)准备篇 如何做一个CPU cpu...

mskk
53分钟前
1
0
Java基础教程,第十讲,继承

前面我们学习了类和对象的概念,学习了方法的重载,今天我们将学习面向对象另一个重要特性,继承(inheritance)。利用继承,我们可以基于一个已经存在的类狗仔一个新的类,继承已经存在的类...

程序员补给栈
56分钟前
2
0
nginx的日志

nginx的日志包括错误日志和访问日志,分别使用不同的指令来定义其输出位置和相应的级别。 下面介绍其各自的用途。 错误日志 nginx提供了error_log指令来指定错误日志的输出文件和级别。 指令...

xtof
今天
3
0
【转】ubuntu18.04系统安装完之后显示未发现WiFi适配器【拯救者y7000亲测可用】

解决过程如下: 标题要大才醒目。 第一,插网线: 确保能通过网线连上网,通过路由器连还是直接接口连都没事,因为我们需要联网去下载些驱动以及更新。 第二,更改软件源: 打开“设置”,选...

Aomo
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部