Disabling zoom affects over 2.2 billion people globally with vision impairments who rely on screen magnification to read content.
Your page uses user-scalable="no" in the viewport meta tag or sets maximum-scale to a value less than 5. This prevents users with low vision from zooming in to read text, effectively locking them out of your content.
<meta name="viewport"> in the <head>user-scalable=no or maximum-scale below 5You can also run this in the Console:
document.querySelector('meta[name="viewport"]')?.content
The cleanest fix removes all scaling restrictions:
<!-- Before -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1">
<!-- After -->
<meta name="viewport" content="width=device-width, initial-scale=1">
If you must constrain zooming, allow at least 5x magnification:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
nuxt.config.ts:export default defineNuxtConfig({
app: {
head: {
meta: [
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
]
}
}
})
For React with Next.js, update pages/_document.js or use the Head component:
import Head from 'next/head'
export default function Page() {
return (
<Head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</Head>
)
}
touch-action can prevent unintended zoom on specific elements without breaking accessibility.Meta viewport issues often appear alongside:
While fixing viewport issues on one page is straightforward, these problems often appear in templates affecting hundreds of pages. Unlighthouse scans your entire site with Google Lighthouse, finding every page with accessibility issues so you can fix the root cause once rather than playing whack-a-mole.