Paste HTML and inspect the viewport
Paste page HTML below; the tool checks whether a viewport exists, plus width=device-width, initial-scale, user-scalable and maximum-scale in the browser. No network, no upload; results can be exported as CSV.
Not checked yet.
Running built-in self-test…
Rules
| Measure | Rule | Boundary |
|---|---|---|
| Viewport count | Parse every meta name=viewport | Zero is missing, more than one is duplicate |
| width | Whether it is device-width | A fixed number (e.g. 1024) is an issue |
| initial-scale | Whether it exists | Does not require exactly 1 |
| Zoom blocked | user-scalable=no/0 or maximum-scale≤1 | Same rule as the mobile viewport pilot |
| viewport-fit | Whether it is cover | Recorded, not judged |
| Not judged | CSS layout, horizontal overflow, font size, real-device zoom | Meta string only |
The parser lives in js/viewport-check.js, with 14 Node assertions in scripts/test_viewport_check.js; the page has three built-in tests.
Why check the viewport first
In the site's mobile viewport pilot, 54 of 61 pages disable zoom and four homepages have no viewport; a wrong declaration propagates into font-size, tap-target and contrast acceptance. See also the 390px font-size audit and tap-target audit.
Privacy
Parsing happens on this page with no network request; the exported CSV contains declaration keys, values and issues only. Opening the page with #sample fills the sample.
Frequently asked questions
Does the tool upload the HTML?
No. Parsing runs entirely in the browser with no network request; nothing is stored or sent.
What counts as a good viewport?
A common baseline is width=device-width, initial-scale=1 without user-scalable=no/0 or maximum-scale=1 locking zoom; whether to add viewport-fit=cover depends on the notch design.
Why does maximum-scale=1 count as blocking zoom?
It caps zoom at 1x, so pinch-to-zoom cannot enlarge the text; the accessibility effect is the same as user-scalable=no.
What happens without a viewport?
A phone usually renders at desktop width and scales the page down, shrinking body text; four homepages in the mobile viewport pilot had none.
Does it handle multiple viewports or different attribute order?
Yes. It parses every meta tag, reports duplicates, and accepts single or double quotes, mixed case and either attribute order.
Can it replace a real device?
No. It reads the meta string only and does not judge CSS layout, horizontal overflow, font sizes or real-device zoom.