html语义化标签必须正确选用,主导航用、主内容区用、时间信息用、表单控件配、按钮用;属性顺序应规范,布尔属性须省略值;关键资源需preload/preconnect,脚本应defer或type="module";无障碍要求landmark唯一、heading不跳级、交互控件支持键盘导航、动态区域设aria-live。

HTML语义化标签是否被正确选用
语义化不是“加分项”,而是可访问性、SEO 和维护性的基础门槛。用 <div> 套 <code><div> 写导航、用 <code><span></span> 模拟按钮,会直接导致屏幕阅读器无法识别、搜索引擎降权、后续改版成本飙升。
常见错误现象:提交的 PR 里出现大量 <div class="header">、<code><div class="btn">;<code><section></section> 被滥用为“样式容器”而非内容逻辑分组。
- 主导航必须用
<nav></nav>,且应有aria-label或role="navigation" - 主内容区必须包裹在
<main role="main"></main>中,且页面只能有一个<main></main> - 时间信息必须用
<time datetime="..."></time>,不能只写纯文本 - 表单控件必须配对
<label for="xxx"></label>,禁止仅靠视觉对齐 -
<button></button>用于交互行为,@#@#@#@#@#@#@#@#@#@0) - 所有交互控件(
<button></button>、<a></a>、<input>)必须支持键盘Tab导航和Enter/Space触发 - 动态更新区域(如搜索结果、通知弹窗)需设置
aria-live="polite"或"assertive",并确保更新后焦点不丢失 - 不要用
aria-hidden="true"包裹整个功能区块(如侧边栏),而应精确控制语义节点可见性











