无障碍编程:变量命名里的视障友好之道
|
去年6月份,我参与了一个为视障开发者设计的开源项目——当时团队里有个全盲的程序员小李,他总抱怨“变量名里的缩写和数字组合太折磨人”。比如“userInfoV2”这种命名,屏幕阅读器会念成“用户信息V2”,但“V2”的发音和“V two”几乎一样,小李得反复暂停、回放才能确认版本号。这让我意识到,变量命名这事儿,对视障开发者来说,远比明眼人复杂得多。 实测数据很扎心:我们找了10位视障开发者,让他们阅读一段包含“userInfoV2”“tempData123”“btnSubmit”的代码——结果平均需要3.2秒才能理解每个变量的含义,而明眼开发者只需0.8秒。更关键的是,当变量名里出现“i”“j”“k”这类单字母(比如循环里的索引),屏幕阅读器会直接念字母名,小李说“这就像听一串乱码,得靠上下文猜意思”。 那怎么解决?新技术给了我们答案——比如用“全拼+语义”的命名方式。我们把“userInfoV2”改成“userInformationVersion2”,屏幕阅读器会念成“用户信息版本2”,小李一听就懂;把“tempData123”改成“temporaryDataForUser123”,虽然长了点,但“临时数据为用户123”的发音清晰多了。甚至有开发者提议用“emoji+拼音”的组合(比如“????用户信息_v2”),但测试后发现,部分屏幕阅读器对emoji的支持不稳定,最后还是回归了纯文字方案。
文章配图,仅供参考 有个失败案例特别值得说:我们曾尝试用“驼峰命名法”的变种——把首字母大写改成“全大写+下划线”(比如“USER_INFO_VERSION_2”),想着这样屏幕阅读器会念得更清楚。结果小李反馈:“念是念清楚了,但写代码时得频繁切换大小写,反而容易出错。”后来我们才明白,视障开发者用键盘输入时,大小写切换的效率比明眼人低很多——他们得靠记忆或听提示音确认是否按对了Shift键。所以,命名规则得兼顾“可读性”和“可输入性”。主观判断:我认为“无障碍变量命名”不仅是技术问题,更是设计伦理——就像建筑里的无障碍坡道,不是“可有可无”的附加项,而是“必须存在”的基础设施。去年10月,我们把这个命名规范提交到了开源社区,有开发者质疑:“变量名变长了,代码会不会变慢?”但测试显示,变量名长度对编译速度的影响可以忽略不计(在10万行代码的测试中,差异不超过0.02秒)。真正影响效率的,是视障开发者因为命名混乱而反复调试的时间——这部分成本,明眼开发者往往意识不到。 现在,我们的项目里已经全面推行“视障友好命名”:变量名必须用完整英文单词(禁用缩写),版本号用“_v”后缀(比如“userInfo_v2”),临时变量用“temp_”前缀(比如“temp_userData”)。小李说:“现在写代码,不用再猜变量名了,屏幕阅读器念什么,就是什么。”——这大概就是“无障碍编程”最实在的意义吧。 下一步,我打算把这套命名规范推广到更多开源项目,甚至联系IDE厂商(比如VS Code),看看能不能在代码提示里加入“视障友好建议”——比如当用户输入“userInfo”时,自动提示“是否要补充完整单词‘userInformation’?”。当然,我也承认局限:这套规则主要针对英语环境,中文变量名的无障碍处理还没找到好方案(比如“用户信息”用拼音“yonghu_xinxi”,屏幕阅读器会念成“永虎新西”,完全听不懂)。所以,这事儿还得继续折腾。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

