Skip to main content

Sobre esta regra de acessibilidade

O elemento <meta name="viewport"> controla como uma página é apresentada em dispositivos móveis, incluindo as suas dimensões e escala. Dois parâmetros dentro do seu atributo content podem restringir o zoom:

  • user-scalable="no" — Desativa completamente o zoom por toque e outras escalas iniciadas pelo utilizador na página.
  • maximum-scale definido abaixo de 2 — Limita até onde um utilizador pode ampliar, impedindo-o de alcançar o nível de zoom de 200% exigido pelas WCAG.

Ambas estas restrições criam barreiras sérias para pessoas com baixa visão. Muitos utilizadores dependem do zoom para ampliar texto e elementos de interface para um tamanho legível. Quando o zoom está desativado ou limitado, estes utilizadores podem ser incapazes de usar a página. As ferramentas de ampliação de ecrã e o zoom nativo do navegador são estratégias assistivas fundamentais, e restringi-las compromete a acessibilidade de toda a página.

Esta regra relaciona-se com o WCAG 2.0/2.1/2.2 Critério de Sucesso 1.4.4: Redimensionar texto (Nível AA), que exige que o texto possa ser redimensionado até 200% sem perda de conteúdo ou funcionalidade. Ao bloquear o zoom abaixo desse limite, você falha este critério. Este critério de sucesso existe porque a capacidade de ampliar conteúdo é uma das funcionalidades de acessibilidade mais básicas e amplamente utilizadas em todas as plataformas.

Como corrigir

  1. Remova user-scalable="no" do atributo content do seu elemento <meta name="viewport">. Se presente, elimine-o ou defina-o como user-scalable="yes".
  2. Remova ou aumente maximum-scale. Se usar maximum-scale, defina-o para pelo menos 2 (que permite zoom de 200%). Melhor ainda, remova-o inteiramente para permitir zoom irrestrito.
  3. Teste em dispositivos móveis após fazer alterações. Verifique se o zoom por toque funciona e se o conteúdo permanece utilizável quando ampliado para 200%.

Exemplos

Incorreto: O zoom está completamente desativado

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

O parâmetro user-scalable=no impede os utilizadores de fazer zoom.

Incorreto: A escala máxima é demasiado restritiva

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.5">

Definir maximum-scale para 1.5 limita o zoom a 150%, que está abaixo do limite necessário de 200%.

Correto: O zoom está totalmente permitido

<meta name="viewport" content="width=device-width, initial-scale=1">

Ao omitir tanto user-scalable como maximum-scale, o comportamento de zoom predefinido do navegador é preservado e os utilizadores podem fazer zoom livremente.

Correto: Permitir explicitamente zoom com uma escala máxima suficiente

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes, maximum-scale=5">

Aqui, user-scalable=yes permite explicitamente o zoom, e maximum-scale=5 permite até 500% de zoom, bem acima do mínimo de 200%.

Correto: Definir maximum-scale para exatamente 2

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">

Um maximum-scale de 2 permite zoom de 200%, cumprindo o requisito mínimo das WCAG. Permitir valores mais altos é ainda melhor, mas 2 é o valor mínimo aceitável.

O que esta regra verifica

A regra axe meta-viewport inspeciona o elemento <meta name="viewport"> no <head> do seu documento e verifica duas coisas:

  1. O parâmetro user-scalable não está definido como no (ou 0).
  2. O parâmetro maximum-scale, se presente, não é inferior a 2.

Se qualquer uma destas condições for violada, a regra sinaliza a página como tendo uma restrição de zoom que pode impedir utilizadores com baixa visão de aceder ao conteúdo.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Detecte problemas de acessibilidade automaticamente

O Rocket Validator examina milhares de páginas com Axe Core e o W3C Validator, encontrando problemas de acessibilidade em todo o seu site.

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.