sfw/fix
meta-viewport medium

Viewport meta tag disables zoom (user-scalable=no)

A viewport meta tag blocks pinch-to-zoom, locking out low-vision users who need to magnify text.

What you see

[meta-viewport] [user-scalable="no"] is used in the <meta name="viewport"> element or the [maximum-scale] attribute is less than 5
Failing element: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

What’s actually happening

Lighthouse drops your accessibility score and axe flags meta-viewport. On a phone, pinch-to-zoom does nothing on the page — it snaps back to 100%. Anyone who relies on magnifying small text can't, which is exactly the WCAG 1.4.4 (Resize Text) failure the rule is catching.

Common causes

  • A copy-pasted boilerplate viewport tag that still carries user-scalable=no, very common in older starter templates and CMS themes
  • maximum-scale=1 (or any value under 5) left in to 'stop the layout from breaking' when users zoom
  • A developer disabled zoom to suppress the iOS 300ms tap delay or the auto-zoom on focusing a <16px input — both have better fixes now
  • A plugin, builder, or AMP-style template injecting its own locked viewport tag that overrides yours
  • Trying to fake a 'native app' feel by preventing all scaling

How to fix it

  1. Strip the scaling restrictions from the tagChange it to exactly <meta name="viewport" content="width=device-width, initial-scale=1">. Delete user-scalable=no and any maximum-scale. That single edit clears the audit and restores pinch-zoom on every mobile browser.
  2. Find every copy of the taggrep -RIn 'user-scalable\|maximum-scale' your templates/partials. Frameworks often set the viewport in a layout file, an SEO/head plugin, and a theme option simultaneously — the last one wins, so fix all of them or your edit gets overwritten.
  3. Solve the underlying reason zoom was disabledIf it was the iOS input auto-zoom, give form fields font-size: 16px (or larger) so Safari stops zooming on focus. If it was the legacy tap delay, touch-action: manipulation or a modern viewport already handles it — you don't need to kill zoom.
  4. Verify on a real device or emulatorReload on an actual phone or Chrome DevTools device mode and confirm pinch-to-zoom works and reaches at least 500% (5x). Re-run Lighthouse to confirm meta-viewport is gone from the report.

Stop it recurring

Keep one canonical viewport tag (width=device-width, initial-scale=1) in your base layout and add a lint/CI check that fails on user-scalable=no.

Related errors