Web semântica é simples

Essas afirmações geralmente dão problemas e nesse caso fiz só para te chamar à atenção para o texto, mas segue aqui um guia com alguns pontos para se pensar sobre o assunto.

Vamos começar pela definição de semântica que pode ser definido com o estudo do significado ou o componente do sentido das palavras e da interpretação das sentenças e dos enunciados

Ao dizer web semantica pode parecer algo complexo e dificil, mas é bem simples. Para um TL;DR, é usar a tag para aquilo que ela foi inventada. Vamos para um pouco de história e também sobre como podem ter te ensinado HTML errado.

HTML é uma linguagem de marcação, invenção genial do Tim Berners Lee, para resolver um problema na publicação e compartilhamento de artigos acadêmicos, e usando SGML como base, acabou por criar o que conhecemos como web.

Um pouco sobre SGML

Eu não consigo entrar em um artigo como esse sem explicar as bases e destrinchar um pouco do histórico.

Então um pouco sobre o Standard Generalized Markup Language (Padrão geral de Linguagem de Marcação) ou SGML, ela é uma tecnologia que foi criada para manter interoperabilidade de documentos e desenvolvida pela IBM em 1960.

Ela toma dois pontos como verdade:

  • A marcação deve descrever a estrutura do documento ao invés de especificar como deve ser processado, uma marcação deve ser descritiva e única para ser feita uma vez bastando para todos os processamentos futuros.
  • Marcação deve ser rigorosa para que técnicas disponíveis em programas e base de dados possam também processar documentos.

Repare bem nessas marcações que coloquei, elas serão importantes. E agora que entendemos um pouco, mas bem pouco da base do HTML, vamos voltar para ele.

HTML5 e a quebra com o SGML

A primeira versão já continha elementos semanticos ou descritivos vindo do SGML, com excessão da tag <a>. Isso por que o padrão do lado descritivo do SGML já ter um pouco de web semântica. E isso foi verdade por muito tempo, mas alguns erros foram feitos.

Sim estou falando do marquee

Nesse caso a culpada é Microsoft e a tag nunca foi um HTML válido e a partir disso já começamos a ver alguns pontos sobre web semantica. E voltando ao tema principal do artigo, usar a tag para a sua finalidade de marcação, você não espera que um paragrafo seja uma <div>.

Com o HTML 5 eles decidiram ser uma padrão próprio ao invés de serem baseado no SGML, mas não deixou de fora o seu lado tão importante de ter tags descritivas.

Não precisa de muito para perceber quais são as semanticas das tags, você espera que uma tag <a> represente um botão? Ou seria mais apropriado usar a tag <button> para isso?

Lembra do negrito que deixei no tópico de SGML, uma regra era documentos acessiveis por programas e que pudessem ser também processar documentos, a web semantica, ajuda na acessibilidade da web um dos princípios dela.

Os leitores de tela sabem melhor com intepretar uma tag <p> ao invés de uma tag <div> e também uma tag <table> bem definida. Estudar cada tag toma tempo, mas melhora muito o código escrito.

Isso é a essência do que é a web semantica e para se aprofundar, não recomendo esperar um conteúdo pronto e já pré-definido de regras, porque elas podem mudar muito rápido, mas ficar atento para o surgimento de novas tags semanticas, como por exemplo o <article> ou <section>, que surgiram recentemente dentro da web.

E hoje em dia a W3C tem falado da web de dados ao invés da web de conteúdos, então espere mudanças para algumas semanticas. O que será, ainda não sabemos estamos na construção disso.


É isso galera, segue algumas referencias que cavei na internet para escrever esse artigo.

http://www.sgmlsource.com/history/AnnexA.htm

http://info.cern.ch/hypertext/WWW/Proposal.html

https://html.spec.whatwg.org/multipage/introduction.html#history-2

https://www.yourhtmlsource.com/starthere/historyofhtml.html

https://www.scielo.br/pdf/ci/v31n2/12903

https://www.w3.org/MarkUp/html-test/

https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language

https://en.wikipedia.org/wiki/HTML

https://en.wikipedia.org/wiki/Document_type_definition

https://www.w3.org/standards/

https://www.w3.org/standards/semanticweb/