No debe desactivarse el zoom ni la ampliación

Muchos clientes con baja visión amplían la pantalla del móvil para leer los precios, los detalles del producto y los campos del proceso de pago. Una configuración del viewport que bloquea el zoom (user-scalable=no o maximum-scale=1) deja ilegible el texto pequeño y puede impedirles completar una compra.

ID de la regla
meta-viewport
Origen
axe-core 4.13.0
Impacto
Moderado
Nivel de corrección
AUTO
en Shopify, Shopware, WooCommerce y Magento
Estado
se ejecuta

Qué hace la comprobación

Comprueba que <meta name="viewport"> no desactiva la ampliación del texto ni el zoom

La regla lee el atributo content de cada elemento <meta name="viewport"> del documento de nivel superior. Las etiquetas viewport dentro de iframes no se comprueban, y una etiqueta con un content ausente o vacío supera la prueba.

axe-core divide el contenido por las comas y los puntos y comas en pares key=value, ignora las mayúsculas y minúsculas y los espacios alrededor de las claves y los valores, y da la etiqueta por fallida en tres casos:

  • user-scalable=no
  • un valor numérico de user-scalable mayor que -1 y menor que 1, como user-scalable=0
  • un maximum-scale inferior a 2, donde maximum-scale=yes se lee como 1 y un valor negativo se ignora

Otras claves, como width, initial-scale y minimum-scale, no intervienen. El mensaje de fallo nombra el ajuste que bloquea el zoom.

La regla solo lee el marcado y no amplía la página, así que no puede saber si el texto sigue siendo legible al 200 %. El escáner de Validiscan agrupa los hallazgos por regla, selector y estructura del HTML, de modo que la misma etiqueta viewport en todas las páginas de un tema se convierte en un solo hallazgo.

Cómo corregirlo

Elimine user-scalable=no y cualquier valor de maximum-scale inferior a 2 de la etiqueta <meta name="viewport"> en la plantilla base; basta con content="width=device-width, initial-scale=1".

Criterios de conformidad de las WCAG

Apartados de la norma EN 301 549

El apartado de la norma EN 301 549 que corresponde a cada criterio, por versión de la norma
Criterio de las WCAG Versión 3.2.1 Versión 4.1.1
1.4.4 9.1.4.4 9.1.4.4

Dónde lo corrige una receta

Shopify: receta meta-viewport-zoom

Mostrar el antes y el después (1)
Antes y después Datos de ejemplo

layout/checkout.liquid Cambios en layout/checkout.liquid (líneas añadidas: 1; eliminadas: 1)

Cambios en layout/checkout.liquid (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
6 6 <html class="no-js">
7 7 <head>
8 8 <meta charset="utf-8">
9 Eliminada <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
9 Añadida <meta name="viewport" content="width=device-width,initial-scale=1">
10 10 <meta name="robots" content="noindex">
11 11 <link rel="canonical" href="{{ canonical_url }}">
12 12 <!-- Checkout assets: //cdn.shopify.com/s/files/1/0712/3456/7890/t/12/assets/ (served locally by the fixture server) -->

layout/theme.focused.liquid Cambios en layout/theme.focused.liquid (líneas añadidas: 1; eliminadas: 1)

Cambios en layout/theme.focused.liquid (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
10 10 <head>
11 11 <meta charset="utf-8">
12 12 <meta http-equiv="X-UA-Compatible" content="IE=edge">
13 Eliminada <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
13 Añadida <meta name="viewport" content="width=device-width,initial-scale=1">
14 14 <title></title>
15 15 <link rel="canonical" href="{{ canonical_url }}">
16 16 <!-- Theme assets: //cdn.shopify.com/s/files/1/0712/3456/7890/t/12/assets/ (served locally by the fixture server) -->

layout/theme.liquid Cambios en layout/theme.liquid (líneas añadidas: 1; eliminadas: 1)

Cambios en layout/theme.liquid (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
11 11 <head>
12 12 <meta charset="utf-8">
13 13 <meta http-equiv="X-UA-Compatible" content="IE=edge">
14 Eliminada <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
14 Añadida <meta name="viewport" content="width=device-width,initial-scale=1">
15 15 <meta name="theme-color" content="{{ settings.color_background }}">
16 16 <link rel="canonical" href="{{ canonical_url }}">
17 17 {%- comment -%} On the live store theme assets load from //cdn.shopify.com/s/files/1/0712/3456/7890/t/12/assets/; the fixture serves them from {{ routes.root_url }}assets/. {%- endcomment %}

Shopware: receta meta-viewport-zoom

Mostrar el antes y el después (1)
removes the zoom lock from the fixture theme and the rule stops firing Datos de ejemplo

Resources/views/storefront/layout/meta.html.twig Cambios en Resources/views/storefront/layout/meta.html.twig (líneas añadidas: 1; eliminadas: 1)

Cambios en Resources/views/storefront/layout/meta.html.twig (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
6 6
7 7 {% block layout_head_meta_tags_viewport %}
8 8 {# Added by the merchant's agency to stop "zoom jumps" on iOS. #}
9 Eliminada <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9 Añadida <meta name="viewport" content="width=device-width, initial-scale=1">
10 10 {% endblock %}
11 11
12 12 {% block layout_head_meta_tags_general %}

WooCommerce: receta meta-viewport-zoom

Mostrar el antes y el después (1)
re-enables zoom in every header template of the fixture theme Datos de ejemplo

header-checkout.php Cambios en header-checkout.php (líneas añadidas: 1; eliminadas: 1)

Cambios en header-checkout.php (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
12 12 <head>
13 13 <meta charset="<?php bloginfo( 'charset' ); ?>">
14 14 <?php // VALIDISCAN-SEED meta-viewport: zooming is disabled. ?>
15 Eliminada <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
15 Añadida <meta name="viewport" content="width=device-width, initial-scale=1">
16 16 <?php wp_head(); ?>
17 17 </head>
18 18

header.php Cambios en header.php (líneas añadidas: 1; eliminadas: 1)

Cambios en header.php (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
14 14 <head>
15 15 <meta charset="<?php bloginfo( 'charset' ); ?>">
16 16 <?php // VALIDISCAN-SEED meta-viewport: zooming is disabled ("stops iOS zooming into inputs"). ?>
17 Eliminada <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
17 Añadida <meta name="viewport" content="width=device-width, initial-scale=1">
18 18 <?php wp_head(); ?>
19 19 </head>
20 20

Magento: receta meta-viewport-zoom

Mostrar el antes y el después (1)
removes the zoom block from default_head_blocks.xml and validates Datos de ejemplo

app/design/frontend/Validiscan/fixture/Magento_Theme/layout/default_head_blocks.xml Cambios en app/design/frontend/Validiscan/fixture/Magento_Theme/layout/default_head_blocks.xml (líneas añadidas: 1; eliminadas: 1)

Cambios en app/design/frontend/Validiscan/fixture/Magento_Theme/layout/default_head_blocks.xml (líneas añadidas: 1; eliminadas: 1)
Línea anterior Línea nueva Cambio Código
3 3 <head>
4 4 <!-- VALIDISCAN-SEEDED meta-viewport: pinch zoom disabled (Luma 2.0-2.3 default kept by the theme).
5 5 Fixed variant: content="width=device-width, initial-scale=1". -->
6 Eliminada <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
6 Añadida <meta name="viewport" content="width=device-width, initial-scale=1"/>
7 7 <meta name="format-detection" content="telephone=no"/>
8 8 <css src="css/styles-m.css"/>
9 9 <css src="css/styles-l.css" media="screen and (min-width: 768px)"/>

Empiece con una revisión gratuita de su tienda.

Envíe la dirección de su tienda. Validiscan la escanea y le responde con cada fallo que el escaneo pueda demostrar, con la página y el código.

Solicitar revisión gratuita

O escriba a info@validiscan.com.

Qué cubre la revisión gratuita y qué deja fuera
Usted envía
la dirección de su tienda
Páginas escaneadas
hasta 15
Usted recibe
todos los fallos que el escaneo puede demostrar, con la página y el código
En su tienda
solo páginas públicas; sin inicio de sesión, nada comprado, ningún formulario enviado
Lo que no es
una auditoría completa

Escribir a Validiscan

Para una revisión gratuita, indique la dirección web de su tienda y su plataforma.

Validiscan utiliza lo que usted envía para responderle. Política de privacidad