HTML - Tags Básicas
TAG Descrição Classe Doc.
<!--...--> Define um comentário. Tudo que estiver dentro desta tag NÃO é processado pelo browser.
<!DOCTYPE> Define o tipo de documento, como, por exemplo, html (<!DOCTYPE html>).
<a> Define uma âncora ou link - Cria um elo entre o documento corrente e outro documento que é ativado ao ser clicado.
Não confundir com a tag link
<abbr> Define uma abreviação ou acrônimo como SITEREFTEC - Site de Referência técnica.
<acronym> Não suportado em HTML5. Use <abbr>. Contextual  
<address> Define as informações de contato do autor / proprietário de um documento Contextual
<applet> Não suportado em HTML5. Use <embed> ou <object>.  
<area> Utilizada dentro da tag MAP. Define uma área dentro de um mapa de imagem que ao ser clicada atua exatamente como um link.
<article> Define um artigo, uma referência a um artigo publicado.
<aside> Define o conteúdo, 'em separado', 'apartado' do conteúdo da página
<audio> Define um conteúdo sonoro podendo ser um som(tipo mp3) ou uma música.
<b> Define um texto em Negrito Formatação
<base> Especifica o URL / destino base para todos os URLs relativos em um documento
<basefont> Não suportado em HTML5. Use CSS em seu lugar. Especifica uma cor, tamanho e fonte padrão para todo o texto em um documento.  
<bdi> Isola uma parte do texto que pode ser formatada em uma direção diferente de outro texto fora dela
<bdo> Substitui a direção atual do texto
<big> Não suportado em HTML5. Use CSS em seu lugar. Define texto grande. Formatação  
<blockquote> Define um trecho de um documento que é citada de outra fonte
<body> Define o corpo do documento
<br> Define uma quebra de linha única
<button> Define um botão clicável pelo usuário e pode disparar um processo
<canvas> Usado para desenhar gráficos em tempo real, via script (geralmente JavaScript)
<caption> Define uma legenda da tabela. Vide o elemento tabela.
<center> Não suportado em HTML5. Use CSS em seu lugar. Define o texto centralizado. Formatação  
<cite> Aponta para o título de uma obra a que o documento atual se refere. Contextual
<code> Define um pedaço de código de computador Contextual
<colgroup> e <col> <colgroup> especifica um grupo de uma ou mais colunas em uma tabela para formatação
<col> especifica propriedades da coluna para cada coluna dentro de um elemento <colgroup>
Veja o elemento table(tabela).
 
<data> Vincula o conteúdo fornecido com uma tradução legível por máquina
<datalist> Especifica uma lista de opções predefinidas para controles de entrada
<dd> (dl, dt, dd) Define uma descrição ou valor de um termo em uma lista de descrição
<del> Define que o texto, embora visível e presente no documento, foi excluído. Alguns browsers colcoam um risco no meio do texto. Contextual
<details> Define detalhes adicionais que o usuário pode visualizar ou ocultar
<dfn> Representa a instância de definição de um termo Contextual
<dialog> Define uma caixa de diálogo ou janela
<dir> Não suportado em HTML5. Use <ul> em vez disso. Define uma lista de diretórios.    
<div> Define uma seção em um documento destacando-o do que está ao seu redor. Contextual
<dl> (dl, dt, dd) Define uma lista de descrição
<dt> (dl, dt, dd) Define um termo / nome em uma lista de descrição
<em> Define o texto enfatizado Contextual
<embed> Define um contêiner para um aplicativo externo (não HTML)
<fieldset> Agrupa elementos relacionados em um formulário
<figcaption> ( figure, figurecaption ) Define uma legenda para um elemento <figure>
<figure> ( figure, figurecaption ) Especifica o conteúdo independente
<font> Não suportado em HTML5. Use CSS em seu lugar. Define fonte, cor e tamanho do texto.    
<footer> Define um rodapé para um documento ou seção
<form> Define um formulário HTML para entrada do usuário
<frame> Não suportado em HTML5. Define uma janela (um quadro) em um conjunto de quadros.  
<frameset> Não suportado em HTML5. Define um conjunto de quadros.  
<h1> a <h6> Define cabeçalhos HTML
<head> É o cabeçalho do documento html e define informações sobre o documento. Não confundir com a tag header
<header> Define um cabeçalho para um documento ou seção - Não confundir com a tag head.
<hgroup> Define um artigo
<hr> Define uma mudança temática no conteúdo
<html> Define o objeto raiz de um documento HTML - Todos os demais elementos serão carregados nele.
Importante : <html lang="pt-br"> define o idioma porque dependendo do que esta escrito pode ser que o google ache que seja outro idioma e peça para traduzir.
<i> Define que o texto deseja renderizado em itálico. Formatação
<iframe> Define uma parte da página(frame ou janela) cujo conteúdo é provido por um site externo ou outra fonte de informação externa a página atual.
Nota : Devido a inúmeros problemas de segurança esta tag não é bem vista porque por traz de um site idôneo pode ter um mal intencionado ou que foi caracterizado como mal intencionado recentemente ( possível hackeamento ).
<img> Define um arquivo de imagem externo a página atual. Pode ser um gif, png, jpg, jpeg mas nem todos são aceitos (por exemplo tiff)
<input> Define um elemento de entrada de dados pelo usuário.
Pode ser definido como tipo texto, data, range, etc...
Como a intenção normalmente depois é enviar os dados digitados para o site esta tag vem acompanhada da tag <form>
<ins> Define que o texto foi inserido recentemente no documento. Contextual
<kbd> Exibe o texto como se fosse um teclado ou monoespaçado. Depende do browser e do recurso associado a ele (como o bootstrap) Contextual
<label> Define um rótulo para um elemento <input> para que possa ser formatado pela css.
<legend> Define uma legenda para um elemento <fieldset>
<li> ( ul, ol, li ) Define uma lista de itens : ul-desordenada, ol-ordenada / numerada, li-item da lista ordenada ou desordenada.
<link> Define o relacionamento entre um documento e um recurso externo.
Mais usado para vincular a folhas de estilo ou scripts em arquivos externos.
Não confundir com a tag a)
<listing> Não suportado em HTML5. O browser renderizava o conteúdo desta tag sem 'interpretar' seu conteúdo e usava uma fonte monoespaçada. Esta tag é obsoleta desde o HTML2 e não deve ser usada. Usar a <tag> pre em seu lugar. Contextual  
<main> Especifica o conteúdo principal de um documento
<map> Define um mapa, ou seja, uma região de uma imagem ou da página que ao ser clicado atua como um link
<mark> Define que o texto deva ser exibido marcado ou destacado
<menu> e <menuitem> Exibe um menu no documento. Só funciona no FireFox
<meta> Define metadados sobre um documento HTML
<meter> Define uma medida escalar dentro de um intervalo conhecido (um medidor)
<nav> Define um conjunto ou barra que agrupa links de navegação
<nobr> Não suportado em HTML5. Informa ao browser que não desejamos que haja quebra de linha neste ponto mesmo se for necessário. Muito antiga e não é uma tag padrão HTML e por isso não deve ser usada. Utilize uma span com estilo style="white-space: nowrap" em seu lugar. Formatação  
<noframes> Não suportado em HTML5. Define um conteúdo alternativo para usuários que não suportam quadros.    
<noscript> Define um conteúdo alternativo para usuários que não suportam scripts do lado do cliente
<object> Define um objeto incorporado (plugin)
<ol> ( ul, ol, li ) Define uma lista ordenada ou numerada (ordered list)
<optgroup> Define um grupo de opções relacionadas em uma lista suspensa ou como um listbox.
<option> Define uma opção em uma lista suspensa (veja tag lisbox acima)
<output> Exibe de maneira especial o resultado de um cálculo
<p> Define um parágrafo, como num processador de texto, pula para o início da próxima linha e exibe. Contextual
<param> Define um parâmetro para um objeto(tags de audio, video, plugins)
<picture> Define um contêiner para vários recursos de imagem
<plaintext> Não suportado em HTML5. A tag <plaintext> informa ao navegador que seu conteúdo deve ser exibido como um texto comum sem formatação. Todas as tags aninhadas neste elemento são renderizadas pelo navegador como parte do texto. O conteúdo da tag <plaintext> é representado em fonte monoespaçada. Esta tag foi retirada do HTML5 porque todo estilo deve ir para a CSS. Usar a <tag> pre em seu lugar. Contextual  
<pre> Define o texto pré-formatado e monoespaçado, ou seja, courier-new.
Só usei até hoje para depuração quando precisava contar caracteres. Similar : tag samp.
Contextual
<progress> Representa o progresso de uma tarefa
<q> Define uma cotação curta
<rp> Define o que mostrar em navegadores que não suportam anotações ruby. Veja tag ruby.
<rt> Define uma explicação / pronúncia de caracteres (para tipografia do Leste Asiático). Veja tag ruby. Formatação
<ruby>, <rt> e <rp> Define uma anotação em rubi (para tipografia do Leste Asiático) Formatação
<s> Define o texto, nesta versão do documento, não está mais correto, foi substituído. Formatação
<samp> Define amostra de saída de um programa de computador. Similar : tag pre Contextual
<script> Define um script do lado do cliente, como javascript ou vbscript.
<section> Define uma seção em um documento
<select> Define uma lista suspensa
<small> Define que o texto deva ser exibido o menor possível Formatação
<source> Define vários recursos de mídia para elementos de mídia (<video> e <audio>)
<span> Define uma seção ou trecho em um documento. Muito útil quando queremos aplicar um estilo para diferenciação dos demais textos da página. Contextual
<strike> Não suportado em HTML5. Usar <del> ou <s> em vez de <strike>. Define o texto tachado. Formatação  
<strong> Define texto importante. Exibida exatamente como a tag negrito <b> Contextual
<style> Define informações de estilo para um documento, localmente.
Para utilizar uma folha de estilo externa use a tag <link>
<sub> Define que o texto deve ser exibido subescrito como H2O. Formatação
<summary> Define um cabeçalho visível para um elemento <details>
<sup> Define texto sobrescrito como x2 Formatação
<svg> Define um contêiner para gráficos SVG. O SVG pode desenhar qualquer linha ou forma geométrica entre outras coisas.
<table>
<caption>
<colgroup>
<col>
<thead>
<th>
<tbody>
<tr>
<td>
<tfoot>
<table> Define uma tabela
<caption> Define uma legenda ou titulo para a tabela
<thead> Agrupa os elementos do cabeçalho da tabela. Agrupa tr-th.
<colgroup> Define a cor de fundo para um conjunto de colunas da tabela. Agrupa col.
<col> Define uma das colunas afetadas pelo agrupador colgroup.
<col> Representa uma coluna para a tag colgroup.
<th> Define uma coluna do cabeçalho da tabela.
<tbody> Agrupa os elementos do corpo da tabela.Agrupa tr-td.
<tfoot> Agrupa os elementos do rodapé da tabela. Agrupa tr-td.
<tr> Define uma linha do cabeçalho, do corpo ou do rodapé de uma tabela.
<td> Define uma célula (coluna) do corpo da tabela.
<template> Define um modelo
<textarea> Define uma área de entrada texto de várias linhas
<tfoot> Agrupa o conteúdo do rodapé em uma tabela. Veja elemento table.  
<time> Define uma data / hora
<title> Define um título para o documento. Este dado é exibido no caption (topo) do cabeçalho do browser.
<track> Define trilhas de texto para elementos de mídia (<video> e <audio>)
<tt> Não suportado em HTML5. Use CSS em seu lugar. Define o texto do teletipo. Formatação  
<u> Define que o texto deva ser exibido sublinhado(underscore). Formatação
<ul> ( ul, ol, li ) Define uma lista não ordenada (unordered list)
<var> A tag <var> é usada para exibir o seu conteúdo como uma expressão matemática.
O conteúdo interno é normalmente exibido em itálico.
Esta tag não está obsoleta mas é recomendado utilizar a CSS em seu lugar.
Contextual
<video> Define um vídeo ou filme
<wbr> Define para o browser que o ponto é um dos melhores para ocorrer uma possível quebra de linha se necessário. Formatação
<xmp> Esta tag renderiza o texto entre as marcas de início e fim sem interpretar o HTML entre e usando uma fonte monoespaçada. Esta tag esta obsoleta bem como suas irmãs listing, plaintext, pre, samp, tt. Usar CSS em seu lugar. Contextual  


Referência : w3schools

Tags que podem causar confusão : a com link, head com header.
Link é somente usada no header da página html enquanto a é conhecido por ser um link para as outras páginas do site.
head é o começo da página html enquando header é o cabeçalho de uma tabela.

Nota: as tags das versões do html anteriores ao 5 que tratavam com estilo ou formatação foram descontinuadas na versão 5 porque foram transferidas para a CSS que pode tratar essas funcionalidades de uma maneira muito mais apropriada.
Contudo tags simples como <b> funcionam perfeitamente e foram mantidas porque são práticas para serem usadas.


Neste documento separei as tags HTML em 'Classes'. O termo não esta correto pensando em desenvolvimento web mas é o que melhor representa esta separação. São elas :
Os objetos HTML pertencem a 5 classes :
1-Objeto de Formatação (Formatting Objects). Estão sendo substituídos pela CSS.
2-Objeto Contextual. Indicam autoria, siglas, citações, separações, divisões, etc...
3-Propriedades.Veja : Propriedades objetos html
4-Métodos
5-Manipuladores de Eventos (Event Handlers). Veja :Eventos dos objetos html
Notem que apenas os itens 1 e 2 são HTML o restante são integrantes dessas tags.