android开发无障碍app

2019-07-24 01:21:15

最近做一些为盲人提供服务的APP,还是挺有感触的,感谢手机和互联网的普及,他们的生活比以前丰富了很多。

通过读屏软件,盲人可以操作手机,上网浏览信息。读屏软件的工作原理很简单,就是读出屏幕上按钮、文本的信息。

但是,由于许多按钮都是纯图片的,导致读屏软件无法读出,降低了软件的使用性。

下面我就来说说应用无障碍适配的一些技巧,让我们开发的APP能够为更多人服务。

 

使用android:contentDescription标签

其实,我们只需要在xml文件里使用android:contentDescription标签描述控件是做什么用的就可以了,就是这么简单!

<Button
    android:id=”@+id/pause_button”
    android:src=”@drawable/pause”
    android:contentDescription=”暂停按钮”/>

这样读屏软件就能读出按钮的说明了。使用contentDescription已经能够解决90%以上的无障碍适配问题。

 

主动说出帮助信息

View类提供了一系列无障碍的函数,帮助我们在自定义View时更好的提供说明信息:

 

sendAccessibilityEvent(int eventType)

发出一个无障碍事件通知,让读屏软件读出相应的事件,例如:TYPE_VIEW_CLICKED、TYPE_VIEW_CONTEXT_CLICKED等

 

announceForAccessibility(CharSequence text)

让读屏软件直接读出一个字符串

 

通过这些很简单的方法,就可以实现app的无障碍了,让我们一起做得更好吧!


  • 2020-06-06 20:22:56

    laravel 接收json串

    在做项目的时候发现 用平时的$request->all() 无法获取到请求值

  • 2020-06-09 08:50:28

    LRU原理以及js实现

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

  • 2020-06-20 06:31:16

    mac下全局配置adb环境

    不提示“command not found”,而是出现一长串帮助说明,那就证明adb已经配置好了。

  • 2020-06-20 06:31:39

    Android 无线调试手机(WiFi 调试)

    手机需要开启 USB 调试 手机和电脑要在同一个局域网(连接同一个 WiFi) adb connect 连接成功后要拔出 USB 线,不然出现同时连接两个设备的问题 执行命令 ”adb tcpip 6666“ 后可能需要重新开启 USB 调试

  • 2020-08-16 16:09:30

    android WebView 注入js 几种方式

    有时我们开发中需要将js 注入到我们本地,有可能你会说,放在Web不就可以了吗,的确,但是需求就是这样的

  • 2020-11-05 23:20:29

    mac更新node版本

    initializer function 0x0 not in mapped image for /usr/local/bin/node,除了上面的问题 你或许还出现过 no such file or directory 这样的提示,总之更新完以后node直接不能用了。