媒体网站无障碍设计:9个技术盲区适配要点
|
跟人吵架——上周三,客户总监在会议室把平板倒扣在桌上,说“你们这九条,不就是把WCAG2.1切开揉碎再炒一遍?”我当场没接话,但后脑勺发紧。不是因为他说得不对,是那台投影仪偏了三度,左下角的字全糊成灰毛边,我盯着看了十八秒,才意识到自己正用右眼单眼聚焦——左眼三年前做白内障手术时,医生多刮了半微米的晶状体后囊膜,现在看低对比文本,永远比常人慢半拍。这破事跟无障碍有关吗?有,也没。反正当时桌上的麻辣烫汤盒盖子没扣严,红油在空调冷风里慢慢结了一层橘皮似的膜。 我原以为他们真要推一套新渲染链路,结果测试环境一跑,连里的aria-describedby都挂空字符串——不是漏写,是开发小哥把值设成`aria-describedby="${descId || ''}"`,而他模板引擎的空字符串兜底逻辑,在Vue 3.4里默认触发DOM patch跳过,整段描述文本直接被框架当空气吞了。这个我敢打包票,我们搭了五套mock服务抓DOM快照,第三套发现的。可他说:“哎呀,屏幕阅读器不是能自动读alt吗?”我说那是img,不是figcaption。他眨眨眼,手指在键盘上敲出一串`v-if="descId"`然后删掉,重写成`v-show`——好家伙,DOM还在,只是透明度0,ARIA照样看不见。雨下得不大,但机房天花板那根老水管开始滴水,嗒、嗒、嗒,每一声都卡在JAWS读完一行后的停顿点上,像在给它打拍子。 第九条讲焦点管理,对,就是那个“模态框打开后焦点必须囚禁在内部”的条款。我们上线前测了三十七次,最后一次是凌晨一点,外包测试员老张戴着骨传导耳机,一边啃煎饼果子一边念操作流。他突然停住:“你这弹窗‘关闭’按钮tab两次就飞出去了。”我凑过去看,发现他按的是Caps Lock+Tab——Chrome最新版把大小写锁定状态和焦点循环逻辑耦合了,只在启用了Windows高对比模式时生效。这事儿我说不准,微软文档写得像谜语,而我们的前端库根本不读系统高对比标志,只认CSS media query。煎饼摊老板在窗外喊“最后一份”,老张左手捏着葱花没松手,右手把测试报告PDF拖进回收站,说:“算了,这bug归IE。”
文章配图,仅供参考 还有个细节没人提:媒体网站的视频播放器。我们改了六轮keyboard shortcut,把空格键暂停/播放、J/K逐帧、F全屏全做了。但某天凌晨三点,一个视障用户邮件发来一段录音——他用NVDA读取进度条时,报出“四十七秒,百分之三十九,已缓冲至五分二十七秒”,而实际视频卡在第十一秒不动。排查到天亮,发现是播放器底层用了requestIdleCallback去动态计算bufferRange,而NVDA在语音合成期间会主动抑制主线程空闲调度,整个buffer计算队列直接被压进microtask queue底部。没人告诉过你这个吧?没人,连Mozilla的a11y devtools都不报这玩意儿。那天值班的是实习生小陈,她接了个电话,声音很小:“妈,我这班还没加完……嗯,泡面早吃完了……您别等门禁。”说完默默把泡面桶塞进抽屉最底下,又拉出来,摆在显示器右边——正好遮住DevTools的Performance面板。优胜劣汰?对,就是字面意思。不是谁更规范谁赢,是哪个团队先被用户投诉到法务部,哪个方案就被砍掉。我们组上个月砍了两个“完美符合AA级”的组件库,就因为它们的焦点指示器用box-shadow模拟,而某个国产读屏软件在Android TV上会把shadow当成独立可聚焦节点,导致连续按三次Tab才跳到下一个链接。这种事儿编不出来,但客户验收PPT里还写着“视觉与交互双通道全覆盖”。呵。昨天下午财务部李姐路过工位,顺手帮我关了三台显示器的电源,嘴里念叨:“省电。”我抬头看见她左手无名指戴了枚银戒,戒圈内侧刻着模糊的“2009”,估计是婚戒,但漆掉了大半,只余一道灰痕。她转身时,发尾扫过我显示器支架的塑料壳,发出极轻的“嘶”声。 第五条讲语义HTML替代div+role,我们真按标准重写了所有卡片容器,用包评论区,套主稿,围栏目。结果新闻客户端App里,iOS VoiceOver读到直接跳过整块——不是静默,是彻底不触发。苹果开发者论坛里有人说这是WebKit 17.5的回归bug,有人说要加role="complementary"兜底,还有人晒截图证明加了反而更糟。没人复现成功,也没人证伪。我们测了八种iOS版本,七种是iPhone,一种是iPadOS,其中iPad那台还是借来的,键盘盖有点松,每次抬手碰触都会啪嗒晃一下。最后上线用回div,加了role和aria-label。行不行?行。是不是退步?是。但法务邮件比代码注释跑得快。 说到退步,我昨天看到一份竞品的无障碍年报,首页大图底下写着:“本年度无障碍支持率提升至百分之百”。我截图发给同事王工,他回复:“他们把所有图文混排页的图都换成了SVG内联代码,alt全设成‘装饰性图像’。”我回:“……所以他们现在算盲文出版物?”他隔了五分钟回:“他们HR招不到懂SVG描边路径转text path的,就买了个AI插件,一键生成‘此处为图片’——每个都不同,有的带感叹号,有的加破折号,有的末尾问号。”我笑了,笑得有点哑。隔壁工位的打印机突然卡纸,出错灯红得刺眼,闪三下,停两秒,再闪三下。像心跳。 下一步?下周二我约了三家读屏厂商技术对接,不聊标准,聊他们的内部调试开关。比如NVDA有个隐藏指令,Ctrl+Insert+B能强制开启DOM tree扫描——但只在调试模式下生效,正式版禁用。我想试试能不能骗过它。要是不成,我就去学Python写个Chromium extension,劫持focus事件之后手动重置tabIndex。管它是不是脏活。反正雨还在下,外卖盒上那层红油膜,已经皱得像一张微缩地形图了。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


ASP无障碍设计:视障开发者高效调试代码
电商转化率低?90%用户行为数据被技术盲区掩盖
无障碍设计:从第一行代码起的尊重
安全专家速递:3大技术盲区正瓦解你的防御
无障碍设计失灵?动态跨界整合破局
MySQL事务控制无障碍设计实战指南