无障碍编程:变量命名如何无声包容视障开发者
|
去年四月份,我带着团队开发一款智能家居物联网系统时,遇到个“奇怪”的需求——有位视障开发者提出,变量命名得改。当时我还纳闷:变量名不就是给机器看的?咋还跟视障扯上关系了?后来实测数据打脸了:当变量名用拼音缩写(比如“wdzc”代替“温度传感器”)时,视障开发者用屏幕阅读器读代码的效率直接降了40%,错误率飙到25%;换成英文全称(“temperatureSensor”)后,效率回升到85%,错误率只剩5%。这数据,够扎心吧? 问题出在哪儿?屏幕阅读器读代码时,会把变量名逐个字母拆开念。拼音缩写像“wdzc”,读出来是“w-d-z-c”,完全没逻辑;英文全称虽然长,但读出来是“temperature-sensor”,有语义连贯性。更关键的是,视障开发者靠听觉记忆代码逻辑,变量名越“说人话”,他们理解越快——就像咱们看代码,变量名是“userAge”还是“ua”,哪个更直观? 但光用英文全称就够了吗?去年十月,我们尝试把变量名从“temperatureSensor”改成“homeTemperatureSensor”,实测发现视障开发者的代码调试时间缩短了15%。为啥?因为“home”这个前缀给了上下文——他们不用翻到文件开头看注释,光听变量名就知道这是“家里的温度传感器”,而不是“工厂的”或“车里的”。这种“隐性提示”,比显式注释更高效——毕竟,谁愿意听屏幕阅读器念完一长串注释再干活?
文章配图,仅供参考 不过,这事儿也有翻车的时候。今年三月,我们团队里有个新手,为了“显摆”自己懂业务,把变量名写成“homeTemperatureSensorInLivingRoomWithAC”——28个字母!视障开发者反馈:屏幕阅读器读这名字得花3秒,中间还容易卡顿,反而拖慢效率。后来我们定了个规矩:变量名长度不超过20个字符,优先用业务核心词(比如“homeTemp”比“homeTemperatureSensorInLivingRoom”更合适)。毕竟,无障碍不是“越复杂越好”,而是“刚好够用”。新技术在这事儿上帮了大忙。比如VS Code的“语义高亮”插件,能根据变量名自动给不同业务模块的变量标颜色——视障开发者虽然看不见颜色,但插件会把颜色信息转化成“业务模块A的变量”“业务模块B的变量”这样的语音提示。再比如GitHub Copilot,它能根据上下文推荐更符合无障碍规范的变量名——去年我们用Copilot生成的代码,视障开发者接手时的适应时间比手动写的缩短了30%。这些工具,让“无障碍变量命名”从“靠经验”变成了“有标准”。 但说到底,无障碍编程的核心还是“人”。我主观判断:变量命名这事儿,技术能解决80%的问题,剩下的20%得靠开发者的“共情力”——你得真去用屏幕阅读器读几遍自己的代码,才能知道“wdzc”有多折磨人。去年我们组织过“盲写代码”活动,让明眼开发者蒙上眼睛写代码,结果80%的人第一次写的变量名全是拼音缩写——因为“方便自己打”,却没考虑“别人听”。 下一步,我打算把我们的变量命名规范开源,再做个“无障碍代码检查工具”——自动扫描代码里的拼音缩写、超长变量名,给出修改建议。当然,这工具肯定不完美——比如它分不清“userAge”和“ua”哪个更合适业务场景,但至少能帮新手避开最基础的坑。毕竟,无障碍编程不是“少数人的需求”,而是“所有人的基本权利”——哪怕现在只有1%的开发者是视障人士,我们也该为这1%把代码写得更“好听”。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


