老旧html在现代辅助技术下失效,因其依赖视觉隐喻、忽略语义层级、滥用title属性,而现代at只信任dom结构、aria语义和键盘流。

老旧HTML在现代设备上最常暴露的不是“打不开”,而是“读不懂”——屏幕阅读器跳过空title、alt缺失的图片被静音跳过、div模拟按钮没有role和键盘焦点,这些都会让残障用户直接卡在第一步。
为什么老旧HTML在现代辅助技术下会失效
旧代码往往依赖视觉隐喻(比如用font标签控制大小、靠空白img占位)、忽略语义层级(全用div嵌套)、或滥用title属性替代真正的可访问说明。现代AT(辅助技术)不解析这些“视觉补丁”,只信任DOM结构、ARIA语义和键盘流。一个没有tabindex的span按钮,在VoiceOver或NVDA里根本不可聚焦。
修复img、iframe、object等媒体元素的可访问性
不能只加alt=""了事——空alt表示“该图纯装饰”,但老旧页面里大量img其实是内容图(如流程图、图标按钮)。要逐个判断:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 内容图:补全有意义的
alt,长度控制在125字符内,避免“图片:…”开头 - 装饰图:明确写
alt="",并移除title(它会干扰屏幕阅读器) -
iframe必须带title属性,值描述其用途(如title="用户评论嵌入框"),否则NVDA默认读作“框架” -
object嵌Flash或PDF的老代码,优先替换为embed或iframe,并提供文字摘要作为fallback内容
给非语义容器添加键盘与语义支持
老旧页面里满屏div和span响应点击?光加tabindex="0"不够,必须同步补全交互语义:
- 可点击的
div:加role="button"+tabindex="0"+aria-label(不要只靠title) - 可展开区域(如手风琴):用
role="region"+aria-expanded+aria-controls关联目标ID - 表格数据但没
th?手动加scope="col"或scope="row",否则TalkBack无法建立行列关系 - 所有自定义控件必须监听
Enter和Space键事件,不能只绑click
避免用CSS隐藏替代逻辑移除
老旧代码常用display: none或visibility: hidden“隐藏”冗余内容,但这些元素仍留在DOM中,可能被AT意外读出。真正该隐藏的,要用:
-
aria-hidden="true":对视觉隐藏且AT完全忽略(适合图标字体、装饰性SVG) -
aria-hidden="false"配合display: none:仅当动态显示时需恢复可访问性 - 绝对定位+尺寸为0+
overflow: hidden:比clip更稳妥的“视觉隐藏但键盘可聚焦”方案(用于跳转链接)
最易被忽略的是焦点管理——模态框打开后焦点没进框内、关闭后没回退到触发点,这种问题在老旧HTML里几乎必然存在,必须用document.activeElement和focus()手动接管,别指望浏览器自动处理。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










