terça-feira, 31 de agosto de 2010

Tab do Facebook com uma imagem que linka para um swf

Modo de implementar uma tab no facebook, em que se tem uma imagem com um link para um swf que correr sempre dentro do facebook.

A primeira div tem a imagem


















A segunda div tem a página com o swf que aparece quando se clica na imagem


















Tanto a imagem como a página com o swf têm que estar online para funcionar.

<div id="iframeLinkDiv">
<a clicktohide="iframeLinkDiv" onclick=&
quot;outside_location.setInnerFBML(link_1);" style="cursor: pointer;">
<img alt="Compal Fresh Sangria" src="http://www.compal.pt/facebook/images/destaque2.jpg" />
</a>

</div>
<div id="outside_location"></div>
<fb:js-string var="link_1">
<fb:iframe height="520" allowTransparency="true" frameborder="0" scrolling="no" style="width:100%; border:none" src="http://www.compal.pt/facebook/iframebanner2.html"></fb:iframe>
</fb:js-string>
<script type="text/javascript" charset="utf-8">
var outside_location = document.getElementById('outside_location');
</script>

segunda-feira, 2 de agosto de 2010

Facebook Boxes - vão desaparecer, e as Application Tabs terão um formato mais pequeno

As Facebook Boxes, ou caixas laterais em página do facebook, que costumam ser utilizadas para destaque de aplicações, vão deixar de existir.

Em Novembro, foi anunciado pelo Facebook, que a plataforma não vai mais suportar as boxes (caixas) nos perfis e nas páginas, de forma a estimular os developers na utilização de aplicações em tabs.

Adicionalmente, as Application Tabs, em vez de terem uma largura de 740px, vão passar a ter 520px.

How To Turn Your Site Into A Facebook Fan Page

Com a antiga plataforma do facebook existia um botão o "Become a Fan", que se inseria no site do cliente e o utilizador ao clicar ficava logo fan da página de facebook.

No entanto, com a nova plataforma este botão foi removido e substituido pelo botão like. Assim, neste momento o botão like tem duas funções, uma consiste no utilizador dizer que gosta daquele artigo, produto etc..., a outra consiste em ficar fan da página de facebook.

Em relação à primeira função, já disse como se fazia no post anterior. Relativamente, á função do utilizador se tornar fan da página, o processo é o mesmo, vamos á página 'Like Button - Facebook Developers' - e produzimos o botão, a única diferença relativamente ao post anterior é que no url inserimos o link da página do facebook em vez do link do site do cliente.

Exemplo:
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww%2Efacebook%2Ecom%2Fportobayfans%3Fref%3Dts&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>

sexta-feira, 30 de julho de 2010

Facebook – Like Button

O Botão 'Like' permite ao utilizador partilhar o conteúdo com amigos do facebook. Quando o utilizador clica no botão do site, a informação de que ele gosta daquele conteúdo aparece no perfil do utilizador, a dizer que ele gosta daquele conteúdo.

Para inserir o link no site basta ir á página:

Like Button - Facebook Developers

Escolhe-se o Url do site onde queremos por o botão like, costumizamos o botão e geramos o código.

Depois de gerar o código, aparece uma caixa com o código de uma iframe e o código do XFBML, é preferivel utilizar o código da iframe, porque o outro não funciona bem nalguns browsers.

Exemplo:
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fhtml-css-jquery%2Eblogspot%2Ecom%2F&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>

Nota: Algo que têm que ter em atenção quando inserimos o link da página e geramos o botão, temos depois que substituir o '.' por %2E, ou seja

Aparece assim: http%3A%2F%2Fhtml-css-jquery.blogspot.com
E temos que por assim: http%3A%2F%2Fhtml-css-jquery%2Eblogspot%2Ecom

senão pode dar erro.

Para mudar a língua do botão basta inserir isto ao link: &locale=de_DE e o botão ficará, neste caso, em alemão. Se esta propriedade não for incluida, o botão ficará com a língua que o browser tiver.

Exemplo:


<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fhtml-css-jquery%2Eblogspot%2Ecom%2F&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=21amp;amp;locale=de_DE" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>

Facebook - Display Facebook Fan Count in Text

Adicionar a contagem de fans do facebook ao nosso site ou blog pode ser a melhor forma de o promover, pois mostra a quantidade de visitantes que tem no seu site ou blog através do facebook, e faz com que mais pessoas se tornem fans da nossa página de facebook.

Existem 3 passos que são necessários realizar para permitir a contagem de fans do facebook no site ou blog. Esta funcionalidade utiliza uma api key do facebook para mostrar o número de fans.

Step 1 – Ter acesso á API Key do facebook, à Application Secret e ao ID da página.

1.Faça login no facebook, e procure na caixa de pesquisa por ‘Facebook Developer’s Grupo’, depois de entrar click em ‘Criar nova Aplicação’ou "Set Up New Application".

2.Irá aparecer-lhe uma caixa igual a esta. Escreva o nome da aplicação, de acordo com os termos do Facebook e clique em “Criar aplicação” ou “Create Application”. Nota: Estes passos servem para teremos acesso à API Key e á Application Secret.
3.No próximo passo, terá acesso à API Key e à Application Secret. Deve copiar estes dados para um sitio qualquer pois irá precisar deles.

O Page ID é o ID do Facebook Fan Page. Se não tiver uma página no Facebook Fan, terá que criar uma primeiro. Para obter o ID da página Fan, clique em ediar a página e veja qual é o ID, no final do URL - http://www.facebook.com/pages/edit/?id=XXXXXXXXX

Step 2 - Get Facebook.php

Também vai precisar do Facebook API PHP SDK file, que se chama Facebook.php. Pode ir buscá-lo aqui, e inseri-lo num ficheiro e colocá-lo na raiz da sua pasta.

Step 3 – Mostrar o Fancount

Para mostrar a contagem de fans, deverá copiar o seguinte código e inseri-lo num ficheiro php.

<?php
require_once('facebook.php');
$facebook = new Facebook(array(
 'appId'  => 'app_id',
 'secret' => 'secret_key',
'cookie' => true,
));  
$result = $facebook->api(array(
 'method' => 'fql.query',
'query' => 'select fan_count from page where page_id = page_id;'
));  
$fb_fans = $result[0]['fan_count'];
?>

Depois terá que editar alguns dos dados tais como:
- app_id pelo seu Facebook Application ID
- secret_key pelo seu Secret
- page_id pelo seu Facebook Fanpage ID

Para mostrar a contagem de fans, basta inserir esta linha de código em qualquer sitio do site ou blog:

<?php echo $fb_fans; ?>

Facebook – Show Content to Fans – Hide from Non-Fans – FBML

Forma de mostrar um conteudo diferente ás pessoas que são fãs da nossa página de facebook, e aquelas que não são.

Isto permite exigir que um visitante da nossa página se torne fã, pois só assim conseguirá ver o conteúdo escondido. É óptimo para passatempos, pois se o visitante quiser participar terá que se tornar fã.

<fb:fbml version="1.1">
<fb:visible-to-connection>
Fans will see this content.
<fb:else>Non-fans will see this content.</fb:else>
</fb:visible-to-connection>
</fb:fbml>

Redes Sociais ou Web 2.0 nas Empresas

Twitter, Facebook e MySpace são exemplos de redes sociais que estão hoje em dia a tornar-se ferramentas muito utilizadas por empresas, pois para estas são ferramentas eficazes e fundamentais no mercado de trabalho.

Muitas empresas, como sabemos, utilizam esta estratégias de marketing para tornar a marca mais acessivel aos seus clientes, informando de todas as actualizações, desde lançamentos de produtos, promoções e ofertas. Torna-se assim uma forma interactiva e em tempo real de estar em constante contacto com o cliente, limitando-se a partilhar informação e recolher opiniões, podendo correr o risco de serem inundadas com reclamações.

As empresas utilizam o potencial das redes sociais como laboratórios onde podem fazer verdadeiros estudos de mercado com uma velocidade muito superior á tradicional e sem os custos.

As caracteristicas principais das redes sociais são:

- Inteligência
O grupo olha de fora como um todo e a empresa efectua a estratégia com o efeito das comunidades. Criação de novos produtos aproveitando a criatividade e dinâmica das multidões. Aperfeiçoamento dos produtos utilizando o espírito participativo das multidões.

1-Um grupo encontra soluções optimas ou de acordo com o desejo do mercado.
2-A empresa adapta-se e aproveita a informações vinda das comunidades.
3-A empresa fornece ferramentas para estimular a criação e a fidelização dos clientes
4-O grupo aproxima-se da empresa discutindo sobre ela ou o sobre o mercado.

- Democracia
Liberdade para participar e participar à vontade. O consumidor tem o controle de aceder aquilo que deseja.

Qualquer pessoa com acesso à internet pode participar de fóruns, comentar blogs e dar opiniões sobre produtos, como menos barreiras. As pessoas estão no controle, pois procuram aquilo que querem.

- Segmentação
É mais fácil explorar novos nichos e novos negócios, pois a internet quebra as barreiras de comunicação.

Sem distâncias ou barreiras, os produtos e serviços muito especificos, voltados para uma audiência especifica ganham visibilidade e novas oportunidades de negócio.

- Velocidade
Propagação de ideas e marketing viral. Com os blogs, foruns, chats e comunidades, a propagação de ideias espalha-se muito rápido.

Como pode uma empresa sobreviver neste novo ambiente?

A empresa deve monitorizar a internet, ou seja, acompanhar comunidades e foruns de discussão, verificar e consultar a opinião dos clientes sobre a sua empresa.

O segundo passo será recolocação ou colocação do produto, ou seja, deve inverter o relacionamento com o mercado e com a imprensa, posicionar-se perante as necessidades dos clientes e assumir uma postura de transparência.

Em relação ao mercado deve tomar uma acção, ou seja, encontrar uma comunidade em torno da sua marca, envolver os clientes com a empresa e a criação de produtos e humanizar a empresa inspirando confiança.

segunda-feira, 26 de julho de 2010

HTML 5 - Elementos de Conteúdo e a sintaxe

A sintaxe em geral não apresenta grandes mudanças, no entanto foram implementadas muitas novas tags, para além das já reverenciadas em post’s anteriores.

Finally, a doctype anyone can remember


A primeira linha de todo o documento de HTML deve ter uma declaração de DOCTYPE.

O DOCTYPE é uma referência a um DTD (Document Type Definition), que não é mais do que um documento onde estão definidas as regras para a criação de um documento de HTML. Nele estão descritos os elementos que podem ser utilizados, quais os elementos que podem estar dentro de outros elementos, que tags descrevem esses elementos, se um elemento tem conteúdo ou não, se é necessário ter tag de abertura e/ou de fim...
Enfim, tudo o que pode ou não ser utilizado dentro do nosso documento.

Com o HTML 4, o que ainda utilizamos, a declaração do DOCTYPE é dividida em duas partes, um identificador publico (public identifier) e uma URI.

O identificador publico diz que tipo de documento está a ser utilizado:
-//W3C//DTD HTML 4.01//EN

A URI aponta para o endereço do DTD na web:
http://www.w3.org/TR/html4/strict.dtd

Quando começarmos a construir documentos em HTML 5 devemo-nos lembrar que estes podem ser escritos com o mime type text html, mas também podem ser escritos em xml.

Assim, o DOCTYPE para documentos HTML 5 não necessitam mais do DTD, assim o doctype é escrito da seguinte forma:
<!DOCTYPE html>

Simples e óbvio, não é, :). E melhor ainda é case insensitive. Agora já não será dificil decorarmos como se escreve.


Tags de conteúdo novas


<audio> – especifica um streaming de áudio num documento HTML. Esta tag recebe, entre outros, o parâmetro src, com o ficheiro de áudio. Pode ser utilizado em conjunto com tags <source>, caso se tenha mais do que um ficheiro de áudio.

<audio src="horse.ogg" controls="controls">
Your browser does not support the audio element.
</audio>

Para experimentarem: http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_audio

/*****************************************************************/
<video> - especifica um streaming de vídeo num documento de html. Esta tag recebe, entre outros, o parâmetro src, com o ficheiro de vídeo. Pode ser utilizado em conjunto com tags <source>, caso se tenha mais do que um ficheiro de vídeo.

<video src="movie.ogg" controls="controls">
your browser does not support the video tag
</video>

Para experimentarem: http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_video

/*****************************************************************/
<canvas> – especifica a criação de gráficos numa página web. Esta é uma tag que vai revolucionar o mundo do HTML, pode ser utilizada em conjunto com javascript para gerar conteúdos dinâmicos, tais como gráficos ou até mesmo jogos. Através de uma API gráfica, o browser irá renderizar imagens 2D dinâmicas que poderão ser utilizadas em jogos, gráficos, etc;

Este exemplo mostra como desenhar um rectangulo vermelho:
<canvas id="myCanvas"></canvas>
<script type="text/javascript">
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>

http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_canvas
Outros exemplos do canvas:
-> Interactive canvas gradients - http://html5demos.com/canvas-grad (ao movimentarm-se no site o browser vai mudando de cor). É suportado por: Firefox, Chrome, Safari e Opera

-> Drag files directly into your browser - http://html5demos.com/file-api (arrastem um imagem para cima do rectangulo, e ela aperecerá como background sem necessidade de fazer upload) – Funciona em Firefox mas não funciona em Chrome


/*****************************************************************/
<command> – especifica um comando que o utilizador pode executar.

<menu>
<command type="command">Click Me!</command>
</menu>

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_command

<datalist> – especifica um “autocomplete” em formulários. Em conjunto com um novo tipo de input “list”, é utilizada para fazer caixas de selecção (comboboxes). E assim já não será necessário utilizar a tag select, e já será possivel formatá-la como os designers tanto gostam, sem ter que recorrer ao jquery.

<input list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
</datalist>

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_datalist

<details>
– especifica informações adicionais que o utilizador pode visualizar ou esconder sob demanda.
/*****************************************************************/
<details> - This document was written in 2009.</details>

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_details

<embed> – especifica uma aplicação externa com conteúdo interactivo.

<embed src="helloworld.swf" />

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_embed

/*****************************************************************/

<eventsource>
– especifica um destino para eventos enviados por um servidor. Tem o src como atributo e o valor é um url.
<event-source src='/some/path' onevent='process(event)'/> 

/*****************************************************************/

<figure>
– especifica ilustrações, imagens, fotos, associado juntamente com legendas, ou seja, é utilizada para englobar informação a algum conteúdo multimidia, como uma foto, por exemplo. Dentro do figure é colocado uma tag multimidea como o <img> e uma tag <legend> contendo a informação a ser acrescentada, ou outras tags.

<figure>
  <h1>WWF</h1>
  <p>The World Wildlife Foundation was born in 1961...</p>
</figure>

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_figure

Outro exemplo:
<figure id="figura01">
<legend>Figura 1. Esquema de uma página em HTML 5</legend>
<img src="html5.png" border="0" width="200" height="300" alt="Como fica a estrutura de uma página escrita com os novos elementos do HTML 5" />
</figure>

/*****************************************************************/
<mark> - especifica um texto destacado para fins de referência.

Destaque de partes do texto:
<p>Do not forget to buy <mark>milk</mark> today.</p>

Para experimentarem:http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_mark

/*****************************************************************/
<source> - especifica múltiplos recursos multimidia numa página, tais como video e audio.

/*****************************************************************/
<datagrid> - utilizada para representar árvores, listas ou dados tabulares.

<datagrid>
 <ol>
  <li> (datagrid row 0) </li>
  <li> (datagrid row 1)
   <ol style="list-style-type:lower-alpha;">
    <li> (datagrid row 1,0) </li>
p; <li> (datagrid row 1,1) </li>
   </ol>
  </li>
  <li> (datagrid row 2) </li>
 </ol>
</datagrid>

/*****************************************************************/
<dialog> - junto com as tags
e
será usado para formatar um diálogo:

<dialog>
<dt> Michael, you never told me your family knew Johnny Fontane!
<dd> Oh sure, you want to meet him?
<dt> Yeah!
<dd> You know, my father helped Johnny in his career.
<dt> Really? How?
<dd> ...Let's listen to this song.
</dialog>

quinta-feira, 15 de julho de 2010

Mixing HTML5, CSS3, WebGL, websockets...

Este vídeo está muito bom, dá vontade de ter uma máquina para avançar no tempo, e puder utilizar isto JÁ nos nossos sites.

Vejam, vale a pena :)



PS: obrigado Mendes por teres encontrado isto, mto bom mesmo :)

HTML 5 Formulários - Novos Elementos do Formulário

Ainda nos formulários, para melhorar a estrutura foram implementados novos elementos, no entanto, por enquanto quase nenhum browser os suporta correctamente:

- Keygen: este elemento consiste em proporcionar de uma forma segura a autenticação de utilizadores. Este elemento é um key-pair generator, ou seja, quando o formulário é submetido, são geradas duas chaves, uma pública e uma privada. A chave privada é armazenada no cliente e a chave publica é enviada para o servidor. Esta pode ser utilizada para gerar um client certificate para autenticar o utilizador no futuro. No entanto, neste momento os browsers não têm suporte suficiente para que este elemento funcione correctamente.

Exemplo de utilização:
<form action="demo_keygen.asp" method="get">
Username: <input type="text" name="usr_name" />
Encryption: <keygen name="security" />
<input type="submit" />
</form>

/*****************************************************************/

- Output: especifica o resultado de um cálculo, por exemplo, efectuado por algum script.

Exemplo de utilização:
<output id="result" onforminput="resCalc()"></output>

Experimente

/*****************************************************************/

- Meter: Este elemento é utilizado para medição, através de um valor minimo e máximo, ou seja, especifica uma medição dentro de um intervalo pré-definido.

Exemplo de utilização:
<meter min="0" max="10">2</meter><br />
<meter>2 out of 10</meter><br />
<meter>20%</meter>

Experimente

/*****************************************************************/


- Progress:
define work-in-progress. É utilizado para medir o progresso de uma tarefa especifica. Por exemplo, se lhe faltarem 5 página para terminar um inquerito, é possivel o utilizador ver o elemento de progresso nessa área.

Exemplo de utilização:
<progress id="p" max=100>0% </progress>

Experimente

/*****************************************************************/

Browser Support

quarta-feira, 14 de julho de 2010

HTML 5 Formulários - Novos Atributos

O HTML 5 para além de novos tipos de campos, trouxe também novos atributos para os formulários e para os próprios campos.

Os novos atributos incluem o autofocus, autocomplete, list, required, multiple, pattern, min and max, step e placeholder.

- AUTOFOCUS: deixa o cursor já seleccionado, isto ajuda muito na parte da acessibilidade e usabilidade web.

<input name="form_text" id="form_text" type="text" value="foo" autofocus>

Experimentem: Exemplo Autofocus

/*******************************************************************/

- AUTOCOMPLETE: este atributo permite que o form ou o input tenham uma função de autocomplete, ou seja, quando o utilizador começa a digitar o campo, o browser exibe opções para preencher o campo. Este atributo funciona com o elemento form, e os seguintes elementos de input: text, search, url, tel, email, datepickers, range e color.

<form action="demo_form.asp" method="get" autocomplete="on">
First name:<input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="email" name="email" autocomplete="off" /><br />
<input type="submit" />
</form>

Neste caso temos o formulário com autocomplete = on e o email com autocomplete = off.

Experimentem: Exemplo Autocomplete

/*******************************************************************/

- MIN, MAX and STEP: são atributos que especificam restrinções para os input que contem números ou datas. O atributo max especifica o valor máximo permitido no campo de texto. O atributo min especifica o valor minimo no campo de texto, e o step especifica um intervalo de números no campo de texto. Por exemplo se o step for igual a 3 então os numeros teriam que ser -3, 0, 3, 6, etc...

Os atributos min e max só funcionam com os inputs, date pickers, number e range.

O exemplo em baixo mostra um campo numérico que aceita valores entre 0 e 10, com um step de 3, neste caso os numeros teriam que ser: 0, 3, 6, 9....
<input type="number" name="points" min="0" max="10" step="3" />

Experimentem: Exemplo Min e Max e Step

/*******************************************************************/

- LIST: este atributo especifica uma lista de dados (datalist) para um text field, ou seja, cria um dropdown para o campo de texto. É assim uma lista de opções. Este atributo só funciona com os seguintes input’s: text, search, url, tel, email, date pickers, number, range e color.

Exemplo:
<input type="url" list="url_list" name="link" />
<datalist id="url_list">
<option label="W3Schools" value="http://www.w3schools.com" />
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

Experimentem: Exemplo List

/*******************************************************************/

- PLACEHOLDER: O placeholder é exibido dentro do text field enquanto o campo está vazio e não está onfocus, ou seja, assim que clicamos em cima do campo para escrever, o texto que lá estava desaparece de imediato, e se não escrevermos nada e clicarmos fora o texto que lá estava antes volta a aparecer.
Este atributo só funciona com os seguintes input’s: text, search, url, tel, email e password.

<input name="q" placeholder="Search Bookmarks and History">

Assim, não será necessário mais código jquery, para fazer o onfocus e o onblur de um text field.

Experimentem: Exemplo Placeholder

/*******************************************************************/

- MULTIPLES: este atributo permite que sejam seleccionados vamos itens de uma lista de imagens, documentos, etc... Ao utilizar este elemento, permitimos que o utilizador seleccione vários itens para enviar uma mensagem.
Este atributo só funciona com os seguintes input’s: email, e file.

<form action="demo_form.asp" method="get">
Select images: <input type="file" name="img" multiple="multiple" />
<input type="submit" />
</form>

Experimentem: Exemplo Multiple

/*******************************************************************/

- PATTERN: é possivel validar formulários baseadas em expressões regulares. Este atributo só funciona com os input’s: text, search, url, tel, email e password.

Exemplo 1: Este exemplo mostra que o campo só vai aceitar 11 caracteres númericos obrigatoriamente.
<input pattern=”[0-9]{11}” name=”cpf” required />

Exemplo 2: Este exemplo mostra um campo de texto que pode apenas conter 3 letras, sem número ou caracteres especiais.
<input type="text" name="country_code"
pattern="[A-z]{3}" title="Three letter country code" />

Experimentem: Exemplo Pattern

/*******************************************************************/

- REQUIRED: Este atributo permite que o campo seja obrigatório e que deve ser preenchido antes de se fazer submit. Este atributo só funciona com os seguintes input’s: text, search, url, tel, email, password, datepickers, number, checkbox, radio e file. Com este elemento deixa de ser necessário fazer validações com jquery ou javascript.

Exemplo: o campo ficará com uma border vermelha á volta, e o form não fará submit enquanto este campo não for preenchido
<style>
input[required] {border-color:red; }
</style>
<input name=”telefone” type=”tel” id=”telefone” required>

Experimentem: Exemplo Required

/*******************************************************************/

Agora importa também mostrar quais os browsers que para já suportam estes elementos:

Browser Support

terça-feira, 13 de julho de 2010

HTML 5 Formulários - Novos Inputs

O HTML 5 é uma nova versão que vem revolucionar o modo de desenvolver websites, com novos elementos e novas funcionalidades, que promete facilitar a vida de quem os desenvolve.

Já referi no post anterior os novos elementos de estrutura, e vou agora falar um pouco do que vai mudar em relação aos formulários.

Qualquer formulário começa com o elemento ‘form’, onde são inseridos os controlos. Muitos dos controlos que utilizamos hoje em dia são representados pelo elemento 'input', que fornece uma caixa de texto de uma unica linha. De forma a darmos nome ao controlo, utilizamos o elemento 'label'.

No entanto, o HTML5 trouxe algumas alterações no campo dos formulários, por exemplo, não será mais necessário a utilização de Javascript ou jQuery para validar um campo ou criar um campo especial para data, hora, tempo.

Assim, os novos controlos para os formulários que apareceram com o HTML 5 foram:

Alguns exemplos para testarem:

Email
Url
Number
Range
Date Pickers

No entanto, houve mais uma novidade mas agora com o campo Textarea que também ganhou um novo atributo, permitindo limitar os caracteres. Antes era somente possivel limitar caracteres nos campos de input, agora já é possivel também nas textarea’s.

<textarea name="mensagem" maxlength="1000" cols="" rows=""></textarea>

Good Things and Bad Things

Good Things:
- Mais fácil de utilizar: Do ponto de vista do utilizador, preencher campos de datas em que o calendário salta, em vez de ter de inserir a data como texto, é muito bom. Range sliders, number spinners, color pickers, a combinação de tudo isto ajudará muito o utilizador no preenchimento de formulários.

- Mais fácil de construir: Com todos estes novos elementos a vida também se torna muito mais facilitada para o developers, pois em ver de terem que encontrar uma biblioteca de scripting para fazer os calendários, eles simplesmente estão lá.

- É consistente: Em vez dos utilizadores terem um date picker diferente em cada website (o que acontece agora), quando se começar a implementar estes novos elementos todos os websites terão o mesmo date picker, por exemplo.

Bad Things:

- Not Close To Ready: Os browsers ainda não suportam todos os novos elementos introduzidos pelo HTML5. O Opera suporta os atributos range, date and time e numbers. O Chrome e Safari suportam apenas os atributos range e o placeholder. O Firefox 3.6 e i Internet Explorer 8 não suportam quase nada.

Exemplos visuais de alguns tipos de input:

<input type="search"> em Safari 4.0.5 e Mac OS X:
<input type="range"> em Safari 4.0.5 e Mac OS X:
<input type="date"> em Opera 10.10 e Mac OS X:
<input type="email"> em Opera 10.10 e Mac OS X: Onde mostra também a mensagem de erro quando o email é mal inserido.
É também importante referir quais os browsers que estão neste momento aptos a suportarem estes novos input's.

Browsers Support

domingo, 11 de julho de 2010

Novos elementos de estrutura e semântica – A ORGANIZAÇÃO

Novos elementos foram introduzidos no HTML 5, todos com a finalidade de facilitar a compreenção e manutenção do código, ou seja, estamos tão acostumados a ter liberdade para usar e abusar de DIVS em qualquer lugar desenfreadamente que muitas vezes acabamos por ficar presos a uma metodologia desorganizadas, onde cada site é produzido sem existir um padrão de organização genérico.

O HTML 5 vem propor uma Organização do código, que penso que seja muito importante.
Actualmente não existe nenhum padrão de construção dos elementos para indicar o que é o cabeçalho e o que é o rodapé, por exemplo.

No entanto com o HTML 5, irá existir uma forma de utilizar um padrão de tags que nos ajudará a marcar este tipo de estruturas. Uma estrutura já nossa conhecida seria assim:

Na estrutura em cima, foram utilizados nomes de classes que costumamos utilizar no dia a dia. No entanto, o HTML 5 irá acabar com esta estrutura. A ideia é substituir este amontoado de DIVS por elementos que se encarreguem dessas funções, um exemplo de uma estrutura em HTML 5 seria:

Existem assim diferentes elementos de estrutura quando estamos a produzir uma página em HTML 5. Os principais elementos de estrutura são:

html - representa a root de uma página em html
head - representa a colecção das metatags de uma página
header - elemento que define o cabeçalho da página ou de uma secção (não confundir com a tag head );
section - define a secção do layout num determinado element. Este pode conter um header e também um footer;
article - define uma parte da página que tem uma composição de formulários, textos, etc... ou seja, é um item do conteúdo dentro da página ou da secção;
footer - o rodapé da página ou de uma secção/elemento;
nav - o conjunto de links que formam a navegação, seja o menu principal do site ou links relacionados ao conteúdo da página;

aside - consiste em envolver informações que têm algo a ver com o conteúdo principal do site. Pode ser um menu lateral, um sidebar padrão com menu, banner, search, etc..., ou seja, é um conteúdo relacionado ao artigo.

Neste imagem conseguem perceber um pouco melhor a estrutura:

Com o HTML 5 qualquer elemento pode ter o seu conteúdo separado por secções com o elemento section.

Outra coisa interessante é que agora todos os elementos podem ter também um header a um footer independentes do resto do layout. Como podemos verificar na imagem em cima, em que temos um header e footer para a secção e para a página em si.

Um duvida que surge com este tipo de estrutura é como é que se fará agora a distribuição das tags H1, H2, H3....H6 (títulos), pois se utilizo a tag H1 no logo da site, não poderei utilizá-la no título do artigo, porque se repetirmos muitas vezes as mesmas tags de títulos, a importancia que cada título tem sobre o outro irá perder-se, e o Google não irá indexar bem os títulos do site.

Com o HTML 5 este problema fica resolvido, porque para cada section que se inicia, é possivel começar novamente uma nova ordem de títulos. Por exemplo:

Como se pode verificar, assim é possivel definir exactamente qual a importancia de cada título, sendo também possivel que outras aplicações como a indexação do Google, façam uma separação mais eficaz dos elementos textuais.

Uma coisa muito importante, é que as DIVS não vão deixar de existir, serviram para casos muitos expecificos como para fazer caixas, que era para o que já as utilizavamos:

HTML 5


Há algum tempo organizações como Apple, Mozilla Foundation e Opera uniram-se à W3C para actualizar o HTML e implementar nele novas funcionalidades.

Assim, o HTML 5 apareceu para oferecer uma variedade de ferramentas que visam atender às necessidades das mais recentes aplicações web multimédia.

Com todo o focus em torno do HTML 5, os "browsers" iniciaram uma competição entre si para fornecerem mais caracteristicas de HTML 5. Mas como sabemos quais os browsers que suportam HTML 5, e os que suportam, qual é o seu nivel.

Quanto a isto não existe nenhum problema. Foi desenvolvido um site que nos diz se o nosso browser suporta ou não o HTML 5 - http://html5test.com/
Este mostrará logo quais as caracteristicas de HTML 5 que o nosso browser suporta.

Foram já testados 6 browsers diferentes, de modo a perceber quais eram os que estavam mais bem “equipados” para suportar o HTML 5 - Internet Explorer 8, Mozilla Firefox, Google Chrome, Opera, Apple Safari e Maxthon 2.



Como podemos verificar o Chrome é aquele que reinvidica o número 1, também foi aquele que apareceu mais tarde, de seguida temos o Safari. O Opera e o Firefox estão ao mesmo nível, por enquanto, pois em breve sairá o Firefox 4. O Internet Explorer é o browser que não tem qualquer suporte para HTML 5, terá possivelmente quando o IE9 sair para o mercardo.

O HTML 5 está fortemente relacionado com a semântica na web, que sabemos ser um dos pontos mais importantes do desenvolvimento com Padrões Web, ou seja, os websites utilizam novos elementos que descrevem com mais precisão e organização o conteúdo das páginas HTML.

Entre as principais novidades, sobressaem os novos elementos de estrutura, os elementos para inserir áudio e vídeo directamente no HTML e ainda uma API gráfica para renderizar imagens 2D (canvas). Existem também elementos para data/hota e medida e também elementos para inserir diálogo e figuras com legenda.

A pergunta de muita gente é "O que é que eu ganho com o HTML 5?"

A resposta é muito simples:

Todos estes novos elementos estão ligados exclusivamente na intenção de melhorar significativamente a navegação do utilizador na internet. Por outro lado, o HTML 5 é um forte concorrente do Adobe Flash.

No entanto, não serão apenas os utilizadores de computador que irão aproveitar todos os novos recursos do HTML 5, quem possuir smartphones também vai notar mudanças significativas na interação com os sites. Pois um dos objectivos do HTML 5, é a maior interactividade com elementos multimedias.

Quem já desenvolveu um site totalmente em HTML 5 foi a Google. Um exemplo é o Google Wave - Communicate and collaborate in real time - http://wave.google.com/intro2.html -, que é construido em HTML5, mas que ainda não é utilizável em todos os browsers.

Existem já neste momento grande recursos a colocar em projecto no futuro utilizando os elementos da várias APIs. Toda a informação dos Websites poderá estar disponivel offline e será também possivel combinar facilmente tecnologias e criar animações complexas.

Nos próximos anos, haverá grande mudança na internet, com aplicações mais ricas, principalmente com a chegada do CSS3. É tudo uma questão de tempo para que esta propagação ganhe força e seja bem utilizada por quem desenvolve os websites.