无障碍开发(十七)之京东APP一期优化案例讲解

测试范围

首页、购物车、订单、收银台、店铺、推荐位、搜索、我的京东等

优先级定义

最高:对主流程核心链路操作形成阻塞的,如控件无焦点、控件无标签

高:核心链路中对用户操作具有明显影响,但不够陈管阻塞的缺陷,如焦点顺序未能符合逻辑顺序,或非主流程核心链路中阻塞用户的操作

中:主流程核心链路中对用户体验具有一定影响的缺陷,如同一控件具有多个焦点,或在非主流成中对用户体验有明显影响的缺陷

低:主流程核心链路中仅对用户体验提升具有一定意义的缺陷,如装饰性元素,或非主流程核心链路中对用户体验具有一定影响的缺陷

缺陷举例分析

Android端主要的缺陷类型集中在:朗读缺失、无标签(替换文本,也就是没有文字替换的描述性内容)、焦点重置与控件缺失上,其中:

情况一:无标签:店铺-商品,商品列表中的“加入购物车”图形按钮未加标签

【预期结果】

按钮有对应的标签“加入购物车”

【解决方案】

对于静态的控件,添加文本标签的方法是在布局xml文件中给控件添加android:contentDescription属性,以ImageView为例:

<ImageView

...

android:contentDescription="文本标签,用词语或者短语,如登录、注册、播放"

.../>

如果需要根据用户操作动态修改控件的文本标签则可调用View.setContentDescription("文本标签")来实现。

情况二:焦点被重置:购物车编辑界面勾选商品后焦点丢失

【重现步骤】

购物车编辑界面,触摸任意商品的勾选框,单指双击进行选中或取消选中操作。

【预期结果】

勾选或取消勾选商品后,焦点停留在原有位置。

【实际结果】

焦点被重置到其他位置,不利于扫动浏览。

【解决方案】

渲染玩勾选样式后调用View.requestFocus()重新请求焦点

iOS端主要的缺陷类型集中在:焦点缺失、大焦点覆盖以及焦点过细等问题上,其中:

情况一:大焦点覆盖:首页界面我的频道栏所有频道入口都被一个大焦点覆盖

【预期结果】

我的频道”栏下的频道入口均存在独立焦点,朗读其功能名称,双击可响应其按钮的点击事件。

【解决方案】

// elements 为容器中应被访问的元素

cell.accessibilityElements = @[...elements];

情况二:焦点过细:充值界面充值金额选项焦点过细且无选中状态提示

【预期结果】

将充值金额与售价金额合并为一个焦点,朗读:充值XXX元,售价XX.XX元,已选中状态需朗读已选中状态,如已选中的“100元”,朗读:“已选中,充值100元,售价99.80元”。

【解决方案】

// 如果是UIButton或UIControl的子类可以设置

[button setSelected:YES];

[button setSelected:NO];

// 对于其它情况,亦可通过设置

button.accessibilityTraits |= UIAccessibilityTraitSelected;

button.accessibilityTraits &= ~UIAccessibilityTraitSelected;

情况三:底层焦点:分类浮窗展开后能够聚焦到底层元素焦点

【预期结果】

屏蔽底层元素焦点,非浮窗区域设置为一个大焦点,触摸后朗读:“关闭,按钮”,双击可关闭浮窗。

【解决方案】

newView.accessibilityViewIsModal = YES;

UIAccessibilityPostNotification(UIAccessibilityScreenChangeNotification, newView.firstElemnt);

结果总结

主要的缺陷类型集中在:

1)无标签:25%;

2)焦点缺失:10%;

3)控件状态缺失:10%;

4)大焦点覆盖:9%;

5)焦点过细:9%;

6)焦点冗余:6%;(一个元素可以被聚焦多次)

7)朗读缺失:6%;(聚焦到一个按钮上,什么都不读)

其他问题说明

预设的预期结果不恰当

1. 收银台双端-其他付款方式,读为双击选择其他付款方式。

在读屏开启的状态下,点击的操作统一都变更为双击,因此这里无须提示交互方式,只需读出按钮的名称即可,即朗读“其他付款方式”即可。

2、我的京东退换/售后,应该读为“退换或售后”,而不是退换全角斜线售后

这里没有必要刻意进行修正,之所以会读为“退换全角斜线售后”是读屏所调用的TTS(text to speach,又称文本转语音技术,或语音库)决定的,不同语音库对符号的朗读会略有差异,无须特意进行适配。同理,登录/注册的逻辑也是一样的。

3、我的京东未登录时,点击弹出登录弹窗,直接朗读“关闭按钮”,体验不佳,应该先读:请输入密码一栏

之所以进入界面后就朗读关闭按钮是因为焦点默认停留在了关闭按钮上,这里这个预期建议改为,进入登录/注册界面后,焦点默认停留在界面的第一个输入框。

原文地址:https://www.cnblogs.com/kunmomo/p/12194606.html

时间: 2024-10-09 03:01:32

无障碍开发(十七)之京东APP一期优化案例讲解的相关文章

一触即发 App启动优化最佳实践

一触即发 App启动优化最佳实践 本文在 DiyCode 和 CSDN个人博客 同时首发,关注作者的 DiyCode帐号 或者 作者微博 可第一时间收到新文章推送. 文中的很多图都是Google性能优化指南第六季中的一些截图 Google给出的优化指南来镇楼 https://developer.android.com/topic/performance/launch-time.html 闪屏定义 Android官方的性能优化典范,从第六季开始,发起了一系列针对App启动的优化实践,地址如下: h

入门移动端混合开发 实战京东 APP

第1章 课程介绍本章主要是向你介绍什么是混合开发,以及目前混合开发中的几种方案. 第2章 Hybrid 技术原理本章主要讲解 hybrid 技术原理与核心本质,让你对混合开发有更清楚的认识. 第3章 开发前的准备本章主要讲解核心代码开发前的准备知识,比如 Flex 布局.webpack 和 @vue/cli 的基础知识.scss 的基本应用和项目的初始化内容. 第4章 京东商城首页(上)本章主要使用 vue 开发商城首页,包括组件化思想.动态组件和异步组件的应用.axios的使用.swiper

android App性能优化技巧浅谈

Android App性能优化,安卓App性能优化技巧,无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件开发公司以及广大程序员们头疼的一大难题.今天,就给大家提供几个提高Android App性能的技巧. 高效地利用线程1.在后台取消一些线程中的动作 我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受

App性能优化浅谈

前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享.这里我稍微整理一下也给大家分享一下.关于性能优化这个话题非常大,涉及面能够非常广,也能够非常深入.本人能力有限,不会给大家讲特别难懂,特别底层的东西.都是我们开发能着手去做的点.大家都在讲性能优化,但对于项目经验不够丰富的朋友非常难有一个概念.做优化的时候也会比較茫然,这里我就给大家指明方向. 从何讲起? 笔者在做产品开发的时候,也遇到性能瓶颈.測试project师反馈了一些比較明显的问题,比方UI界面的过度绘制,列表滑动有明显卡

一触即发——App启动优化最佳实践

一触即发 App启动优化最佳实践 文中的很多图都是Google性能优化指南第六季中的一些截图 Google给出的优化指南来镇楼 https://developer.android.com/topic/performance/launch-time.html 闪屏定义 Android官方的性能优化典范,从第六季开始,发起了一系列针对App启动的优化实践,地址如下: https://www.youtube.com/watch?v=Vw1G1s73DsY&index=74&list=PLWz5r

React Native快速开发 厕所在哪App LBS定位 框架封装

课程目录:第1章 课程大纲和App演示介绍整个课程的内容.业务架构.技术选型以及App的功能演示.第2章 Node.js服务开发介绍了Node.js环境搭建.JSON数据文件的读取以及开发了基础的服务接口.该接口主要提供客户端(含Native端和PC web端)调用,用于数据展示和数据存储.第3章 Node.js开发后台系统讲解了通过调用第二章的接口,开发简易的后台CMS系统.该CMS系统主要用于配置页面数据和存储列表数据.第4章 React Native环境搭建和入门主要讲解React Nat

Android app 性能优化之视图优化

Android app 性能优化之视图优化 前言: 每当一款App开始快速扩展的时候,随着业务功能的越来越复杂,功能模块的越来越多总会引起这样那样的性能问题.交互不流畅卡顿,ANR,手机发热量大等等性能问题在Android开发中一直都是一个坑爹的存在.不是大家不想去优化,可能是等你发现开始要搞搞性能的时候,发现工程貌似好大了,能跑不崩就万事大吉了,那么多代码要去看,去改.真心是一个让人想想都糟心的事.也可能,关键点不好找,可能一个性能问题是别的你想都想不到的地方引起的,为了优化这么一个点,可能花

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程.软件开发是一项包括需求捕捉.需求分析.设计.实现和测试的系统工程.软件一般 是用某种程序设计语言来实现的.通常采用软件开发工具可以进行开发.软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关 的文件一般也被认为是软件的一部分. 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联

Android App性能优化笔记之一:性能优化是什么及为什么?

By Long Luo 周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住这个时机,迅速开发出产品,成为至关重要的一环.相对传统互联网时代的PC产品,用户对移动端产品的容忍度更低.而一款移动应用在推出的时候可能只是接近完成的状态,这就需要通过快速的迭代开发来更新产品,不断完善产品来留住用户.同时,通过更新产品也能唤醒一些沉默用户,让一些原本下载了应用但使用次数非常少的用户给该应用多一次