The Law
The law on throwing items through windows is very clear...
Qualquer um envolvido em Web design ou desenvolvimento terá encontrado o termo “semântico” com referência ao HTML5 e à Web em geral. Este termo muitas vezes problemático é compreensivelmente confuso para muitos de nós, particularmente porque existe uma clara falta de consenso sobre sua definição em certos contextos.
Neste artigo, vamos explorar o que torna o HTML5 mais semântico que seus antecessores, destacando o que isso significa para o desenvolvimento da Web agora e no futuro.
O conceito de semântica vem do campo da lingüística dedicado ao estudo do significado. Com linguagens naturais como o inglês, distinguimos entre sintaxe (ou gramática) e significado. Se você pensar em uma frase, o significado tem a ver com o modo como as pessoas a interpretam:
"O homem jogou o computador pela janela."
A semântica se relaciona com o aspecto da sentença que permite que as pessoas que a leiam entendam a mensagem contida nela. Juntamente com a sintaxe, a semântica é uma grande parte do que facilita a comunicação via linguagem. Quando falamos de semântica em relação ao HTML, estamos falando de comunicação entre programas de computador, não humanos. HTML semântico é essencialmente destinado a melhorar a extensão em que os aplicativos podem processar ou interpretar conteúdo da Web. Por exemplo, considere o seguinte trecho da página da Web que contém algumas das estruturas HTML mais antigas:
The man threw the computer through the window.
Os elementos (e atributos) fornecem ao navegador informações sobre como apresentar o conteúdo ao usuário. Por padrão, os elementos de parágrafo serão exibidos com espaço em branco acima e abaixo deles, os elementos de imagem são exibidos usando o arquivo de imagem incluído no atributo src e assim por diante. Quando o navegador encontra cada um desses elementos, ele renderiza o conteúdo de uma forma específica que é determinada pelas tags usadas.
É importante entender que o HTML5 não introduz semântica ao HTML pela primeira vez. HTML já tinha um nível de semântica embutido. As estruturas HTML existentes são significativas em vários graus. Se você olhar para este familiar elemento HTML como incluído no trecho acima, você verá o que quero dizer:
Embora seja abreviado, o nome do elemento img indica algo significativo sobre o conteúdo da tag, ou seja, é uma imagem. Dessa forma, você pode pensar no aspecto semântico do HTML como sendo semelhante aos metadados, em que a tag do elemento e os nomes dos atributos descrevem os dados (os dados em uma página da web são o elemento e o conteúdo do atributo).
Algumas das estruturas que usamos em HTML dizem ao navegador como estilizar os itens de conteúdo em uma página. Conforme o tempo passou, fomos incentivados a separar a formatação de uma página de seu conteúdo.
Por exemplo, substituímos a tag i por em, que é mais significativa e não informa ao navegador exatamente como exibir o texto dentro do elemento. O objetivo de usar em, em vez de i, é transmitir informações sobre a natureza do item de conteúdo, em vez de informações sobre como estilizá-lo. O em claro afeta o estilo, que é o principal motivo de usá-lo, no entanto, ele deixa os detalhes do estilo até o navegador e / ou o código CSS idealmente separado da marcação da página.
O HTML5 semântico é um passo maior nesse processo. O objetivo final é criar um sistema no qual os aplicativos tenham acesso a um maior nível de significado - isso não é AI, mas apenas incluir informações descritivas sobre itens de dados dentro das estruturas de código que os modelam.
Se você usou XML no passado, você terá alguma familiaridade com os conceitos na marcação semântica. Por exemplo, quando você cria um documento XML (ou esquema) para um conjunto de dados, escolhe elementos e atributos para modelar itens dentro dos dados. Idealmente, os nomes de elementos e atributos definem os itens de dados de uma maneira significativa:
Jim Smith 23 November 2012
O desenvolvedor aqui escolheu nomes que descrevem intuitivamente os valores de dados que estão sendo modelados. Com o HTML5 você não pode escolher seus próprios elementos, pois não é extensível livremente. As estruturas escolhidas por ele simplesmente têm mais significado inerente quando comparadas às versões anteriores.
Nós falamos sobre o significado, mas na verdade existem diferentes maneiras pelas quais um elemento ou outro trecho de código pode ser significativo.
A tag img é significativa porque diz algo sobre o conteúdo do elemento, descrevendo o que é.
Alguns dos novos elementos HTML5, como cabeçalho e rodapé, são significativos, pois indicam algo sobre a função ou a finalidade do elemento na estrutura geral de uma página.
Então, o que isso reforçou o aspecto significativo do HTML5? Essencialmente, o HTML5 tem alguns novos elementos com os quais você pode incluir mais informações semânticas na marcação de sua página. Há uma carga de novos elementos, apenas alguns dos quais vamos ver aqui. A tag de cabeçalho indica informações sobre o conteúdo do elemento e sobre sua função na estrutura da página:
Man in Window Outburst
O elemento de cabeçalho pode conter outros elementos e tende a incluir pelo menos um elemento de título. A tag de rodapé é semelhante, com a tag novamente expressando algo significativo sobre o conteúdo do elemento e sua relação com o restante da página:
A tag nav descreve o propósito de uma seção da página, ou seja, contém links de navegação:
O elemento de seção geralmente contém um grupo de itens no mesmo tema, geralmente junto com um cabeçalho. O elemento de seção tem um significado bastante abstrato, mas é significativo, no entanto:
What happened
Police officers apprehended the man at 3.30pm...
O elemento article é semelhante, usado para definir um item que é autocontido:
The Law
The law on throwing items through windows is very clear...
Uma tag de lado indica o papel de um elemento em relação ao seu contexto na página, como na seguinte versão estendida do código do artigo acima:
The Law
The law on throwing items through windows is very clear...
Esses são apenas alguns dos novos elementos HTML5 que oferecem melhorias semânticas, outros incluem elementos de entrada de mídia e de usuário, além de atributos adicionais. A inclusão de microdados em HTML5 também oferece maior escopo para incluir informações semânticas em páginas e aplicativos da Web. Como você pode ver, alguns desses novos elementos são significativos em termos de conteúdo e estrutura.
Pense em algumas das tags mais antigas (muitas das quais ainda estão por aí), como div. O elemento div é simplesmente um pedaço de uma página - o nome da tag não nos diz absolutamente nada sobre o conteúdo do elemento ou sua função na página. Em outras palavras, a tag transmite muito pouco significado. Muitas das etiquetas de longa data transmitem virtualmente nenhum significado ou, em alguns casos, significado genérico e vagamente definido. Cada item em uma página da Web estava contido em um de um conjunto de categorias de elementos muito gerais. A chave para fazer algo significativo é ser específico. As novas tags HTML5 nos permitem definir o conteúdo da Web usando termos mais específicos.
Se você estiver criando páginas da Web por um período de tempo razoável, alguns dos novos elementos HTML5 podem soar um pouco para você. Na realidade, os desenvolvedores já estavam criando um nível de significado em suas páginas usando os atributos do elemento, especialmente classe e ID. Por exemplo, se você já deu a um elemento uma classe ou atributo de ID de "rodapé" ou "cabeçalho", certamente não está sozinho. Com o HTML5, esse significado é transmitido na própria marcação em vez de nos valores de atributo. Se você usou esses atributos para implementar propriedades de estilo específicas, você estava efetivamente fazendo algo manualmente que é embutido em HTML5 pronto para uso - e com elementos semânticos, há benefícios adicionais…
Tudo bem, tudo bem, mas você seria perdoado por perguntar por que estamos indo para todo esse problema por algo que parece essencialmente conceitual / acadêmico. Bem, você pode ter certeza de que existem boas razões para se mover em uma direção mais semântica. Como vimos, a semântica HTML5 nos permite criar código de marcação que descreve itens de conteúdo. Esse aspecto descritivo do código permite que outros programas façam uso mais efetivo do conteúdo, com várias aplicações:
Quando estive na uni (alguns anos atrás), lembro-me de um palestrante nos dizendo que o campo da pesquisa acadêmica seria revolucionado pelos avanços nas pesquisas. Ele estava falando sobre a Web Semântica - é desnecessário dizer que ainda não aconteceu. Tomar qualquer tipo de nova direção focada com algo tão diverso e errático como a World Wide Web sempre será uma tarefa difícil. No entanto, ao nos envolvermos com a idéia de marcação semântica, pelo menos, nós, como desenvolvedores, podemos influenciar o movimento em direção a uma Web futura que seja mais acessível, pesquisável e consistente para todos os usuários.
Você usa elementos semânticos do HTML5? O foco na semântica produz um produto de maior qualidade? Deixe-nos saber o que você pensa nos comentários.
Imagem / miniatura em destaque, usa imagem de idioma via Shutterstock.