知识文章 · 编写日期 2026-11-05
h网站按钮还看得见为何不能点
按钮仍可见,不代表它此刻可交互。HTML的inert可以使一整块区域及其后代无法获得焦点或响应用户点击,而默认不必改变外观。分析h网站一类含糊称呼的页面时,应分开记录看见什么、实际能做什么和原因是否已核实。
采用自己制作的普通阅读页作为概念场景,只解释标准HTML行为,不检测或操作任何成人网站。题设没有脚本拦截、遮挡层等其他因素,也不涉及模态dialog的特殊例外;现实故障不能仅凭外观诊断。
inert改变的是交互状态,不自带变灰样式
MDN说明,inert使元素及其平坦树后代进入非交互状态,不能获得焦点或被点击,并从可访问性树中移除。文档同时提醒,默认没有一个必然可见的外观变化。
因此开发者仍需要给用户明确的状态说明。只在代码中设了inert,却让区域看起来与可用区域完全相同,可能使读者不知道发生了什么;不能把用户没有察觉当作其不会操作。
原创对照:两份相同按钮,区别在父区域
甲区与乙区都画一个普通“展开提纲”按钮,文字、尺寸与配色相同。题设甲区为普通容器;乙区容器带inert。仅在本题限定条件下,甲按钮可以进入常规键盘焦点,乙按钮不能。
差异来自父区域,而不一定来自按钮自身的disabled属性。检查自己的页面时,应沿祖先结构查状态;只看按钮那一行没有disabled,不能排除整个区域已经非交互。图是结构关系表,不是在模拟真实界面的点击测试。
与aria-hidden的职责不同
aria-hidden="true"用于控制内容是否暴露给辅助技术,单独设置它并不把内容在视觉上隐藏,也不等同于关闭所有交互。MDN明确不应把它加到可聚焦元素或其祖先上。
所以不能用“读屏不读到了”推断“键盘也进不去了”。本题对照强调两个接口的职责,而不是建议在可交互按钮上使用aria-hidden;需要暂时停用一块区域时,应使用符合任务的机制并核对实际体验。
不可交互也不等于秘密已保护
inert不是认证、授权或数据删除机制。即使某块内容不进入焦点顺序,也不能据此承诺页面中的私人信息已从文件中消失,更不能用它替代服务器端访问控制。
这和视觉遮挡同样需要分开理解:看不见、点不到、辅助技术不暴露、原始资料是否仍存在,各有不同检查对象。本文只解释前面限定的交互状态,不提供绕过操作。
怎样排查自己的学习页面
先确认题设范围,在自己有权维护的源代码中查看按钮和祖先容器,记录是否有inert以及谁负责切换。再核键盘焦点、明确状态提示和恢复后的操作路径;不把一张截图当作完整交互证据。
若只能看到陌生页面,不知道结构,就写“按钮可见,但操作未成功,原因未知”。遮挡、脚本错误、网络失败都可能另有原因;不能因为知道了一个属性,就断言每次故障都由它造成。
动手核对
- 把可见外观、键盘焦点和点击响应分别观察。
- 在自有页面检查按钮及祖先容器的状态。
- 区分inert与aria-hidden,不把辅助技术暴露等同所有交互。
- 为停用和恢复提供清楚提示,未知原因保留为未知。
常见问题
inert一定会把区域变灰吗?
不会自动保证。默认外观可能不变,状态提示需开发者明确提供。
按钮自己没有disabled,就一定能点吗?
不能这样推断。父区域inert等条件也可能影响它。
aria-hidden能替代停用按钮吗?
不能。它不等同于关闭交互,也不应放在可聚焦元素及其祖先上。
依据与延伸阅读
- MDN:inert全局属性(MDN,核验日期 2026-11-05)
核对后代交互、焦点、可访问性树与默认无视觉变化;排除模态dialog特殊情况。
- MDN:aria-hidden(MDN,核验日期 2026-11-05)
核对辅助技术暴露职责及不得用于可聚焦元素/祖先的限制。