figure仅在内容可独立抽离、编号并被正文引用时才必须使用;判断标准是删除figure后正文是否仍逻辑完整;figcaption须为figure直接子元素,alt与figcaption职责分离且不可互替。

figure 不是“给图加标题的 div”,它只在内容可抽离、可编号、需独立引用时才该用;用错位置或硬套装饰图,反而破坏语义和可访问性。
figure 什么时候必须用?看删掉它正文还通不通
判断标准非常直接:把整个 figure 块从 HTML 里删掉,主文段落是否还能顺畅读下去、逻辑是否依然成立?
- ✅ 该用:
figure包裹架构图 +figcaption标注“图2.1:订单服务调用链路”,这张图挪到附录也不影响正文讲清微服务协作 - ✅ 该用:
figure包裹一段<pre class="brush:php;toolbar:false;"><code>curl -X POST ...</code></pre>+figcaption写“清单 3:创建用户的 API 请求示例” - ❌ 别用:文章中一句“点击后效果如图所示”,配一张按钮弹窗截图——图是句子的一部分,删了就断句
- ❌ 别用:轮播图单帧、产品页主图、“点击查看大图”文字、用户头像旁昵称
figcaption 必须是 figure 的第一个或最后一个直接子元素
这不是样式建议,是 W3C 强制规范。DOM 顺序决定屏幕阅读器播报顺序和搜索引擎识别逻辑。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- ✅ 正确:
<figure><figcaption>图1:登录流程</figcaption><img src="login.png" alt="UML 活动图:输入凭证→验证→跳转主页"></figure> - ✅ 也正确(但次选):
<figure><img src="login.png" alt="UML 活动图:输入凭证→验证→跳转主页"><figcaption>图1:登录流程</figcaption></figure> - ❌ 错误:
<figure><img><div class="wrap"><figcaption></figcaption></div></figure>(figcaption不是直接子元素) - ❌ 错误:
<figure><img><p>说明文字</p></figure>(p不是figcaption,无法被识别为图注)
alt 和 figcaption 各干各的活,别混着写
alt 是图像缺失时的替代文本,面向无图环境和读屏器;figcaption 是这张图在文档中的角色说明,面向所有用户。两者缺一不可,且不能照抄。
- ✅ 合理:
<img src="chart.png" alt="柱状图:Q1–Q3 各渠道转化率,微信最高达 12.4%">+<figcaption>图4:2024 年 Q1–Q3 渠道转化率对比(数据来源:CRM 系统导出)</figcaption> - ❌ 错误:
alt="图4:2024 年 Q1–Q3 渠道转化率对比"(把figcaption内容塞进alt,冗余且破坏可访问性) - ❌ 错误:
<img alt=""><figcaption>图4:...</figcaption>(alt=""表示纯装饰图,此时不该加figcaption,语义矛盾) - ⚠️ 注意:若
alt已足够详细(含趋势、数值、单位),figcaption可精简为编号+来源,避免重复朗读
一组图怎么处理?别用一个 figure 包一堆
figure 表达的是“一个”可被单独引用的实体,不是“一组”。轮播图、图集、分步操作截图,都得各自独立包裹。
- ✅ 正确:轮播组件用
<div class="carousel"> 包整体,内部每个帧都是 <code><figure><img><figcaption>图1:首页 Banner A</figcaption></figure> - ✅ 正确:三步操作截图 → 三个
figure,各自带独立figcaption,如“图5.1:打开设置”“图5.2:选择通知偏好”“图5.3:保存成功” - ❌ 错误:
<figure><img><img><figcaption>图1–3:系统配置流程</figcaption></figure>(一个figcaption覆盖多图,语义断裂) - ? 提示:统一标题(如“图1–3”)应放在外层
<section></section>或<h2></h2>里,而不是强塞进figcaption










