role="contentinfo" 应直接用于 元素,因其本身已隐含该语义;若用 则属错误,仅当无法使用 时才需显式添加,且内容须严格限定为版权、联系方式等静态元信息,不得嵌套导航或表单。

role="contentinfo" 应该用在哪个 HTML 元素上
直接套在 <div> 上是最常见的错误。WAI-ARIA 规范明确建议:优先使用语义化 HTML5 元素,<code><footer></footer> 本身已隐含 role="contentinfo",无需手动添加。只有在无法使用 <footer></footer>(比如旧项目用 <div class="footer">)时,才需显式加 <code>role="contentinfo"。
注意:<footer></footer> 必须是其最近的章节根元素(如 、@#@#@#@#@#@#@#@#@#@0 —— 单个链接不算“信息性内容”,应补充公司地址、邮箱、备案号等实体信息。
兼容性与 polyfill 的现实情况
所有现代浏览器(Chrome 80+、Firefox 75+、Safari 14+)原生支持 role="contentinfo",但 IE11 及更早版本完全忽略该 role。不过,由于 <footer></footer> 在 IE 中已有基本语义支持,实际影响有限。
不需要引入 ARIA polyfill。唯一需要手动干预的场景是:你用了 <div role="contentinfo"> 且必须支持 IE11,此时应额外加 <code>aria-label="页脚信息",因为 IE11 对无标签的 contentinfo 不播报。
真正容易被忽略的是多语言站点:如果页脚里有中英文双语版权信息,别只写 <p lang="zh">© 2024 公司</p>
<p lang="en">© 2024 Company</p>,而要确保父容器声明 lang 或用 aria-labelledby 显式关联主标题,否则屏幕阅读器可能随机切语言朗读。











