address标签专用于标识责任人本人/团队的可直接联络信息,必须作为body或article的直接子元素,内容需含明确归属与交互方式,否则语义失效。

address 标签不是用来排版通讯地址的
它不负责“怎么好看地展示地址”,只负责“告诉浏览器和读屏软件:这是谁的联系信息”。如果你在写“上海市浦东新区XX路XX号”却没说明这是作者办公地、也没提供可联络方式(比如来信请寄、电话可转接),那用 address 就是语义错误——渲染出来再整齐,辅助技术也会跳过或误读。
合法的 address 内容必须同时满足两个条件
内容得是“责任人本人/团队” + “可直接联络”:
- ✅
邮箱:admin@site.com(带mailto:链接) - ✅
电话:+86 10 1234 5678(带tel:) - ✅
物理地址:来信请寄:北京市朝阳区建国路1号(前端组收)(含动作动词 + 明确接收方) - ❌ 单独一行
上海市静安区南京西路1号(无归属、无可交互性) - ❌
客服电话:400-123-4567(责任方是客服中心,不是页面作者)
address 必须作为 body 或 article 的直接子元素
嵌套位置错,语义就归零:
- ✅
<body><address>...</address></body>→ 整页维护者 - ✅
<article><address>...</address></article>→ 仅该文章作者 - ❌
<section><address>...</address></section>→ 不触发语义绑定 - ❌
<footer><div><address>...</address></div></footer>→ 被div隔断,等同于无效
现代浏览器(Chrome 120+、Firefox 125+)已移除 address 默认斜体和外边距,别靠样式判断是否生效;要用开发者工具检查 computed role 是否为 group 且 aria-label 是 "contact information"。
排版和可访问性要手动补足
默认样式清零后,视觉上和 div 没区别,但语义不能靠人眼猜:
- 必须显式加视觉提示,比如
address { border-left: 2px solid #007bff; padding-left: 1rem; color: #555; } - 所有链接(
mailto:、tel:、a)必须真实可点击,不能只是文字 - 避免纯图标无文字,如只放 Twitter 图标却不写
@username,读屏软件无法识别 - 不要嵌套
p、h3、ul——address只接受短语内容(phrasing content),p是块级,会直接导致 HTML 验证失败
最常被忽略的一点:写了 address 却空着内容,或只放“联系我们”标题,反而会让读屏软件误报“此处有联系信息”,结果用户找不到邮箱或电话——语义标签一旦启用,就得给实打实的联络方式。


















