直接答案:61 个缓存页面中,57 个声明了 viewport,4 个首页完全没有;54 个页面通过 user-scalable=no 或 user-scalable=0 禁止缩放(88.5%)。分页面类型看:首页 18/25、文章页 36/36 全部禁止缩放。只有 3 个首页允许缩放。

另外,57 个 viewport 中 56 个写了 width=device-width;59/61 使用 HTML5 doctype,14 个页面缺少 html lang。

61
缓存页面
57
有 viewport
54
禁止缩放
36/36
文章页禁止缩放
4
首页无 viewport
3
首页允许缩放

方法:复用两批缓存,零请求

样本由两部分组成:第 4 期 25 个首页缓存(2026-10-31 至 11-01),以及第 45 期同批 10 个站点的 36 个文章页(2026-11-03 08:40–08:41 抓取,5 个 JS 外壳页已排除)。两批 HTML 都只读不抓,零网络请求。

项判定边界
viewport存在 name=viewport 的 meta不判断实际渲染宽度
width=device-widthcontent 含该字符串大小写与空格已归一
禁止缩放含 user-scalable=no 或 user-scalable=0只记录声明,不测浏览器行为
HTML5 doctype精确匹配 <!doctype html>XHTML doctype 不计
langhtml 标签的 lang 属性不判断语言值是否正确

两批缓存抓取时间不同,不能据此判断站点在这几天内是否改版;页面类型之间的差异也只描述本批样本。

结果:4 个首页没有 viewport

页面类型页面数有 viewport无 viewport
首页25214(E04、E13、E20、E29)
文章页36360
合计61574

缺少 viewport 的页面在手机上通常按桌面宽度渲染,再整体缩小,正文会变得很小。这 4 个页面里有 2 个同时不是 HTML5 doctype。

缩放:54 个页面禁止,文章页全部命中

声明页面数占 61
user-scalable=no4980.3%
user-scalable=058.2%
允许缩放34.9%
无 viewport46.6%
页面类型禁止缩放页面数占比
首页182572.0%
文章页3636100%

文章页 36/36 全部禁止缩放,说明这是文章模板的统一声明,而不是个别页面遗漏。允许缩放的 3 个首页都只写了 width=device-width, initial-scale=1。

width、doctype 与 lang

项页面数说明
viewport 含 width=device-width56/571 个只写 initial-scale 与 min/max-scale
viewport 含 initial-scale57/57—
HTML5 doctype59/612 个首页仍用 XHTML doctype
html 有 lang47/6114 个缺失(首页 9、文章页 5)

只写 initial-scale、不写 width=device-width 的那 1 个页面(E30),把最小与最大缩放都锁在 1,等于固定了布局宽度。它不是“没有 viewport”,但同样不利于小屏阅读。

对验收的启示

  1. 先查 viewport 是否存在。 4 个首页没有声明,手机会按桌面宽度缩放。
  2. 把“禁止缩放”当作单独问题。 54/61 页声明 user-scalable=no 或 0,文章页全部命中;低视力用户无法放大正文。
  3. width=device-width 与 initial-scale 要成对。 56 个页面两者都有,1 个只锁缩放没有宽度。
  4. 模板级修复优先。 文章页 36/36 一致,说明改一次模板即可覆盖整站文章。
  5. doctype 与 lang 一起清。 2 个 XHTML doctype、14 个缺 lang,都属于模板头部问题。

局限

  • 零请求复用:首页缓存 2026-10-31 至 11-01、文章页 2026-11-03 08:40–08:41;之后改动未反映。
  • 只读声明:不测真实渲染宽度、字体缩放或浏览器是否忽略该声明;不同浏览器对 user-scalable 的处理不一致。
  • 不是无障碍合规结论:缩放限制是可访问性风险信号,不等同于 WCAG 违规判定。
  • 样本结构:61 页来自 25 个首页与 10 个站点的 36 篇文章页,不是 61 个独立站点;两批时间不同。
  • pilot:不外推行业。

数据与复算

匿名数据:equipment-viewport-2026.csv(61 行 × 11 列:页面类型、sample_id、页序、viewport、width、initial-scale、两种缩放声明、是否禁止缩放、HTML5 doctype、lang)。仓库内为 docs/research/2026-11-viewport.csv。

解析:scripts/viewport_probe.py;单元测试 scripts/test_viewport_probe.py(8 项,无网络)。运行:

python -m unittest scripts.test_viewport_probe

配套:文章页 Head 元数据 pilot、首页缓存与压缩 pilot、文章页链接结构 pilot。

数据来源与口径

  1. 首页缓存:第 4 期 25 个首页(2026-10-31 至 11-01)。
  2. 文章页缓存:第 45 期 10 站 36 页(2026-11-03 08:40–08:41),5 个 JS 外壳页排除。
  3. 判定:viewport meta、缩放关键字、doctype 与 html lang 均为静态字符串匹配。
  4. 扫描时间:2026-11-03,零网络请求。
关于作者

凌壹信息Official(交付团队),负责企业网站、品牌与智能制造项目的需求梳理、方案与验收协作。本文只统计缓存 HTML 中的 viewport 与文档声明,不测试真实渲染、缩放行为或无障碍合规,也不构成对任何站点移动体验的最终判断;61 页 pilot,不外推行业。

先看声明,再谈体验

viewport、缩放限制、doctype 与 lang 都是模板头部声明;文章页全部禁止缩放,说明可以一次修完。

预约内容验收方案