Refletindo sobre Semântica

Vamos falar sobre Semântica. Em meu último artigo, sobre a resistência que desenvolvedores tem em adotar os Padrões Web, muitas pessoas se manifestaram no sentido de que trabalhar com editores WYSIWYG como Fireworks ou Dreamweaver, na criação de páginas diagramadas com tabelas, seria mais produtivo, além de evitar incompatibilidade com navegadores.

As alegações são de que o uso dos Padrões Web aumentam o tempo de desenvolvimento, a quantidade de testes e a correção de erros. Isso realmente pode acontecer, se o desenvolvedor não possuir experiência suficiente com HTML e CSS, e consequentemente criar layouts inadequados para a estruturação.

A maior dificudade que as pessoas tem para compreender a importância do desenvolvimento com as Padrões Web é (1) imaginar que é apenas uma questão de substituir tabelas por divs, e (2) não compreender a questão da Semântica.

O que é Semântica?

A Semântica, enquanto estudo da palavra, tem preocupação com o significado dos objetos (me refiro aqui a objeto como tudo que é perceptível aos sentidos).

A ideia de uma Web Semântica surgiu em 2001 a partir de um artigo publicado por Tim Berners-Lee, James Hendler e Ora Lassila, e tem como objetivo extender a web atual, através da atribuição de significado ao conteúdo dos documentos, de forma que eles possam ser compreensíveis não só por seres humanos, mas também por máquinas. Isso possibilitaria que informações úteis em diferentes sistemas fossem integradas para facilitar a vida das pessoas.

Vamos refletir sobre Semântica. Imaginem que você possui uma agenda online, onde consta que tenho uma viagem marcada para New York, assim como a data e o horário em que devo embarcar. Essas informações seriam muito claras para mim ou para qualquer outro ser humano, que poderia providenciar tudo que fosse necessário para a viajem.

Agora vamos imaginar que essa agenda possui informações com significado não só para humanos, mas também para máquinas, de forma que esses dados pudessem ser integrados com outros sistemas pelo mundo, que também tivessem informações com significado para as máquinas.

Com isso, meu sistema ao identificar o compromisso na agenda, poderia automaticamente buscar e reservar para mim uma passagem aérea para o dia e horário em que fosse necessário, assim como reservar um quarto no hotel mais próximo ao meu local de destino, e quem sabe até me recomendar passeios, livrarias e restaurantes, de acordo com meus gostos pessoais descritos no perfil de uma rede social qualquer.

Parece até coisa de filmes de ficção cientícfica!

Para que algo assim fosse possível, para que os sistemas tivessem esse nível de automatização e funcionassem como na história acima, teriamos que pensar na evolução dos documentos, antes de pensar na evolução das tecnologias. Teriamos que criar documentos em que as informações tivessem significado não só para humanos, mas também para máquinas.

Isso seria a Web Semântica.

Tirar o lixo e organizar a casa

Alguém sabe a quantidade de informação que existe hoje na web, ou quanta informação é possível de ser armazenada digitalmente?

Um CD comum armazena cerca de 650 megabytes de informação, e isso equivale a 340.000 páginas com 2000 caracteres cada. Se essas páginas fossem impressas em papel de 20 gramas em frente e verso, a pilha de papel necessária para equivaler a capacidade informativa de um CD pesaria 770 quilos. (Informação retirada do livro “Do papel até a Web”, de Tony McKinley)

Acho que agora deu pra ter uma ideia!

A web tem mais informações do que todas as bibliotecas do mundo juntas. Infelizmente a maioria dessas informações não tem significado nem sentido algum. Não possuem Semântica.

Uma linguagem de marcação como o HTML é feita de etiquetas (tag’s) que servem para dar significado as partes de um documento. Sendo assim, com as etiquetas <h1></h1> informamos que determinado trecho de texto é um título, com as etiquetas <p></p> indicamos que determinado trecho de texto é um paragrafo, ou então com as etiquetas <blockquote></blockquote> informamos que determinado bloco de texto é uma citação.

Sabendo disso, poderiamos acreditar que trabalhando com HTML teriamos naturalmente documentos com definições claras sobre o que é cada informação.

Porém, desde o início a web foi sendo explorada como uma extensão da mídia impressa, com uma preocupação unicamente visual, sem levar em consideração a estrutura do documento e seu significado. Como os recursos do HTML eram limitados para diagramação, além de possuir algumas marcações próprias para formatação, os documentos começaram a ser adaptados de forma equivocada, e recursos como tabelas (que existem para definir dados tabulares) começaram a ser usadas para diagramar páginas de sites como se fossem páginas de revistas. O uso correto das marcações era ignorado: etiquetas de paragrafo eram usadas para comportar títulos ou listas, por exemplo.

Essa forma de criar os documentos faz com que a informação fique clara para o seres humanos, porém sem sentido algum para máquinas ou sistemas que possam vir a (tentar) interpretar os documentos.

Trabalhar com Padrões Web significa criar documentos onde serão usadas apenas as marcações necessárias para identificar as informações de forma Semântica, sem que sejam inseridas marcações com finalidades visuais.

O uso de tabelas para diagramar as páginas gera um código sem significado, muitas vezes incompreensível, e várias vezes maior que o necessário, enchendo os servidores pelo mundo de terabytes inuteis, além de fazer com que boa parte das informações úteis não sejam compreendidas pelas máquinas.

Devemos usar apenas marcações que forneçam significado à cada parte do documento, e toda apresentação visual deve estar em um documento separado (CSS).

Refletindo-sobre-Web-Semântica

Acessibilidade: máquinas informando seres humanos

Quem cria páginas para web utilizando editores WYSIWYG e tabelas, pode alegar que disponibiliza informações claras ao menos aos seres humanos.

Mas será que realmente todos os seres humanos tem acesso as informações publicadas na web?

Algumas pessoas necessitam do suporte de tecnologias assistivas para compreender as informações da web, seja por deficiências visuais ou motoras, necessitando do auxílio de leitores de tela, teclados alternativos, ampliadores de tela, ponteiras de cabeça e linhas braile. Existem pessoas que dependem de máquinas para acessar as informações disponíveis na web.

Para que um programa leitor de tela com síntese de voz, usado por uma pessoas cega, possa compreender as informações de um documento e converte-las em áudio, é necessário que todos os dados possuam marcações com uma Semântica correta, para que o programa compreenda quais são os títulos, as listas, os paragrafos e os dados tabulares, assim como ter alternativas textuais para descrever imagens e animações.

Também é importante que os documentos tenham uma sequência lógica, da mesma forma que os capítulos de um livro. Quando usa-se tabelas para diagramar um layout, a única preocupação é com a organização visual, deixando o código com uma sequência incompreensível para máquinas, como se misturassemos os capítulos do livro.

Para que todas pessoas possam ter acesso as informações, devemos criar documentos com uma sequência coerente, com alternativas textuais para imagens e animações, atalhos de teclado para links e campos de formulários, indicações de conteúdos em outros idiomas, e tudo que possibilite as tecnologias assistivas de compreender o documento.

Trabalhando pela evolução dos Sistemas de Informação

Boa parte das justificativas dos profissionais que não trabalham com os padrões está no fato de que navegadores antigos como o IE6 (que possui a maior fatia dos usuários) não possuem suporte adequado aos padrões. Porém existem formas de driblar isso, que podemos encontrar com uma simples busca na web: para PNG’s transparentes, assim como para a falta de interpretação de algumas propriedades de CSS, como pseudo-elementos, podemos utilizar scripts como o IE7.js. Para diferenças de renderização entre navegadores temos técnicas de CSS Reset.

Qualquer layout complexo é possível de ser feito com CSS, basta ter conhecimento e as armas certas engatilhadas. O fato dos navegadores antigos não fornecerem suporte adequado não pode ser pretexto para pararmos de estudar, nem pregarmos o retrocesso do desenvolvimento para a web. Dessa forma não estaremos contribuindo para que evolução alguma aconteça (você acha que o IE8 passou no teste ACID 2 porquê a Microsoft decidiu ser legal, ou pela pressão do mercado e dos desenvolvedores?).

Outra fácil justificativa é jogar a culpa nos clientes, que não flexibilizam prazos e nem recompensam financeiramente o uso dos Padrões Web. Mas será que todos os clientes tem receio de investir em projetos acessíveis por terem preocupações unicamente visuais, ou porque não são esclarecidos das reais vantagens?

Estudar, argumentar, e convencer os clientes está ao alcance de todos. As vantagens que podemos obter com o uso dos Padrões Web estão documentadas em diversos sites: arquivos menores e sites mais leves, menor consumo de banda, maior indexação pelos mecanismos de busca, maiores facilidades de manutenção e redesign, além de maior Acessibilidade.

Claro que para isso realmente acontecer, devemos compreender que trabalhar com Padrões Web não é apenas uma questão de substituir tabelas por divs (tableless).

Maior produtividade virá com a experiência, e com a compreensão de que os documentos não podem ser verdadeiras “sopas de tags“. Se criarmos páginas com uma grande quantidade de marcações sem significado, mesmo que não usemos tabelas e editores WYSIWYG, não conseguiremos obter essas vantagens.

É necessário criarmos documentos com significados não só para humanos, mas também com Semântica para máquinas. Os sites são armazenados em máquinas, leitores de tela e outras tecnologias assistivas são máquinas, e também os mecanismos de busca são máquinas!

As possibilidades de existência de uma Web Semântica, com integração de dados entre diversos sistemas informacionais, que possam melhorar a qualidade de vida das pessoas, só serão possíveis com documentos semânticos, e claro que isso não se resume a desenvolver um HTML com devido significado. Porém, outros assuntos relacionados, como RDF ou Microformats, são temas para outro artigo.

Para que haja evolução das máquinas e dos sistemas, é preciso que haja primeiro uma evolução dos profissionais que fazem a web.

5 comentários em “Refletindo sobre Semântica”

  1. Muito bom o post Agni, eu disse que tinha valido a pena participar com você da sua palestra na #cparty, tem muita informação aqui que pessoas que já trabalham com internet, não sabem, ou não se dão ao valor de saber.

    Parabéns pelo Post.

  2. Agni,

    Parabéns! Além de ser muito bem fundamentado, aborda como a utilização de padrões reflete no ganho de qualidade.

    E deixou bastante claro que as tecnologias devem ser empregadas com as técnicas apropriadas ao invés de fazer sempre do mesmo jeito não importando a tecnologia.

    []s
    Shigueru

  3. Estou estudando com o livro de CSS com XHTML e posso dizer que o post aumentou a minha vontade de aprender mais e seguir esse regra. Concordo que o tempo de desevolvimento é grande quando se desconhece a WEB STANDERS.
    Respeitar para cabeçalhos é bem mais simples do que criar regras de estilos para como título.
    Obrigado pelas informações contidas nesse post e vou ficar de olho nos post seguintes.
    … media=”all”>

  4. Pingback: Web Semântica: transformando código em conhecimento //ux.blog

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima