android无障碍服务 模拟点击_知乎无障碍反馈报告

一个致力于信息无障碍的组织指出,知乎Android版对屏幕阅读器支持不足,多数交互元素缺少contentDescription属性,导致视障用户使用困难。他们呼吁知乎改进无障碍功能,提供详细的改进建议,包括为各种元素添加适当的contentDescription属性描述,以提升视障用户的使用体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

您好!我们是一个推动应用信息无障碍的组织,首先介绍下我们。我们是民间的,不是以盈利目的而成立的。我们成立这个组织是为了推动应用信息无障碍化。让每个人都能轻松的、平等的享受到互联网、应用所带来的乐趣与便利,是我们的目标。

最近,我们收到一些视觉障碍用户对知乎的反馈。他们在反馈中称,知乎 Android 版对 Android 系统内置的辅助工具 talkback (简称屏幕阅读器)支持不友好。他们在使用 知乎 APP 时,难以正常体验到 知乎 APP 的完整功能。我们收到反馈后,就针对 知乎 的无障碍支持做了一次完整的体验测试工作。我们测试了 知乎 APP 97% 的交互界面,在测试的过程中,我们发现,知乎 APP 对无障碍的支持较差。知乎 APP 交互界面上的多数互动元素缺少了供屏幕阅读器获取并朗读的 contentDescription 属性的文本描述,因此,视障用户在使用时会遇到困难。当 APP 交互界面上的互动元素缺少了应有的 contentDescription 属性的文本描述后,APP 就失去了支持无障碍最基本的条件。

为此,我们呼吁,知乎能为应用信息无障碍做出一些贡献。你们的一点点改进,就能让那些视障用户少一些障碍和拒绝,多一些包容和便利。我们衷心希望这份反馈能被 知乎 团队重视起来。

以下是我们测试后发现的问题:1.首页Tag,左上角的 直播推荐、右上角的 更多选项、每条问答右侧的 屏蔽 等元素,均未添加 contentDescription 属性的描述。1.1.首页Tag/问答页,左上角的 返回、右上方的 搜索、右上角的 更多、底部的 反对 等元素,均未添加 contentDescription 属性的描述。

2.会员Tag,左上角的 我的盐选会员、上方的 开通盐选会员、右上角的 搜索、上方的 轮播图 等元素,均未添加 contentDescription 属性的描述。

2.1.会员Tag,我的盐选页、搜索页、开通页 等,左上角的 返回元素,均未添加 contentDescription 属性的描述。

3.消息Tag,左上角的 消息设置、右上角的 搜索、每条消息左侧的 用户头像 等元素,均未添加 contentDescription 属性的描述。

3.1.消息Tag,消息设置页、搜索页 等,左上角的 返回元素,均未添加 contentDescription 属性的描述。

3.2.消息Tag/对话详情页,左上角的 返回、底部右侧的 表情、每条对话内容左侧和右侧的 用户头像 等元素,均未添加 contentDescription 属性的描述。

注意:其中,表情元素供包含两个可触发的事件,在添加 contentDescription 属性描述时,请分别为该元素添加不同的描述字段。

示例:为展开表情时,请添加 展开表情面板 字段,展开表情时,请添加“收起表情面板”字段。

3.3.消息Tag/对话详情/表情页,该页面上的所有表情形象,均未添加 contentDescription 属性的描述,视障用户无法正常触摸选取表情。请为每个表情形象添加上描述,以便视障用户可正常选取表情形象。

4.我的Tag,左上角的 扫一扫、右上角的 设置 等元素,均未添加 contentDescription 属性的描述。

4.1.我的Tag/扫一扫页,左上角的 返回、下方的 相册、闪光灯 等元素,均未添加 contentDescription 属性的描述。

注意:其中,闪光灯元素供包含两个可触发的事件,在添加 contentDescription 属性描述时,请分别为该元素添加不同的描述字段。

4.2.我的Tag/设置页,左上角的 返回 元素,未添加 contentDescription 属性的描述。

5.全局页,请为表示返回的元素添加上 contentDescription 属性的描述。

改进建议:在为元素添加 contentDescription 属性描述时,请添加合理的表述文本字段,请勿为元素添加较繁琐的文本字段。

对于点按可触发两种事件的控件元素,请添加该元素在不同状态下的 contentDescription 属性描述。

注意:在添加按钮元素描述时,请勿为 TextView 元素提供说明。Android 无障碍服务会自动读出文字本身作为说明。向应用的界面元素添加说明时,请牢记以下最佳做法:请勿将界面元素的类型包含在内容说明中。屏幕阅读器会自动读出元素的说明和类型。例如,如果选择某个按钮会导致应用中发生“提交”操作,则该按钮的说明应为 "Submit",而非 "Submit button"。每条说明都应该是独一无二的。这样,当屏幕阅读器用户遇到重复的元素说明时,他们便能正确地识别出焦点现在位于之前已聚焦的元素上。特别是,视图组中的每一项(如 RecyclerView )都应具有不同的说明。每条说明都应反映给定项所特有的内容,如位置列表中某个城市的名称。如果界面包含仅用于装饰效果的图形元素,请将其说明设为 "@null"。如果应用的 minSdkVersion 为 16 或更高版本,您可以改为将这些图形元素的图片属性设为 "no"。

如果应用显示的多个界面元素构成一个自然组(如歌曲的详细信息或消息的属性),应将这些元素整理到一个容器中,该容器通常是 ViewGroup 的子类。将容器对象的属性设为 true,并将每个内部对象的 android:focusable 属性设为 false。这样,无障碍服务就可以在单次语音中逐个读出内部元素的内容说明。这样整合相关元素有助于使用辅助技术的用户更高效地发现屏幕上的信息。

注意:在 Android 8.1(API 级别 27)及更低版本中,android:screenReaderFocusable 属性不可用,因此应改为设置容器的 android:focusable 属性。

以下代码段包含彼此相关的内容片段,因此容器元素(即 ConstraintLayout 的实例)的 android:screenReaderFocusable 属性设为 true,每个内部 TextView 元素的 android:focusable 属性设为 false:

android:id="@+id/song_data_container" 3 点

android:screenReaderFocusable="true">

android:id="@+id/song_title" 3 点

android:focusable="false"

android:text="@string/my_song_title" />

android:id="@+id/song_artist"

android:focusable="false"

android:text="@string/my_songwriter" />

@知乎小管家 @知乎盐选会员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值