一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于手机APP无障碍读屏软件的焦点陷入检测方法与流程

2021-12-14 22:46:00 来源:中国专利 TAG:

一种用于手机app无障碍读屏软件的焦点陷入检测方法
技术领域:
1.本发明涉及信息无障碍领域,特别是涉及一种用于手机app无障碍读屏软件 焦点陷入的检测方法。


背景技术:

2.2020年3月1日,由全国信息技术标准化技术委员会提出、浙江大学牵头、 深圳市信息无障碍研究会参与起草的新国标《gb/t 37668

2019信息技术互联 网内容无障碍可访问性技术要求与测试方法》正式实施,是我国互联网信息无障 碍领域第一个国家标准。标准指出:“在网页中,如果焦点能移到某个组件上, 则应将焦点从该组件上移开;如果除了点击未经更改的方向键、制表键或使用其 他标准退出方式之外还需要其他的操作,则应告知用户移开焦点的方法。”这强 调了在读屏情况下,软件在任何时刻都必须有退出或者前进入口,保证用户可以 离开当前页面。这意味着,当用户无法通过左滑右滑操作进行app遍历的时候, 就认为页面产生了焦点陷入。例如,当电商app大促时,软件通常会弹出红包浮 层来提醒用户参与活动或者领取红包,当读屏软件打开时,会出现聚焦框锁死的 情况,用户无法通过左滑、右滑来关闭浮窗,从而无法继续使用软件,给用户造 成了使用障碍。其他类似的例子还有,轮播图或者滚动组件容易出现焦点框小范 围循环遍历的情况,即用户只能遍历滚动组件中的内容,影响了用户遍历页面的 其他内容。可以看出焦点陷入是一个十分影响用户体验的同时也是十分容易发生 的问题,一旦页面出现了焦点陷入,app此页的功能对于盲人来说就是一片漆黑。
[0003][0004]
目前,网页端已实现了对焦点陷入规则的检测,但是客户端与网页端有很大 不同,网页端可以从代码侧轻松的获取到tab焦点的位置信息,而客户端无法通 过非侵入的手段获取到焦点框的位置。另外,两者的页面布局也不同。网页端的 页面布局相对来说单一,移动端的页面布局则要复杂很多,并且android与ios 系统间的布局也存在一定的差异。除此以外,网页端的发生滚动时,获取的tab 信息是相对于ui原点的绝对位置信息,但是移动端是相对于屏幕左上角的相对 位置。
[0005]
因此网页端的方法无法直接用于客户端。客户端的焦点陷入规则检测存在以 下的困难和挑战:
[0006]
(1)数据获取难:移动端的封装特性以及系统差异,导致焦点框位置的获 取成为了问题。
[0007]
(2)如何更好的定义焦点陷入:如何通过代码的角度去定义一种现象属于 焦点陷入是检测问题的核心。
[0008]
(3)如何解决两端差异:android与ios系统底层对于无障碍的实现差异, 导致焦点的遍历表现出现差异,如何提高代码复用率,尽量做到一份代码两侧复 用。


技术实现要素:

[0009]
针对以上问题和难点,本发明提出了一种用于手机app无障碍读屏软件的 焦点陷入检测方法,使用本发明的方法可以自动化、非侵入式地检测app是否 存在焦点陷入问题,本方法具有高覆盖率、低时间消耗、高召回率等优点,可以 方便地作为一个功能模块接入到现有的无障碍检测系统,具有很好的实用性。
[0010]
一种用于手机app无障碍读屏软件的焦点陷入检测方法,包括如下步骤:
[0011]
s1:打开手机上的无障碍读屏软件,获取手机为无障碍功能提供的额外信息, 用焦点框框出当前聚焦的位置,并用语音描述当前的元素;
[0012]
s2:打开被测软件,调用机械臂在屏幕上做一次滑动操作后截屏并上传到服 务端;
[0013]
s3:服务端通过焦点检测算法识别并返回当前焦点的位置信息;
[0014]
步骤s3中所使用的焦点检测算法,具体步骤如下:
[0015]
s31:对s2中的得到的截图,提取焦点框的颜色对应的rgb矩阵,叠加背 景得到rgb的范围;
[0016]
s32:对s2中得到的截图提取s31中得到的rgb范围的像素,得到一个单 通道图像;
[0017]
s33:对s32得到的单通道图像进行边缘检测,得到焦点框的边缘;
[0018]
s34:对s33得到的边缘进行直线检测,得到直线的直角坐标系方程;
[0019]
s35:筛选s34得到的方程,得到焦点框对应的直线,由此计算得到焦点框 的左下角坐标和高度、宽度;
[0020]
s36:定义焦点框位置信息矩阵为[x,y,h,w],其中x,y代表当前焦点框左 下角的横纵坐标,h,w代表高和宽,通过s35中获得的左下角坐标和长宽,填 入后得到当前定位的焦点框位置信息矩阵;
[0021]
s4:把s3中获取到的焦点框位置信息矩阵记录到检测历史中,然后输入到 单组件焦点陷入检测模块,得到单组件检测结果;
[0022]
步骤s4中所使用的单组件焦点陷入检测模块,具体如下:
[0023]
s41:判断当前焦点框信息矩阵是否和过往n次焦点信息矩阵相同,即任意 的f(x

i)=f(x),i∈[1,n];
[0024]
s42:若相同,则说明当前页面存在单组件焦点陷入问题,不需要继续执行 程序,可以直接输出结果;
[0025]
s43:若不同,则说明不存在单组件焦点陷入问题,继续执行检测流程;
[0026]
s5:把s3中获取到的焦点框位置信息矩阵输入到多组件循环焦点陷入检测 模块,得到多组件循环焦点陷入的检测结果;
[0027]
步骤s5中所使用的多组件循环焦点陷入检测模块,具体如下:
[0028]
s51:首先判断新进入的信息矩阵是否在任意的检测历史中出现过,即存在 f(n)=f(x);
[0029]
s52:若不存在,则未检测出多组件循环焦点陷入问题;
[0030]
s53:若存在,则需要进一步判断是否在最近n次历史中是否存在结构上的 重复,即任意f(n

i)=f(x

i),i∈[1,n];
[0031]
s531:若不存在,则说明没有检测到多组件循环焦点陷入问题;
[0032]
s532:若存在,则需要计算最大连续组合的覆盖率,覆盖率的计算公式为:其中w、h代表焦点框的宽和高,即计算从n开始到m位置的所有 聚焦框的面积之和是否大于指定的阈值,若大于阈值,则需要排除,若小于阈值, 则说明存在多组件循环焦点陷入问题;
[0033]
s6:结果输出模块输出当前页面的焦点陷入检测结果。
[0034]
优选地,步骤s4中检测历史的具体存储结构为哈希表。
[0035]
优选地,步骤s41中,选择过往5次的焦点信息矩阵。
[0036]
优选地,步骤s53中,选择最近5次历史。
[0037]
优选地,步骤s532中,指定的阈值为0.9。
[0038]
本发明结合了软硬件方法,利用系统的无障碍功能,实现了非侵入式、普适 性强、错误率低的一种移动端焦点陷入检测方法。
[0039]
综上,本发明创建了一种用于手机app无障碍读屏软件的焦点陷入检测方法, 具有如下优点:(1)覆盖率高:相较于使用时间特性的网页端解决方案,该方案 不设置遍历基数,无论是面对何种复杂程度的页面,都能够达到100%的检测。2) 时间消耗少:由于一旦出现了焦点陷入情况,程序便会立刻给出结果,因此冗余 遍历带来的多余时间消耗得到了很好的解决。(3)召回率高:该方案根据国标 的要求并收集了大量的实际案例,设计归纳了两种焦点陷入规则,可以覆盖几乎 所有的焦点陷入情况,且解决了焦点跳变问题,排除干扰,相较于网页端方案有 很高的召回率。
附图说明:
[0040]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例 或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的 附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造 性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]
图1是本发明提供的用于手机app的焦点陷入检测方法的总体流程图;
[0042]
图2是本发明提供的用于手机app的焦点陷入检测方法的单次焦点陷入规则 检测流程图。
[0043]
具体实施方法:
[0044]
下面结合附图进一步说明本发明的技术方案。
[0045]
一种用于手机app无障碍读屏软件的焦点陷入检测方法,包括如下步骤:
[0046]
s1:打开手机上的无障碍读屏软件,获取手机为无障碍功能提供的额外信息, 用焦点框框出当前聚焦的位置,并用语音描述当前的元素;
[0047]
s2:打开被测软件,调用机械臂在屏幕上做一次滑动操作后截屏并上传到服 务端;
[0048]
s3:服务端通过焦点检测算法识别并返回当前焦点的位置信息;
[0049]
步骤s3中所使用的焦点检测算法,具体步骤如下:
[0050]
s31:对s2中的得到的截图,提取焦点框的颜色对应的rgb矩阵,叠加背 景得到rgb的范围;
[0051]
s32:对s2中得到的截图提取s31中得到的rgb范围的像素,得到一个单 通道图像;
[0052]
s33:对s32得到的单通道图像进行边缘检测,得到焦点框的边缘;
[0053]
s34:对s33得到的边缘进行直线检测,得到直线的直角坐标系方程;
[0054]
s35:筛选s34得到的方程,得到焦点框对应的直线,由此计算得到焦点框 的左下角坐标和高度、宽度;
[0055]
s36:定义焦点框位置信息矩阵为[x,y,h,w],其中x,y代表当前焦点框左 下角的横纵坐标,h,w代表高和宽,通过s35中获得的左下角坐标和长宽,填 入后得到当前定位的焦点框位置信息矩阵;
[0056]
s4:把s3中获取到的焦点框位置信息矩阵记录到检测历史中,然后输入到 单组件焦点陷入检测模块,得到单组件检测结果;
[0057]
步骤s4中所使用的单组件焦点陷入检测模块,具体如下:
[0058]
s41:判断当前焦点框信息矩阵是否和过往n次焦点信息矩阵相同,即任意 的f(x

i)=f(x),i∈[1,n];
[0059]
s42:若相同,则说明当前页面存在单组件焦点陷入问题,不需要继续执行 程序,可以直接输出结果;
[0060]
s43:若不同,则说明不存在单组件焦点陷入问题,继续执行检测流程;
[0061]
s5:把s3中获取到的焦点框位置信息矩阵输入到多组件循环焦点陷入检测 模块,得到多组件循环焦点陷入的检测结果;
[0062]
步骤s5中所使用的多组件循环焦点陷入检测模块,具体如下:
[0063]
s51:首先判断新进入的信息矩阵是否在任意的检测历史中出现过,即存在 f(n)=f(x);
[0064]
s52:若不存在,则未检测出多组件循环焦点陷入问题;
[0065]
s53:若存在,则需要进一步判断是否在最近n次历史中是否存在结构上的 重复,即任意f(n

i)=f(x

i),i∈[1,n];
[0066]
s531:若不存在,则说明没有检测到多组件循环焦点陷入问题;
[0067]
s532:若存在,则需要计算最大连续组合的覆盖率,覆盖率的计算公式为:其中w、h代表焦点框的宽和高,即计算从n开始到m位置的所有 聚焦框的面积之和是否大于指定的阈值,若大于阈值,则需要排除,若小于阈值, 则说明存在多组件循环焦点陷入问题;
[0068]
s6:结果输出模块输出当前页面的焦点陷入检测结果。
[0069]
本发明覆盖率高,面对复杂的页面也能够达到100%的检测,当遇到焦点陷 入情况就会退出程序,减少冗余遍历,时间消耗少,并且此方法具有高召回率, 几乎可以覆盖所有的焦点陷入情况。
[0070]
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的 保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及 于本领域技术人员根据本发明构思所能够想到的等同技术手段。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献