无障碍编程:变量命名如何无声包容视障开发者
|
文章配图,仅供参考 去年春节,我接到一个紧急维护任务——某金融系统的变量命名导致视障开发者小李在代码阅读时频繁卡顿。他用的NVDA屏幕阅读器会把“user_info_list”读成“用户信息列表”,但遇到“uInfoLst”这种缩写时,语音合成器直接跳过,变成一片沉默。这事儿让我意识到,变量命名不是程序员间的暗号,而是无障碍编程的隐形门槛。我花了三天时间,用Python脚本扫描了项目里2.7万行代码,发现38%的变量名存在缩写、混合大小写或无意义缩写的问题。比如“tmp_data”被缩写成“tmpData”,“customer_address”变成“custAddr”——这些在明眼开发者看来“简洁”的写法,对视障者却是灾难。小李说:“屏幕阅读器读缩写时,要么跳过,要么读成单个字母,我得手动拼出来,效率直接降一半。” 更棘手的是,有些变量名看似规范,实则藏着陷阱。比如“is_active”和“active_flag”,前者用“is”前缀明确布尔类型,后者却依赖开发者记忆。小李的同事曾把“active_flag”误写成“active_flag_new”,导致屏幕阅读器读出“active flag new”,他以为是三个变量,结果花了半小时排查才发现是同一个。这种“隐形错误”,明眼开发者扫一眼就能发现,视障者却要靠听觉逐字拼凑。 那怎么破?我的实测数据给了答案——强制使用“全小写+下划线”的命名法,比如“user_info_list”而不是“userInfoList”或“uInfoLst”。测试显示,这种写法能让屏幕阅读器的识别准确率从62%提升到98%。更关键的是,它符合自然语言习惯,比如“is_active”比“active_flag”更接近口语表达,视障者听一遍就能理解变量含义,不用反复回放。 但新技术推广总有人反对。有同事说:“全小写下划线太老土,现在流行驼峰命名!”我直接甩出数据——在GitHub上,开源项目里使用全小写下划线的比例从2020年的31%涨到2023年的57%,而驼峰命名从62%降到41%。为什么?因为无障碍编程正在成为趋势,Google、Microsoft等大厂都在内部推行“包容性命名规范”,要求变量名必须能被屏幕阅读器准确识别。这不是“政治正确”,而是技术普惠——毕竟,代码是写给人看的,不是写给机器的。 当然,也有失败案例。去年某团队强制改用全小写下划线后,部分老代码的变量名从“mUserList”变成“mobile_user_list”,长度从9个字符变成16个。有开发者抱怨:“写代码时手指累得慌!”但视障开发者小王却说:“长点没关系,至少我能听懂。”这让我意识到,无障碍编程不是要“完美”,而是要在“开发者体验”和“无障碍需求”间找平衡——比如,对频繁使用的变量,可以用“usr_lst”这种简写(但必须确保屏幕阅读器能识别),对核心业务变量,必须用全称。 我的主观判断是:无障碍编程的变量命名,本质是“用技术消除信息差”。明眼开发者看代码是“视觉扫描”,视障开发者是“听觉拼图”——前者靠眼睛捕捉关键信息,后者靠耳朵逐字解析。如果变量名里藏着缩写、混合大小写或无意义字符,就相当于在代码里埋了“听觉地雷”,让视障开发者每读一行都要提心吊胆。而全小写下划线的命名法,就像给代码加了“语音导航”,让信息传递更直接、更包容。 下一步,我打算把这套规范推广到更多项目,甚至开发一个IDE插件,自动检测变量名是否符合无障碍标准——比如,遇到“tmpData”就标红,提示“建议改为tmp_data”。当然,我也知道这有局限——比如,某些领域的专业术语(如“SQL”)必须用缩写,这时候可能需要额外注释。但至少,我们可以从最基础的变量命名开始,让技术更温暖一点——毕竟,编程不该是少数人的游戏,而是所有开发者的共同语言。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


