加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.023zz.com.cn/)- 高性能计算、物联设备、数据可视化、操作系统、基础存储!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

无障碍编程:变量命名如何无声包容视障开发者

发布时间:2026-11-06 14:27:13 所属栏目:语言 来源:DaWei
导读:  去年十月二十七号,凌晨三点二十,我蹲在IDC二楼缓步台抽烟,手抖得点不着打火机。楼下机柜风扇吼得像拖拉机换气,但那个声音我听出来了——不是过载,是某台DB主库的SSD在咳血,咔嗒、咔嗒,每一声都卡在RAID卡日志刷盘的间隙

  去年十月二十七号,凌晨三点二十,我蹲在IDC二楼缓步台抽烟,手抖得点不着打火机。楼下机柜风扇吼得像拖拉机换气,但那个声音我听出来了——不是过载,是某台DB主库的SSD在咳血,咔嗒、咔嗒,每一声都卡在RAID卡日志刷盘的间隙里。


  我原以为是磁盘IO打满,结果连ssh都卡住三秒才回显一个字母。敲df -h的手指悬在半空,盯着监控屏右下角那块被胶布贴了三层的碎裂玻璃——上周老张搬服务器撞的,到现在没换,反光里映出我后面站着的客服小陈,她正用语音助手读工单:“……视障工程师反馈VSCode插件报错VariableNotReadable……”


  我吐了口烟,说你念慢点。她真就调低语速:“V-S-C-O-D-E,插件版本一点八二,错误代码E-ACCESS-NAME-MALFORMED。”


  这时候老板在运维大群发了个截图,一张钉钉聊天记录,他跟前端负责人对线:“变量名叫isTrueOrFalse()?你管这叫布尔值?”底下红字回复:“……我们组盲人同事用NVDA读出来就是‘is True Or False’,中间两个Or全是大写O,屏幕阅读器直接吞掉空格,读成‘isTrueOrFalse’——七个音节全连一块,等于喊了一串乱码。”


  我掐灭烟,发现右手食指沾了灰,左手还捏着刚拆封的备用SSD——型号SN570,盒底标签被指甲刮花两道,露出下面银色的铝箔层。值班室门虚掩着,泡面桶斜扣在键盘上,汤水早凉透,浮着一层油皮。


  那天其实没宕机。磁盘也没满。备份跑得比平时还勤快,连异地机房的rsync进程都在正常heartbeat。但就是有五个人同时登不上GitLab,SSH能连,git pull卡在unpack-objects阶段,卡得人心慌。后来查log才发现是pre-receive hook里有个自定义脚本在遍历所有变量名做驼峰检查,而那个脚本自己用了一个叫“mIsNotBool”的变量,名字本身就不符合它自己写的规则……循环套循环,CPU跑满却不出错,告警阈值纹丝不动。


  我翻了翻去年搬家时扔进旧纸箱的几本编程规范,其中一本扉页写着“2016年上海前端大会赠”,内页折痕处用圆珠笔画了个箭头,旁边批注:“变量命名不是语法问题,是声学陷阱”。这话是我自己写的,但我不记得哪天写的,只记得那会儿刚装完新家宽带,猫在阳台等光猫拨号,听见楼下小孩骑滑板车摔了一跤,哭声拖得特别长,像一段没闭合的XML标签。


文章配图,仅供参考

  真要扯根因?这个我到现在也没想明白。是NVDA读取JavaScript AST的方式变了?还是Chrome最近一次更新悄悄改了DOM属性的accessibility tree渲染逻辑?或者只是某个实习生把eslint-plugin-jsx-a11y的规则版本从六升到七,忘了改配置里的ignorePatterns?谁知道。反正我昨天翻commit记录,看到十七个变量名被重命名:handleClick → onButtonClick,toggleMenu → expandSidebar,getItems → fetchListData——全是加了前缀后缀、塞了动词名词,为的是让读屏软件能一口气咬清每个音节。可隔壁组还在用getUserInfo,User Info四个字,中间两个空格被读成“Yoo-zer In-Fo”,活像在报机场登机口编号。


  上个月财务系统升级,我看见他们UI组用的按钮文字全是“提交表单”“导出报表”“跳转详情页”,不用“确认”“下载”“查看”这种模棱两可的词。我问为啥,实习生小李边啃苹果边说:“我们组有两位视障同事,一位靠耳蜗,一位靠触觉反馈,动词+宾语,动作对象全锚定,听三遍不会漏。”


  我忽然想起去年双十一凌晨,机房断电前十分钟,空调突然停了,整栋楼温度直线往上蹿,我脱了外套搭在椅背上,衬衫后领全湿透。那时候没人顾得上变量名。现在呢?我们天天盯着Prometheus看Gauge指标毛刺,却容不下一个isLoaded和isLoading之间多出来的那个“ing”带来的发音黏连。


  窗外开始下雨,雨点砸在机房排风口的金属挡板上,噼啪响,但声音很闷,像是隔着好几层防尘网。我抬头看了眼监控屏左上角——那儿贴着张泛黄的便签,印着褪色的“SLA达标率99.99%”,字迹被咖啡渍晕开,最后一个“%”号糊成个小黑点。


  其实最难受的不是技术债。是有一天我看见测试妹子用语音指令录自动化脚本:“打开Chrome,输入url……”她说到一半,停下来重读,“不对,重来:打开Chrome浏览器,输入网址……” 她顿了顿,又补一句,“URL三个字母,读全称。” 我当时站在她身后三步远,没吭声,但手指无意识抠着工牌挂绳的塑料卡扣,咔哒咔哒,像那台快挂掉的SSD。


  优胜劣汰这事,从来不是谁写得快谁赢。是读得准、听得清、摸得着的人,在淘汰那些只顾自己敲得顺手的命名。不是悲悯,是筛选。就像十年前我们骂IE6不支持CSS3,现在回头看看,IE6倒是有种古怪的包容性——它逼所有人写死宽高、手算像素,反而没人敢乱搞flex-wrap换行崩布局。


  明天先把告警阈值调了。不是调CPU,是给ESLint扫描加个钩子,当连续三次检测到驼峰命名含超过两个大写字母紧挨时,强制触发企业微信语音提醒。管它有没有用。先让它吵醒我再说。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!