ASP无障碍设计:视障开发者也能高效调试代码
|
去年二月份,我蹲在客户那间朝北的会议室里,投影仪嗡嗡响得像台快散架的拖拉机,幕布右下角还糊着半块咖啡渍——没人擦,也没人说它碍事。销售小张坐我左手边,转笔转了四十七分钟,我数过,他换过三次姿势但没换过一支笔。桌上那盘火龙果切好了,粉红的,摆得挺齐,刀痕都对称,可从进门到散会,谁都没动过一筷子。 客户姓林,戴银边眼镜,敲键盘用的是JAWS读屏软件,声音是男声,语速慢但咬字准。他第一次开口是问:“ASP无障碍设计,是不是能让视障开发者自己改断点、看变量、单步进?”我说是。他点点头,把耳机线往耳后顺了顺,说:“那就做吧,要能真调代码,不是光读网页。” 我原以为“能真调代码”指的是调试器控件有语义标签、焦点路径不跳、错误提示带role=alert——结果他们上线前两天,测试发现F12打开开发者工具后,所有console.log输出全被JAWS跳过。不是静音,是彻底盲区。我截图发过去,林工回得快:“你们没开accessibility tree的force reload?”我愣了两秒,翻文档才看见这玩意儿藏在Edge实验性功能里,得手动打钩,且只在本地生效。线上?没门。连个开关入口都不给加。 销售小张当时正用另一台电脑刷淘宝,听见我说“需要重配DevTools API集成”,抬头笑了一下:“哎哟,还要动底层啊?甲方上次说‘做个淘宝那样的’,咱们不是照做了么?”——这话我听腻了。“做个淘宝那样的”等于没说,等于“你看着办但别问我”,等于他转笔时袖口蹭到键盘上那点灰都比我合同里写的验收标准清楚。 预算三千。我没接。拖了两个月,他们换了家外包公司,做完上线,源码没交,尾款卡着。上周林工微信问我要不要接手“补个实时语音反馈模块”,我回:“您先看看上一家留下的tabindex混乱成啥样了。”他隔了十八分钟回:“他们说加tabindex会影响SEO。”我盯着手机看了三秒,没回。后来在电梯里撞见他们CTO,西装领口有根猫毛,我问他:“SEO比屏幕阅读器识别不了submit按钮还重要?”他没答,按了B2,电梯关门时我听见他说:“哎……反正用户也少。” 用户也少?呵。上个月帮另一家做医疗后台,盲人工程师老赵远程连我电脑,用NVDA+VSCode硬是自己定位到一个空指针异常——就因为我们的按钮有aria-describedby,错误信息挂了ID关联,他听着就把问题复现了。而林工那个项目,连form表单提交后页面是否跳转,读屏都说不清楚。为什么?因为success页用了SPA路由但没发region-live update。他们觉得“反正看不见,提示不提示都一样”。 那天回公司路上下着小雨,共享单车锁半天解不开,我站在地铁口刷朋友圈,看见林工转发了一条“科技向善”的推文,配图是他戴着墨镜在盲文键盘上敲代码——照片很亮,背景虚化得好,就是没拍到他旁边那台开着高对比度模式却显示一片灰白的显示器。底下二十多条评论,没人提CSS contrast ratio低于4.5:1,也没人说aria-live="polite"在异步加载时根本不起作用。大家都夸:真棒啊,视障也能写代码啦! “优胜劣汰”这词是我上周在食堂听见的。隔壁组老周嚼着包子说:“活儿接得越多,死得越早;需求越模糊,留坑越深。”他说得对。林工那套ASP系统,现在靠三个明眼同事每天早上人工跑一遍NVDA测试清单,念出来、记下来、改完再念。他们管这叫“无障碍兜底”。兜什么底?兜住老板的KPI,还是兜住《无障碍环境建设法》第二十三条?
文章配图,仅供参考 回一条微信,我打了三遍删了两遍:第一遍写“建议重构渲染层”,删了;第二遍写“当前方案无法满足WCAG 2.1 AA级”,删了;第三遍只发了个“嗯,收到”,加个表情,是那个眯眼笑的黄脸。其实我想说的是:您连自己页面里的label for和input id都配不对,谈什么让视障开发者高效调试?高效?能不出错就算赢。 不过说实话,我不知道该不该接这类活。有些事,干了像帮忙,不干又怕以后真有盲人工程师卡在那儿,调试失败,误以为是自己水平不行。可现实是,我连他们会议室投影仪嗡嗡声录下来,放给开发听,人家都嫌“干扰主流程”。主流程?主流程是PPT第十七页的“用户旅程地图”,里面画了个微笑的小人,头顶飘着气泡:“无障碍已上线!”——气泡没写色值,没标字体大小,没注释是否支持语音导航跳转。 下回合同里这条必须写死:所有动态内容更新必须触发aria-live区域,且至少一种主流读屏实测通过。不测?不算验收。行不行?反正我是懒得再蹲那间嗡嗡响的屋子了。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


无障碍编程:变量命名如何无声包容视障开发者
无障碍设计:从第一行代码践行技术尊重
无障碍设计失灵?跨界技术整合破局
ASP进阶实战:14年程序员的站长进阶路
ASP进阶实战:系统工程师高效开发指南
MySQL事务控制无障碍设计实战指南