Seletor de Abas / Personas: Formato, Regras e Exemplos
Use abas e seletores de persona para direcionar leitores ao conteúdo relevante, mantendo todos os painéis no DOM, acessíveis, indexáveis e extraíveis.
Um seletor de abas/personas oferece a vários leitores caminhos distintos por um assunto delimitado sem enviá-los para páginas separadas. Os rótulos identificam o caminho; selecionar um revela seu painel no mesmo local. O elemento é útil apenas quando os painéis são genuinamente equivalentes e cada painel permanece presente no HTML inicial da página.
Escolha sua equipe
Transforme o briefing em um rascunho reproduzível
Comece com a resposta, evidência e conjunto de elementos exigidos. Redija o raciocínio por completo antes de aplicar componentes, depois verifique se cada afirmação ainda faz sentido quando extraída de seu tratamento visual.
Verifique descoberta e extração
Inspecione o HTML renderizado, links internos, cabeçalhos e campos estruturados. Confirme que o conteúdo do painel inativo chega na primeira resposta, em vez de aparecer apenas após interação do lado do cliente.
Revise o sistema, não apenas a página
Aprove a promessa comum uma vez, depois revise onde cada público realmente precisa de provas, fluxo de trabalho ou próxima ação diferentes. Remova diferenças que são apenas mudanças de tom.
O estado renderizado mostra um painel ativo, mas os outros dois painéis também estão no modelo de objeto de documento (DOM) — a representação estruturada da página no navegador. Eles estão ocultos com o atributo nativo hidden, não são solicitados após um clique. Um renderizador de produção adiciona o comportamento de teclado e ponteiro descrito abaixo; o contrato de conteúdo criado permanece o mesmo em todas as plataformas.
Por que este elemento é importante
Os leitores filtram uma página por meio de sua função, objetivo e nível de responsabilidade. Um especialista em conteúdo pode querer instruções de redação, um especialista em SEO pode querer regras de validação e um líder de equipe pode querer governança. Um seletor de persona bem rotulado reduz o esforço de traduzir conselhos genéricos para “o que isso significa para mim?” Ele também mantém a premissa compartilhada em um só lugar, o que evita que três páginas quase duplicadas disputem a mesma intenção.
A vantagem psicológica é reconhecimento sobre interpretação. Um leitor pode reconhecer um rótulo como “Equipes de SEO” mais rápido do que escanear três parágrafos para inferir qual deles se aplica. As abas também preservam o contexto espacial: o painel muda no lugar, então o leitor pode comparar caminhos equivalentes sem rolar repetidamente pela introdução compartilhada.
Essa conveniência cria uma compensação na extraibilidade por máquina. Extraibilidade por máquina é a capacidade de um rastreador, índice de busca, tecnologia assistiva ou sistema de recuperação de isolar conteúdo preservando seu assunto e relacionamentos. Cabeçalhos e parágrafos visíveis aparecem em uma sequência de leitura óbvia. Painéis de abas introduzem um estado de interação: um está visível, vários não estão, e o software deve conectar cada rótulo de aba ao painel correto. Uma implementação fraca deixa apenas o painel ativo no HTML, carrega outros painéis após um clique ou repete cabeçalhos genéricos como “Benefícios” sem o nome da persona. Em cada caso, uma máquina recebe menos contexto do que o leitor vê.
Mesmo uma implementação correta pode reduzir a extraibilidade em comparação com seções comuns. Alguns sistemas priorizam texto inicialmente visível, aplanam relacionamentos interativos ou omitem conteúdo oculto de excertos. Abas são, portanto, uma ferramenta de roteamento de informação, não uma forma de ocultar respostas essenciais. Coloque a resposta, definição, aviso, condição de elegibilidade e conclusão compartilhados fora do conjunto de abas. Use painéis para aplicação específica do público, exemplos, fluxos de trabalho ou provas que permanecem úteis após a resposta comum ser conhecida.
Aplique as regras de escrita de elementos : redija a explicação completa primeiro, depois classifique um conjunto genuíno de caminhos de leitura equivalentes como este elemento tipificado. As regras desta página têm precedência para mapeamento de painéis, interação e limites de conteúdo.
Quando usar
Use um seletor de abas/personas quando todas estas condições forem verdadeiras:
- Dois a cinco públicos, contextos ou modos reconhecíveis precisam de aplicações diferentes do mesmo assunto.
- Cada painel responde à mesma pergunta com profundidade comparável.
- A maioria dos leitores precisa de um painel por vez, enquanto uma minoria pode comparar dois ou mais.
- A resposta comum pode ser declarada fora do elemento sem forçar o leitor a abrir todas as abas.
- Manter os caminhos em uma página é mais claro do que manter páginas separadas com introduções amplamente duplicadas.
Usos fortes incluem orientação de implementação para “Desenvolvedores / Editores / Revisores”, caminhos de integração para “Individual / Equipe / Agência” e uma capacidade explicada por meio de “Planejar / Produzir / Medir”. Rótulos de persona devem refletir diferenças significativas em fluxo de trabalho, evidências, permissões ou resultado desejado — não suposições demográficas.
Casos próximos frequentemente vêm de tentativas de encurtar uma página. Não coloque etapas sequenciais em abas; esconder a etapa dois até que o leitor a selecione destrói a ordem do procedimento. Não coloque em abas uma lista curta de definições, porque cabeçalhos comuns expõem a mesma informação com menos interação. Não use abas para uma comparação detalhada de funcionalidades: uma tabela comparativa mantém os critérios simultaneamente visíveis. Não use abas como navegação entre assuntos não relacionados e não divida informações meramente porque a página parece longa.
Um acordeão é mais adequado quando as seções são perguntas independentes em um fluxo de leitura vertical ou quando várias respostas devem permanecer abertas. Páginas separadas são melhores quando cada público precisa de uma intenção de busca, título, conjunto de evidências, caminho de conversão ou mais de aproximadamente 300 palavras de conteúdo único distintos. Se um leitor precisar de todos os painéis para agir com segurança ou correção, abas são o componente errado.
Onde posicionar
Posicione o seletor após a resposta compartilhada e o parágrafo que explica por que os caminhos diferem. O leitor deve entender o assunto comum antes de escolher um rótulo. Em uma página de produto ou solução, isso geralmente significa após a proposta de valor central e a explicação da capacidade compartilhada, mas antes de provas detalhadas e da ação de fechamento principal. Em documentação, posicione-o imediatamente antes das instruções específicas da função que ele controla.
Não coloque um conjunto de abas antes da resposta direta, definição ou aviso obrigatório da página. Não o coloque entre uma afirmação e sua fonte, entre um pré-requisito e o procedimento que ele rege, ou entre um preço e suas qualificações. Esses relacionamentos devem sobreviver mesmo quando nenhum painel está selecionado. Um conjunto de abas não pode ficar ao lado de outro conjunto de abas, um acordeão, uma grade de comparação grande ou carrossel; modelos de interação adjacentes criam controles concorrentes e ordem de leitura pouco clara.
Evite abas aninhadas. A escolha externa oculta a escolha interna, cria comportamento de teclado difícil e torna o deep linking ambíguo. Evite também posicionar um seletor de persona imediatamente acima de outro seletor de público em um formulário ou CTA. Se ambos os controles usam rótulos semelhantes, os leitores podem não saber se estão mudando o conteúdo visível ou enviando uma preferência.
Anatomia
A anatomia tem um contêiner rotulado, uma lista de abas ordenada e um painel para cada aba. A captura de tela deve mostrar os painéis inativos no inspetor de DOM, bem como o estado visível, porque a presença na fonte faz parte do elemento, não um detalhe de implementação.
- Título compartilhado: Declara a pergunta ou tarefa comum que cada painel aborda.
- Lista de abas: Agrupa dois a cinco rótulos equivalentes em uma ordem de autoria estável.
- Rótulo da aba: Nomeia um público, contexto ou modo em linguagem que os leitores reconhecem.
- Estado selecionado: Comunica a aba ativa por meio de semântica de texto e um tratamento visual, não apenas por cor.
- Painel: Contém um cabeçalho autocontido e o conteúdo para um rótulo.
- Relacionamento programático:
aria-controlsna aba earia-labelledbyno painel conectam cada par. - Ordem de fallback: Mantém o título compartilhado, os rótulos e todo o conteúdo do painel significativos quando scripts ou estilos não são executados.
Espaçamento, borda, formato do indicador, animação e ponto de quebra pertencem ao renderizador. Autores controlam os rótulos, ordem na fonte, conteúdo do painel e um identificador de fragmento estável opcional.
Exemplos de design
O componente suporta quatro variantes. Cada variante usa o mesmo modelo de conteúdo e requisito de DOM.
Abas de persona: Use rótulos de função quando fluxos de trabalho, evidências ou próximas ações diferem genuinamente por leitor. Prefira linguagem estabelecida do cliente como “Equipes internas” em vez de personas inventadas como “Gurus do crescimento.”
Abas de contexto: Use estados que não são de persona, como tamanho da equipe, modelo operacional ou modo de implementação. O título compartilhado deve nomear a dimensão variável para que os rótulos não sejam confundidos com navegação da página.
Abas verticais: Use apenas quando os rótulos precisarem de mais espaço horizontal e não houver mais de cinco. A ordem no DOM e no teclado permanece aba um a aba cinco, seguidas por seus painéis associados de acordo com a implementação acessível escolhida.
Estado de viewport estreito e fallback: Os rótulos podem rolar horizontalmente quando uma dica visível torna o transbordamento óbvio, ou o renderizador pode expor os painéis como seções rotuladas empilhadas. Não deve truncar rótulos em fragmentos ambíguos ou remover conteúdo inativo do HTML.
Parâmetros
O contrato de conteúdo mantém o relacionamento explícito enquanto deixa o comportamento visual e responsivo para o renderizador.
| Nome | Tipo | Obrigatório | Mín/máx | Padrão | Origem |
|---|---|---|---|---|---|
title | String simples | Sim | 3–10 palavras; 80 caracteres no máximo | Nenhum | Primeiro cabeçalho no corpo pai |
items | Coleção ordenada | Sim | 2–5 itens; 3–4 preferível | Nenhum | Corpos de item aninhados |
item.label | String simples | Sim | 1–4 palavras; 28 caracteres no máximo | Nenhum | Atributo label do item |
item.title | String simples | Sim | 3–10 palavras; 80 caracteres no máximo | Nenhum | Primeiro cabeçalho em cada corpo de item |
item.content | Markdown limitado | Sim | 40–180 palavras recomendado; 300 no máximo | Nenhum | Corpo do item após seu primeiro cabeçalho |
item.id | Token slug | Não | 3–40 caracteres minúsculos, números e hífens | Gerado a partir de item.label | Atributo id do item |
variant | Enum | Não | horizontal ou vertical | horizontal | Atributo pai |
default | ID do item | Não | Deve corresponder a um ID de item | Primeiro item | Atributo pai |
Rótulos são atributos porque operam o controle; títulos dos painéis vêm do primeiro cabeçalho porque pertencem ao conteúdo. Os dois podem ser semelhantes, mas um rótulo de aba conciso pode mapear para um cabeçalho de painel mais completo e extraível. Corpos de painel permitem parágrafos, uma lista curta, código inline, uma imagem e uma ação contextual. Eles não permitem outro conjunto de abas, acordeão, tabela de dados, formulário, player de vídeo ou procedimento de várias etapas.
Sintaxe e exemplos de código
As três notações preservam um título, rótulos ordenados, cabeçalhos de painel, corpos de painel, IDs estáveis e o padrão inicial. A diretiva Markdown portátil é a forma canônica de autoria.
Diretiva Markdown portátil
:::tabs-persona-switcher{default=content-teams variant=horizontal}
## Escolha sua equipe
::item{label="Equipes de conteúdo" id=content-teams}
### Transforme o briefing em um rascunho reproduzível
Comece com a resposta, evidência e conjunto de elementos exigidos. Redija o raciocínio por completo antes de aplicar componentes.
::
::item{label="Equipes de SEO" id=seo-teams}
### Verifique descoberta e extração
Inspecione o HTML renderizado, links internos, cabeçalhos e campos estruturados. Confirme que cada painel chega na resposta inicial.
::
::item{label="Líderes de equipe" id=team-leaders}
### Revise o sistema, não apenas a página
Aprove a promessa compartilhada uma vez, depois revise onde cada público realmente precisa de um fluxo de trabalho, ponto de prova ou próxima ação diferente.
::
:::
O primeiro cabeçalho do corpo pai mapeia para title. Cada item aninhado recebe label e id dos atributos, mapeia seu primeiro cabeçalho para item.title e o restante para item.content.
Shortcode Hugo
{{< tabs-persona-switcher title="Choose your team" default="content-teams" variant="horizontal" >}}
{{< tab-item label="Content teams" id="content-teams" title="Turn the brief into a repeatable draft" >}}
Start with the required answer, evidence, and element set. Draft the reasoning in full before applying components.
{{< /tab-item >}}
{{< tab-item label="SEO teams" id="seo-teams" title="Verify discovery and extraction" >}}
Inspect the rendered HTML, internal links, headings, and structured fields. Confirm that every panel arrives in the initial response.
{{< /tab-item >}}
{{< tab-item label="Team leaders" id="team-leaders" title="Review the system, not just the page" >}}
Approve the shared promise once, then review where each audience genuinely needs a different workflow, proof point, or next action.
{{< /tab-item >}}
{{< /tabs-persona-switcher >}}
O adaptador usa apenas parâmetros nomeados. Ele deve renderizar todos os corpos dos itens durante a resposta do servidor, rejeitar IDs duplicados e inicializar a interação sem reescrever o modelo de conteúdo.
Bloco WordPress
<!-- wp:amicited/tabs-persona-switcher {"title":"Choose your team","default":"content-teams","variant":"horizontal"} -->
<!-- wp:amicited/tab-item {"label":"Content teams","id":"content-teams","title":"Turn the brief into a repeatable draft"} -->
<p>Start with the required answer, evidence, and element set. Draft the reasoning in full before applying components.</p>
<!-- /wp:amicited/tab-item -->
<!-- wp:amicited/tab-item {"label":"SEO teams","id":"seo-teams","title":"Verify discovery and extraction"} -->
<p>Inspect the rendered HTML, internal links, headings, and structured fields. Confirm that every panel arrives in the initial response.</p>
<!-- /wp:amicited/tab-item -->
<!-- wp:amicited/tab-item {"label":"Team leaders","id":"team-leaders","title":"Review the system, not just the page"} -->
<p>Approve the shared promise once, then review where each audience genuinely needs a different workflow, proof point, or next action.</p>
<!-- /wp:amicited/tab-item -->
<!-- /wp:amicited/tabs-persona-switcher -->
O WordPress deve limitar blocos internos a itens de aba registrados. A visualização, a marcação salva e a renderização no front-end devem reter cada painel; a conveniência do editor não deve transformar itens inativos em conteúdo buscado pelo cliente.
Exemplos
Exemplo bom
Escolha um caminho de implementação
Plataforma hospedada — Lançamento sem manter infraestrutura
Conecte a fonte de dados aprovada, configure funções e valide a saída em um ambiente de staging. O fornecedor mantém atualizações e monitoramento de runtime; sua equipe é responsável pela aprovação de conteúdo e revisão de acesso.
Auto-hospedado — Controle de implantação e limites de dados
Implante o pacote suportado em seu ambiente, conecte a mesma fonte de dados aprovada e designe um responsável por atualizações, monitoramento, backups e revisão de acesso.
Isso funciona porque ambos os painéis respondem à mesma pergunta de implementação, nomeiam a diferença operacional e contêm responsabilidades comparáveis. “Plataforma hospedada” e “Auto-hospedado” são rótulos reconhecíveis. A decisão compartilhada permanece clara se ambos os painéis forem aplanados na ordem da fonte.
Exemplo ruim
Explore tudo
Visão geral: Nossa plataforma torna equipes modernas mais eficazes.
Preços: Entre em contato com vendas para um orçamento personalizado e condições contratuais importantes.
Segurança: Leia nossa documentação de segurança.
Carreiras: Junte-se à nossa equipe em crescimento.
Isso é navegação do site disfarçada de abas. Os painéis não respondem a uma pergunta compartilhada, os rótulos misturam informações do comprador com conteúdo corporativo e condições importantes de preços estão ocultas atrás de uma interação. Substitua o conjunto por seções de página comuns e navegação real. Se as opções de preço precisam de avaliação simultânea, use uma estrutura de preços ou comparação em vez de abas.
Marcação Schema e acessibilidade
Abas e seletores de persona não criam um tipo Schema.org dedicado. Seu conteúdo permanece parte do Article, TechArticle, Product ou WebPage envolvente quando essa página se qualifica independentemente. Não marque abas como ItemList meramente por serem repetidas e não gere múltiplas entidades Person a partir de rótulos de persona. Um rótulo como “Agência” descreve um caminho do leitor, não uma afirmação factual de entidade.
Use o padrão de abas WAI-ARIA apenas quando a interface realmente se comporta como abas. O contêiner tem role="tablist"; cada controle tem role="tab", um ID único, aria-controls e um valor aria-selected preciso; cada painel tem role="tabpanel" e aria-labelledby. Use botões para controles, não links com destinos falsos. A aba selecionada pertence à ordem de tabulação da página; abas inativas usam tabindex="-1" móvel e permanecem alcançáveis com teclas de seta. Home e End movem para a primeira e última aba. A ativação pode seguir o foco apenas quando a troca de painel é imediata; caso contrário, Enter ou Espaço ativa a aba focada.
O foco deve permanecer previsível. Selecionar uma aba não empurra o foco para dentro de seu painel automaticamente. Um painel pode usar tabindex="0" quando seu primeiro conteúdo não é focável de outra forma, permitindo que usuários de teclado entrem nele. Um indicador de foco visível e um indicador de seleção devem ser diferentes, e nenhum pode depender apenas de cor.
Todos os painéis devem ser renderizados na resposta HTML inicial. Ocultar painéis inativos com hidden, CSS ou um equivalente progressivamente aprimorado é aceitável; criá-los apenas após um clique não é. Sem JavaScript, o fallback deve expor cada painel rotulado na ordem da fonte ou fornecer links reais para destinos renderizados pelo servidor. Fragmentos estáveis podem ativar um painel, mas a página canônica permanece uma URL. Teste zoom, telas estreitas, rótulos traduzidos longos, relacionamentos de leitor de tela, ordem de teclado e falha de script.
Regras de escrita
Comece com a pergunta compartilhada. Se cada painel proposto responde a uma pergunta diferente, não use abas. Escreva de dois a cinco itens, com três ou quatro preferível. Mantenha os rótulos de uma a quatro palavras e 28 caracteres quando possível. Use gramática paralela: todas as funções (“Editores / Revisores”), todos os modos (“Hospedado / Auto-hospedado”) ou todas as etapas (“Planejar / Produzir / Medir”). Não misture uma função, um verbo e uma frase de marketing.
Dê a cada painel um cabeçalho de 3 a 10 palavras que nomeie tanto o caminho relevante quanto seu resultado quando o rótulo da aba sozinho for insuficiente. Escreva de 40 a 180 palavras por painel, com 300 como máximo absoluto. Os painéis devem ter profundidade comparável, mas não precisam ter contagens de palavras idênticas. Use linguagem direta e diferenças concretas em tarefas, evidências, permissões, restrições ou ações. Mudar apenas os pronomes de “você” para “sua equipe” não justifica outro painel.
Mantenha informações comuns fora do elemento. Repetir a mesma frase de abertura em cada painel cria desvio de manutenção e faz com que passagens extraídas pareçam duplicadas. Coloque diferenças dentro dos painéis e torne cada diferença explícita o suficiente para sobreviver à extração. Prefira “Equipes de agência podem atribuir funções no nível do cliente” a “Você tem mais controle,” que perde seu sujeito quando separado do rótulo selecionado.
Nunca coloque estes itens dentro de um conjunto de abas:
- A única definição, resposta direta, conclusão, aviso de segurança, qualificação legal, regra de elegibilidade ou atribuição de fonte da página.
- Etapas sequenciais que todo leitor deve concluir, ou pré-requisitos que regem conteúdo fora de um painel.
- Outro conjunto de abas, acordeão, carrossel, tabela de dados complexa, formulário com vários campos ou mídia com reprodução automática.
- Mais de uma chamada para ação primária por painel, ou ações que levam a estágios de funil não relacionados.
- Conteúdo carregado apenas após interação, mesmo quando o estado de carregamento é rápido para um usuário humano.
- Rótulos como “Outro”, “Mais”, “Geral” ou “Recursos” que ocultam um relacionamento indefinido.
Se cada painel excede 300 palavras, precisa de seu próprio conjunto de evidências ou visa uma intenção de busca diferente, publique seções ou páginas dedicadas. Se os leitores precisam comparar vários critérios ao mesmo tempo, use uma tabela. Se o conteúdo é meramente detalhe opcional, use prosa ou um acordeão de acordo com o relacionamento.
Tipos de post que o utilizam
O campo postTypes no frontmatter é a fonte desta tabela. A inclusão significa que o formato pode suportar abas; não as torna obrigatórias.
| Tipo de post | Uso típico | Posição recomendada | Mau uso comum |
|---|---|---|---|
| Guia definitivo | Aplicação específica por função de um framework compartilhado | Após o framework ser explicado em prosa visível | Ocultar capítulos necessários para fazer um guia longo parecer mais curto |
| Artigo de documentação | Instruções que diferem por função, ambiente ou modo suportado | Após pré-requisitos compartilhados e antes de ações específicas do caminho | Colocar etapas consecutivas em painéis separados |
| Página de produto | Resultados ou fluxos de trabalho para públicos qualificados distintos | Após a promessa e capacidade compartilhadas do produto | Ocultar preço, termos ou limitações em um painel inativo |
| Página de funcionalidade | Uma capacidade aplicada por diferentes equipes ou modos de operação | Após a explicação comum da funcionalidade | Repetir benefícios idênticos com nomes de persona trocados |
| Página de solução | Responsabilidades de diferentes partes interessadas dentro de uma solução | Após o problema e a abordagem compartilhada | Misturar indústrias, cargos e recursos não relacionados em um único controle |
| Página de caso de uso | Caminhos de execução para segmentos de público que compartilham o caso de uso | Após o resultado comum e antes de provas detalhadas | Usar abas quando cada público realmente precisa de uma página de intenção dedicada |
Checklist de QA
- Uma pergunta compartilhada: Cada painel responde à mesma pergunta delimitada para um público, contexto ou modo diferente.
- Quantidade apropriada: O conjunto contém de duas a cinco abas, preferencialmente três ou quatro, com rótulos paralelos concisos.
- Resposta comum visível: A definição, resposta principal, qualificação obrigatória e conclusão permanecem fora do conjunto de abas.
- Presença no DOM inicial: Cada painel e seu conteúdo completo de autoria aparecem no HTML inicial renderizado pelo servidor.
- Contexto explícito: Cada cabeçalho de painel e frase de abertura permanecem compreensíveis quando extraídos sem o estado visual da aba.
- Relacionamentos corretos: Os IDs das abas e painéis são únicos;
aria-controlsearia-labelledbyos pareiam corretamente. - Comportamento de teclado: O comportamento das teclas de seta, Home, End, Enter, Espaço, Tab e Shift+Tab corresponde ao modelo de ativação escolhido.
- Clareza de foco: Foco e seleção são visualmente distintos, e a seleção não move o foco inesperadamente.
- Fallback estável: Falha de script expõe conteúdo rotulado ou destinos renderizados pelo servidor utilizáveis sem perder informação.
- Comportamento responsivo: Os rótulos permanecem completos e detectáveis em larguras estreitas, zoom de 200% e com texto traduzido mais longo.
- Posicionamento seguro: O componente não separa uma afirmação da evidência, um aviso de seu escopo, ou pré-requisitos das instruções.
- Sem aninhamento complexo: Os painéis contêm prosa delimitada e conteúdo de suporte simples, não outro sistema de interação.
- Moderação de schema: O renderizador não inventa schema de lista, pessoa ou público a partir de rótulos de apresentação.
- Paridade de notação: Markdown, Hugo e WordPress preservam a mesma ordem, IDs, padrão, rótulos, cabeçalhos e corpos de painel.
Um revisor deve rejeitar o componente quando o conteúdo inativo requer uma requisição de rede acionada por clique, quando informações essenciais existem apenas dentro de um painel, ou quando os rótulos não descrevem caminhos equivalentes. Essas são falhas de conteúdo e arquitetura; refinamento visual não pode repará-las.
FAQ
As entradas estruturadas de FAQ no frontmatter abordam indexação, URLs de fragmento, quantidade de abas, chamadas para ação e a distinção entre abas e acordeões. Elas estão intencionalmente fora do elemento interativo para que cada leitor e renderizador receba a mesma orientação de implementação.
Mais tutoriais nesta seção
Pronto para colocar em prática?
Verificação gratuita · Teste de 7 dias · sem cartão de crédito