O tamanho importa

Quarta-feira, 25 de Janeiro de 2006

Durante o desenvolvimento de uma aplicação web, chega uma altura em que é necessário definir o tamanho do texto. O grande problema é que nem todos os browsers mostram o texto com o tamanho certo, por isso, grande parte dos designers usa “pixels” para definir o seu tamanho. 1 pixel é sempre 1 pixel em qualquer browser, por isso os sites concebidos desta forma ficam bastante iguais nos diferentes browsers, o que é bom para os designers.

Um texto com o tamanho de 12 pixels terá sempre 12 pixels de altura tanto no Internet Explorer como no Firefox ou no Opera.

Alterar o tamanho do texto no IEO problema aqui é que há pessoas que podem não conseguir ler o texto com esse tamanho e usam o browser para aumentar gradualmente o tamanho do texto, e no Internet Explorer não é possível aumentar o texto (View -> Text Size -> Larger) se usarmos pixels.

Desta forma privamos os utilizadores deste browser de poderem controlar a forma como visualizam o website. Em qualquer outro browser basta pressionar [CTRL] + ou [CTRL] – para aumentar ou diminuir o texto.

Sendo assim, temos de usar uma unidade relativa para que os utilizadores do IE também consigam escalar o texto. Para isso existem várias soluções:

Usando palavras-chave

Usando a propriendade font-size do CSS podemos definir o tamanho do texto usando as seguintes palavras-chave: xx-small, x-small, small, medium, large, x-large, xx-large.

Isto seria perfeito se, uma vez mais, o Internet Explorer não interpretasse estas instruções de forma totalmente errada. Normalmente os browsers usamo o tamanho medium como base, no entanto, no IE5 o valor base usado foi small fazendo com que o texto neste browser apareça um tamanho acima daquilo que era esperado.

Existem alguns “hacks” para corrigir este comportamento, mas eu sou da opinião que não devemos usar “hacks” sem ter encontrado uma outra solução para o mesmo problema.

Usando uma combinação de percentagens e “ems”

O texto definido em percentagem é escalável em qualquer browser. Esta poderá ser a solução ideal, no entanto há alguns pormenores a ter em conta.
O valor standard do texto normal nos browsers é de 16 pixels. Se definirmos o texto para 100%, o tamanho base será de 16 pixels, o que poderá ser um bocado grande demais para qualquer layout. Dessa forma podemos combinar usar o tamanho 100% no body e 0.8em num contentor global:

  1. body {
  2. font-size: 100%;
  3. }
  4. #global {
  5. font-size: 0.8em;
  6. }

O problema é que estes valores são sempre relativos ao contentor em que está o conteúdo. Assim, se tivermos o seguinte código:

  1. p {
  2. font-size: 0.8em;
  3. }
  4. strong {
  5. font-size: 0.8em;
  6. }

E no HTML tivermos:

  1. <p>O tamanho do texto é <strong>relativo</strong></p>

Então o texto dentro da tag <strong> terá 0.8 do tamanho do texto da tag <p> que por sua será 0.8 do tamanho do texto no body. Por isso é preciso ter cuidado quando se usam unidades relativas para definir o tamanho do texto.

Este é o método que que tenho usado ultimamente para fazer com que o texto seja escalável, no entanto isso não significa que este seja o melhor método e até agora ainda não foi identificado nenhum método 100% seguro. Há sempre pontos fortes e pontos fracos em todos os métodos existentes.

Usando JavaScript

Através do uso de JavaScript podemos usar o tamanho do texto em pixels e criar 3 folhas de estilos diferentes: normal, média e enorme. Cada uma delas com o tamanho do texto ligeiramente maior do que a anterior. Depois, através de JavaScript podemos criar um link para alternar entre as folas de estilo fazendo com que o texto mude de tamanho instantaneamente.

Este era o método que eu usava aqui no site até há bem pouco tempo, no entanto, uma vez que o JavaScript pode ser desactivado pelo utilizador, qualquer sistema que funcione desta maneira deixa de ter utilidade se a funcionalidade do JavaScript estiver desactivada no browser. Além disso, o utilizador deixa de poder ter controlo do tamanho do texto através do browser (aumentar/diminuir o texto ou usar uma folha de estilos própria) uam vez que para alterar o tamanho do texto tem que clicar num link dentro do site (link esse que pode não ser fácil de encontrar).

A mesma fonte em sistemas diferentes

Além da dificuldade que é escolher e definir o tamanho do texto, ainda existe mais uma variável: o tipo de letra.
O mesmo tipo de letra pode ser diferente em vários sistemas. Aqui já não falamos de browsers uma vez que eles usam os tipos de letra existentes no sistema operativo. Sendo assim, se compararmos este site com o mesmo tipo de letra num computador com Windows XP e noutro com Mac OS X, os resultados são bastante diferentes:

Windows XP

Texto no Windows XP

Mac OS X

Texto no Mac OS X

As maiores diferenças notam-se principalmente na largura do menu e do título do artigo. No Mac OS X o menu fica perfeitamente alinhado com a linha que separa a barra lateral enquanto que no Windows XP a linha fica a meio do link para a página inicial.

Qual o método que usam?

Uma vez que há vários métodos para controlar o tamanho do texto, gostava de saber quais os métodos que costumam usar e quais os que acham mais adequados e acessíveis?

26 Comentários

Escreva o seu comentário!

Comente!

Preencha o seu nome para assinar o comentário. O preenchimento deste campo é obrigatório.

Os comentários são as suas ideias ou opiniões em relação ao artigo que acabou de ler. Assine o seu comentário para dar a conhecer o seu ponto de vista. 
O seu endereço de e-mail não será publicado. O preenchimento deste campo é obrigatório.

Este site suporta a utilização de gravatars. Caso o seu endereço de e-mail esteja registado em gravatar.com, irá aparecer a sua imagem ao lado do comentário. 
Se tiver um website, este é um bom local para o publicitar.

Sempre que alguém ler o seu comentário, irá ver um link para o seu site. Se o seu comentário for relevante para os outros utilizadores, com certeza eles quererão saber mais sobre si e visitarão o seu site. 
Este formulário permite o uso de algumas tags em XHTML. As tags permitidas são as seguintes:

<a href="" title="">
<abbr title="">
<acronym title="">
<b> <blockquote cite="">
<code> <em> <i> <strike>
<strong>
 

Sobre este Artigo

 

Sobre o Autor...

Ivo GomesIvo Gomes tem 30 anos e é licenciado em Ergonomia pela FMH. Durante o curso especializou-se em Ergonomia de Sistemas de Informação e actualmente é líder do Departamento de Usabilidade e Qualidade do SAPO.

É sócio da Associação Portuguesa de Ergonomia, da Usability Professionals Association, e sócio fundador e membro do Conselho Directivo da Associação Portuguesa de Profissionais de Usabilidade.

Categorias do Blog

Arquivo

Consulte o arquivo para procurar algum artigo específico ou use o motor de busca.

|

Subscreva

Se preferir pode subscrever os artigos deste site via RSS para poder estar sempre actualizado.

O que são Feeds RSS e como as posso subscrever?