Gerador de FAQ Accordion HTML
Gera HTML semântico (details/summary) para FAQ com perguntas e respostas pareadas. Pronto para colar em qualquer site.
FAQ accordion acessível com HTML semântico
Um FAQ em formato accordion é o padrão de interface em que cada pergunta colapsa em uma única linha e o visitante expande para revelar a resposta. O padrão mantém páginas longas escaneáveis, reduz o ruído visual acima da dobra e permite que o usuário pule direto para a dúvida que interessa. Até pouco tempo cada implementação dependia de JavaScript para alternar aria-expanded, gerenciar foco e animar o painel. Navegadores modernos trazem um elemento nativo que resolve quase tudo isso de graça: o par <details> + <summary> é totalmente acessível por teclado (Enter e Espaço alternam, Tab move o foco, o estado é anunciado por leitores de tela) e renderiza sem uma única linha de script.
Um bloco típico fica assim:
<details class="faq">
<summary>Como instalo o pacote?</summary>
<p>Rode <code>npm install acme</code> na raiz do projeto.</p>
</details>
Estilizando o marcador de disclosure
Por padrão o navegador desenha um pequeno triângulo ao lado do summary. Para escondê-lo use summary::-webkit-details-marker { display: none } no WebKit e summary { list-style: none } no Firefox, e em seguida adicione seu próprio SVG ou pseudo-elemento. Use o seletor details[open] para estilizar o estado aberto — rotacionar um chevron, mudar o fundo ou trocar a cor do texto para comunicar o estado.
Animando abrir e fechar
O <details> nativo abre instantaneamente, sem transição. Para animar, a alternativa mais estável é envolver a resposta em uma div interna, consultar scrollHeight no toggle e fazer transição em max-height. Uma spec futura (interest-target e o pseudo-elemento ::details-content) permitirá animação só com CSS, mas o suporte ainda é parcial em 2026.
Dados estruturados para rich results
Complemente a marcação com JSON-LD usando Schema.org FAQPage para que buscadores entendam a lista de Q&A:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Como instalar?",
"acceptedAnswer": { "@type": "Answer", "text": "Rode npm install acme." }
}]
}
</script>
Ressalva importante: em agosto de 2023 o Google restringiu o rich snippet de FAQ na SERP apenas a domínios governamentais e de saúde com autoridade. Os dados estruturados continuam úteis para outros crawlers, assistentes de voz e busca interna, mas não conte mais com o destaque na SERP em um site comercial comum.
Perguntas frequentes
Devo usar <details> ou um accordion em JavaScript? Comece pelo <details>. Ele é acessível por padrão, menor, mais rápido e continua funcionando se o JS falhar. Só recorra a um componente de framework (Headless UI, Radix Accordion, Material UI) quando precisar de transições animadas, comportamento "um aberto por vez" ou tema profundamente customizado.
O schema de FAQ ainda ajuda no SEO? Indiretamente. O Google raramente mostra o rich result em sites não autoritativos hoje, mas o JSON-LD continua alimentando extração de entidades, ajuda em busca por voz e é consumido por Bing e outros buscadores.
Como abrir um painel e fechar os outros automaticamente? Dê a todos os <details> o mesmo atributo name — navegadores modernos passam a tratá-los como um grupo exclusivo, reproduzindo o comportamento clássico de accordion.
Posso deixar um painel aberto por padrão? Sim, basta adicionar o atributo booleano open no <details> desejado.
Ferramentas Relacionadas
Banner de Cookies HTML
Gere um banner de consentimento de cookies em HTML com botão de aceitar, pronto para colar no seu site e ajudar na conformidade com a LGPD.
Página Manutenção HTML
Gere uma página de manutenção em HTML com visual limpo e mensagem personalizável. Pronta para publicar enquanto seu site fica temporariamente fora do ar.
Gerador de link rel=prefetch
Monta a tag link rel=prefetch para baixar recursos antecipadamente. Acelera próxima navegação.