HTML & CSS para iniciantes

HTML & CSS para iniciantes (Parte 18): Semântica para a Web (1)

Todos os vídeos do tutorial HTML & CSS para iniciantes

O termo "Web semântica" é hoje em dia usado de forma quase inflacionária. Muitas pessoas nem sequer têm consciência do que essa semântica tão aclamada realmente significa. Na verdade, é bastante simples: graças à semântica, as informações necessárias/desejadas podem ser extraídas de enormes volumes de dados. Um exemplo prático deve demonstrar a importância da semântica. As fotografias digitais são uma coisa maravilhosa. Logo após serem tiradas, podem ser compartilhadas pela Internet com o mundo inteiro. O que vale no âmbito privado há muito tempo também foi estabelecido no contexto profissional. Agências de imagens, museus, bibliotecas e fotógrafos oferecem fotos, pinturas ou versões digitais de valiosos textos através de bancos de dados de imagens profissionais. Esses websites possuem máscaras de pesquisa pelas quais a plataforma pode ser pesquisada. O exemplo mais popular de um mecanismo de pesquisa de imagens na web 2.0 é certamente o Flickr. Quem já usou esses mecanismos de pesquisa de imagens conhece seus limites: ao inserir, por exemplo, o termo Kohl, são exibidas fotos de várias áreas distintas. Assim, a pesquisa de imagens do Yahoo! apresenta fotos de um pica-pau, de um jogador de tênis chamado Kohl e do ex-chanceler Helmut Kohl. Neste ponto, um dos desvantagens da WWW clássica fica clara: atualmente, as informações disponibilizadas podem ser compreendidas por seres humanos, mas não podem ser interpretadas corretamente por máquinas - no exemplo apresentado, pelos mecanismos de pesquisa. Máquinas só podem extrair informações se estas estiverem realmente presentes. E é aqui que a semântica entra em jogo. Documentos estruturados Nas versões anteriores do HTML, simplesmente não havia uma maneira de estruturar documentos semanticamente. Se quiséssemos estruturar um website, tínhamos apenas títulos e parágrafos à disposição. Aqui está um exemplo típico da estrutura de um website clássico. Para a estruturação de um documento, o HTML oferece os elementos article, aside, dialog, figure, footer, header, nav e section. Esses elementos estão sendo apresentados neste tutorial. No entanto, antes disso, um aviso: não espere maravilhas visuais desses elementos. Para que os websites baseados em elementos semânticos tenham uma aparência atraente, o CSS deve ser utilizado. Falaremos sobre isso mais tarde. Alguns elementos semânticos vocês já conhecem, mesmo que à primeira vista talvez não pareçam relacionados à semântica. Aqui está um exemplo desse tipo de elemento. Com um esforço mínimo, esse elemento torna evidente que pode-se criar conteúdo que pode ser facilmente associado a um contexto específico. Para um software, é imediatamente reconhecível que se trata de uma barra de progresso. Já no caso de soluções baseadas em JavaScript para a geração de uma barra de progresso, isso não é tão claro. Estruturas de elementos semânticos Em documentos HTML "normais", a estruturação do conteúdo normalmente é feita com elementos div. Para formatação através de CSS, atribuem-se classes ou IDs a esses elementos. Este princípio também é aproveitado no HTML5. De fato, uma pesquisa realizada pelo Google mostrou que em muitos documentos são usadas sempre as mesmas classes. Muitos desenvolvedores, por exemplo, usam nav para incluir a navegação dentro deste elemento div. No entanto, no HTML5, esse trecho se parece com: Usando o elemento nav, fica claro que não se trata apenas de uma lista de links. Na realidade, esse elemento descreve um bloco de conteúdo no qual informações sobre a navegação do website estão contidas dentro de um contexto específico. Estruturação moderna Como é tipicamente a estrutura de um documento HTML? Basicamente, ela se assemelha, independentemente do conteúdo final da página. Geralmente, as seguintes áreas estão presentes: - Cabeçalho - Menu principal - Área de conteúdo - Rodapé Um website que utiliza elementos div para a estruturação pode se parecer com:

 <body>
   <div id="header">
     <div id="logo">Logotipo</div>
     <div id="search">Pesquisa</div>
     <div id="nav">Menu principal</div>
   </div>
   <div id="content">
     <h1>Este é o conteúdo</h1>
     <div class="section">
       <h2>Subtítulo</h2>
       <h3>Seção</h3>
       <!-- Aqui está o conteúdo -->
     </div>
     <div class="section">
       <h2>Subtítulo</h2>
       <!-- Aqui está o conteúdo -->
     </div>
   </div>
   <div id="sidebar">
     <div id="subnav">Submenu</div>
   </div>
   <div id="footer">Rodapé</div>
 </body>



Vocês talvez já conheçam essas construções de divs. Para que a estrutura seja lógica para os desenvolvedores, são atribuídas classes ou IDs a essas áreas de div com nomes "falantes". Assim, para os desenvolvedores é claro, por exemplo, que no div com o ID footer, estão os conteúdos que pertencem ao rodapé da página. O problema é que os nomes podem sugerir a estrutura do site, mas semanticamente, o site ainda não está estruturado. É exatamente aí que entram os novos elementos HTML. Pois esses permitem pela primeira vez uma verdadeira estruturação de documentos ou páginas da web.

Para um melhor entendimento, vejam o seguinte documento HTML5:

 <body>
   <header>
     <div id="logo">Logotipo</div>
     <div id="search">Pesquisa</div>
     <nav>Menu principal</nav>
   </header>
   <article>
     <h1>Este é o conteúdo</h1>
     <section>
       <h2>Subtítulo</h2>
       <h3>Seção</h3>
       <!-- Aqui está o conteúdo -->
     </section>
     <section>
       <h2>Subtítulo</h2>
       <!-- Aqui está o conteúdo -->
     </section>
   </article>
   <aside>
     <nav>Submenu</nav>
   </aside>
   <footer>Rodapé</footer>
 </body>



Nos próximos tutoriais, irei abordar os elementos utilizados aqui. Contudo, apenas olhando este exemplo, já é possível ver onde estão as vantagens dos elementos utilizados. Agora é possível finalmente marcar as áreas das páginas com elementos específicos para elas. Tudo que pertence ao cabeçalho da página pode ser incluído em um elemento header.

Além disso, agora estão disponíveis os elementos section e article, que permitem uma estruturação muito melhor dos conteúdos reais das páginas. Como podem ver, vale a pena dar uma olhada detalhada nas possibilidades que o HTML5 oferece em termos de estrutura semântica de documentos.