加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.0516zz.com/)- 智能数字人、图像技术、AI硬件、数据标注、数据治理!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

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

发布时间:2026-11-03 14:10:46 所属栏目:语言 来源:DaWei
导读:  去年三月,我蹲在三号机房后门那台哑巴语音合成器旁边调变量名,雨水正顺着玻璃缝往下淌,在地面聚成一小片泛光的水洼——鞋跟踩进去就咕叽一声,我也没抬脚。  老张接了个电话,左手捏着耳机线绕了三圈又松开,右手在键盘

  去年三月,我蹲在三号机房后门那台哑巴语音合成器旁边调变量名,雨水正顺着玻璃缝往下淌,在地面聚成一小片泛光的水洼——鞋跟踩进去就咕叽一声,我也没抬脚。


  老张接了个电话,左手捏着耳机线绕了三圈又松开,右手在键盘上敲出一串“tmpVal”,嘴里还念叨“反正就临时用一下”。我说这变量得改,他头都没抬:“读出来不就是‘特姆普瓦尔’?够清楚了。”我盯着屏幕右下角那个 NVDA 读到第三遍还在卡在“tmp”上、突然跳成“temp”又倒回去重读的进度条,忽然觉得比机房顶上那根滋滋响的UPS报警灯还刺耳。


  我原以为只要拼写完整、大小写清晰,读屏就能稳稳吃下去。结果上周测试发现,一个叫“userImgUrlStr”的变量,在JAWS里被读成“you-zer-img-u-r-l-s-t-r”,中间没停顿,连起来像某种外星咳嗽;而隔壁组用的“userImageSrc”反而被拆成“user image source”,清清楚楚。这个我敢打包票——我录了十八秒音频,反复听了七遍。可“img”缩写到底算不算行业惯例?这个我说不准。反正现在我看到“img”就手抖,顺手替换成“image”,管它占几个字节。


  桌上那盒凉透的酸辣粉还剩半碗,汤面浮着几粒油星,旁边压着一张撕下来的便签,上面是小陈写的“别动我的srcPath——已配好朗读策略”。她上周为这事跟我吵过一架,就因为我在代码审查里把她的“sP”改成“sourcePath”,她说:“你根本没试过TTS怎么切词!”——可她也没告诉我,她那个TTS插件其实是把所有带大写的驼峰强行拆成单音节,比如“srcPath”听成“sirk-path”,而“sourcePath”直接爆成“source path”,中间停顿刚好够她换气。


  对,就这么简单:变量名不是给人眼排版看的,是给机器咀嚼后吐给耳朵的。优胜劣汰?可不是什么高大上的进化论——就是读得顺的活下来,读岔气的直接被掐断在IDE里。上个月我们删掉三十四个“tmpX”、“dataArr”、“flag1”类命名,全组重新跑了一次NVDA+VSCode+Python的组合测试。有些变量活了,有些连第一遍读都没熬过去。不是谁错了,是有些名字生下来就没长呼吸孔。


  机房空调刚修过,风扇转速忽高忽低,嗡——咔——嗡——咔——,听得人太阳穴突突跳。我盯了会儿显示器边框上一道指甲盖大的划痕,想起去年十月那个盲校实习生来实习时问过一句:“你们写‘btnSub’的时候,心里想的是‘submit button’,还是‘button submit’?”没人答上来。后来我翻了三天JSDoc,发现咱们八十七个组件里,“btn”开头的命名方式居然有四种断词逻辑,三种来自不同读屏引擎的默认规则,一种来自某个实习生自己写的JSX插件……这事儿后来不了了之,因为那实习生第二周就转去搞语音导航SDK了,走之前在Git提交里留了句注释:“你们的变量,比我老家巷口的狗叫还难猜。”


文章配图,仅供参考

  所以现在我们新进来的命名规范第一条就写着:“能少一个字母,必须少一个字母;但少完之后,必须让JAWS和NVDA都至少喘一次气。”——这句不是我写的,是法务部小王改的。他说“必须”太重,建议换成“宜”。我当场把打印稿折成纸飞机扔进废纸篓。现在它还卡在通风口格栅后面,灰扑扑的,翅膀翘着,一动不动。


  小陈昨天又发来个PR,里面有个变量叫“a11yIsEnabled”。我盯着看了四十秒,没点“Approve”。不是因为“a11y”缩写——这个早过了评审关;是因为她把整个布尔变量名全小写了,而我们上季度刚确认过,NVDA对全小写布尔名默认吞掉首字母,读成“11y-is-enabled”。她回复得很快:“已改。另:楼下打印店老板说,他家复印机今天右下角卡纸,卡了十七分钟,纸面朝下,字迹全糊了。”我没回。但刚才顺手把“a11yIsEnabled”搜出来,替换成“accessibilityFeatureOn”。不是最优解,但至少它不会在读到一半时突然打个嗝。


  其实我今早看见运维老李在食堂门口喂流浪猫,用的是一次性餐盒,盒底印着“食品级PP5”,他拿筷子戳破盒底放水,猫低头舔的时候,水从破洞慢慢滴到水泥地上,嗒、嗒、嗒。我站在三米外看了六次滴落,直到他起身拍拍裤子走了。这事跟变量名一点关系都没有。但我觉得比我们上次代码评审会更真实。


  下周二我要带新人跑一遍读屏命名校验流程——不是教他们怎么写,是让他们坐在我旁边,听十段随机变量名的朗读录音,听完立刻画出停顿位置。谁画得最接近TTS实际切分点,谁下周负责更新命名白皮书附录C。附录C现在空着,只有一页标题:“此处本该列出所有已淘汰命名,但更新滞后。”

(编辑:站长网)

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