直接答案:41 个缓存文章页里 36 个有图片,共 514 张 <img>:非空 alt 395 张(76.9%)、空 alt 24 张、缺失 alt 95 张。19 个页面全部覆盖、17 个部分覆盖、0 个完全没写;缺失集中在 E09、E16、E26、E28。这个比例明显高于首页的 51.3%。
第 38 期看了首页:978 张图片里 51.3% 有 alt。这一期把同一套三态规则移到文章页,检验“首页差、内页是否也差”。
方法:同一套三态规则
页面来自第 29 期抓取的 41 个 200 页面,原始 HTML 保存在站外。对每个 <img> 判断:非空 alt、空 alt(alt="" 或只有空格)、缺失 alt。不判断文案质量,不执行 JS。
| 状态 | 判定 | 含义 |
|---|---|---|
| 非空 alt | alt 存在且非空 | 至少提供了替代文本 |
| 空 alt | alt="" 或只有空格 | 可能是装饰图,也可能漏写 |
| 缺失 alt | 没有 alt 属性 | 没有任何声明 |
结果:76.9% 有 alt
| 项 | 数量 | 占图片 |
|---|---|---|
| 图片总数 | 514 | 100% |
| 非空 alt | 395 | 76.9% |
| 空 alt | 24 | 4.7% |
| 缺失 alt | 95 | 18.5% |
| 页面覆盖情况 | 页面数 | 说明 |
|---|---|---|
| 全部图片有 alt | 19 | E03、E06、E09、E14、E23 等页面 |
| 部分覆盖 | 17 | 仍有缺失或空 alt |
| 完全没有 alt | 0 | 没有出现整页都不写的情况 |
| 首页无图片 | 5 | 不参与比例 |
有图片页面的非空 alt 占比中位数是 100%:一半以上的页面每张图都有 alt。这与首页的两极分布不同——文章页更接近“全有”,首页更接近“全有或全无”。
与首页对比:76.9% vs 51.3%
| 层 | 页面/图片 | 非空 alt | 空 alt | 缺失 alt |
|---|---|---|---|---|
| 首页(第 38 期) | 25 页 / 978 张 | 51.3% | 24.6% | 24.0% |
| 文章页(本期) | 41 页 / 514 张 | 76.9% | 4.7% | 18.5% |
文章页的 alt 覆盖更高,但两组页面类型与选样不同,不是对照实验。一个合理推测是文章模板的配图较少、命名更规范;首页则包含大量图标、装饰图与轮播图。没有逐图用途标注,无法证实。
缺失集中在少数页面
95 张缺失 alt 主要来自 E09(15 张)、E16(三页各 11 张)、E26(11 张)、E28(9 张)。这些页面往往带缩略图列表或旧模板。另一端,E03 的 39 张、E14 的 25–27 张图片全部有 alt。
这说明 alt 覆盖是模板级差异:同一站点内的页面表现接近,跨站点差异更大。验收时按模板/站点抽样,比随机抽单页更能发现问题。
对验收的启示
- 内页不一定比首页差。 本期文章页 76.9%,高于首页 51.3%。
- 按模板抽样。 同一模板的页面结果接近,跨模板差异明显。
- 缺失集中在少数页面。 95 张里大部分来自 4 个站点。
- 空 alt 与缺失 alt 分开。 文章页空 alt 只有 24 张,缺失 95 张,处理方式不同。
- 文案质量另测。 有 alt 不等于描述准确。
局限
- 零请求复用缓存:页面停留在 2026-11-02 抓取时。
- 只数属性:不判断 alt 是否准确、是否重复或堆关键词。
- 不执行 JS:懒加载与轮播图看不到。
- 页面类型混合:文章页样本里可能包含列表页,图片构成不同。
- 41 页 pilot:不外推行业。
数据与复算
匿名数据:equipment-article-image-alt-2026.csv(41 行:sample_id、URL、图片数、非空 alt、空 alt、缺失 alt、占比)。仓库内为 docs/research/2026-11-article-image-alt.csv。
解析:scripts/img_alt_probe.py;单元测试 scripts/test_img_alt_probe.py(10 项,无网络)。运行:
python -m unittest scripts.test_img_alt_probe
配套:首页图片 alt 覆盖率 pilot(978 张)、文章页更新日期扩样、联系页留言表单 pilot、首页图片属性 pilot(宽高 1.7%、lazy 0)。
数据来源与口径
- 页面缓存:第 29 期 41 个 200 页面,原始 HTML 仅存站外。
- alt 三态:非空 / 空 / 缺失;只读静态 HTML,不执行 JS。
- 扫描时间:2026-11-03,零网络请求。