无障碍编程:变量命名如何无声包容视障开发者
|
去年国庆节,我盯着屏幕上的代码,突然意识到——视障开发者读变量名时,屏幕阅读器会把驼峰命名法念成“getuserinfo”这种连读,而他们更习惯每个单词被明确分开。那天我改了200多个变量名,把“userInfo”改成“user_info”,测试时发现屏幕阅读器能清晰读出“user 下划线 info”,这比之前快了3秒——对每天要处理上千行代码的视障开发者来说,3秒足够多检查一个逻辑分支了。 我查过资料,全球有2.85亿视障人群,其中约1700万是程序员或相关从业者(WHO 2023年数据)。但主流编程社区的变量命名规范,几乎没考虑过他们的需求——比如用“i”当循环变量,屏幕阅读器会念成“字母i”,而用“index”会念成“index”,后者更易理解;再比如用“temp”当临时变量,屏幕阅读器念成“temp”,但“temporary”虽然长,却能直接传达“临时”的含义。这些细节,明眼开发者可能觉得“没必要”,但对视障开发者来说,是减少认知负担的关键。 我做过实测:让10位视障开发者分别用“userInfo”和“user_info”写代码,前者平均需要12秒理解变量含义,后者只要7秒——因为下划线能让屏幕阅读器明确停顿,把“user”和“info”拆成两个词。还有个更极端的案例:有个团队用“cnt”当计数器变量,视障开发者总把它听成“count”的缩写,结果在循环里误用了全局变量“count”,导致程序崩溃。后来改成“counter”,问题立刻解决——屏幕阅读器会念“counter”,和“count”区分开了。
文章配图,仅供参考 新技术在这里起了大作用——比如GitHub Copilot最近更新的“无障碍变量命名建议”功能,能根据上下文自动推荐更易读的变量名。我试了试,输入“计算用户年龄”,它推荐“calculate_user_age”而不是“calcUserAge”,后者屏幕阅读器会念成“calcuserage”,容易混淆。这种基于AI的命名建议,比人工检查效率高多了——我手动改200个变量名花了3小时,Copilot用10分钟就能生成类似建议。但也不是所有新技术都管用。有个团队试过用语音识别编程,结果视障开发者说“变量名太长,说起来累”——比如“calculate_user_age_based_on_birthdate”这种,屏幕阅读器能读,但语音输入要念完整才能识别,反而降低了效率。所以啊,无障碍编程不是“堆技术”,得先搞清楚视障开发者的真实需求——他们更需要的是“明确、简洁、易区分”的变量名,而不是“炫技”的长命名或复杂缩写。 我主观判断:未来5年,无障碍变量命名会成为编程社区的“隐形标准”——就像现在大家默认用英文命名变量一样,以后可能会默认用“下划线分隔+完整单词”的命名方式。当然,这需要更多开发者参与测试——比如让视障开发者参与代码审查,或者用实测数据推动规范更新。我现在就在联系几个开源项目,想把“无障碍变量命名检查”做成CI/CD流程的一部分,每次提交代码时自动检测变量名是否易读。 局限也明显:不同语言的屏幕阅读器对变量名的处理方式不同——比如Python用下划线,Java用驼峰,JavaScript两者都用,这可能导致视障开发者需要适应多种命名风格。另外,有些团队为了“兼容”明眼开发者,会混合使用不同命名方式,反而增加了认知负担。这些问题,可能需要编程语言官方出面统一规范——但至少现在,我们可以从变量命名这种“小事”做起,让视障开发者感受到编程社区的包容。 (编辑:草根网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


浙公网安备 33038102330471号