《互联网广告管理办法》第十二条要求广告必须明确标注“广告”或“赞助”,且广告容器须设role="advertisement"并配显式aria-label,否则视为违规;动态更新时语义属性须与视觉状态实时同步。

广告必须带明确的「广告」或「赞助」标签,否则违反《互联网广告管理办法》第十二条——不标示即视为违规,平台可能下架内容甚至处罚主体。
广告容器必须加 role="advertisement" 属性
这是 WCAG 2.1 和国内《信息技术 互联网内容可访问性指南》强制要求。仅靠 CSS 类名或文字标注不够,屏幕阅读器、搜索引擎、监管系统都依赖这个语义属性识别广告区块。
- 错误写法:
...
- 正确写法:
...
- 如果广告是横幅图,
![]()
本身不能设 role="advertisement"(img 是自闭合元素,语义上不承载“区域”),必须包一层
- 多个广告并列时,每个容器都要独立加该属性,不可复用父级一次声明
aria-label 必须显式声明“广告”或“赞助”字样
光有 role="advertisement" 不够。部分读屏软件(如 NVDA 2025.2+)在未提供 aria-label 时会静默跳过该区域,用户完全感知不到这是广告。文字必须直白,禁用模糊表述。
DeepBI DHTML 页面生成器
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
下载
- 合规写法:
aria-label="广告:限时特惠活动" 或 aria-label="赞助内容"
- 不合规写法:
aria-label="推广信息"(“推广”非法定术语)、aria-label="相关内容"(无标识作用)、aria-label=""(空值等同于未声明)
- 若广告含多个模块(如 banner + 文案 + CTA 按钮),
aria-label 应放在最外层容器,且覆盖全部子内容,不要分散设置
视觉标签位置与可访问性必须同步更新
很多团队只做视觉角标(比如右上角小字「广告」),但 JS 动态切换广告位时,常忘记同步更新 aria-label 和 aria-hidden 状态,导致读屏器读到旧文案,或把隐藏广告仍当作有效区域播报。
- 每次插入新广告 DOM 时,必须同时设置:
element.setAttribute('aria-label', '广告:'+adTitle)
- 广告被 JS 隐藏(
display: none)时,必须同步执行:element.setAttribute('aria-hidden', 'true')
- 使用
visibility: hidden 或 opacity: 0 不触发 aria-hidden 自动变更,必须手动控制
- 移动端小屏下,视觉角标若被裁切(如
right: 0 贴边),要改用 right: 4px 并确保父容器 overflow: visible,否则视障用户虽能听到标签, sighted 用户却看不见
最容易被忽略的不是怎么写标签,而是「广告状态变化时,语义属性是否实时对齐」——它既影响合规性,也直接影响残障用户的实际体验。一个没同步 aria-label 的动态广告位,法律上等于没标。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!