无障碍设计失灵?自动化测试驱动动态跨界破局
|
去年八月那台混动,上架拆波箱的时候我就觉得悬——无障碍设计那套玩意儿,说白了就是给机器装脑子,可这脑子要是不灵光,比没装还坑。当时测试组刚换了个新脚本,号称能自动识别所有交互障碍,结果呢?屏幕读屏软件读到「确认」按钮时,脚本报错说「未检测到可点击元素」,我原以为只是坐标偏移,结果拆开代码一看——好家伙,按钮的ARIA标签写的是「确定」,而脚本里硬编码的是「确认」,这俩词差一个字,机器就当没看见。 老张蹲在工具车旁边抽电子烟,烟圈飘到风扇底下,被吹得七零八落。他说:「这玩意儿就跟咱修车似的,你光看手册没用,得摸过一百台车才知道哪颗螺丝爱锈。」我盯着屏幕上的报错日志,突然想起上个月那台特斯拉——车主自己刷了第三方固件,结果语音控制全瘫,测试脚本跑一半直接卡死。那会儿我们还在骂车主瞎搞,现在想想,无障碍设计要是只靠「标准」活着,跟把车钥匙交给熊孩子有什么区别? 千斤顶「咣当」一声放下去的时候,隔壁洗车店的水声刚好盖过手机提示音。测试组小李举着平板冲过来:「哥,动态元素检测又挂了!」我凑过去看,屏幕上是个弹出窗口,标题是「优惠活动」,内容是「限时折扣」,可脚本死活抓不到「关闭」按钮。我让他把窗口源码调出来,结果发现按钮的class名是动态生成的——每次加载都变,今天叫「btn-close-123」,明天可能就成「btn-close-456」。小李挠头:「这怎么测?总不能每次更新都改脚本吧?」我指了指工具车上缺了个轮子的千斤顶:「你见哪个修车工修车前先检查工具轮子的?动态元素就得用动态的法子测。」 后来我们换了套新策略:不再硬编码元素属性,改用图像识别+语义分析。说白了就是让机器自己「看」屏幕——就像老修车工扫一眼就知道哪根管子漏油。第一周测试的时候,脚本把广告横幅上的「立即购买」当成了功能按钮,差点把测试环境买崩了。小李在群里吐槽:「这机器比新手还虎!」我回他:「虎点好,虎点才能知道哪块肉能吃。」结果第二周,这脚本居然自己发现了某个隐藏菜单的交互障碍——那个菜单的触发区域比按钮小一半,正常测试根本测不出来。老张叼着烟笑:「你看,机器逼急了也会自己找饭吃。」 车间那条狗突然爬起来,摇着尾巴蹭到测试机旁边。它大概以为那台嗡嗡响的机器是新的取暖器。我顺手把屏幕转过去给它看:「懂吗?这上面在测无障碍。」狗舔了舔爪子,趴回门口。小李说:「哥,你说这算不算跨界?咱修车的跟写代码的凑一块,测个无障碍还能用上图像识别。」我指了指墙上挂的「优胜劣汰」锦旗——那是去年修车大赛赢的:「跨界算个屁,能活下来的才是真本事。你记得前年那台国产电动车吗?号称无障碍设计满分,结果盲人车主开出去三天就撞树了——语音提示延迟半秒,跟没有一样。」 手套上那块洗不掉的油渍是上个月修大梁时蹭的。当时要测车辆碰撞后的无障碍功能是否正常,结果测试脚本刚跑一半,安全气囊突然炸了——还好是训练弹。小李吓得从椅子上摔下来,手机摔裂了屏,还在喊:「哥!脚本报错说‘检测到未预期的物理冲击’!」我过去一看,好家伙,脚本里根本没写这种场景的应对策略。后来我们加了段代码:如果检测到剧烈震动,先暂停测试,确认环境安全后再继续。老张说:「这就像修车时突然听到‘咔嗒’一声——你得先停手,听听是螺丝松了还是大梁断了。」
文章配图,仅供参考 跑题说句题外的:我那台破捷达,收车时号称「原版原漆」,结果开回家发现仪表盘有个暗病——时速表偶尔会卡在0。去4S店查,师傅说:「这得换整个仪表盘,八千块。」我扭头就走,后来自己买了个OBD诊断仪,连上电脑一看——好家伙,传感器信号线接触不良。花了二十块买了根新线,自己焊上,问题解决。4S店那帮人,大概从来没想过「无障碍维修」——他们只管换总成,哪管你能不能修得起。这跟那些硬编码的无障碍脚本有什么区别?回到正题:现在我们的测试脚本已经能自动识别90%的动态障碍了——包括那些故意搞人的反爬机制。上周测某款新车的语音控制,脚本居然自己发现了个隐藏指令:对着屏幕说「开空调」,系统会先问「温度多少?」,但如果你直接说「26度」,它反而识别不了。脚本把这个问题标红,发给了开发组。后来他们改代码时才发现,原来语音引擎的语义分析模块有个bug——对连续指令的解析优先级反了。小李说:「哥,这算不算机器帮人找茬?」我指了指工具车上那堆拆下来的旧零件:「你看这些,哪个不是被我们‘找茬’才换下来的?机器要是不挑刺,人就得吃苦头。」 风扇还在吹,灰在光柱里飘得像慢动作。老张把烟头按灭在水泥地上:「你说这无障碍设计,最后会不会变成‘有障碍设计’?就像那些花里胡哨的智能车机——老人用不明白,盲人看不见,就剩年轻人图个新鲜。」我摇摇头:「所以得靠自动化测试逼着他们改。优胜劣汰嘛——脚本测不出来的,市场会教他们做人。」小李在旁边敲键盘,屏幕上的测试进度条已经跑到98%。我拍了拍他肩膀:「等这轮跑完,把结果发给那家车企——记得在邮件标题写‘你们的无障碍设计,连机器都看不下去了’。」 至于局限?当然有。比如有些障碍是人为制造的——比如把关闭按钮藏在三级菜单里,或者用灰色字体混在背景里。脚本能测出技术问题,但测不出「故意使坏」。不过这也没关系——市场会教他们做人。就像我那台捷达,要是哪天连OBD诊断仪都修不了它,我就把它扔进废车场——优胜劣汰,从来都是这么简单。 (编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


边缘场景下MySQL事务控制无障碍设计指南