Accessibility

a11y/zoom-not-blocked

The viewport never disables zoom (no user-scalable=no, no maximum-scale below 2).

criticalstaticWCAG 1.4.4 · AAfe-responsive

Why

People with low vision pinch to zoom. user-scalable=no or a small maximum-scale stops them on many mobile browsers, and text that cannot reach 200% fails Resize Text.

Fix

Use <meta name="viewport" content="width=device-width, initial-scale=1"> and nothing that limits scaling. In Next.js remove userScalable: false and maximumScale from the exported viewport. Fix layout problems that zoom reveals instead of blocking zoom.

Examples

<!-- bad -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!-- good -->
<meta name="viewport" content="width=device-width, initial-scale=1">

Sources

Facts

Id
a11y/zoom-not-blocked
Severity
critical
Check
static checked in the source by audit
Applies to
html astro jsx svelte vue
WCAG 2.2
1.4.4, level AA
Same problem in
axe-core meta-viewport
Taught by the skill
fe-responsive Responsive design
Since version
0.1.0

Rule file on GitHub

Read it in the terminal

npx github:dawidolko/frontend-skills explain a11y/zoom-not-blocked