Terça-feira, Novembro 07, 2006

4 elementos do HTML que eu e a Torcida do Flamengo deveríamos usar mais

A Torcida do FlamengoA versão 4 do HTML traz algumas novas tags bastante úteis. Eu mesmo deveria usá-las com mais frequência, mesmo assim sempre me irrito quando vejo suas funcionalidades implementadas de forma muito mais complicada. Aqui vão elas em ordem de importância.
  1. Atributo title
    Este atributo pode ser colocado em praticamente qualquer elemento. Quando você passa o mouse sobre o elemento, os navegadores mostram o texto dentro do title como uma tooltip. Sua utilização mais interessante é nos links, permitindo dar mais informações para o usuário de aonde o link vai levar, antes mesmo de clicar no link e mudar de contexto. Melhora em muito o cheiro da informação. Pena que no Internet Explorer, se uma imagem é linkada ela incorretamente mostra o texto de seu atributo alt, em vez do do especificado title.
    Veja no link acima como funciona. Eis o código correspondente:
    <a href="http://www.steptwo.com.au/papers/kmc_informationscent/index.html" title="Explicação do conceito de cheiro da informação (em inglês)">cheiro da informação</a>
  2. Elemento label
    Você já tentou marcar um checkbox ou um radiobutton e clicou fora do lugar certo? E já tentou fazer isto com um mouse falhando? É difícil de acertar, não? Eles são muito pequenininhos.

    Uma lei básica de interação é a chamada Lei de Fitts, que diz que o tempo para se clicar em um alvo é proporcional à sua àrea e inversamente proporcial à sua distância ao cursor. Algo grande e perto é clicado muito mais rápido do que algo pequeno e longe. É tão difícil clicar algo pequeno perto, quanto algo grande e longe. Por isto é nos programas de desktop você pode clicar no rótulo do checkbox para marcá-lo, pois se a área clicável é maior, torna-se mais fácil interagir.

    E será estamos condenados no HTML a ter que clicar em uma área tão pequena para marcar os checkboxes e os radiobuttons? Claro que não! O elemento label vem nos resgatar. Ele permite que você associe um rótulo e um elemento de um form. Tente clicar nos rótulos abaixo e veja como o radiobox é selecionado:

    Qual o melhor time do mundo?

    Este é o código HTML:
    Qual o melhor time do mundo?<br>
    <label><input name="time" value="0" type="radio">Flamengo</label>
    <label><input name="time" value="1" type="radio">O Rubro-negro da Gávea</label>

    De brinde, quem usa o label torna seu sítio muito melhor para deficientes visuais. A associação de elementos do form e seus rótulos costuma ser expressa apenas visualmente (e.g., colunas adjacentes numa tabela). A associação explícita permite que programas leitores de tela descrevam esta relação para o usuário. Na verdade, este é o motivo principal da criação deste elemento e a razão pela qual você deve usá-lo em todos os elementos de form.

    Pena que é tão difícil achar um rótulo que possa ser clicado. Acho que só em alguns sítios do Google e do Yahoo. O número de pessoas que usa este elemento é do tamanho da pequenininha torcida do Fluminense.

  3. Elementos fieldset e legend
    Estes servem para agrupar elementos de um form. Visualmente os navegadores desenham uma caixa em volta dos elementos contidos por um fieldset, basta adicionar o legend para rotular o grupo. Veja como fica:
    Seus dados
    Endereço:

    Dados de pagamento:

    Confira o código:
    <form>
    <fieldset>
    <legend>Seus dados</legend>
    <fieldset>
    <legend>Endereço: </legend>
    <label>Rua: <input type="text"></label>
    <label>CEP: <input type="text"></label>
    </fieldset>
    <fieldset>
    <legend>Dados de pagamento: </legend>
    <label>Número Cartão<input type="text"><label>
    <label>Código de segurança<input type="text"></label>
    </fieldset>
    </fieldset>
    </form>
    Usando este elemento, você se valerá de um princípio básico de desenho visual chamado proximidade sem necessidade de usar enroladíssimas tabelas. Outra vantagem é que é possíver estilizar um grupo de elementos com simples regras CSS.

  4. Elemento optgroup
    Confesso que este é o menos útil da lista, especialmente porque normalmente pull-down menus é um péssimo widget de interação. Nele você não pode ver todas as opções ao mesmo tempo, dificultando compará-las para escolher a melhor. Mas já que é interessante e pouco conhecido também entrou na lista. Ele te permite agrupar elementos dentro de um pull down menu. Veja o exemplo:

    Eis o código:
    <select>
    <option>Selecione seu time</option>
    <optgroup label="Rio de Janeiro">
    <option>Flamengo</option>
    <option>Outros</option>
    </optgroup>
    <optgroup label="São Paulo">
    <option>Aquele</option>
    <option>Outros</option>
    </optgroup>
    </select>

Quinta-feira, Novembro 02, 2006

Desabilitando autoscroll no Firefox

Este negócio de autoscroll deve ser bom, já que é comportamento padrão dos mouses com rodinha no Windows. Clique com o botão da rodinha no painel principal da aplicação e então basta mover o mouse para cima ou para baixo para subir ou descer.

Só que no Linux o botão do meio é a a ação de colar. Nos navegadores web do Linux (Firefox, Konqueror etc.) se você tem uma URL no clipboard e clica com o botão do meio no painel principal, o navegador automaticamente carrega a página. Como basta selecionar um texto para copiá-lo para o clipboard* isto é bem prático.

O chato é que fiquei viciado nisto e o Firefox 1.5 vem por default com o autoscroll associado ao botão do meio. Acabei de descobrir como desligar isto. Visite o URL about:config, escreva scroll no filtro e clique duas vezes sobre a opção general.autoScroll para marcar seu valor como false. Oba! A felicidade retornou. Voltei a visitar uma página com um único clique.

* No X é tudo mais enrolado, na verdade existem dois clipboards.