htmlhint必须显式配置"alt-require":true和"input-requires-label":true才能强制拦截可访问性缺陷,前者要求所有含有效alt属性,后者要求必须被包裹或通过for/id严格关联,且不支持aria-label等aria替代方案。

可访问性问题必须一票否决,不是因为“政治正确”,而是因为 alt 缺失、input 无 label、role 误用等错误会直接导致屏幕阅读器无法操作、键盘用户卡死、法律合规风险上升——这些不是“待优化项”,是阻断上线的硬性缺陷。
怎么配置 HTMLHint 实现可访问性硬拦截
HTMLHint 默认不启用可访问性规则,不显式打开就等于没开。CI 中报“通过”,只是语法合法,不是可访问。
- 在
.htmlhintrc中必须写明:"alt-require": true和"input-requires-label": true -
input-requires-label会拒绝所有未被<label></label>包裹、也未用for/id显式关联的<input>、<textarea></textarea>、<select></select> - 它不认
aria-label或aria-labelledby—— 这是设计使然,不是 bug;想用 ARIA,就得另配attr-accessible规则并手动校验上下文 - CI 脚本中运行命令必须带配置:
npx htmlhint src/**/*.html --config .htmlhintrc,否则规则不生效
为什么 W3C Validator 不能替代 HTMLHint 做一票否决
W3C 验证器只检查语法合法性,<img src="icon.svg"> 它认为完全合法;但对屏幕阅读器来说,这就是一块沉默的空白区域。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- W3C 报“通过” ≠ 可访问,更不等于符合 WCAG 2.1 AA 级要求
- 它不校验
alt值是否为空字符串(alt=""合法)、是否为描述性文本(alt="图标"不合法) - 它不管
<div onclick="submit()"> 是否可键盘聚焦,也不查 <code>tabindex是否滥用 - 真正要拦住的,是那些“能跑、能测、能过 W3C,但残障用户根本用不了”的代码
-
<img>缺alt属性,或alt值为"图示"、"图片"、"icon"等无效占位符 -
<button></button>没写type属性(表单内默认 submit,可能意外触发表单提交) - 用
<div role="button"> 替代 <code><button></button>,且未实现Enter/Space键响应、focus状态管理、aria-pressed等交互契约这类问题不是样式微调,而是交互契约缺失——上线即故障,没有“灰度观察”空间。
哪些可访问性问题必须当场打回,不能“后续补”
不是所有可访问性问题都适合放行。以下三类一旦出现,CR 必须中断,修复后才能继续:










