web design uiNovember 5, 20268 min read

Tamanho da área de toque: por que 24px é pouco e a regra de 44pt e 48dp

Um ícone de 24px está ótimo, uma área de toque de 24px não. A Apple pede 44 pt, o Android 48 dp, e os 24 px do WCAG são apenas um piso. Quatro correções, refeitas lado a lado, e o código para passar ao seu dev.

By Boone
XLinkedIn
Tap Target Size: Why 24px Is Too Small and the 44pt and 48dp Rule to Use

Um ícone de 24 px está ótimo. Uma área de toque de 24 px, não. As pessoas usam a ponta do dedo, muitas vezes com uma mão só e em movimento, e um alvo tão pequeno é errado ou acerta o vizinho. Desenhe o ícone pequeno e a área de toque grande, e siga os números abaixo.

Por que 24 px é o número que todo mundo desenha

Ícones são desenhados em 24. O Material Symbols, por exemplo, vem com 24 px como tamanho preferido. Então o designer entrega um ícone de 24 px, o dev faz o botão do tamanho do ícone, e a área de toque acaba do tamanho de um selo postal.

A segunda fonte do número é a acessibilidade. O WCAG 2.2 pede alvos de ponteiro de pelo menos 24 por 24 pixels CSS no nível AA. Isso é um mínimo, e vem com exceções. É fácil ler um piso como uma meta, e um design que fica exatamente no piso passa no verificador e ainda assim frustra as pessoas.

Os quatro números que você precisa saber

Quatro quadrados desenhados na mesma escala, 24, 28, 44 e 48, cada um com o mesmo ícone de seta dentro. Os quadrados de 24 e 28 estão marcados em vermelho como pequenos demais, os de 44 e 48 em verde
O mesmo ícone de 24 px dentro de cada área de toque, desenhado na mesma escala. Vermelho é o piso, verde é a meta.
FonteTamanhoO que é
Apple, iOS e iPadOS44 por 44 ptO tamanho padrão de controle
Apple, iOS e iPadOS28 por 28 ptO menor tamanho de controle
Android, Material48 por 48 dpO alvo de toque recomendado
WCAG 2.2, 2.5.8 (AA)24 por 24 px CSSO mínimo, com exceções
WCAG 2.2, 2.5.5 (AAA)44 por 44 px CSSO alvo aprimorado

A orientação da própria Apple é direta: um botão precisa de uma região de toque de pelo menos 44 por 44 pontos. Pontos, dp e pixels CSS são todos unidades independentes de densidade, então designers as usam lado a lado numa mesma grade, como na imagem.

Uma das exceções do WCAG vale a pena conhecer. Dois alvos abaixo do tamanho são permitidos se um círculo de 24 px centralizado em cada um não tocar o outro alvo. É uma regra sobre espaçamento, e é por isso que uma fileira de ícones minúsculos bem afastados pode passar, enquanto os mesmos ícones amontoados falham.

Correção 1: expanda o ícone até 44

Área de toque de 24 x 24

Uma barra de navegação intitulada Workout com uma seta de voltar, um ícone de compartilhar e um ícone de três pontos, cada um dentro de uma pequena caixa tracejada vermelha de 24 por 24

Área de toque de 44 x 44

A mesma barra de navegação com cada ícone dentro de uma caixa tracejada verde de 44 por 44 que encosta na vizinha
Os ícones são idênticos dos dois lados. Só a caixa ao redor mudou. À esquerda, a área de toque é o próprio glifo, então um polegar que cai a poucos pixels de distância não acerta nada. À direita, a área de toque é de 44 por 44 e o ícone fica no meio dela.

A área de toque é o quadro do botão, não a imagem dentro dele. Então a correção é dimensionar o botão, não o ícone: mantenha o glifo em 24 e dê ao botão pelo menos 44 nos dois lados. Vale para todo controle pequeno que fica sozinho: a seta de voltar, os botões de compartilhar e mais numa barra de ferramentas, o botão de info numa linha, uma estrela de favorito, um checkbox, o mais e o menos de um stepper.

Quando dois deles ficam lado a lado, as caixas podem se encostar. Tudo bem, já que caixas encostadas não deixam vão para errar.

Correção 2: deixe a linha inteira tocável

Só o switch

Uma lista de configurações com Wi-Fi, Bluetooth e Modo avião; só o switch do Bluetooth está marcado com uma caixa tracejada vermelha

Linha inteira

A mesma lista com a linha inteira do Bluetooth marcada com uma caixa tracejada verde
Um switch é um controle pequeno na ponta de uma linha larga. Se só o switch responde, a pessoa toca no rótulo, nada acontece, e toca de novo. Quando a linha inteira é o alvo, o rótulo faz o mesmo trabalho que o switch.

A linha já está ali, já é legível e é muito maior que 44. Envolva o rótulo e o controle em um único elemento tocável para que a linha inteira alterne. Isso também ajuda quem usa leitor de tela ou switch access, porque há um controle com um nome, não um rótulo e um switch solitário.

Correção 3: dê ao botão de fechar um alvo de verdade

16 x 16

Uma folha de Filtros com um X minúsculo no canto superior direito marcado com uma pequena caixa tracejada vermelha

44 x 44

A mesma folha em que o mesmo X fica dentro de uma grande caixa tracejada verde de 44 por 44
Botões de fechar costumam ser o menor controle da tela, escondidos num canto. E também são os que as pessoas procuram com pressa. Deixe o X tão pequeno quanto quiser visualmente, e ponha-o num quadro de 44 por 44.

O mesmo vale para o botão de dispensar de um banner, o botão de limpar dentro de um campo de busca e o pequeno ícone de remover numa tag. Desenhe a marca leve e o alvo pesado.

Correção 4: ponha a ação principal embaixo

Canto superior

Uma tela Novo treino com um pequeno link Salvar no canto superior direito, marcado com uma caixa tracejada vermelha

Embaixo, largura total

A mesma tela com um botão preto Salvar treino de largura total embaixo, marcado com uma caixa tracejada verde
Num celular grande segurado com uma mão, os cantos superiores são o lugar mais difícil de alcançar, e o polegar já descansa embaixo. Um botão de largura total ali é fácil de alcançar e impossível de não ver.

Esta é uma regra de design, não uma estatística medida: o ponto é que onde um controle fica importa tanto quanto o tamanho dele. A ação principal vai embaixo e larga. Cancelar e outras ações secundárias podem ficar na barra de cima.

Como construir

Na web, dimensione o botão, não o ícone:

css
.icon-button { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; } .icon-button svg { width: 24px; height: 24px; } /* one tappable row: label and switch together */ .row { display: flex; align-items: center; min-height: 44px; }

No Android, a orientação do Google é usar android:minWidth e android:minHeight para definir um limite inferior quando um controle se dimensiona pelo conteúdo:

xml
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="48dp" android:minHeight="48dp" />

No iOS, com SwiftUI, dê ao controle um frame e faça o frame inteiro responder:

swift
Button(action: close) { Image(systemName: "xmark") } .frame(minWidth: 44, minHeight: 44) .contentShape(Rectangle())

Os três trechos são nossos exemplos da regra, não código copiado de uma plataforma.

Revise suas próprias telas em cinco minutos

  1. No seu arquivo de design, desenhe tudo que é tocável como uma caixa de 44 por 44, por cima do ícone. Toda caixa que não couber é um alvo a ser ampliado.
  2. Linhas de lista, abas, chips e controles de paginação: o item inteiro é tocável, ou só a parte com a palavra?
  3. Encontre todo controle de fechar, limpar e remover. Cada um precisa dos seus próprios 44.
  4. Encontre a ação principal de cada tela. Ela está onde o polegar está?
  5. Num celular de verdade, com uma mão só, percorra o fluxo principal. Tudo que você errar duas vezes é pequeno demais.

FAQ

Qual é o tamanho mínimo de uma área de toque?

No iPhone, o padrão da Apple é 44 por 44 pontos e o menor tamanho de controle é 28 por 28. No Android, a recomendação é 48 por 48 dp. Na web, o WCAG 2.2 define um mínimo de 24 por 24 pixels CSS no nível AA, com exceções.

Qual deve ser o tamanho de um botão no celular?

Pelo menos 44 por 44 pontos no iOS e 48 por 48 dp no Android, tanto na largura quanto na altura. Um botão principal de largura total na parte de baixo da tela já fica bem acima dos dois.

O ícone em si precisa ter 44 px?

Não. O ícone pode continuar com 24 px ou menos. O que precisa ter 44 é a área que responde ao toque, ou seja, o botão ao redor do ícone. Adicione padding ou uma largura e altura mínimas ao botão.

Um alvo de 24 por 24 px basta para o WCAG?

Para o nível AA, sim, na maioria dos casos: o critério pede pelo menos 24 por 24 pixels CSS, com exceções para espaçamento, links em texto e alguns outros. O nível aprimorado, AAA, pede 44 por 44. Passar no AA é um mínimo de conformidade, não um bom tamanho para se projetar.

Qual a diferença entre pt, dp e px?

São todas unidades independentes de densidade. Ponto é a unidade do iOS, dp é a do Android e pixel CSS é a da web. Não são fisicamente idênticas, mas designers as organizam na mesma grade, então 44 pt e 48 dp são tratados como tamanhos mais ou menos equivalentes.

Onde deve ficar o botão principal no celular?

Na parte de baixo da tela, em largura total, onde o polegar descansa. Coloque ações secundárias como Cancelar na barra de cima. Esta é uma regra prática de layout, não um número medido.

Fontes

  • Apple Human Interface Guidelines, Accessibility: tamanho padrão de controle no iOS e iPadOS de 44 por 44 pontos, tamanho mínimo de controle de 28 por 28 pontos.
  • Apple Human Interface Guidelines, Buttons: um botão precisa de uma região de toque de pelo menos 44 por 44 pontos.
  • Android Accessibility Help, Touch target size: pelo menos 48dp de largura e altura, e android:minWidth e android:minHeight como limite inferior para controles dimensionados pelo conteúdo.
  • W3C, WCAG 2.2, 2.5.8 Target Size (Minimum): pelo menos 24 por 24 pixels CSS no AA, incluindo a exceção de espaçamento, e 2.5.5 Target Size (Enhanced): 44 por 44 no AAA.
  • Google Fonts, Material Symbols guide: 24 px como tamanho preferido de ícone.
  • As telas acima são exemplos nossos. O conselho sobre posicionamento embaixo é uma regra de design, não uma estatística.
  • Mais posts de uma regra só como este no UX Brainy.

Want every tap in your app to land the first time? Our team designs and builds mobile UI with the hit areas decided once, in the system.

Get Started

More from Brainy Papers

Keep reading