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

广告必须带明确的「广告」或「赞助」标签,否则违反《互联网广告管理办法》第十二条——不标示即视为违规,平台可能下架内容甚至处罚主体。
广告容器必须加 role="advertisement" 属性
这是 WCAG 2.1 和国内《信息技术 互联网内容可访问性指南》强制要求。仅靠 CSS 类名或文字标注不够,屏幕阅读器、搜索引擎、监管系统都依赖这个语义属性识别广告区块。
- 错误写法:
<div class="ad-banner">... <li>正确写法:<code><div role="advertisement" class="ad-banner">... <li>如果广告是横幅图,<code><img alt="HTML网页广告怎么加标签?赞助标识设置规范" >本身不能设role="advertisement"(img 是自闭合元素,语义上不承载“区域”),必须包一层<div role="advertisement"> <li>多个广告并列时,每个容器都要独立加该属性,不可复用父级一次声明</li> <h3> <code>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的动态广告位,法律上等于没标。 - 合规写法:


















