点击submit jquery validate_安卓可点击的文本如何支持无障碍

8ec7eb40-6a16-eb11-8da9-e4434bdf6706.png

在应用程序开发过程中,应用中经常会显示一些可点击的文本

这些可点击的文本,用户点击之后可以跳转到相关的界面或执行相关的操作

例如,在应用启动时出现的同意协议界面,经常会看到类似这样的文字:

“请充分阅读并理解用户协议和隐私政策,点击同意按钮表示你认可这些协议。”

91c7eb40-6a16-eb11-8da9-e4434bdf6706.png

文字中的“用户协议”“隐私政策”是可点击的

点击之后会跳转到协议详情界面

93c7eb40-6a16-eb11-8da9-e4434bdf6706.png

再如,一个详情界面可能会显示这样的文本:

“如有任何疑问请拨打电话:13988888888”“详细信息可访问http://www.xxxx.com查看”

这里的号码网址点击之后可以打开电话和显示网页内容

微信发群红包时的可点击文本

视觉上看起来清楚明了,操作起来也非常容易

95c7eb40-6a16-eb11-8da9-e4434bdf6706.png

但是如果没有设计到位的话,屏幕阅读器用户无法点击这些文本

这是由于屏幕阅读器在访问控件时,只能聚焦整个文本,而不能聚焦内部可点击的文本导致的

屏幕阅读器用户也不用沮丧,安卓的设计人员为TalkBack(安卓系统内置的屏幕阅读器)添加了上下文菜单功能,其中的“链接”子菜单完全能解决此问题。

首先,说一下如何通过TalkBack点击可点击的文本

使用触摸浏览直接触摸控件)或线性浏览单指左右扫动)访问到有可点击文本的控件

然后单指先向上再向右,在屏幕上画一个朝向右边的“7”的形状,会弹出上下文菜单

96c7eb40-6a16-eb11-8da9-e4434bdf6706.png
上下文菜单的效果图

然后点击“链接”菜单,你就可以选择你要打开的链接了

98c7eb40-6a16-eb11-8da9-e4434bdf6706.png
微信发群红包时的菜单内容

温馨提示:如果此控件没有做正确的无障碍支持,上下文菜单中是没有“链接”菜单出现的哦!

99c7eb40-6a16-eb11-8da9-e4434bdf6706.png

96c7eb40-6a16-eb11-8da9-e4434bdf6706.png

9bc7eb40-6a16-eb11-8da9-e4434bdf6706.png

现在我们来谈谈,如何正确的让可点击的文本支持无障碍操作

如果控件中只是电话号码、邮件地址、网址、地图坐标等要支持点击和无障碍的话,很简单

只需要使用文本控件的android:autoLink属性

此属性中可以指定可点击的类型

例如网址为”web”、邮件为”email”

如果想支持所有类型可以使用”all”

下面的文本框指定一个网址区域可点击的效果:

<TextViewandroid:layout_width="wrap_content"android:text="官网是 http://www. ytwza.com "android:layout_height="wrap_content"android:autoLink="web"/>

那么,如果不是网址、电话、邮件地址仅是单纯的文本,如“用户协议”,应该如何进行无障碍支持呢?

普通文本在实现点击效果时要使用Spannable

在使用此类的时候,我们使用URLSpannable这个Spannable类的子类

这个子类实现的点击效果能无障碍的支持。

下面是样例代码:

TextView text = (TextView) findViewById(R.id.text2); SpannableString ss = new SpannableString("打电话,发短信,发邮件,看官网"); ss.setSpan(new URLSpan("tel:13899887898"), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("smsto:13988789878"), 4, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("mailto:abc@qq.com"), 9, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan(" http://www. ytwza.com "), 13, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); text.setText(ss);text.setMovementMethod(LinkMovementMethod.getInstance());

如果要自定义Spannable继承URLSpannable或使用Linkify类

其实让可点击的文本支持无障碍非常简单,只需要开发在实现的时候注意使用的类,就可以让视障用户顺畅的使用你的应用

快看看你的应用是否有此类问题吧!

如果有,花几分钟解决它吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值