Pular para o conteúdo
Guia de execução · menu Design

Menus, abas e paginação: navegação que não perde o visitante

Menu mal resolvido perde o visitante em silêncio: ele deixa de achar o que procura e sai sem reclamar com ninguém. O Nielsen Norman Group mediu esse custo em 2016: no desktop, o menu escondido atrás do ícone de três linhas foi usado em 27% dos casos, contra 48% da navegação visível, e as tarefas ficaram pelo menos 39% mais lentas. Cada decisão aqui vem com o número e o dono: quando o mega menu vence e o atraso de hover que 60% dos sites esquecem (Baymard, 2023), o papel ARIA certo para cada tipo de menu (W3C), os alvos de toque do WCAG 2.2, o critério de abas do Nielsen Norman Group e a escolha entre paginar, carregar mais e rolagem infinita, com o que o Google exige por baixo. A mesma matéria está em aula de vídeo e podcast logo abaixo.

Guia do menu Design do portal, construído sobre pesquisa de fontes primárias verificada em 18/08/2026 e sobre os capítulos de navegação do curso Frontends com Vibecoding, de Alexandre Caramaschi. Ele compõe o menu com o guia de ícones, ilustrações, animação e geração de imagens e conversa com a aula de landing e formulário.

Ilustração em traço azul-marinho com destaques rosa e dourado de uma pessoa diante de uma grande interface flutuante, na qual um menu em destaque dispara setas e caminhos que levam a várias telas menores ao redor.
O menu é o mapa do site: cada rótulo abre um caminho, e o caminho que ninguém encontra deixa de existir.

A aula, em vídeo e em podcast

O conteúdo deste guia virou uma aula gerada no NotebookLM a partir do dossiê de pesquisa, servida nos arquivos originais, sem recompressão. O vídeo apresenta o panorama em minutos; o podcast aprofunda a conversa para ouvir no deslocamento. Cada peça tem download, compartilhamento e a transcrição completa para ler e copiar.

Baixar o vídeo
Aula em vídeo: menus, abas e paginação, com os números e as fontes do guia.
Podcast da aula: menus, abas e paginação
Portal Leadlovers 2026 · menu Design
Baixar o podcast
Podcast da aula: a conversa aprofundada sobre as mesmas decisões.

O custo de esconder a navegação

Esconder o menu custa uso, descoberta e velocidade, e o custo tem medição. O estudo do Nielsen Norman Group de 2016, com 179 participantes em seis sites, registrou: no desktop, as pessoas usaram o menu escondido em 27% dos casos, contra 48% com a navegação visível e 50% com a navegação combinada, em que parte dos itens fica exposta. No mesmo estudo do Nielsen Norman Group, a descoberta de conteúdo caiu mais de 20% com a navegação escondida e as tarefas no desktop ficaram pelo menos 39% mais lentas. No celular do mesmo teste a lentidão foi de 15%, e essa diferença sustenta a regra prática: o hambúrguer é tolerável no celular e um erro no desktop.

Uso da navegação no desktop conforme a visibilidade do menu Gráfico de barras horizontais com três condições de menu no desktop: navegação escondida atrás de um ícone é usada por 27% das pessoas; navegação visível, por 48%; navegação combinada, visível com complemento escondido, por 50%. Uma anotação registra que, com o menu escondido, as tarefas ficam pelo menos 39% mais lentas. Quem usa a navegação principal no desktop 0% 10% 20% 30% 40% 50% escondida atrás de ícone 27% visível sempre na tela 48% combinada visível + escondida 50% com o menu escondido, tarefas pelo menos 39% mais lentas
No desktop, a navegação escondida atrás de ícone é usada por 27% das pessoas, contra 48% quando visível e 50% na versão combinada; com o menu escondido, as tarefas ficam pelo menos 39% mais lentas. Fonte: Nielsen Norman Group, 2016, 179 participantes.

A consequência operacional é uma divisão de camadas. Ação de alta frequência mora na superfície, visível; o secundário desce para a gaveta. E antes de qualquer forma vem o rótulo: o Nielsen Norman Group chama de "aroma de informação" a propriedade de um link dizer, antes do clique, o que existe do outro lado. Trocar Saiba mais por Ver planos e preços é a melhoria mais barata de uma navegação, e o teste cabe numa frase: leia cada rótulo isolado do resto da tela e pergunte se dá para saber o que vem depois do clique.

A gaveta que o time entrega esta semana tem quatro requisitos: foco preso dentro do painel, fechamento por Esc, fechamento por clique fora e devolução do foco ao gatilho. O ícone leva a palavra "Menu" escrita ao lado do desenho. E o botão voltar do celular fecha a gaveta em vez de expulsar a pessoa do site: registra uma entrada no histórico ao abrir, escuta o evento de voltar para fechar, e desfaz a entrada quando o painel fecha pelo X ou pelo Esc. O curso Frontends com Vibecoding resolve isso em quinze linhas, e o prompt pronto está no fim da página.

Ilustração de uma mão segurando um celular com o polegar tocando a tela, uma barra inferior de navegação em rosa com três botões dourados ao alcance do polegar e uma gaveta lateral dourada entreaberta atrás do aparelho.
No celular, a ação frequente mora na barra inferior, na zona do polegar; a gaveta guarda o secundário.

Mega menu: o padrão dominante, com o defeito que 60% cometem (Baymard, 2023)

O mega menu aberto por hover é a navegação principal em 88% dos maiores e-commerces dos Estados Unidos, segundo o benchmark do Baymard Institute, e testes do Nielsen Norman Group desde 2009 confirmam que ele supera o dropdown comum, porque mostra tudo de uma vez em vez de pedir memória. O problema mora na implementação: o Baymard mediu em 2023 que 60% dos sites servem o hover sem atraso, e o painel abre e fecha sozinho quando o cursor cruza a barra, fechando na cara de quem move o mouse em diagonal para alcançar uma subcategoria. O instituto documenta o contraste com dois casos: na Dell, categorias vizinhas disparavam no caminho do cursor; na Staples, o atraso segura o painel certo aberto.

O problema da diagonal no mega menu Esquema de uma barra de navegação com três itens e um painel de mega menu aberto sob o item 1. Uma linha tracejada mostra a trajetória diagonal do cursor, do item 1 até uma subcategoria no canto oposto do painel; no caminho, o cursor cruza a área do item 2, o que fecharia o painel. Um selo indica a proteção: atraso de 300 a 500 ms antes de trocar o painel. Trajetória do cursor sobre o mega menu aberto Item 1 Item 2 Item 3 Subcategoria A1 Subcategoria A2 Subcategoria A3 Subcategoria B1 Subcategoria B2 Subcategoria B3 Subcategoria C1 Subcategoria C2 Subcategoria C3 a diagonal cruza o item 2: sem proteção, o painel troca no meio do caminho atraso de 300 a 500 ms
Ao mover o cursor em diagonal do item 1 para uma subcategoria distante, a trajetória cruza o item 2 e o painel troca antes da chegada; um atraso de 300 a 500 ms na troca protege o percurso. Fonte: Baymard Institute, 2023: 60% dos sites servem o hover sem atraso.

A correção custa uma configuração: atraso de 300 a 500 milissegundos antes de abrir e antes de fechar, faixa que, segundo o Baymard em 2023, elimina a maioria dos disparos acidentais. No celular, o mega menu vira acordeão ou gaveta em vez de replicar o grid de colunas. E o tamanho da oportunidade aparece no benchmark 2025 do mesmo instituto, com mais de 16.000 avaliações: 58% dos sites desktop e 67% dos mobile têm navegação de home e categoria classificada de medíocre a ruim. Navegação bem executada é minoria mensurada, e por isso é vantagem competitiva de quem a trata como projeto.

A ancoragem do painel sai do JavaScript

Grudar o painel no gatilho, recalcular a posição na rolagem e virar o bloco de lado quando falta espaço na tela sempre foi trabalho de biblioteca de posicionamento em JavaScript. O CSS assumiu a tarefa: anchor-name no gatilho, position-anchor e a função anchor() no painel, e @position-try descrevendo para onde o painel escapa quando a borda da janela chega perto. A verificação de 18/08/2026 desta página registra o Firefox ligando o recurso por padrão na versão 147 e o Safari 26 servindo @position-try e position-try-fallbacks, com a cobertura chegando a cerca de 91% do tráfego global.

Sobra a fatia de público fora dessa faixa, e ela decide a forma de escrever a folha de estilo. O conjunto segue fora do Baseline no mesmo retrato, o que mantém a verificação de suporte obrigatória: o bloco ancorado entra dentro de @supports (position-anchor: --gatilho), com um posicionamento simples e previsível servindo de base para quem estiver fora. Quem já carrega uma biblioteca de posicionamento no pacote pode aposentá-la por etapas, começando pelos painéis que só precisam abrir logo abaixo do gatilho.

Os quatro sentidos de "menu", e o erro que a IA repete

O erro mais caro em acessibilidade de navegação é usar o papel ARIA de menu em navegação de site. O exemplo oficial de navegação do W3C, no guia de práticas WAI-ARIA, declara que a própria implementação dispensa esse papel: navegação típica de site fica sem as interações de teclado que as tecnologias assistivas esperam de um widget com o papel de menu, então o padrão certo é o de área que abre e fecha (disclosure), com <nav> e links. O papel de menu fica reservado ao menu de ação, com comandos como editar, duplicar e excluir, que imita os menus do sistema operacional e responde ao teclado completo: setas circulando entre os itens, Home e End, uma letra pulando para o item, Enter acionando e Esc fechando com o foco de volta no gatilho.

1. Navegação de site

Lista de links para outras páginas: <nav>, lista e link do próprio HTML. O papel de menu traria navegação por setas que ninguém espera em link de site.

2. Área que abre e fecha

Um botão mostra e esconde um trecho: submenu, navegação de celular, FAQ. O botão declara se está aberto e a que área se refere. É o padrão que resolve a maioria dos mega menus.

3. Menu de ação

Comandos sobre a própria tela. Aqui entra o papel de menu, com o teclado completo descrito acima. Improvisar com div e onClick exclui em silêncio quem navega sem mouse.

4. Barra de menu de aplicativo

Faixa permanente tipo Arquivo/Editar. É rara na web e quase sempre escolhida por engano.

Qual dos quatro padrões de menu usar Fluxograma de decisão em três perguntas. Se o clique leva a outra página, é navegação de site: nav com links, sem role de menu. Se não, e o controle mostra e esconde um bloco, é uma área que abre e fecha, o padrão disclosure. Se não, e o controle executa um comando na tela, é menu de ação: role de menu e teclado completo. Se nada disso, é a barra de menu de aplicativo, rara na web. Três perguntas separam os quatro padrões O clique leva a outra página? sim Navegação de site nav + links, sem role de menu não Mostra e esconde um bloco? sim Área que abre e fecha padrão disclosure não Executa comando na tela? sim Menu de ação role de menu e teclado completo não Barra de menu de aplicativo rara na web
Três perguntas separam os quatro padrões de menu: link que navega usa nav e links sem role de menu; bloco que abre e fecha usa disclosure; comando na tela usa menu de ação com role de menu e teclado completo; a barra de menu de aplicativo é rara na web. Fonte: padrões do guia W3C WAI-ARIA APG.

Esse é também o erro mais frequente em código gerado por inteligência artificial: o modelo lê a palavra "menu" e aplica o papel de aplicativo. A correção entra no próprio pedido ao agente, numa frase: a navegação primária usa <nav> e links, sem papel de menu. Nas primitivas, o shadcn/ui separa os dois propósitos em componentes distintos, NavigationMenu para links e DropdownMenu para ações, e desde julho de 2026 abre projetos novos sobre o Base UI, mantido pela equipe do MUI e estável desde 11 de dezembro de 2025. Do lado nativo, o atributo popover entrega abertura, fechamento, Esc e clique fora sem JavaScript, com uma ressalva: ele define papel nenhum, então o menu de ação continua precisando do papel declarado ou de uma primitiva por baixo.

O select estilizável encurta um caminho conhecido

A lista suspensa de escolha única virou reimplementação obrigatória por um motivo de aparência: o <select> do HTML aceita pouca estilização, e o time reescreve o controle inteiro com role="listbox", gestão de foco, digitação para pular item e leitura de estado. A proposta do CSSWG de select estilizável ataca a causa: com appearance: base-select, o navegador entrega o mesmo controle nativo aberto à folha de estilo, e os casos simples de seleção deixam de exigir o widget refeito à mão.

A adoção pede cautela pelo estado atual: a implementação corre nos navegadores Chromium, o recurso ainda está sem Baseline, e por isso ele entra como melhoria progressiva sobre o <select> nativo que já funciona em toda parte. Quem escrever assim ganha duas vezes: a seleção continua acessível onde o recurso falta, e o dia em que ele chegar dispensa reescrita.

Alvos de toque: cada número com o dono certo

Números de alvo de toque circulam misturados, e a mistura reprova auditoria. A tabela separa o que é norma exigível do que é recomendação de plataforma, com a fonte de cada linha.

RéguaValorQuem exige, e a que título
Piso de conformidade24 por 24 pixels de CSSWCAG 2.2, critério 2.5.8, nível AA, com exceções para alvos espaçados e links em linha de texto (W3C, 2023)
Conforto de norma44 por 44 pixels de CSSWCAG 2.2, critério 2.5.5, nível AAA (W3C, 2023)
Recomendação Android48 por 48 dpGoogle, documentação de acessibilidade do Android
Padrão Apple44 por 44 pontos, mínimo de 28 por 28Apple Human Interface Guidelines, tabela de tamanhos de controle do iOS
Barra inferior de aplicativoTrês a cinco destinos de igual importânciaMaterial Design 3 (Google); a Apple pede "o número apropriado", sem fixar quantidade
Folga entre alvosPelo menos 8 pixels entre vizinhosCurso Frontends com Vibecoding: três alvos de 24 colados passam no piso e continuam errados

Fontes verificadas nos textos normativos e nas documentações oficiais em 18/08/2026. A formulação "a Apple exige 44 como mínimo" caiu na verificação: 44 é o padrão recomendado dela, e o mínimo listado é 28.

Tamanhos mínimos de alvo de toque, em escala Quatro quadrados desenhados em proporção real comparam os tamanhos mínimos de alvo de toque: 24 px do WCAG 2.2 nível AA, 28 px do mínimo Apple, 44 px do WCAG nível AAA e do padrão Apple, e 48 dp do Google Android. Entre os dois primeiros quadrados, uma cota indica a folga de 8 px exigida entre alvos pequenos. Alvos de toque lado a lado, na mesma escala 24 px WCAG 2.2 AA folga de 8 px 28 px mínimo Apple 44 px WCAG AAA e padrão Apple 48 dp Google Android tracejado: piso legal, traço cheio: confortável
Em escala, o piso legal de 24 px do WCAG 2.2 AA é quase metade da área dos alvos confortáveis: 28 px no mínimo Apple, 44 px no WCAG AAA e padrão Apple, 48 dp no Google Android, com folga de 8 px entre alvos pequenos. Fonte: normas e documentações oficiais, verificadas em 18/08/2026.

Abas: visões paralelas, com o critério de decisão

Abas alternam visões paralelas do mesmo recurso e ficam fora da navegação de topo do site. O Nielsen Norman Group, em revisão de 2024 do artigo clássico sobre abas, dá o critério que decide: quando a pessoa precisa comparar informação entre painéis, a troca repetida de aba cobra memória de curto prazo e aumenta o custo de interação, e uma página única vence. Quanto menos abas, melhor; o conteúdo das abas não padrão é suplementar, nunca crítico; e quando o conteúdo não forma grupos nítidos, aba é o controle errado.

O teclado vem do guia de práticas do W3C: as setas circulam entre as abas, e a ativação automática ao focar só é recomendada quando o painel aparece sem latência perceptível, o que na prática exige conteúdo pré-carregado. Painel que carrega da rede pede ativação manual, com Enter ou Espaço. A aba selecionada se marca para o leitor de tela, com o indicador visual somando mais de um sinal além da cor. Dois usos dos estudos de caso do curso: na documentação da Stripe, as abas de linguagem do painel de código são um grupo de abas de verdade, com troca pelas setas; na Booking e na LATAM, a caixa de busca da home pede a intenção primeiro em abas de produto, e cada aba herda os dados de viagem já digitados.

Aba é estado, e o lugar dela é a URL. A documentação oficial do Next.js lista os três ganhos: o endereço fica favoritável e compartilhável, o servidor monta a página já no estado certo, e a analítica enxerga filtro e busca sem código extra no cliente. A ferramenta de referência em React é o nuqs, um useState que mora na query string, na versão 2.9.6 de 17/08/2026. Filtro em useState comum some no recarregamento, quebra o botão Voltar e faz o link chegar vazio na mão de quem o recebe.

Paginar, carregar mais ou rolagem infinita: a decisão com dono

Para lista de produtos, o teste de usabilidade do Baymard Institute concluiu que o botão de carregar mais, combinado com carregamento preguiçoso, é a implementação superior, e a atualização de pesquisa de 2024 do instituto, com mais de 5.550 horas de teste, manteve a preferência. As faixas de quantidade medidas em 2020: o desktop carrega de 100 a 150 itens para produto visual e de 50 a 100 para produto de especificação; o celular, de 15 a 30; e 52% dos sites erram essa quantidade.

O Nielsen Norman Group, em artigo de 2022, delimita o território da rolagem infinita: fluxo de itens homogêneos consumido sem tarefa específica, como um feed social. Fora desse território, a rolagem infinita clássica cobra três vezes: o rodapé fica inalcançável, o SEO sofre e a acessibilidade quebra.

Como paginar uma lista longa Fluxograma de decisão em três perguntas. Se a lista é um feed homogêneo, sem tarefa específica, a resposta é rolagem infinita com o Feed Pattern. Se não, e é uma lista de produtos, a resposta é o botão carregar mais com lazy-load, recomendação do Baymard. Se não, e é um grid de dados ou uma consulta com volta ao ponto, a resposta é paginação numerada. A lista longa decide o padrão de carregamento Feed homogêneo, sem tarefa específica? sim Rolagem infinita com Feed Pattern não Lista de produtos? sim Carregar mais + lazy-load recomendação do Baymard não Grid de dados ou consulta com volta ao ponto? sim Paginação numerada endereço estável, volta garantida
A natureza da lista decide o padrão: feed homogêneo pede rolagem infinita com Feed Pattern; lista de produtos pede carregar mais com lazy-load; grid de dados ou consulta com volta ao ponto pede paginação numerada. Fontes: Baymard 2016/2024 e Nielsen Norman Group 2022.
PadrãoOnde venceO preço, com a fonte
Paginação numeradaConsulta com destino, comparação e volta ao ponto; grids de dadosUm clique a mais por página; o AG Grid a recomenda como a melhor saída de acessibilidade para volume grande (documentação oficial)
Carregar mais + lazy-loadLista de produtos em e-commerceImplementação superior no teste do Baymard (2016, mantida na atualização de 2024); exige URLs paginadas por baixo para o Google
Rolagem infinitaFeed homogêneo sem tarefa específica (Nielsen Norman Group, 2022)Rodapé inalcançável, SEO e acessibilidade; em resultados de busca, o Baymard a desaconselha desde 2016

A falha que mais irrita tem número e mecanismo. Em 2020 o Baymard mediu que 13% dos grandes e-commerces devolvem o visitante ao topo da lista quando ele volta da página de produto, e o visitante desiste de refazer a rolagem. O controle disso é a History API do navegador, com scrollRestoration, e a condição real: em lista carregada dinamicamente, restaurar a posição só funciona se o aplicativo repovoar os itens antes de restaurar. Os prompts de lista longa no fim da página cobrem o caso.

Ilustração de uma esteira de cartões de produto que se estende em perspectiva até o horizonte, com um grande botão circular rosa de carregar mais no meio do caminho e marcos numerados de página ao longo das bordas.
A lista longa precisa de marcos: o botão de carregar mais na superfície e as páginas numeradas por baixo, para o visitante, o Google e o leitor de tela.

O que o Google exige por baixo

A documentação vigente do Google Search Central aposentou o rel=next/prev ("o Google não usa mais essas tags") e explica o risco da rolagem infinita para descoberta: os rastreadores do Google clicam botão nenhum e em geral disparam função nenhuma de JavaScript. De uma coleção indexável, ela pede três coisas:

A saída é manter URLs paginadas por baixo da experiência de rolagem. Em 2026 isso vale dobrado, porque agentes de IA também leem sites: a Cloudflare mediu em junho de 2025 a plataforma Claude fazendo cerca de 71.000 requisições de página para cada visita referida, e conteúdo que só existe atrás de um clique fica fora dessa leitura.

A página 2 pronta antes do clique

Paginação numerada cobra uma espera a cada avanço, e essa espera tem tratamento declarativo. A Speculation Rules API recebe um bloco <script type="speculationrules"> com regras de prefetch e prerender, e o navegador busca ou monta a próxima página antes do clique, de modo que a troca chega perto do instantâneo. O mesmo vale para a aba que muda de URL, o caso que esta página já trata como estado endereçável.

Nos navegadores Chromium o recurso funciona; os demais ignoram o bloco sem efeito colateral, o que dispensa verificação de suporte no código. Duas regras de bom senso seguram o custo: prerender apenas no destino de alta probabilidade, como o link da próxima página, e prefetch no resto, porque montar a página inteira gasta memória e banda de quem talvez sequer clique.

Acessibilidade e a régua legal

O padrão oficial do W3C para rolagem infinita acessível é o Feed Pattern do guia de práticas: Page Down e Page Up movem o foco entre os artigos, e Ctrl+End e Ctrl+Home saltam para depois e antes do feed, que é como o usuário de leitor de tela escapa da lista. Nada disso vem de graça: exige gestão de foco e atributos de posição.

Virtualização cobra em acessibilidade

A documentação do próprio AG Grid admite que as linhas saem de ordem no DOM para leitores de tela e recomenda paginação como a melhor saída em volume grande.

O custo de memória caiu

O TanStack Table v9, estável desde 4 de agosto de 2026, reduziu em até 86% o heap retido no cenário de um milhão de linhas, segundo o benchmark do fornecedor.

A alternativa nativa

content-visibility: auto pula a renderização mantendo o conteúdo no Ctrl+F e na ordem de tabulação, ao contrário da virtualização por JavaScript, que remove o nó (MDN).

A régua legal fecha a conta. O European Accessibility Act se aplica desde 28 de junho de 2025 e alcança nominalmente o comércio eletrônico; o artigo 63 da Lei 13.146/2015 obriga acessibilidade nos sites de empresas com sede ou representação no Brasil; e em julho de 2026 a Justiça Federal deu à União 180 dias para apresentar o plano de acessibilidade dos sites federais, sob multa diária de R$ 10 mil.

O que a plataforma web já entrega, com data

Recurso de navegação nativo se adota pelo status Baseline conferido no dia, com o estado final funcionando sem o recurso. O retrato de 18/08/2026, pelo webstatus.dev:

Linha do tempo dos recursos de navegação, 2024 a 2026 Linha do tempo de 2024 a 2026 com cinco marcos. Em 03/09/2024, details name chega ao Firefox 130 e entra no Baseline. Em 27/01/2025, popover chega ao Safari iOS 18.3 e entra no Baseline. Em 01/04/2025, o carrossel CSS chega só ao Chrome 135 e fica fora do Baseline. Em 14/10/2025, View Transitions de mesmo documento chega ao Firefox 144 e entra no Baseline. Em 13/01/2026, anchor positioning chega ao Firefox 147 e ainda está fora do Baseline. O que já é Baseline e o que ainda não é 2024 2025 2026 03/09/2024 details name (Firefox 130) Baseline 27/01/2025 popover (Safari iOS 18.3) Baseline 01/04/2025 carrossel CSS só no Chrome 135 fora do Baseline 14/10/2025 View Transitions mesmo documento (Firefox 144) Baseline 13/01/2026 anchor positioning (Firefox 147) fora do Baseline
Entre 2024 e 2026, details name (03/09/2024, Firefox 130), popover (27/01/2025, Safari iOS 18.3) e View Transitions de mesmo documento (14/10/2025, Firefox 144) entraram no Baseline; o carrossel CSS (01/04/2025, só no Chrome 135) e o anchor positioning (13/01/2026, Firefox 147) seguem fora. Fonte: webstatus.dev e release notes oficiais, retrato de 18/08/2026.
RecursoStatus em 18/08/2026O que muda no menu
Atributo popoverBaseline desde 27/01/2025, fechado pelo Safari do iOS 18.3Painel flutuante com abertura, fechamento, Esc e clique fora sem JavaScript
<details name> (acordeão exclusivo)Baseline desde 03/09/2024, fechado pelo Firefox 130Grupo de seções em que só uma fica aberta, sem script
View Transitions no mesmo documentoBaseline desde 14/10/2025, fechado pelo Firefox 144Transição de tela contínua em navegação de aplicação
View Transitions entre documentosFora do Baseline, sem FirefoxSó como melhoria progressiva
Posicionamento por âncora do CSSChegou ao Firefox 147 em 13/01/2026; o conjunto segue como limitado no webstatus.devPopover ancorado ao gatilho sem biblioteca, ainda atrás de verificação de suporte
Carrossel CSS (::scroll-button, ::scroll-marker)Só Chrome e Edge, desde a versão 135 de 01/04/2025Botões e marcadores nativos de carrossel; produção exige retaguarda

Status lidos na API oficial do webstatus.dev e nas release notes de Mozilla e Google em 18/08/2026. Baseline é retrato datado: confira no dia em que for escrever o código.

O item-pai aceso pelo filho, com :has()

Marcar qual seção do site está aberta costuma custar uma passada de JavaScript que lê o endereço, compara com cada link e acrescenta uma classe no item-pai. O seletor :has() resolve o mesmo problema na folha de estilo: nav :has(a[aria-current="page"]) alcança o ancestral que contém o link ativo e o destaca a partir do filho. O seletor está em Baseline, e esta página já marca a subaba corrente com aria-current="page", de modo que o destaque nasce do atributo que a acessibilidade cobrava de qualquer jeito.

Duas cautelas preservam o ganho. O sinal visual do item aceso soma peso de traço, cor de fundo ou barra lateral, para evitar dependência exclusiva de cor, na mesma régua do indicador de aba selecionada. E o atributo aparece uma vez só por página, no link da página corrente, porque dois aria-current="page" deixam quem usa leitor de tela sem referência de posição.

O clique de menu medido em produção: INP

Tudo o que veio até aqui se apoia em estudo comportamental do Nielsen Norman Group e do Baymard Institute, e estudo comportamental descreve o comportamento médio de outra gente, em outro produto. A medição que fecha a conta no seu site tem nome: Interaction to Next Paint, Core Web Vital oficial desde março de 2024, com meta de até 200 ms no percentil 75 segundo o web.dev. O INP registra quanto tempo passa entre a pessoa tocar o item de menu e a tela mostrar a resposta, e é o único número desta página que vem do público real do produto.

A ligação com a arquitetura do menu é direta. Painel que só monta a lista no clique paga a montagem dentro da janela medida; mega menu com dezenas de itens e imagens cobra estilo e layout no mesmo instante; animação de abertura que ocupa a linha principal empurra a pintura para depois. Quantidade de itens, profundidade de níveis e custo de abrir o painel aparecem no percentil 75 do INP, e é ali que a discussão de arquitetura sai da opinião.

O menu vira item de painel. A mesma tela que acompanha conversão passa a mostrar o INP do percentil 75 quebrado por dispositivo, porque celular antigo e desktop novo vivem realidades distintas de processamento. Quando um mega menu novo entra no ar, a comparação de antes e depois nesse número diz se a navegação melhorou para quem usa, e a resposta chega em dias, sem esperar a próxima rodada de teste de usabilidade.

O resumo em uma peça

O infográfico condensa os números da aula para colar no mural do time ou mandar no grupo: o uso do menu visível contra o escondido, o atraso do mega menu, o papel certo de cada menu, os alvos de toque e a decisão de lista longa. Gerado no NotebookLM a partir do dossiê de pesquisa desta página.

Infográfico em português intitulado Precisão na navegação, UX baseada em dados: uso do menu visível em 48% contra 27% do escondido e tarefas 39% mais lentas (Nielsen Norman Group, 2016); atraso de 300 a 500 ms no mega menu (Baymard, 2023); role de menu exclusivo para ações, com nav e links para navegação (W3C); carregar mais com lazy loading superando paginação e rolagem infinita em e-commerce (Baymard, 2024); e o comparativo de alvos de toque de 24, 44 e 48.
O resumo da aula em uma peça, com cada número acompanhado da fonte. Baixe o arquivo em alta.

Prompts prontos

Menu suspenso operável por teclado (do curso)

Torne este menu suspenso totalmente operável por teclado:
- Enter/Espaço no gatilho abre; Esc fecha e devolve o foco ao botão gatilho.
- O botão expõe aria-expanded e aria-haspopup.
- A navegação primária do site usa <nav> e links, SEM role="menu";
  role="menu" só no menu de ações.
- Respeite prefers-reduced-motion na animação de abertura.
- Foco visível em todos os itens (:focus-visible, anel de 2px).
Mostre o TSX.

Gaveta que fecha no botão voltar do aparelho (do curso)

Implemente uma gaveta de filtros para celular com o botão voltar do
aparelho significando "fechar o painel", em três movimentos:
1. Ao abrir, registre uma parada no histórico
   (window.history.pushState({ gaveta: true }, "")).
2. Escute o evento popstate e use-o apenas para fechar a gaveta,
   nunca para navegar.
3. Se a gaveta fechar pelo X ou pelo Esc, desfaça a parada
   (window.history.back() se o estado atual for da gaveta);
   sem esta limpeza sobra um "voltar" morto no histórico.
Complete com: foco preso no painel, Esc fecha, clique fora fecha,
foco devolvido ao gatilho, e a lista interna com
overflow-y: auto e overscroll-behavior: contain.

Lista longa que o Google e o leitor de tela enxergam

Implemente a lista de itens com botão "Carregar mais" e lazy-load,
com estas garantias:
- URLs paginadas reais por baixo (History API): cada lote avança
  ?pagina=N, com link <a href> para a próxima página presente no HTML
  e canonical próprio por página (nunca tudo para a página 1).
- Ao voltar da página de detalhe, o visitante retorna à MESMA posição:
  repovoe os itens carregados antes de restaurar o scroll
  (history.scrollRestoration).
- Acessibilidade: siga o Feed Pattern do W3C APG (Page Down/Page Up
  entre itens; Ctrl+End/Ctrl+Home saltam o feed); o rodapé permanece
  alcançável; o foco nunca fica preso na lista.
- Estado de filtro e página na URL com nuqs, nunca em useState solto.
Critério de aceite: com JavaScript desligado, a página 2 existe e tem
conteúdo; com leitor de tela, dá para sair da lista.
Guias para postar

Dois guias prontos para o LinkedIn e o Instagram

Cada cartão abaixo foi desenhado para sair como imagem: escolha o formato, abra a tela de print, capture a área do cartão e publique com a legenda que o botão copia. O conteúdo resume o método desta página, então o post leva o leitor de volta para cá.

Design · Navegação e menusLeadlovers 2026

Três perguntas separam os padrões de menu

O papel de menu do ARIA cabe num caso só, e o resto do site vive de link comum.
  1. O clique leva a outra página. Navegação de site usa nav com lista e links, sem papel de menu.
  2. O controle mostra e esconde um bloco. Use o padrão de área que abre e fecha.
  3. O controle executa um comando na tela. Aqui entra o papel de menu, com teclado completo.
brasilgeo.ai/leadlovers2026Guia 1 de 2
Legenda sugerida para LinkedIn e Instagram
O erro mais caro de acessibilidade em navegação vem de uma palavra só: menu.

O modelo de IA lê "menu" e aplica na barra do site o papel ARIA que pertence ao menu de ação, e a navegação passa a exigir setas de teclado que ninguém espera de um link. Três perguntas separam os padrões. Se o clique leva a outra página, use nav com lista e links. Se o controle mostra e esconde um bloco, use área que abre e fecha. Se o controle executa um comando na tela, aí sim entra o papel de menu, com o teclado completo.

Coloque essa regra dentro do próprio pedido ao agente e o defeito deixa de nascer.

Salve o cartão e confira a barra de navegação que o seu time publicou por último.

Guia completo: brasilgeo.ai/leadlovers2026/design/navegacao/

#Leadlovers #Acessibilidade #UX #Frontend
Design · Navegação e menusLeadlovers 2026

A gaveta de filtros tem cinco requisitos

Confira a lista antes de mandar a gaveta do celular para produção.
  • Prenda o foco dentro do painel. Quem navega por teclado circula só entre os filtros.
  • Feche pela tecla Esc. O foco volta para o botão que abriu a gaveta.
  • Feche no clique fora do painel. A área escurecida do fundo também encerra.
  • Registre uma parada no histórico ao abrir. O botão voltar do aparelho fecha a gaveta.
  • Desfaça a parada ao fechar pelo X. Sem essa limpeza sobra um voltar morto.
brasilgeo.ai/leadlovers2026Guia 2 de 2
Legenda sugerida para LinkedIn e Instagram
A gaveta de filtros que expulsa o visitante do site no botão voltar do aparelho custa a venda inteira.

Cinco requisitos deixam o painel pronto para produção: foco preso dentro dele, fechamento pela tecla Esc, fechamento no clique fora, uma parada registrada no histórico ao abrir para o botão voltar fechar a gaveta, e a limpeza dessa parada quando o painel fecha pelo X. Sem a limpeza, sobra um voltar morto no histórico.

O ícone da gaveta leva a palavra Menu escrita ao lado do desenho, e a ação frequente do celular continua visível na barra inferior, na zona do polegar.

Comente qual desses requisitos falta na gaveta do seu produto.

Guia completo: brasilgeo.ai/leadlovers2026/design/navegacao/

#Leadlovers #UXMobile #Navegacao #Frontend

Perguntas frequentes

O menu hambúrguer funciona no computador?

Os números do Nielsen Norman Group, de 2016, mostram o custo: no desktop, o menu escondido atrás do ícone de três linhas foi usado em 27% dos casos, contra 48% da navegação visível, e as tarefas ficaram pelo menos 39% mais lentas. No celular o dano cai para 15%, o que torna o padrão tolerável em tela pequena. Ação de alta frequência mora na superfície.

Como evitar que o mega menu abra e feche sozinho com o mouse?

Com um atraso de 300 a 500 milissegundos antes de abrir e antes de fechar o painel. Essa janela perdoa o movimento diagonal do cursor até a subcategoria e elimina a maioria dos disparos acidentais. O Baymard Institute mediu em 2023 que 60% dos sites implementam mal o menu suspenso ativado por hover, e o conserto cabe numa linha de código.

Quando usar o papel ARIA de menu na navegação de um site?

Apenas no menu de ação que imita aplicativo, com comandos como editar e excluir. A navegação primária usa a tag nav com uma lista de links, sem papel de menu: o padrão do W3C declara que esse papel exige controle complexo de teclado e, aplicado a links comuns, trava quem navega por leitor de tela. É o erro mais frequente em código gerado por IA.

Onde guardar a aba ou o filtro que o visitante selecionou?

Na URL. A documentação do Next.js lista os três ganhos: o endereço fica favoritável e compartilhável, o servidor monta a página já no estado certo e a analítica enxerga filtro e busca sem código extra. A ferramenta de referência em React é o nuqs. Filtro em useState comum some no recarregamento, quebra o botão Voltar e chega vazio na mão de quem recebe o link.

O que funciona melhor em lista longa: paginação, carregar mais ou rolagem infinita?

Para lista de produtos, o teste de usabilidade do Baymard Institute aponta o botão de carregar mais com carregamento preguiçoso como a implementação superior. A rolagem infinita clássica serve a feed social, na delimitação do Nielsen Norman Group, e fora dele torna o rodapé inalcançável e prejudica SEO e acessibilidade. O Google Search Central pede URLs únicas e links de âncora reais por baixo da experiência.

Qual o tamanho mínimo de um alvo de toque?

A norma exigível é a WCAG 2.2: 24 por 24 pixels CSS no critério 2.5.8, nível AA, e 44 por 44 no nível AAA. As recomendações de plataforma sobem a régua: a Apple recomenda 44 pontos no iOS, com mínimo listado de 28, e o Google pede 48 dp no Android. Desenhe pelo conforto de quem toca a tela com uma mão só.

Por onde começar

Assista à aula, abra a navegação da peça que o time mantém hoje e aplique três decisões nesta ordem: meça o atraso de hover do menu (a faixa do Baymard é 300 a 500 milissegundos); confira se a navegação primária usa <nav> com links e se o item ativo soma mais de um sinal além da cor; e navegue a lista mais longa do site até o rodapé só com o teclado. O que falhar vira o backlog da semana, com os prompts desta página. O menu Design continua no guia de ícones, ilustrações, animação e geração de imagens, e o restante do portal em landing e formulário e no glossário.