🏗️ Estrutura Básica do Documento
Fundamentos para a criação de qualquer página HTML, incluindo a declaração do documento, metadados essenciais e os elementos base do corpo.
Declaração DOCTYPE
Declara o tipo de documento e a versão do HTML que o navegador deve usar para renderizar a página. Essencial para garantir o modo de renderização padrão do HTML5 e evitar o modo "quirks", que pode causar inconsistências visuais.
Quando usar: Ao iniciar qualquer documento HTML para definir a versão do HTML.
Elemento Raiz HTML
O elemento raiz de toda a página HTML. O atributo `lang` define o idioma principal do conteúdo do documento (neste caso, Português do Brasil), o que é crucial para acessibilidade (leitores de tela) e para motores de busca (SEO).
Quando usar: Sempre como o primeiro elemento dentro do DOCTYPE.
Metadados do Documento (Head)
Contém metadados sobre o documento, como título, links para folhas de estilo, scripts, informações de SEO e outras configurações que não são exibidas diretamente na página, mas são importantes para o navegador e motores de busca.
Quando usar: Para incluir todas as informações não visíveis da página.
Conteúdo Visível (Body)
Contém todo o conteúdo visível da página web, incluindo texto, imagens, links, vídeos e outros elementos interativos. Tudo o que o usuário vê e interage está dentro desta tag.
Quando usar: Para envolver todo o conteúdo que será exibido no navegador.
Codificação de Caracteres
Define a codificação de caracteres do documento como UTF-8, que suporta a maioria dos caracteres em todos os idiomas, incluindo acentos e caracteres especiais. Garante que o texto seja exibido corretamente em diferentes sistemas operacionais e navegadores.
Quando usar: Sempre no início do <head> para evitar problemas de codificação.
Configuração de Viewport
Configura a viewport para dispositivos móveis, controlando a largura da área visível (`width=device-width`) e o nível de zoom inicial (`initial-scale=1.0`). Essencial para garantir que o design da página seja responsivo e se adapte a diferentes tamanhos de tela.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Quando usar: Em todas as páginas para garantir responsividade em dispositivos móveis.
Títulos, Parágrafos e Quebras
Elementos essenciais para estruturar o texto, definir hierarquia de títulos e controlar o fluxo de conteúdo.
Títulos de Seção (H1-H6)
Define títulos de diferentes níveis de importância. `<h1>` é o título mais importante (geralmente o título principal da página), e `<h6>` é o menos importante. Usados para estruturar o conteúdo semanticamente e são relevantes para SEO.
Quando usar: Para definir a hierarquia e estrutura de cabeçalhos em seu conteúdo.
Parágrafo de Texto
Representa um parágrafo de texto. É o elemento fundamental para blocos de texto em um documento HTML, separando o conteúdo em unidades legíveis.
Quando usar: Para qualquer bloco de texto que forma um parágrafo.
Quebra de Linha
Insere uma quebra de linha simples, movendo o conteúdo subsequente para a próxima linha sem criar um novo parágrafo. Usado para quebras de linha dentro do mesmo bloco de texto (e.g., em um endereço).
Quando usar: Quando uma quebra de linha é necessária, mas um novo parágrafo não é semanticamente apropriado.
Linha Horizontal (Quebra Temática)
Representa uma quebra temática entre parágrafos de conteúdo, indicando uma mudança de assunto ou seção. Geralmente renderizada como uma linha horizontal pelo navegador, mas seu propósito é semântico.
Quando usar: Para indicar uma mudança de tópico ou seção dentro do conteúdo.
Formatação e Ênfase de Texto
Tags para aplicar formatação e dar significado semântico a partes específicas do texto.
Texto Importante (Strong)
Indica que o texto contido é de grande importância, relevância ou urgência. Geralmente renderizado em negrito pelos navegadores. Possui um significado semântico mais forte que apenas `<b>`.
Quando usar: Para destacar conteúdo crítico ou de alta prioridade.
Texto Enfatizado (Emphasized)
Indica que o texto contido deve ser enfatizado, geralmente para dar um significado diferente ou para expressar um tom. Geralmente renderizado em itálico pelos navegadores. Possui um significado semântico mais forte que apenas `<i>`.
Quando usar: Para dar ênfase a uma palavra ou frase que muda o sentido da sentença.
Texto Destacado (Mark)
Destaca ou realça um trecho de texto, como se fosse marcado com um marcador de texto amarelo. Usado para chamar a atenção para partes específicas do conteúdo que são relevantes para o contexto atual do usuário.
Quando usar: Para realçar texto relevante em um contexto específico, como resultados de busca.
Texto Menor (Small)
Representa comentários secundários, direitos autorais, textos de rodapé e outras informações que são consideradas "pequenas" em relação ao texto principal. Geralmente renderizado com uma fonte menor.
Quando usar: Para informações de copyright, avisos legais ou texto de rodapé.
Texto Deletado (Deleted)
Representa texto que foi excluído de um documento ou que não é mais relevante. Geralmente renderizado com uma linha sobre o texto (tachado), indicando que foi removido.
Quando usar: Para mostrar alterações em um documento, como preços antigos.
Texto Inserido (Inserted)
Representa texto que foi inserido em um documento. Geralmente renderizado com um sublinhado, indicando que foi adicionado. Usado em conjunto com `<del>` para mostrar revisões.
Quando usar: Para mostrar texto que foi adicionado a um documento revisado.
Links e Imagens
Elementos para criar hiperlinks e incorporar imagens em páginas web, essenciais para navegação e conteúdo visual.
Link Básico (Anchor)
Cria um hiperlink para outra página, recurso ou parte do mesmo documento. O atributo `href` (Hypertext REFerence) especifica o URL de destino para onde o link aponta.
Quando usar: Para criar links de navegação ou referências externas.
Link em Nova Aba
Cria um hiperlink que, ao ser clicado, abre o recurso especificado em uma nova aba ou janela do navegador. O atributo `target="_blank"` é usado para este comportamento.
<a href="url" target="_blank">
Quando usar: Para abrir links externos sem tirar o usuário da página atual.
Incorporar Imagem
Incorpora uma imagem no documento. O atributo `src` (SouRCe) especifica o caminho para o arquivo da imagem, e `alt` (ALTernative text) fornece uma descrição textual alternativa, essencial para acessibilidade (leitores de tela) e SEO.
<img src="caminho" alt="descrição">
Quando usar: Para exibir imagens em sua página.
Imagens Responsivas (Picture)
Um container que permite especificar múltiplas fontes de imagem (`<source>`) para diferentes condições (como tamanhos de tela, densidades de pixel ou formatos de imagem), e um elemento `<img>` como fallback. Ajuda a otimizar o carregamento de imagens e a adaptá-las a diversos dispositivos.
Quando usar: Para servir imagens otimizadas para diferentes viewports ou formatos.
🎯 Elementos Semânticos de Estrutura
Elementos que fornecem significado estrutural ao conteúdo, melhorando a acessibilidade, SEO e a manutenção do código.
Cabeçalho da Página/Seção
Representa o conteúdo introdutório de uma seção ou de todo o documento, geralmente contendo títulos, logotipos, navegação e/ou um campo de busca. Não deve ser confundido com os títulos `<h1>-<h6>`.
Quando usar: Para agrupar elementos introdutórios, como o topo de uma página ou seção.
Navegação Principal
Representa uma seção de links de navegação, como menus, índices ou tabelas de conteúdo. Destinado a navegação principal do site ou de uma seção importante.
Quando usar: Para envolver blocos de links de navegação primária.
Conteúdo Principal
Representa o conteúdo dominante do `<body>` do documento. Deve haver apenas um elemento `<main>` por documento e seu conteúdo deve ser único para aquela página, excluindo barras laterais, navegação, etc.
Quando usar: Para delimitar o conteúdo principal e único de sua página.
Seção Genérica
Representa uma seção genérica de conteúdo tematicamente agrupado. Geralmente contém um título (h1-h6) e pode ser usado para dividir o conteúdo principal em partes lógicas e coerentes.
Quando usar: Para agrupar conteúdo relacionado que forma uma seção lógica.
Conteúdo Independente (Article)
Representa um conteúdo independente e autossuficiente, como um post de blog, um artigo de jornal, um comentário de usuário ou um widget interativo. Pode ser distribuído e reutilizado independentemente do resto da página.
Quando usar: Para conteúdo que pode ser lido de forma independente, como um artigo de blog.
Conteúdo Secundário (Aside)
Representa um conteúdo que é tangencialmente relacionado ao conteúdo principal do documento, mas que pode ser considerado separado. Frequentemente usado para barras laterais, caixas de citação ou blocos de anúncios.
Quando usar: Para barras laterais, caixas de citação ou informações relacionadas.
Rodapé da Página/Seção
Representa o rodapé de uma seção ou de todo o documento. Geralmente contém informações sobre o autor, direitos autorais, links relacionados, informações de contato ou navegação secundária.
Quando usar: Para agrupar informações de rodapé, como direitos autorais e links de contato.
Elementos de Texto Semântico
Tags que adicionam significado estrutural e contextual a blocos de texto específicos.
Citação Longa (Blockquote)
Indica que o texto contido é uma citação longa de outra fonte. Geralmente renderizado com um recuo pelo navegador. O atributo `cite` pode ser usado para apontar para a fonte da citação.
Quando usar: Para citar blocos de texto de outras fontes.
Título de Obra (Cite)
Usado para citar o título de uma obra criativa (livro, filme, música, pintura, etc.) ou o nome da fonte de uma citação. O conteúdo é geralmente renderizado em itálico.
Quando usar: Para referenciar o título de uma obra citada.
Código de Computador
Exibe um pequeno fragmento de código de computador. O conteúdo é geralmente renderizado em uma fonte monoespaçada, indicando que é código. Pode ser usado dentro de `<pre>` para blocos maiores de código.
Quando usar: Para exibir trechos de código inline ou dentro de um parágrafo.
Texto Pré-formatado
Exibe texto pré-formatado. O texto dentro desta tag é exibido em uma fonte monoespaçada e mantém espaços em branco e quebras de linha exatamente como foram escritos no código-fonte. Útil para exibir código ou arte ASCII.
Quando usar: Para exibir blocos de código ou texto que requerem formatação exata.
Abreviação
Representa uma abreviação ou um acrônimo. O atributo `title` pode ser usado para fornecer a expansão completa da abreviação, melhorando a acessibilidade e a compreensão do usuário.
Quando usar: Para marcar abreviações e fornecer seu significado completo.
Informações de Contato
Fornece informações de contato para o autor/proprietário do documento ou da seção mais próxima. Pode incluir nome, endereço físico, e-mail, telefone, URL, etc.
Quando usar: Para exibir informações de contato de forma semântica.
Mídia e Conteúdo Embutido
Elementos para incorporar figuras, legendas e outros tipos de conteúdo externo na página.
Container de Figura
Usado para agrupar conteúdo auto-contido, como imagens, diagramas, fotos, blocos de código, etc., juntamente com sua legenda (`<figcaption>`), tornando-o independente do fluxo principal do documento e referenciável.
Quando usar: Para agrupar uma imagem, código ou outro conteúdo com sua legenda.
Legenda da Figura
Fornece uma legenda ou descrição para o conteúdo de um elemento `<figure>`. Deve ser o primeiro ou o último filho de um `<figure>`.
Quando usar: Para adicionar uma legenda descritiva a um elemento <figure>.
Conteúdo Externo (Iframe)
Incorpora outro documento HTML dentro do documento atual. Usado para exibir conteúdo de outras fontes, como vídeos do YouTube, mapas do Google ou conteúdo de outros sites, de forma isolada.
Quando usar: Para incorporar conteúdo de outras fontes ou documentos HTML.
Conteúdo Embutido (Embed)
Incorpora conteúdo externo de um ponto de inserção especificado no documento. Usado para integrar plugins de terceiros ou conteúdo que não é HTML, como PDFs, arquivos de áudio/vídeo ou animações Flash (embora seu uso tenha diminuído).
Quando usar: Para incorporar conteúdo de plugins externos ou mídias não HTML.
Objeto Multimídia (Object)
Incorpora um objeto externo (como um plugin, PDF, Flash ou mesmo outro documento HTML) no documento HTML. Oferece mais opções de fallback e controle de conteúdo do que `<embed>`, mas é menos comum hoje em dia.
Quando usar: Para incorporar objetos externos com mais controle sobre fallbacks.
📋 Tipos de Listas
Elementos para organizar informações em listas ordenadas, não ordenadas ou de definição.
Lista Não Ordenada
Cria uma lista não ordenada de itens. Os itens da lista são geralmente marcados com marcadores (bolinhas, quadrados, etc.), indicando que a ordem não é semanticamente importante.
Quando usar: Para listas onde a ordem dos itens não é relevante (e.g., lista de compras).
Lista Ordenada
Cria uma lista ordenada de itens. Os itens da lista são geralmente marcados com números ou letras, indicando uma sequência ou hierarquia.
Quando usar: Para listas onde a ordem dos itens é importante (e.g., passos de uma receita).
Item de Lista
Representa um item individual dentro de uma lista (`<ul>` ou `<ol>`). Deve ser um filho direto de `<ul>`, `<ol>` ou `<menu>`.
Quando usar: Para cada item dentro de uma lista ordenada ou não ordenada.
Lista de Definição
Cria uma lista de definição, que é uma lista de termos e suas respectivas descrições. Útil para glossários, perguntas e respostas ou metadados.
Quando usar: Para criar glossários ou listas de termos e suas definições.
Termo de Definição
Representa um termo a ser definido dentro de uma lista de definição (`<dl>`). Cada `<dt>` é geralmente seguido por um ou mais elementos `<dd>`.
Quando usar: Para definir o termo em uma lista de definição.
Descrição de Definição
Representa a descrição ou definição de um termo (`<dt>`) dentro de uma lista de definição (`<dl>`).
Quando usar: Para fornecer a descrição ou explicação de um termo em uma lista de definição.
Atributos de Listas
Atributos para personalizar a aparência e o comportamento de listas ordenadas e não ordenadas.
Lista Numerada Padrão
Define uma lista ordenada que usa números arábicos (1, 2, 3...) como marcadores. Este é o tipo padrão e pode ser omitido.
Quando usar: Para listas ordenadas com numeração padrão.
Lista com Letras Maiúsculas
Define uma lista ordenada que usa letras maiúsculas (A, B, C...) como marcadores para os itens da lista.
Quando usar: Para listas ordenadas que usam letras maiúsculas como marcadores.
Lista com Letras Minúsculas
Define uma lista ordenada que usa letras minúsculas (a, b, c...) como marcadores para os itens da lista.
Quando usar: Para listas ordenadas que usam letras minúsculas como marcadores.
Lista com Algarismos Romanos
Define uma lista ordenada que usa algarismos romanos maiúsculos (I, II, III...) como marcadores para os itens da lista.
Quando usar: Para listas ordenadas que usam algarismos romanos como marcadores.
Início da Lista Ordenada
Inicia a contagem de uma lista ordenada a partir de um número específico (neste caso, 5), em vez de começar do 1. O valor pode ser qualquer número inteiro.
Quando usar: Para continuar uma lista de um ponto específico ou quando a ordem lógica exige um início diferente.
Lista Sem Marcadores
Remove os marcadores padrão de uma lista não ordenada, permitindo customização completa via CSS. Este é um exemplo de estilo inline, mas é preferível usar CSS externo.
<ul style="list-style-type: none;">
Quando usar: Quando você quer remover os marcadores padrão e estilizar a lista com CSS.
Estrutura de Tabelas
Elementos fundamentais para criar e organizar dados em formato tabular.
Container da Tabela
O container principal para dados tabulares. Define uma tabela HTML, agrupando todos os seus elementos (cabeçalho, corpo, rodapé, linhas e células).
Quando usar: Para criar qualquer tabela de dados.
Cabeçalho da Tabela
Agrupa o conteúdo do cabeçalho de uma tabela. Contém as informações de cabeçalho das colunas, geralmente usando elementos `<th>`.
Quando usar: Para definir o cabeçalho semântico de uma tabela.
Corpo da Tabela
Agrupa o conteúdo do corpo de uma tabela. Contém as linhas de dados principais da tabela, usando elementos `<tr>` e `<td>`.
Quando usar: Para definir o corpo principal de dados de uma tabela.
Rodapé da Tabela
Agrupa o conteúdo do rodapé de uma tabela. Geralmente contém resumos, totais ou informações adicionais relacionadas aos dados do corpo da tabela.
Quando usar: Para definir o rodapé semântico de uma tabela, como totais ou notas.
Linha da Tabela
Define uma linha de células em uma tabela (Table Row). Cada `<tr>` deve conter um ou mais elementos `<th>` (células de cabeçalho) ou `<td>` (células de dados).
Quando usar: Para cada nova linha de dados ou cabeçalho na tabela.
Célula de Cabeçalho
Define uma célula de cabeçalho em uma tabela (Table Header). O conteúdo é geralmente centralizado e em negrito por padrão, e semanticamente representa um cabeçalho para uma coluna ou linha, melhorando a acessibilidade.
Quando usar: Para células que servem como cabeçalhos de colunas ou linhas.
Célula de Dados
Define uma célula de dados padrão em uma tabela (Table Data). Contém o dado real da tabela. É o elemento mais básico para exibir conteúdo dentro de uma linha.
Quando usar: Para cada célula de dados comum em uma tabela.
Atributos de Tabelas
Atributos para controlar a apresentação e o layout das células em tabelas HTML.
Borda da Tabela (Obsoleto)
Adiciona uma borda de 1 pixel ao redor da tabela e de suas células. Este atributo é obsoleto no HTML5; o estilo de bordas deve ser aplicado exclusivamente via CSS para melhor separação de responsabilidades.
Quando usar: Evitar o uso. Preferir CSS para estilização de bordas.
Mesclar Colunas (Colspan)
Faz com que uma célula de dados ocupe (mescle) duas ou mais colunas adjacentes na tabela. O valor do atributo indica o número de colunas a serem mescladas.
Quando usar: Para mesclar células horizontalmente, abrangendo múltiplas colunas.
Mesclar Linhas (Rowspan)
Faz com que uma célula de dados ocupe (mescle) três ou mais linhas adjacentes na tabela. O valor do atributo indica o número de linhas a serem mescladas.
Quando usar: Para mesclar células verticalmente, abrangendo múltiplas linhas.
Escopo de Cabeçalho (Coluna)
Indica que a célula de cabeçalho (`<th>`) fornece um cabeçalho para todas as células na mesma coluna. Essencial para acessibilidade, pois leitores de tela podem associar dados a seus respectivos cabeçalhos.
Quando usar: Para indicar que um <th> é o cabeçalho de uma coluna inteira.
Escopo de Cabeçalho (Linha)
Indica que a célula de cabeçalho (`<th>`) fornece um cabeçalho para todas as células na mesma linha. Essencial para acessibilidade, especialmente em tabelas complexas.
Quando usar: Para indicar que um <th> é o cabeçalho de uma linha inteira.
Campos de Entrada Básicos
Tipos de campos de entrada mais comuns para coletar diferentes tipos de dados do usuário.
Campo de Texto
Cria um campo de entrada de texto de linha única para dados gerais, como nomes, sobrenomes ou endereços curtos.
Quando usar: Para entrada de texto genérico de linha única.
Campo de E-mail
Cria um campo de entrada para endereços de e-mail. Os navegadores podem oferecer validação básica de formato de e-mail e, em dispositivos móveis, ativar um teclado otimizado para e-mails.
Quando usar: Para coletar endereços de e-mail.
Campo de Senha
Cria um campo de entrada para senhas. Os caracteres digitados são mascarados (geralmente com asteriscos ou pontos) para ocultar a entrada, mas o valor é enviado como texto simples.
Quando usar: Para coletar senhas ou informações sensíveis que devem ser mascaradas.
Campo Numérico
Cria um campo de entrada para números. Os navegadores podem exibir controles para aumentar/diminuir o valor (spin buttons) e validar que a entrada é numérica. Pode usar atributos `min`, `max`, `step`.
Quando usar: Para coletar entradas numéricas, como idade ou quantidade.
Campo de Telefone
Cria um campo de entrada para números de telefone. Em dispositivos móveis, pode ativar um teclado numérico otimizado. Não possui validação de formato de telefone nativa, que deve ser feita com `pattern` ou JavaScript.
Quando usar: Para coletar números de telefone.
Campo de URL
Cria um campo de entrada para URLs. Os navegadores podem oferecer validação básica de formato de URL. Em dispositivos móveis, pode ativar um teclado otimizado para URLs.
Quando usar: Para coletar endereços de websites ou links.
🚀 Campos HTML5 Modernos
Novos tipos de campos de entrada introduzidos no HTML5 para coletar dados específicos com validação e interfaces de usuário aprimoradas.
Seletor de Data
Cria um campo de entrada para selecionar uma data (dia, mês, ano). Os navegadores geralmente fornecem um seletor de calendário (date picker) nativo para facilitar a seleção.
Quando usar: Para coletar uma data específica do usuário.
Seletor de Hora
Cria um campo de entrada para selecionar uma hora (horas e minutos). Os navegadores podem oferecer um controle de tempo otimizado.
Quando usar: Para coletar um horário específico do usuário.
Seletor de Data e Hora Local
Cria um campo de entrada para selecionar uma data e hora local, sem informações de fuso horário. Combina as funcionalidades de `type="date"` e `type="time"`.
<input type="datetime-local">
Quando usar: Para coletar uma data e hora local combinadas.
Seletor de Mês
Cria um campo de entrada para selecionar um mês e ano. Útil para datas de validade de cartões de crédito ou períodos de tempo.
Quando usar: Para coletar apenas o mês e o ano.
Seletor de Semana
Cria um campo de entrada para selecionar uma semana e ano. O formato de exibição pode variar entre navegadores.
Quando usar: Para coletar uma semana específica do ano.
Seletor de Cor
Cria um campo de entrada para selecionar uma cor. Os navegadores geralmente fornecem um seletor de cores (color picker) nativo, retornando o valor em formato hexadecimal (e.g., `#RRGGBB`).
Quando usar: Para permitir que o usuário escolha uma cor.
Controle Deslizante (Range)
Cria um controle deslizante (slider) para selecionar um valor dentro de um intervalo especificado. Os atributos `min`, `max` e `step` definem o comportamento e os limites do controle.
Quando usar: Para permitir a seleção de um valor numérico dentro de um intervalo, como volume ou zoom.
Upload de Arquivos
Cria um campo de entrada que permite ao usuário selecionar um ou mais arquivos do seu dispositivo para upload para o servidor. O atributo `multiple` permite a seleção de múltiplos arquivos.
Quando usar: Para permitir que o usuário faça upload de arquivos.
🎬 Áudio e Vídeo
Elementos HTML5 para incorporar e controlar conteúdo multimídia diretamente nas páginas web.
Reprodutor de Áudio
Incorpora conteúdo de áudio no documento. O atributo `controls` adiciona os controles de reprodução padrão do navegador (play/pause, volume, barra de progresso, etc.), permitindo a interação do usuário.
Quando usar: Para incorporar arquivos de áudio em sua página.
Reprodutor de Vídeo
Incorpora conteúdo de vídeo no documento. O atributo `controls` adiciona os controles de reprodução padrão do navegador (play/pause, volume, barra de progresso, tela cheia, etc.), permitindo a interação do usuário.
Quando usar: Para incorporar arquivos de vídeo em sua página.
Fonte de Mídia
Especifica múltiplas fontes de mídia para os elementos `<audio>` ou `<video>`. O navegador escolhe a primeira fonte que pode reproduzir, com base no atributo `type` (e.g., `video/mp4`, `audio/mpeg`), garantindo compatibilidade entre navegadores.
<source src="file.mp4" type="video/mp4">
Quando usar: Para fornecer diferentes formatos de áudio/vídeo para ampla compatibilidade.
Trilha de Legendas/Descrições
Permite adicionar faixas de texto temporizadas (como legendas, legendas ocultas, descrições, capítulos) a elementos `<video>` ou `<audio>`. O atributo `kind` define o tipo de faixa (e.g., `subtitles`, `captions`, `descriptions`).
<track kind="subtitles" src="subtitles.vtt">
Quando usar: Para adicionar legendas, descrições ou outros metadados temporizados a mídias.
Vídeo com Reprodução Automática
Um vídeo configurado para iniciar a reprodução automaticamente (`autoplay`), repetir indefinidamente (`loop`) e com o áudio desativado (`muted`) ao carregar a página. Comum para vídeos de fundo ou banners, pois navegadores geralmente bloqueiam `autoplay` com som.
<video autoplay loop muted>
Quando usar: Para vídeos de fundo ou que não devem ter som e se repetem automaticamente.
Imagem de Pôster do Vídeo
Define uma imagem que será exibida no reprodutor de vídeo antes que o vídeo comece a tocar, enquanto o vídeo está sendo baixado ou se o vídeo não puder ser carregado. Serve como uma miniatura ou capa.
<video poster="poster.jpg">
Quando usar: Para exibir uma imagem de pré-visualização para o vídeo.
Gráficos e Canvas
Elementos para criar gráficos dinâmicos e vetoriais diretamente no navegador.
Elemento Canvas
Fornece uma área de desenho retangular na página HTML, onde gráficos podem ser renderizados dinamicamente usando JavaScript (API Canvas). Ideal para jogos, visualização de dados, animações complexas e edição de imagens.
Quando usar: Para desenho gráfico dinâmico via JavaScript.
Gráfico Vetorial Escalável (SVG)
Define gráficos vetoriais escaláveis (Scalable Vector Graphics). Imagens SVG são baseadas em XML, podem ser dimensionadas para qualquer tamanho sem perda de qualidade e são manipuláveis via CSS e JavaScript, tornando-as ideais para ícones e ilustrações.
Quando usar: Para gráficos vetoriais que precisam ser escaláveis e manipuláveis.
Canvas com Dimensões
Cria um elemento canvas com dimensões específicas de largura e altura em pixels. Estas dimensões definem o espaço de coordenadas para o desenho e são importantes para a renderização correta do conteúdo.
<canvas width="300" height="150">
Quando usar: Ao definir as dimensões iniciais para a área de desenho do canvas.
SVG com ViewBox
Define as dimensões e a posição da área de visualização de um SVG. Os quatro valores representam `min-x`, `min-y`, `width` e `height` do sistema de coordenadas do usuário, permitindo que o SVG seja escalado para se ajustar ao contêiner.
<svg viewBox="0 0 100 100">
Quando usar: Para controlar o sistema de coordenadas e o escalonamento de um SVG.
Elementos Gráficos Adicionais
Elementos para criar interatividade em imagens e garantir a correta interpretação de gráficos SVG.
Mapa de Imagem
Define um mapa de imagem do lado do cliente, que permite criar áreas clicáveis (hotspots) em uma imagem. Usado em conjunto com o elemento `<area>` e referenciado pelo atributo `usemap` de uma `<img>`.
Quando usar: Para criar áreas clicáveis em uma imagem.
Área Clicável em Mapa
Define uma área clicável (hotspot) dentro de um mapa de imagem (`<map>`). Os atributos `shape` (e.g., `rect`, `circle`, `poly`) e `coords` definem a forma e posição da área, e `href` o destino do link.
Quando usar: Para definir as regiões interativas dentro de um mapa de imagem.
Canvas com ID para JavaScript
Um elemento canvas com um identificador único (`id`), permitindo que seja facilmente acessado e manipulado por scripts JavaScript usando `document.getElementById()`.
Quando usar: Para interagir com o canvas usando JavaScript.
SVG com Namespace
Declara o namespace XML para o elemento SVG, indicando que o conteúdo dentro da tag `<svg>` deve ser interpretado como gráficos vetoriais escaláveis. Embora muitas vezes implícito em HTML5, é boa prática para compatibilidade.
<svg xmlns="http://www.w3.org/2000/svg">
Quando usar: Ao incorporar SVG diretamente no HTML, especialmente para garantir compatibilidade com parsers XML.
Open Graph para Redes Sociais
Metatags do protocolo Open Graph para controlar como o conteúdo é exibido quando compartilhado em plataformas como Facebook, LinkedIn e WhatsApp.
Título Open Graph
Define o título que será exibido quando a página for compartilhada em redes sociais como Facebook e LinkedIn. Faz parte do protocolo Open Graph e deve ser conciso e atraente.
<meta property="og:title" content="...">
Quando usar: Para definir o título de compartilhamento em redes sociais.
Descrição Open Graph
Define a descrição que será exibida quando a página for compartilhada em redes sociais, fornecendo um resumo do conteúdo. Deve ser persuasiva e informativa.
<meta property="og:description" content="...">
Quando usar: Para definir a descrição de compartilhamento em redes sociais.
Imagem Open Graph
Define o URL de uma imagem que será exibida como miniatura (thumbnail) quando a página for compartilhada em redes sociais. É crucial para o engajamento visual.
<meta property="og:image" content="...">
Quando usar: Para definir a imagem de pré-visualização para compartilhamento em redes sociais.
URL Canônica Open Graph
Define o URL canônico da página para Open Graph, garantindo que todas as referências de compartilhamento apontem para a mesma URL, evitando problemas de conteúdo duplicado.
<meta property="og:url" content="...">
Quando usar: Para especificar a URL preferencial da página para redes sociais.
Tipo de Conteúdo Open Graph
Define o tipo de objeto que a página representa (e.g., "website", "article", "video.movie"). Ajuda as redes sociais a entender o contexto do conteúdo e a exibir informações relevantes.
<meta property="og:type" content="website">
Quando usar: Para categorizar o tipo de conteúdo da página para redes sociais.
♿ Atributos ARIA para Acessibilidade
Atributos WAI-ARIA para melhorar a acessibilidade de elementos HTML, fornecendo informações semânticas para tecnologias assistivas.
Rótulo Acessível (aria-label)
Fornece um rótulo de texto acessível para um elemento quando não há um rótulo visível disponível (e.g., um botão de ícone). Usado por tecnologias assistivas (leitores de tela) para descrever o elemento.
Quando usar: Para fornecer um rótulo textual para elementos sem texto visível, como botões de ícone.
Descrição por ID (aria-describedby)
Associa um elemento com outro que fornece uma descrição mais detalhada. O valor é o `id` do elemento que contém a descrição, permitindo que leitores de tela leiam a descrição associada.
Quando usar: Para associar um elemento a uma descrição mais longa e detalhada em outro elemento.
Estado Expandido/Colapsado (aria-expanded)
Indica o estado de um elemento expansível (como um menu dropdown, acordeão ou botão que revela conteúdo), informando se ele está expandido (`true`) ou colapsado (`false`).
Quando usar: Para indicar se um componente (menu, acordeão) está aberto ou fechado.
Esconder de Tecnologias Assistivas (aria-hidden)
Remove um elemento e todos os seus descendentes da árvore de acessibilidade, tornando-o invisível para tecnologias assistivas (leitores de tela). Usado para conteúdo puramente decorativo ou oculto que não deve ser anunciado.
Quando usar: Para ocultar elementos puramente decorativos de leitores de tela.
Região de Atualização Dinâmica (aria-live)
Define uma região "ao vivo" que deve ser anunciada por tecnologias assistivas quando seu conteúdo muda dinamicamente. `polite` significa que as mudanças são anunciadas quando o usuário está ocioso, enquanto `assertive` anuncia imediatamente.
Quando usar: Para anunciar atualizações de conteúdo dinâmico (e.g., mensagens de erro, resultados de busca).
Roles Semânticos ARIA
Atributos `role` para definir a função ou propósito de um elemento, especialmente quando elementos não-semânticos são usados.
Role de Navegação
Define que o elemento atua como uma região de navegação, contendo links para navegar no documento ou em documentos relacionados. Usado quando um elemento não-semântico (como `div`) é usado para navegação.
Quando usar: Para indicar que um elemento é uma área de navegação (se não for <nav>).
Role de Conteúdo Principal
Define que o elemento contém o conteúdo principal do documento. Usado quando um elemento não-semântico (como `div`) é usado para o conteúdo principal, como um fallback para navegadores antigos que não suportam `<main>`.
Quando usar: Para indicar o conteúdo principal da página (se não for <main>).
Role de Conteúdo Complementar
Define que o elemento contém conteúdo de suporte que complementa o conteúdo principal, mas é separado dele. Similar a `<aside>`, usado quando um `div` é empregado.
Quando usar: Para indicar conteúdo complementar (se não for <aside>).
Role de Busca
Define que o elemento é uma região que contém um mecanismo de busca para o documento ou site. Ajuda tecnologias assistivas a identificar rapidamente a funcionalidade de busca.
Quando usar: Para identificar a área de busca em sua página.
Role de Alerta
Define que o elemento é uma mensagem de alerta importante que é adicionada dinamicamente e deve ser anunciada imediatamente por tecnologias assistivas. Usado para notificações críticas que exigem atenção imediata.
Quando usar: Para mensagens de alerta importantes que exigem atenção imediata.
Navegação por Teclado e Foco
Atributos para controlar a ordem de tabulação e o foco de elementos, essencial para usuários que navegam via teclado.
Elemento Focável (tabindex="0")
Torna um elemento focável via teclado e o inclui na ordem de tabulação padrão do documento, seguindo a ordem do DOM. Permite que elementos que normalmente não são focáveis (como `div` ou `span`) recebam foco.
Quando usar: Para tornar elementos não interativos focáveis via teclado na ordem natural.
Focável Programaticamente (tabindex="-1")
Torna um elemento focável programaticamente (via JavaScript usando `.focus()`), mas o remove da ordem de tabulação padrão do teclado. Útil para focar elementos dinamicamente sem interferir na navegação linear.
Quando usar: Para focar elementos via JavaScript sem incluí-los na ordem de tabulação.
Tecla de Atalho (Accesskey)
Define uma tecla de atalho para um elemento, permitindo que o usuário ative o elemento pressionando uma combinação de teclas (varia por navegador e sistema operacional, e.g., Alt+Shift+S no Chrome).
Quando usar: Para fornecer atalhos de teclado para elementos importantes (usar com moderação).
Foco Automático
Um atributo booleano que faz com que um elemento de formulário seja automaticamente focado quando a página é carregada. Apenas um elemento pode ter `autofocus` por página. Pode ser problemático para a acessibilidade se não usado com cuidado.
Quando usar: Para focar automaticamente um campo de formulário crucial ao carregar a página.
Conteúdo Alternativo para Acessibilidade
Técnicas para fornecer alternativas textuais e contextuais para conteúdo não textual, garantindo que todos os usuários possam acessar a informação.
Texto Alternativo para Imagens
Fornece uma descrição textual alternativa para uma imagem. Essencial para usuários de leitores de tela e quando a imagem não pode ser carregada, transmitindo o significado da imagem.
<img src="..." alt="Descrição detalhada">
Quando usar: Sempre para imagens que transmitem informações importantes.
Imagem Decorativa
Indica que a imagem é puramente decorativa e não transmite informações importantes. O `alt=""` vazio e `role="presentation"` instruem leitores de tela a ignorá-la, evitando ruído desnecessário.
<img src="..." alt="" role="presentation">
Quando usar: Para imagens que não adicionam valor informativo, como ícones puramente visuais.
Descrição Longa (longdesc - Obsoleto)
Um atributo obsoleto para `<img>` que apontava para um documento HTML contendo uma descrição longa da imagem. Foi substituído por `aria-describedby` ou por descrições no texto adjacente à imagem.
<longdesc="descricao.html">
Quando usar: Evitar o uso, pois é obsoleto.
Figura com Legenda Acessível
Associa um elemento `<figure>` a uma legenda (`<figcaption>`) usando seu `id`, melhorando a acessibilidade para leitores de tela que podem não associar automaticamente. O `aria-labelledby` aponta para o `id` da `<figcaption>` ou outro elemento de rótulo.
<figure aria-labelledby="caption1">
Quando usar: Para associar explicitamente uma figura à sua legenda para leitores de tela.