Direct answer: Of 61 cached pages, 57 declare a viewport and four homepages have none; 54 disable zoom through user-scalable=no or user-scalable=0 (88.5%). By page type: 18 of 25 homepages and all 36 article pages. Only three homepages allow zoom.

Of the 57 viewport declarations, 56 include width=device-width; 59 of 61 use an HTML5 doctype, and 14 pages lack an html lang attribute.

61
cached pages
57
with viewport
54
zoom disabled
36/36
articles disable zoom
4
homepages without viewport
3
homepages allow zoom

Method: two caches, zero requests

The sample combines 25 homepage caches from study 4 (2026-10-31 to 11-01) with 36 article pages from the same 10 sites in study 45 (fetched 2026-11-03 08:40–08:41; five JavaScript shells excluded). Both sets are read offline with zero network requests.

ItemRuleBoundary
viewportA meta with name=viewport existsRendered width not tested
width=device-widthContent contains that stringCase and spaces normalised
Zoom disabledContains user-scalable=no or =0Declaration only; browser behaviour not tested
HTML5 doctypeExact <!doctype html>XHTML doctypes do not count
langlang attribute on htmlValue correctness not judged

The two caches were fetched on different days, so the study cannot tell whether a site changed in between; differences between page types describe this sample only.

Result: four homepages have no viewport

Page typePagesWith viewportWithout
Homepage25214 (E04, E13, E20, E29)
Article36360
Total61574

Without a viewport, a phone usually renders at desktop width and scales the page down, shrinking body text. Two of these four pages also lack an HTML5 doctype.

Zoom: 54 pages disabled, every article

DeclarationPagesShare of 61
user-scalable=no4980.3%
user-scalable=058.2%
Zoom allowed34.9%
No viewport46.6%
Page typeZoom disabledPagesShare
Homepage182572.0%
Article3636100%

All 36 article pages disable zoom, which points to a shared template declaration rather than individual omissions. The three homepages that allow zoom only declare width=device-width, initial-scale=1.

width, doctype and lang

ItemPagesNote
viewport with width=device-width56/57One sets only initial and min/max scale
viewport with initial-scale57/57—
HTML5 doctype59/61Two homepages still use XHTML
html lang present47/6114 missing (9 homepages, 5 articles)

E30 is the one viewport without width=device-width: it locks minimum, maximum and initial scale at 1, fixing the layout width. It is not “missing viewport”, but it is still unfriendly to small screens.

What this means for acceptance

  1. Check that a viewport exists. Four homepages have none and will render at desktop width on phones.
  2. Treat zoom blocking as its own issue. 54 of 61 disable zoom and every article does; low-vision readers cannot enlarge the text.
  3. Pair width=device-width with initial-scale. 56 pages have both; one locks scale without a width.
  4. Fix the template first. All 36 articles share the same declaration, so one template change covers the section.
  5. Clean doctype and lang together. Two XHTML doctypes and 14 missing lang values are head-template issues.

Limits

  • Cached, zero-request: homepages from 2026-10-31 to 11-01 and articles from 2026-11-03 08:40–08:41; later changes are not reflected.
  • Declarations only: real layout width, text scaling and whether a browser ignores the declaration are not tested; browsers differ on user-scalable.
  • Not an accessibility verdict: a zoom restriction is a risk signal, not a WCAG violation ruling.
  • Sample shape: 61 pages from 25 homepages and 36 articles on 10 sites, not 61 independent sites; the two caches differ in date.
  • Pilot: no industry claim.

Data and reproduction

Anonymised data: equipment-viewport-2026.csv (61 rows × 11 columns: page type, sample_id, page, viewport, width, initial-scale, two zoom declarations, zoom-disabled flag, HTML5 doctype, lang). The repository keeps docs/research/2026-11-viewport.csv.

Parser: scripts/viewport_probe.py; unit tests: scripts/test_viewport_probe.py (8 tests, no network). Run:

python -m unittest scripts.test_viewport_probe

Related: the article head metadata pilot, the homepage cache and compression pilot, and the article link structure pilot.

Sources and definitions

  1. Homepage cache: 25 homepages from study 4 (2026-10-31 to 11-01).
  2. Article cache: 36 pages from 10 sites in study 45 (2026-11-03 08:40–08:41), five JS shells excluded.
  3. Rules: viewport meta, zoom keywords, doctype and html lang, all static string matching.
  4. Scan: 2026-11-03, zero network requests.
About the author

Lingyi Information Official (delivery team) works on requirements, proposals and acceptance for corporate websites, brand and smart-manufacturing projects. This article counts viewport and document declarations in cached HTML only; it does not test rendering, zoom behaviour or accessibility compliance and is not a final judgement of any site's mobile experience; the 61-page sample is a pilot.

Read the declarations before judging the experience

Viewport, zoom, doctype and lang are head-template declarations; every article blocks zoom, so one fix covers the section.

Request a recheck plan