27 个首页 1,690 张图:图片 alt 缺的少,空的多

图片 alt 的真问题不是没写,是写了个空值。2026-08-21 抓的 27 个首页共 1,690 张图,106 张连 alt 属性都没有,608 张写的是空值。

排名与引用4 分钟读完1098 次阅读
27 个首页 1,690 张图:图片 alt 缺的少,空的多

实测 · 2026-08-21 · 27 个首页 · 1,690 个 img 标签 · 单次抓取

样本与口径:2026-08-15 起一直在用的那 30 个站,2026-08-21 每站首页抓一次,浏览器 UA,出口在日本大阪。把服务端交付的 HTML 里每个 <img> 都数出来,alt 属性分三档记:有文本、空值、没有这个属性。

图片 alt 的真问题不是漏写。1,690 个 img 标签里,只有 106 个连 alt 属性都没有,却有 608 个写的是空值。空值是主动填的,漏写是失手,前者是后者的近六倍。

怎么测的

每站一次 HTTP 请求,不渲染、不重试。下面所有数字都来自服务器当场交付的那份 HTML。

规则跑数前定死
纳入状态 200 · 响应体 ≥ 10,000 字节 · 含 <body
计数原始 HTML 里的每个 <img>
有文本alt 存在且值非空
空值alt 存在,值是空的
缺失标签上没有 alt 属性

30 个站里有 3 个没过纳入规则,全程剔除:stackoverflow.commedium.com 回 403,www.reddit.com 回 200 但只有 8,393 字节的空壳。剩下 27 个首页,每站图片数中位数 57。

三行看完整个面板

94% 的图声明了 alt 属性,真往里填字的不到六成。

属性状态张数占比
alt 有文本97657.8%
alt=""60836.0%
没有 alt 属性1066.3%

有文本的那 976 个也写得很短:中位数 26 个字符,最短 3 个,最长 316 个。26 个字符大概就是「产品后台截图」这么长,是个标签,不是描述。

图片 alt 缺失集中在 7 个站上

27 个站里有 20 个做到了每张图都带这个属性。剩下 7 个多数是内容站,而且一个站就吃掉了大半。

站点图片数无 alt
www.bbc.com12864
www.wired.com5428
www.nytimes.com646
substack.com83
news.ycombinator.com33
techcrunch.com751
www.wikipedia.org11

BBC 那 64 张正好是它首页图片的一半。Hacker News 和 Wikipedia 门户看着是 100%,其实分母分别只有 3 和 1 —— 分母这么小的数只能这么读。

空值才是这批数据里的大头

27 个站里有 8 个,过半的图是特意不给文字的。这不是坏页面。是这些页面认定自己的图不承载信息。

站点图片数alt 空值占比
www.notion.com585290%
discord.com17115088%
stripe.com302687%
www.shopify.com524485%
github.com241771%
webflow.com16811166%
linear.app321856%
techcrunch.com754053%

另外 8 个站一个空值都没有,包括 166 张图的 framer 和 128 张图的 BBC。同一批站、同一天,两套完全相反的写法。

标准原文怎么说空值

装饰性的图写空值是对的,把属性整个删掉才是错的。W3C 无障碍倡议(WAI)的装饰性图片教程,2026-08-21 读到的原文:「a null (empty) alt text should be provided (alt="") so that they can be ignored by assistive technologies, such as screen readers.」同一页也把另一条路堵死了:「Leaving out the alt attribute is also not an option because when it is not provided, some screen readers will announce the file name of the image instead.」

所以那 608 个从标记规范上讲没写错。写没写错和后果是两件事:AI 爬虫读原始 HTML,从这 608 张图里一个字也拿不到。整个面板只有 22 张图额外带了 aria-hidden="true",也就是说空值往往是唯一发出去的信号。

空值是决定,缺失是事故。这批首页里决定的数量是事故的六倍。

这次抓取回答不了什么

我们分不清某个 alt="" 到底该不该空。要判断得看图,我们看的是标记。导航栏里重复出现的 logo 该空,产品截图不该空,这两种在数据里是同一行。

前端渲染出来的图和 CSS 背景图这套方法完全看不见,这是本次口径最硬的一处局限。挂载在 JavaScript 之后的图库,在我们这里的张数就比访客看到的少 —— 同一件事在 AI 爬虫从前端渲染的网站上拿到了什么 里量过一次。

另外,没有测过任何引擎拿 alt 值做什么。这里没有任何数据支持「alt 写得长就更容易被引用」。本篇只回答一件事:一张图给文档贡献了多少文字 —— 中位数 26 个字符,而 42% 的情况下是零。

回自己站上查什么

三遍,十分钟能跑完。做出海站的话,第一遍最好从主题模板查起,批量空值多半是模板一次性给的。

  • 数一遍自己的 <img> 总数和空值数,再问一句:这个比例和「我有多少张图真的只是装饰」对得上吗。
  • 承载信息的图一律给真值 —— 图表、截图、产品图、带图注的照片。
  • 别为了省事把属性删掉。空值是规范支持的「跳过我」,没有属性不是。

同一批站里还有 6 个首页连一级标题都没有,量在 没有 h1 的那几个首页;这些文字本身怎么写才值得被摘走,在 内容怎么写才会被 AI 引用。把这套检查挂到每次发布上,正是 QueryWin 在建的东西。

常见问题

你们是怎么测的?

2026-08-21 每站首页请求一次,解析交付 HTML 里的每个 <img>,把 alt 分成有文本、空值、无属性三档。不渲染,不重试。

图片 alt 是什么?

它是写在 <img> 标签上的替代文本,图加载不出来时显示它,读屏软件念它,爬虫也只能从它这里读到这张图的信息。

alt 留空还是干脆不写?

装饰性的图留空。W3C 教程明写 alt="" 是让图被忽略的正确写法,同时否掉了「不写这个属性」这条路。

alt 写多长合适?

这批数据里中位数是 26 个字符,最长 316 个。短是常态。把图里是什么写清楚就停,别塞关键词。

27 个首页 1,690 张图:图片 alt 缺的少,空的多