As telas pequenas dos smartphones ensinaram algo simples para os usuários: se algo estiver pequeno, apenas arraste os dedos (pinch) e dê zoom! É um gesto básico de dispositivos touch e conhecido por todo mundo. Mas, mesmo assim, muitos sites bloqueiam o zoom nas páginas. Não faça isso.

Se você trabalha com web mobile, conhece a meta tag viewport e sua importância. Com ela, você consegue bloquear o zoom do usuário de algumas formas:

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

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

Mas, na esmagadora maioria dos casos, você não deveria fazer isso. Exceções talvez sejam webapps com uma ideia de canvas fullscreen onde os gestos são tratados pela aplicação (mapas e jogos talvez). Em sites web normais? Jamais.

Há um mito que circula por aí de que limitar o zoom faz com que nossa página fique mais parecida com uma App. Primeiro: site não é App, então não tente parecer uma. Segundo: se algumas Apps têm essa limitação de não deixar dar zoom, porque copiar essa deficiência pra sua página?

Mas meu iPhone dava zoom quando deito o aparelho!

Eu acho que o grande culpado da proliferação de páginas com zoom desabilitado é um famoso bug no iOS até a versão 5.x que faz com que a página dê um zoom quando você gira o aparelho em modo paisagem. Se você desabilita o zoom, o bug não acontece. Mas é um jeito covarde de resolver o problema.

O iOS 6 resolve esse bug do Mobile Safari. E como a maioria dos usuários Apple atualiza rapidamente, isso quer dizer que esse bug deve ser coisa do passado em breve.

Mas mesmo que o bug do iOS seja um problema pra você e seus usuários com iOS antes do 6, pense em alguma opção:

Controle na mão do usuário!

Desabilitar o zoom das páginas é tão irritante, mas tão irritante, que os browsers mobile modernos estão deixando esse controle na mão do usuário! O browser do Android 4 e o Chrome Mobile, por exemplo, têm essa opção nas configurações:

Screenshot com configurações de zoom do Android 4 Screenshot com configurações de zoom do Chrome Mobile

O Mobile Safari do iOS infelizmente ainda não tem uma opcão dessas. Também não consegui achar no Opera e no Firefox uma opção semelhante. Uma gambiarra útil pra usuários dessas plataformas, é usar um bookmarklet que reescreva a tag viewport dos sites pra habilitar o zoom sempre:

javascript:document.querySelector('meta[name=viewport]').setAttribute('content','width=device-width,initial-scale=1,maximum-scale=10,user-zoom=yes');

Atualização Dez/2012: coloquei informações sobre o iOS 6 e o bug que não existe mais.