<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tableless &#187; padroes web</title>
	<atom:link href="http://tableless.com.br/tag/padroes-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://tableless.com.br</link>
	<description>Tableless - Desenvolvimento inteligente com padrões web</description>
	<lastBuildDate>Fri, 18 May 2012 12:22:56 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Documentos poliglotas com XHTML5</title>
		<link>http://tableless.com.br/documentos-poliglotas-com-xhtml5/</link>
		<comments>http://tableless.com.br/documentos-poliglotas-com-xhtml5/#comments</comments>
		<pubDate>Wed, 16 May 2012 13:35:51 +0000</pubDate>
		<dc:creator>Talita Pagani</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[marcação poliglota]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[xhtml5]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=6057</guid>
		<description><![CDATA[O XHTML5 permite utilizar a sintaxe do XML/XHTML em documentos HTML5]]></description>
			<content:encoded><![CDATA[<p>Quando se começou a falar massivamente a respeito do HTML5, em 2009, muitos desenvolvedores (inclusive eu) torceram o nariz para o fato de poder voltar a utilizar a sintaxe tolerante do HTML, ou seja, tags em uppercase ou sem fechamento, valores de atributos sem aspas, fechar tags em ordem incorreta, entre outros. Inclusive, <a href="http://tableless.com.br/o-dilema-da-sintaxe-no-html5/">comentei especificamente sobre isso em um outro artigo</a>.</p>
<p>Grande parte dos desenvolvedores aprenderam  e se habituaram a utilizar a sintaxe do XHTML, que segue as diretrizes do XML para documentos bem formados e que apresentariam erros de renderização caso essas diretrizes são fossem seguidas. Isto nos permitia códigos mais limpos e bem estruturados. Porém, no HTML5, a escolha é sua e você não será punido por não fechar tags.</p>
<p>Com toda essa preocupação, no mesmo ano começou a ideia do XHTML5, uma tentativa de contornar o problema, adicionando as restrições de marcação do XML a documentos escritos em HTML5. Podemos dizer que seria uma tentativa de unir o melhor de cada especificação. O <a href="http://html5doctor.com/html-5-xml-xhtml-5/">artigo escrito por Bruce Lawson para o HTML5 Doctor</a> (com <a href="http://www.pinceladasdaweb.com.br/blog/2009/12/10/html-5-xml-xhtml-5/">versão traduzida no Pinceladas da Web</a>) foi um dos primeiros a comentar sobre o tema.</p>
<p>Durante cerca de 1 ano isto era uma forma, digamos, marginalizada de tratar essa questão, por não ser algo reconhecido pelo  <a title="Web Hypertext Application Technology Working Group" href="http://www.whatwg.org/" target="_blank">WHATWG</a> / <a title="W3C HTML Working Group" href="http://www.w3.org/html/wg/" target="_blank">HTML WG</a>. Mas em 2010 surgiu o primeiro draft com a proposta de nortear o uso do HTML5 com a sintaxe do XML/XHTML. O W3C denominou essa metodologia de <a href="http://dev.w3.org/html5/html-xhtml-author-guide/">marcação poliglota</a>.</p>
<h3>O que é um documento com marcação poliglota?</h3>
<p>Um documento com marcação poliglota é um documento escrito em HTML5 que pode ser processado tanto como HTML quanto como XML dentro de um conjunto de restrições definidas, porém, ainda seguindo a especificação do HTML5. Eles são compatíveis com o HTML e XHTML.</p>
<p>Significa que você pode utilizar todo o poder do HTML5 dentro do padrão de marcação bem formada do XML. É importante ressaltar que isto não afeta as tags que você pode utilizar. Por exemplo, elementos que são considerados <em>deprecated</em> em XHTML mas válidos no HTML5 continuam a ser válidos. Uma exceção é com relação a algumas tags que são excluídas de documentos poliglotas por não serem possível de serem replicadas em um <em>parser</em> XML (como é o caso da tag<em> &lt;noscript&gt;</em>).</p>
<p>Mas em linhas gerais, esta “fusão” não altera a especificação, mas sim as regras de sintaxe para processamento e há influência no DOM também (ex.: <em>document.write</em> não é permitido, mas sim<em> innerHTML</em>).</p>
<p>Segundo o W3C, um documento poliglota resulta em:</p>
<ul>
<li>Um documento HTML5 válido;</li>
<li>Um documento XML bem formado (mas não significa um documento XML válido);</li>
<li>DOM idêntico quando processado tanto como HTML quanto como XML, isto porque os parsers geram diferentes DOMs para determinados atributos relativos ao XML.</li>
</ul>
<h3>Como escrever um documento poliglota</h3>
<p>Um dos principais requisitos para escrever um documento em XHTML5 é o MIME-type utilizado. Isto vai definir se o navegador irá interpretar o documento como HTML ou XHTML. Segundo o WHATWG, um documento HTML5 se torna um documento poliglota se for provido o MIME-type application/xhtml+xml.</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/xhtml+xml; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Até algum tempo atrás, o IE não suportava este MIME-type. Para isso, você pode indicar que o MIME-type é o usual <em>text/html</em>. Ele pode ser utilizado junto com o primeiro (separando por vírgula), ou pode ser feita uma validação do navegador para decidir qual o MIME-type a ser utilizado.</p>
<p>O doctype passa a ser opcional, mas ainda é recomendável utilizar para prevenir o <a href="http://en.wikipedia.org/wiki/Quirks_mode">quirks mode</a> dos navegadores. Se utilizado, a palavra doctype deve ser escrito adequadamente em uppercase, ex.: <em>&lt;!DOCTYPE html&gt;</em>. A meta-tag que especifica o charset e a declaração <em>&lt;?xml version=”1.0” encoding=”UTF-8”?&gt;</em> (herdada do XHTML 1.1) também passam a ser opcionais se o charset desejado para o documento é UTF-8 (padrão do XML).</p>
<p>Além disso é preciso definir também o namespace do XHTML na tag <em>&lt;html&gt;</em>:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Ao utilizar recursos como SVG e MathML, é preciso especificar também o atributo xml para a tag raiz correspondente de cada um.</p>
<p>Outras recomendações são:</p>
<ul>
<li>Usar tanto o atributo lang quanto xml:lang na tag <em>&lt;html&gt;</em>;</li>
<li>Usar <em>tbody</em> / <em>thead</em> / <em>tfoot</em> em <em>&lt;table&gt;</em>s;</li>
<li>Quando o elemento <em>&lt;col&gt;</em> é utilizado em tabelas, utilizar também o elemento <em>&lt;colgroup&gt;</em>;</li>
<li>Não utilizar o elemento <em>&lt;noscript&gt;</em>;</li>
<li>Não iniciar as tags <em>&lt;pre&gt;</em> e <em>&lt;textarea&gt;</em> com linha em branco;</li>
<li>Utilizar <em>innerHTML</em> ao invés de <em>documento.write</em>;</li>
<li>Para scripts embutidos na página, escreva o código entre uma seção CDATA com os delimitadores comentados. É uma forma de fazer com que o parser do XML (que analisa apenas a marcação) não acuse erros ao utilizar &lt; ou &amp; no script;</li>
<li>Os atributos<em> xml:space</em> e <em>xml:base</em> são permitidos apenas nos elementos relativos a SVG e MathML;</li>
<li>Elementos que podem ter conteúdo mas estão vazios não devem ser minimizados para o formato de tag órfã. Ex.: <em>&lt;p /&gt;</em> não deve ser utilizado, mas sim <em>&lt;p&gt;&lt;/p&gt;</em>.</li>
</ul>
<p>Ao escrever documentos poliglotas, é possível utilizar todas as funcionalidades do HTML5 com uma garantia de código bem formado de acordo com as restrições do XHTML. Com isso, é possível ter um código mais organizado e consistente que seja mais fácil de produzir, manter e reutilizar a longo prazo, principalmente quando este trabalho é realizado em equipe.</p>
<h3>Referências</h3>
<p><a href="http://dev.w3.org/html5/html-xhtml-author-guide/">Polyglot Markup: HTML-Compatible XHTML Documents</a><br />
<a href="http://blog.whatwg.org/xhtml5-in-a-nutshell">XHTML5 in a nutshell</a><br />
<a href="http://www.xmlplease.com/xhtml/xhtml5polyglot/">Benefits of polyglot XHTML5</a><br />
<a href="http://html5doctor.com/html-5-xml-xhtml-5/">HTML 5 + XML = XHTML 5</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/" title="Entendendo quais APIs (realmente) fazem parte do HTML5">Entendendo quais APIs (realmente) fazem parte do HTML5</a></li><li><a href="http://tableless.com.br/html-5-novos-elementos-e-atributos/" title="HTML 5, novos elementos e atributos.">HTML 5, novos elementos e atributos.</a></li><li><a href="http://tableless.com.br/section-elemento-article/" title="Sections: elemento article – Parte 4">Sections: elemento article – Parte 4</a></li><li><a href="http://tableless.com.br/sections-elemento-aside/" title="Sections: elemento aside – Parte 3">Sections: elemento aside – Parte 3</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/documentos-poliglotas-com-xhtml5/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Entendendo quais APIs (realmente) fazem parte do HTML5</title>
		<link>http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/</link>
		<comments>http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/#comments</comments>
		<pubDate>Wed, 02 May 2012 12:00:36 +0000</pubDate>
		<dc:creator>Talita Pagani</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[diferenças]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=5981</guid>
		<description><![CDATA[Sabemos que o HTML5 não se trata apenas de marcação, mas também de um conjunto de novas funcionalidades encapsuladas em APIs que podem ser acessadas via JavaScript. Porém, algumas destas APIs não fazem parte do núcleo do HTML5.]]></description>
			<content:encoded><![CDATA[<p>Com o HTML5 ganhando força no mercado de desenvolvimento web, maior tem sido o interesse dos desenvolvedores em compreender seus recursos, novas APIs e tecnologias adjacentes. E é aí que acontece uma grande confusão.</p>
<p>Sabemos que o HTML5 não se trata apenas de marcação, mas também de um conjunto de novas funcionalidades encapsuladas em APIs que podem ser acessadas via JavaScript.</p>
<p>Porém, há APIs em processo de padronização pelo W3C que não fazem parte da especificação do HTML5. Elas são especificações relacionadas não intrínsecas ao HTML5, ou seja, a utilização delas não está estritamente atrelada ao uso da linguagem. Algumas, inclusive, faziam parte do <em>core</em> do HTML5, mas hoje estão dissociadas e contam com uma especificação separada, como é o caso do <a href="http://www.w3.org/TR/webstorage/">Web Storage</a>.</p>
<p>As APIs próprias do HTML5 são mais específicas às funcionalidades que atuam no escopo da página e da manipulação de elementos. Elas se relacionam em grande parte com o <a href="http://tableless.com.br/tenha-o-dom/">DOM</a>. Já as outras APIs geralmente trabalham com funcionalidades um pouco mais complexas, como armazenamento de dados e manipulação de arquivos, por exemplo.</p>
<p>Algumas das novas APIs que estão contidas na especificação do HTML5 são:</p>
<ul>
<li>Canvas</li>
<li>Validação de formulários</li>
<li>Controles de áudio e vídeo</li>
<li>Application cache / offline applications</li>
<li>Funcionalidade de markup editável (contenteditable)</li>
<li>Drag and drop</li>
<li>Novas funcionalidades para manipulação do histórico do navegador</li>
</ul>
<p>Algumas das novas APIs que são desenvolvidas em conjunto pelo WHATWG e W3C e trabalham muito bem com HTML5 mas que não são (mais) exclusivas dele:</p>
<ul>
<li>Web Storage (localStorage e sessionStorage)</li>
<li>Web messaging</li>
<li>Microdata</li>
<li>Web Workers</li>
<li>Web Sockets</li>
</ul>
<p>E algumas especificações relacionadas, que não são desenvolvidas pelo WHATWG e possuem especificações publicadas separamente pelo W3C:</p>
<ul>
<li>Geolocation</li>
<li>File API</li>
<li>Indexed DB</li>
<li>File Writer</li>
<li>Notifications</li>
</ul>
<p>O gráfico abaixo, desenvolvido por Sergey Mavrody fornece uma boa visão deste contexto e do relacionamento entre as novas APIs e o HTML, além de mostrar o status de desenvolvimento de cada uma destas especificações. Note que o Web Storage ainda está incluído junto à especificação do HTML5, mas isto já mudou.</p>
<div id="attachment_5982" class="wp-caption aligncenter" style="width: 650px"><a href="http://tableless.com.br/wp-content/uploads/2012/04/800px-HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png"><img class=" wp-image-5982 " src="http://tableless.com.br/wp-content/uploads/2012/04/800px-HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png" alt="HTML5 e as APIs relacionadas" width="640" height="434" /></a><p class="wp-caption-text">HTML5 e as APIs relacionadas por Sergey Mavrody</p></div>
<p>Portanto, muitas vezes quando falamos das novas possibilidades do HTML5, na verdade estamos nos referindo à toda uma nova geração de tecnologias para a web.</p>
<p>O que podemos concluir disso tudo é que o HTML5, sozinho, não faz uma web melhor. Porém, ele ajudou a movimentar o mercado rumo ao desenvolvimento de novas tecnologias. Saímos da zona de conforto que já estávamos há alguns anos. O cenário que temos agora é de uma série de tecnologias web que, trabalhando em conjunto, fazem uma web melhor, para as pessoas e para os desenvolvedores <img src='http://tableless.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Referências:</h3>
<p><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html">Especificação do HTML pelo WHATWG</a><br />
<a href="http://dev.w3.org/html5/html4-differences/#apis">W3C &#8211; HTML5 differences from HTML4</a><br />
<a href="http://en.wikipedia.org/wiki/HTML5">HTML5 &#8211; Wikipedia</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/porque-e-a-web-que-comanda/" title="Porque é a web que comanda">Porque é a web que comanda</a></li><li><a href="http://tableless.com.br/section-elemento-article/" title="Sections: elemento article – Parte 4">Sections: elemento article – Parte 4</a></li><li><a href="http://tableless.com.br/sections-elemento-aside/" title="Sections: elemento aside – Parte 3">Sections: elemento aside – Parte 3</a></li><li><a href="http://tableless.com.br/apostila-sobre-html5/" title="Apostila sobre HTML5">Apostila sobre HTML5</a></li><li><a href="http://tableless.com.br/google-apps-nao-suportara-mais-ie6/" title="Google Apps não suportará mais IE6">Google Apps não suportará mais IE6</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>As cores da minha web</title>
		<link>http://tableless.com.br/as-cores-da-minha-web/</link>
		<comments>http://tableless.com.br/as-cores-da-minha-web/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 21:13:42 +0000</pubDate>
		<dc:creator>Reinaldo Ferraz</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[padroes web]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=5876</guid>
		<description><![CDATA[Tenho um grande amigo que sonhava ser piloto de avião. Porém, seu sonho de pilotar acabou quando, aos trinta anos de idade, ele descobriu que tinha um grau de daltonismo que o impediu de continuar o treinamento.]]></description>
			<content:encoded><![CDATA[<p>Talvez as cores que eu veja não sejam as mesmas que você enxerga, mas isso não faz com que a sua percepção da web seja diferente. Nesse ambiente tão democrático, nada mais justo do que discutir as diversas formas de perceber as cores da web.</p>
<p>Tenho um grande amigo que sonhava ser piloto de avião. Por trabalhar em uma empresa aérea, a proximidade com as grandes máquinas voadoras o encantava. Porém, seu sonho de pilotar acabou quando, aos trinta anos de idade, ele descobriu que tinha um grau de daltonismo que o impediu de continuar o treinamento.</p>
<p>O mais curioso dessa história foi que ele viveu seus trinta anos anteriores sem saber que enxergava cores de forma diferente das demais pessoas. Seu tipo de daltonismo foi classificado como deuteranopia, que dificultava reconhecer certos tons de verde. A partir dessa descoberta, comecei a estudar como cada pessoa vê as cores da sua web.</p>
<p>Por esse motivo, os cuidados com cores são importantíssimos no desenvolvimento de páginas web. O WCAG 2.0 (Web Content Accessibility Guidelines) é bem direto com relação a isso: <a href="http://www.w3.org/WAI/WCAG20/quickref/#qr-visual-audio-contrast-without-color">A cor não deve ser utilizada como o único meio visual de transmitir informações</a>. Isso significa que você não deve utilizar indicações como &#8220;clique no botão verde para continuar&#8221; ou, &#8220;campos marcados em vermelho são obrigatórios&#8221;.</p>
<p>Mas isso não significa que o uso de cores deve ser banido da web. Pelo contrário. O uso de cores e contrastes é um dos maiores atrativos visuais de uma página. O que faz uma página ser bela aos olhos de um usuário é a combinação entre tons e cores. Mas o cuidado com o contraste deve ser considerado, já que pessoas com certos graus de daltonísmo e baixa visão podem ter dificuldade de enxergar alguns contrastes. Por isso mesmo, o <a href="http://www.governoeletronico.gov.br/acoes-e-projetos/e-MAG">E-Mag, modelo de acessibilidade do Governo Eletrônico</a> diz que o mínimo de contraste entre o plano de fundo e o primeiro plano deve ser de 3 para 1. Se você tem dúvidas, na última página do E-Mag existe uma tabela de cores que faz o contraste adequado com preto e branco (já em hexadecimal). No <a href="http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">WCAG 2.0, esse valor é de 4,5 para 1</a>.</p>
<p>E quando o daltonismo é tão severo ao ponto de fazer com que a pessoa não enxergue cor nenhuma (somente tons de cinza)? Esse é um tipo de daltonismo raro, mas aconteceu com o artista Neil Harbisson, que esteve na quinta edição da Campus Party Brasil contando como conseguiu resolver seu problema de distinguir cores: implantando uma câmera em seu crânio que identifica as cores e transforma essa informação em áudio. <a href="http://www.youtube.com/watch?v=CvPOh0p9cf0">Uma ótima palestra que vale a pena ser assistida</a>.</p>
<p>E por falar em bani-las da web, o que podemos dizer da implementação de cores quando o acesso a página é feito por um software leitor de tela? A primeira recomendação dada pelo WCAG é <a href="http://www.w3.org/WAI/GL/WCAG20/WD-WCAG20-TECHS/C22">separar a estrutura do documento da apresentação</a>, ou seja: Formatação visual somente dentro do CSS. Isso quer dizer que o software leitor de tela, que navega pelo código da página HTML, ignora as cores aplicadas no documento? Não!</p>
<p>O software JAWS, popular software leitor de tela, possui uma <a href="http://www.stacybleeks.com/jaws_speech_manager_tutorial.html">configuração que permite que o usuário saiba quais as cores ou fontes utilizadas na página</a>, ou mesmo <a href="http://webaim.org/resources/shortcuts/jaws">simples combinações de tecla podem permitir que o usuário cego saiba que fonte está sendo usada no site e qual a cor dela</a>.</p>
<p>Isso significa que a minha web tem cor, inclusive para uma pessoa cega que acessa minha página.</p>
<p>Além de todas as diretrizes citadas nesse documento o uso do bom senso é fundamental para termos uma web bela, cheia de cores e que permitam que todos possam navegar por ela. Inclusive aquele meu amigo do início desse texto, que um dia me pediu ajuda para instalar sua televisão nova e não enxergava um tal botão verde no controle remoto que fazia a busca por canais. Felizmente, o termo &#8220;pesquisar canais&#8221; estava escrito no controle.</p>
<p>Talvez eu não enxergue as cores da mesma forma que você, mas mesmo com essas diferenças a minha web é tão bela quanto a sua deve ser.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/qualidade-de-imagens-e-densidade-de-pixels/" title="Qualidade de Imagens e densidade de pixels">Qualidade de Imagens e densidade de pixels</a></li><li><a href="http://tableless.com.br/responsive-web-design-voce-esta-fazendo-isso-errado/" title="Responsive Web Design &#8211; focando a coisa certa">Responsive Web Design &#8211; focando a coisa certa</a></li><li><a href="http://tableless.com.br/seu-lugar-ao-sol/" title="Seu lugar ao sol">Seu lugar ao sol</a></li><li><a href="http://tableless.com.br/epub-aprenda-a-criar-um-livro-digital/" title="ePub: Aprenda a criar um livro digital">ePub: Aprenda a criar um livro digital</a></li><li><a href="http://tableless.com.br/boas-praticas-de-acessibilidade/" title="Boas práticas de Acessibilidade">Boas práticas de Acessibilidade</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/as-cores-da-minha-web/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Seu lugar ao sol</title>
		<link>http://tableless.com.br/seu-lugar-ao-sol/</link>
		<comments>http://tableless.com.br/seu-lugar-ao-sol/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 11:45:26 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Internet Móvel]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[cotidiano]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[padroes web]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=5682</guid>
		<description><![CDATA[Como você se encaixará em um futuro onde o termo browser não existe mais?]]></description>
			<content:encoded><![CDATA[<p><iframe width="720" height="396" src="http://www.youtube.com/embed/jZkHpNnXLB0" frameborder="0" allowfullscreen></iframe></p>
<p>Você realmente acha que vai escrever CSS e HTML como escreve hoje em um cenário como este?<br />
Você já parou para pensar onde CSS/HTML e Javascript se encaixam em um ambiente onde a web é praticamente camuflada por APPs específicos? Eu não estou me referindo a estes Apps como conhecemos hoje. Podem ser Apps instaladas ou WebApps, neste futuro, dá na mesma. Não há diferença.</p>
<p>Pior do que pensar o lugar que CSS e HTML estarão é pensar em como VOCÊ se colocará em um ambiente tão novo quanto este. O que realmente iremos fazer? Qual será o papel de cada um? Será que a metodologia de trabalho será a mesma?</p>
<p><iframe width="720" height="396" src="http://www.youtube.com/embed/a6cNdhOKwi0" frameborder="0" allowfullscreen></iframe></p>
<p>Você também já deve ter visto o vídeo acima. Veja como os personagens utilizam seus gadgets e como tudo está sincronizado. A discussão aí não é se é melhor criar uma App ou uma aplicação Web, é se o seu produto é realmente relevante e se vai ajudar realmente a vida das pessoas. A forma como isso é oferecido não importa, porque em um cenário como esse tudo é igual. Não faz diferença nenhuma. <a href="http://tableless.com.br/utilizando-apps-em-vez-de-browsers/">A Web não é só o seu browser</a>. </p>
<p>É por isso que eu acho que <a href="http://tableless.com.br/agora-e-a-vez-dos-desenvolvedores/">os desenvolvedores precisam acordar</a>. Urgente.<br />
Eu perco as contas de quantos desenvolvedores me castigam quando eu digo para ignorar totalmente os browsers antigos. Você acha que um futuro como mostrado nos vídeos ou qualquer outro tipo de futuro, vai ficar esperando um browser ser adequado aos padrões? Aliás, browsers existirão? </p>
<p>Você precisa repensar o que realmente é vida digital. Qual a real utilidade de se carregar um <del>celular</del> <ins>dispositivo móvel</ins>. Repense o que será design responsivo. Eu sei que a necessidade de hoje é adaptar websites e aplicações para as diversas telas, mas entende que isso é só uma necessidade que vai passar rápido? Vai passar rápido não porque é uma modinha sem importância, mas porque isso deverá ser padrão daqui pra frente. Assim como o Tableless. Lembra que falavam que isso era uma modinha e que já já passaria? Pois é.</p>
<p>Experimente fazer o exercício de entender o futuro da web. É algo que todo profissional web deveria fazer, principalmente os desenvolvedores. Não importa qual linguagem de programação você vai precisar aprender ou desaprender, o que importa é como ela será aplicada. Isso muda tudo.</p>
<p>Embora a ideia não seja apenas direcionada a Mobile mas para todos os meios de acesso, vale muito a pena ver a apresentação que o <a href="http://www.viuisso.com.br/?utm_source=TablelessComBr&#038;utm_medium=linkPost&#038;utm_campaign=PostBlog">Michel Lent</a> fez. Dá uma olhada:</p>
<div style="width:595px" id="__ss_11955809"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/mlent68/repensando-o-marketing-a-partir-do-mobile" title="Repensando o marketing a partir do mobile" target="_blank">Repensando o marketing a partir do mobile</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/11955809?rel=0" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/gomo-teste-seu-site-mobile/" title="GoMo &#8211; Teste seu site mobile">GoMo &#8211; Teste seu site mobile</a></li><li><a href="http://tableless.com.br/agora-e-a-vez-dos-desenvolvedores/" title="Agora é a vez dos desenvolvedores">Agora é a vez dos desenvolvedores</a></li><li><a href="http://tableless.com.br/boas-praticas-de-acessibilidade/" title="Boas práticas de Acessibilidade">Boas práticas de Acessibilidade</a></li><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/manipulando-metatag-viewport/" title="Manipulando a metatag Viewport">Manipulando a metatag Viewport</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/seu-lugar-ao-sol/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Experiência deve ter começo, meio e fim</title>
		<link>http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/</link>
		<comments>http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 23:55:31 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet Móvel]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[usabilidade]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=4549</guid>
		<description><![CDATA[A experiência do usuário precisa ser a melhor possível independente do meio de acesso utilizado.]]></description>
			<content:encoded><![CDATA[<p><small>Esse artigo pode parecer meio confuso, mas é apenas um pensamento que estive matutando. Não ligue se a ordem das ideias estiverem tortas e sinuosas. <img src='http://tableless.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </small></p>
<p>Tive uma experiência muito ruim no primeiro dia de 2010: pulei na piscina com meu iPhone no bolso.<br />
Ok, pode me xingar agora. </p>
<p>Depois da tragédia, ele durou rápidos 5 segundos, e faleceu. Não ligava, não apitava, não fazia nada. &#8220;Paciência&#8221;, falei para mim mesmo. No dia seguinte peguei um celular reserva que eu tinha guardado: um HTC Touch, com Windows Mobile 6 (não Windows Phone). Foi então que eu notei o porque o trabalho da Apple vicia os consumidores.</p>
<p>Estamos bem acostumados a utilizar um notebook ou um computador desktop, com monitor, teclado e mouse. A interface do sistema muitas vezes parece desaparecer quando se abre o navegador. A experiência de uso dos periféricos já é bastante conhecida e isso facilita muito a forma com que o usuário interaje com a interface. Há uma harmonia, se é que você me entende. A mesma coisa é dificil de acontecer quando utilizamos um dispositivo mobile. Em um dispositivo móvel você precisa de foco. Não há espaço para milhares de botões com dezenas de ações. É SIM e NÃO. É OK ou CANCELAR e mais nada. O que não é o caso do Windows Mobile. O Windows Mobile foi feito daquele jeito Microsoft. Muito, mas muito diferente do Windows Phone que está um primor. Com uma interface totalmente repensada, do zero, onde seu visual se integra com os outros sistemas da marca. Há uma homogeneidade na experiência do usuário quando ele usa a Live do XBOX, o Windows Phone e o Windows 8. A experiência é cross-platform. A Apple faz isso durante anos. E durante todos estes anos esse foi seu segredo. O famoso &#8220;eco sistema Apple&#8221;. Tudo funciona muito bem quando estamos com nossos iPhones, iPads, MacBooks e iPods. Se eu tenho um iPad, mas utilizo um PC, algo fica estranho. Funciona, mas fica estranho.</p>
<p>Assim como sistema dos mobiles, os sites precisam seguir a mesma fórmula de simplicidade e foco. Por isso, criar sites para mobiles é uma arte. É um jogo de prioridades. Você precisa saber o que é importante na página e focar naquilo. Há um bom trabalho de arquitetura de informação que precisa ser feito. E não se engane, as vezes é muito mais dificil desenvolver um projeto de arquitetura para mobiles do que para versões full.</p>
<p>O iPhone, e agora o Windows Phone, se destacam muito por conta dessa harmonia que citei acima. Há uma ligação em tudo ali. Quando você aciona o Safari, ele tem uma interface intuitiva, bem acabada e que não agride a usabilidade do site. O iPhone tem um browser 100% atualizado com os Padrões Web e isso ajuda um bocado o desenvolvimento de interfaces inteligentes.<br />
E a Apple se preocupa com essa harmonia da qual estamos falando, ela prepara uma série de materiais que ajudam os desenvolvedores. São guias de desenvolvimento e referência com os princípios de design e usabilidade que garantem a experiência completa. Por causa disso os desenvolvedores e designers fazem ótimos apps, tornando a experiência do usuário completa e uniforme durante o uso do dispositivo.</p>
<p>É por isso que a vale a pena municiar os desenvolvedores e designers do mundo todo, para que a experiência não termine quando o consumidor feche o seu aplicativo ou abra o navegador. Experiência tem começo, meio e fim. A Apple se preocupa com essas etapas. Ela sabe que se o site abrir &#8220;quebrado&#8221; o consumidor vai xingar primeiro o aparelho e não site. Tudo é uma única experiência. Começa no sistema do aparelho e termina no site de um terceiro.</p>
<p>O resto dos aparelhos começam pecando por ter um browser ruim ou uma interface de uso complicada. Na maioria os browsers não dão suporte algum aos Padrões. Isso é um pecado. Se eu tenho um Smartphone, eu passarei mais tempo na internet, conectado, do que falando ao telefone. Esse é apenas um ponto sobre o porque um dispositivo móvel precisa ter um browser decente.</p>
<p>O usuário tem uma boa experiência quando consegue com sucesso a informação que procurava, sem bloqueios. Se ele consegue passar esse processo com sucesso, como se o dispositivo (mobile, desktop, notebook, leitor e tela etc) e o site/sistema fossem transparentes, aí cumprimos com o nosso dever.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/parser-html5-firefox4/" title="Novo parser HTML5 &#8211; FF4">Novo parser HTML5 &#8211; FF4</a></li><li><a href="http://tableless.com.br/browsers-antigos-guerra-contra-o-terror/" title="PDF &#8211; Browsers antigos: guerra contra o terror">PDF &#8211; Browsers antigos: guerra contra o terror</a></li><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/qualidade-de-imagens-e-densidade-de-pixels/" title="Qualidade de Imagens e densidade de pixels">Qualidade de Imagens e densidade de pixels</a></li><li><a href="http://tableless.com.br/epub-aprenda-a-criar-um-livro-digital/" title="ePub: Aprenda a criar um livro digital">ePub: Aprenda a criar um livro digital</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>O que é Usabilidade?</title>
		<link>http://tableless.com.br/o-que-e-usabilidade/</link>
		<comments>http://tableless.com.br/o-que-e-usabilidade/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 21:44:42 +0000</pubDate>
		<dc:creator>Talita Pagani</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[cotidiano]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[experiência do usuário]]></category>
		<category><![CDATA[metodologia de desenvolvimento]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[usabilidade]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3823</guid>
		<description><![CDATA[A usabilidade é apenas um dos conceitos que abrangem a experiência de uso de pessoas com produtos, tendo também algumas limitações.]]></description>
			<content:encoded><![CDATA[<p>Já vimos em um <a href="http://tableless.com.br/estabelecendo-uma-metodologia-agil-para-avaliacao-de-usabilidade">artigo anterior</a> como a usabilidade beneficia o desenvolvimento web. Mas, o que de fato compreende a usabilidade? Nem tudo que se refere à experiência de uso está dentro do escopo dela. Sim, a usabilidade tem limitações e lacunas que são complementadas por outros paradigmas, como o design de interação. Porém, podemos considera-la a <em>base da pirâmide</em> que sustenta o projeto de uma aplicação com boa experiência de uso.  Neste artigo, veremos brevemente o que faz parte do conceito de usabilidade e qual o papel que ela tem no processo de desenvolvimento de aplicações.</p>
<h2>Afinal, o que é usabilidade?</h2>
<p>A Usabilidade é “filha” da Interação Humano-Computador (IHC) e “neta” da Engenharia de Software, carregando esse legado ao longo de sua evolução, podendo ser definida como o <strong>grau de facilidade</strong> com que o usuário consegue interagir com determinada interface.</p>
<p>Partindo da IHC, a usabilidade aborda a forma como o usuário se comunica com a máquina e como a tecnologia responde à interação do usuário, considerando as seguintes habilidades, de acordo com a norma <a title="Norma ISO 9241" href="http://en.wikipedia.org/wiki/ISO_9241" target="_blank">ISO 9241</a>:</p>
<ul>
<li><strong>Facilidade de aprendizado:</strong> a utilização do sistema requer pouco treinamento;</li>
<li><strong>Fácil de memorizar:</strong> o usuário deve lembrar como utilizar a interface depois de algum tempo;</li>
<li><strong>Maximizar a produtividade:</strong> a interface deve permitir que o usuário realize a tarefa de forma rápida e eficiente;</li>
<li><strong>Minimizar a taxa de erros:</strong> caso aconteçam erros, a interface deve avisar o usuário e permitir a correção de modo fácil;</li>
<li><strong>Maximizar a satisfação do usuário:</strong> a interface deve dar-lhe confiança e segurança.</li>
</ul>
<div>
<p>Partindo da Engenharia de Software, a usabilidade é englobada dentro da qualidade e visa garantir uma parte da eficiência e eficácia do sistema. A eficiência refere-se a uma interação produtiva entre o usuário e o sistema, permitindo a realização de tarefas com menor esforço sob uma experiência agradável. A eficácia pode ser entendida como a capacidade do sistema e da interface possibilitarem ao usuário a completude da tarefa e o alcance de seus objetivos no sistema.</p>
<h2>A importância da usabilidade no desenvolvimento de projetos</h2>
<p>A usabilidade se encaixa em qualquer tipo de projeto de interface, tendo amplitude diferente de acordo com a criticidade do projeto, ou seja, quanto mais crítico for o sistema, maiores serão as perdas caso ele não seja de fácil utilização e proporcione satisfação. Ela deve ser pensada desde o planejamento do projeto, até a etapa de desenvolvimento e teste.</p>
<p>As empresas têm consciência da importância da usabilidade. Porém, muitas ainda a veem como um fator que só deve ser levado em conta durante o desenvolvimento se houver tempo e recurso, como se ela representasse um custo adicional, fora do que é essencial. Mas as empresas têm muito mais a perder ao minimizar a usabilidade dessa forma. De acordo com Cybis, Betiol e Faust (2007):</p>
<p>“<em>Dependendo da frequência com que o software é empregado, os prejuízos para as empresas podem também ser expressivos, não só em decorrência do absenteísmo e da rotatividade do pessoal, mas também pela baixa produtividade, competitividade e menor retorno de investimento. Sistemas difíceis de usar implicam em erros e perda de tempo, fatores que se multiplicam com a frequência das tarefas e o número de usuários. A perda de dados e informações pode implicar na perda de clientes e de oportunidades. Acontecimentos deste tipo causam desde uma resistência ao uso do sistema até a sua subutilização e abandono completo, com o devido consentimento da empresa. O barato terá custado caro.</em>”</p>
<p>A usabilidade pode ser abordada de diferentes formas ao longo do projeto:</p>
<div id="attachment_4011" class="wp-caption aligncenter" style="width: 548px"><a href="http://tableless.com.br/wp-content/uploads/2011/07/Slide1.png"><img class="size-full wp-image-4011  " src="http://tableless.com.br/wp-content/uploads/2011/07/Slide1.png" alt="Técnicas utilizadas para garantir e verificar a usabilidade em diferentes etapas" width="538" height="403" /></a><p class="wp-caption-text">Técnicas utilizadas para garantir e verificar a usabilidade em diferentes etapas</p></div>
<h2>Lacunas a serem preenchidas</h2>
<p>Apesar de a usabilidade ser responsável por assegurar grande parte dos quesitos de experiência do usuário, ela possui duas grandes limitações:</p>
<ol start="1">
<li>Embora considere a satisfação do usuário, trata apenas dessa satisfação perante a realização de uma determinada tarefa, concentrando-se na função, sem considerar fatores físicos, ambientais e emocionais inerentes ao contexto de utilização do sistema. Mais do que ser de fácil utilização, aprendizagem e permitir completude da tarefa, uma boa experiência de uso está baseada em uma interação agradável, considerando a forma como as pessoas percebem a interação com o sistema;</li>
<li>O contexto usualmente analisado pela usabilidade é mais restrito: abrange apenas a visão do usuário. Para garantir uma boa experiência de uso, é necessário abranger a visão de diferentes <em>stakeholders</em>: do usuário, da organização e da equipe de desenvolvimento, cada qual com requisitos e necessidades diferentes frente ao sistema.</li>
</ol>
<p>Adaptando um gráfico apresentado durante a nnGroup Conference de 2008, podemos ver a usabilidade enquadrada da seguinte forma:</p>
<div id="attachment_4012" class="wp-caption aligncenter" style="width: 586px"><a href="http://tableless.com.br/wp-content/uploads/2011/07/Slide2.png"><img class="size-full wp-image-4012 " src="http://tableless.com.br/wp-content/uploads/2011/07/Slide2.png" alt="O escopo da usabilidade" width="576" height="432" /></a><p class="wp-caption-text">O escopo da usabilidade</p></div>
<h3>Referências e Leitura Complementar</h3>
<p>ABRAS, C.; MALONEY-KRICHMAR, D.; PREECE, J. <strong>User-Centered Design</strong>. In: Bainbridge, W. <em>Encyclopedia of Human-Computer Interaction</em>. Thousand Oaks: Sage Publications, 2004.</p>
<p>CYBIS, W.; BETIOL, A. H.; FAUST, R. <strong>Ergonomia e Usabilidade: </strong>Conhecimentos, Métodos e Aplicações. São Paulo: Novatec Editora, 2007. 344p.</p>
<p>SUMATHI, B. <strong>Chapter Three: User Centered Design Approach</strong>. Disponível em: <a href="http://dspace.fsktm.um.edu.my/bitstream/1812/214/8/Chapter%20Three.pdf">http://dspace.fsktm.um.edu.my/bitstream/1812/214/8/Chapter%20Three.pdf</a>.</p>
<p>NIELSEN, J.; LORANGER, H. <strong>Usabilidade na Web: </strong>Projetando Websites com qualidade. Rio de Janeiro: Elsevier, 2007. 406p.</p>
<p>OLIVEIRA NETTO, A. A. <strong>IHC – Interação Humano Computador:</strong> Modelagem e Gerência de Interfaces com o Usuário. Florianópolis: VisualBooks, 2004. 120p.</p>
<p>PREECE, J.; ROGERS; Y.; SHARP, H. <strong>Interaction Design: </strong>Beyond Human-Computer Interaction. New York: John Wiley &amp; Sons, Inc., 2002. 551p.</p>
<p>ROCHA, H. R.; BARANAUSKAS, M. C. C. <strong>Design e Avaliação de Interfaces Humano-Computador</strong>. Campinas: Universidade Estadual de Campinas, 2007.</p>
<p>UX Revisions. <strong>The Difference Between Usability and User Experience</strong>. Disponível em: <a href="http://www.uxrevisions.com/user-experience-design/the-difference-between-usability-and-user-experience/18/">http://www.uxrevisions.com/user-experience-design/the-difference-between-usability-and-user-experience/18/</a></p>
<p>UX Revisions. <strong>User Experience vs User Interaction</strong>. Disponível em: <a href="http://www.uxrevisions.com/user-experience-design/user-experience-vs-user-interaction/16/">http://www.uxrevisions.com/user-experience-design/user-experience-vs-user-interaction/16/</a></p>
<p>Usability Geek. <strong>The Difference (And Relationship) Between Usability And User Experience</strong>. Disponível em: <a href="http://usabilitygeek.com/the-difference-between-usability-and-user-experience/">http://usabilitygeek.com/the-difference-between-usability-and-user-experience/</a></p>
<p>NeoSpot. <strong>Usability vs. User Experience (UX)</strong>. Disponível em: <a href="http://neospot.se/usability-vs-user-experience/">http://neospot.se/usability-vs-user-experience/</a></p>
<p>Interaction by Design. <strong>Usability vs. user experience</strong>. Disponível em: <a href="http://www.interactionbydesign.com/thoughts/thumbnails/00000050.html">http://www.interactionbydesign.com/thoughts/thumbnails/00000050.html</a></p>
</div>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/responsabilidade-de-um-dev-client-side/" title="Responsabilidade de um dev client-side">Responsabilidade de um dev client-side</a></li><li><a href="http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/" title="Entendendo quais APIs (realmente) fazem parte do HTML5">Entendendo quais APIs (realmente) fazem parte do HTML5</a></li><li><a href="http://tableless.com.br/seu-lugar-ao-sol/" title="Seu lugar ao sol">Seu lugar ao sol</a></li><li><a href="http://tableless.com.br/gomo-teste-seu-site-mobile/" title="GoMo &#8211; Teste seu site mobile">GoMo &#8211; Teste seu site mobile</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/o-que-e-usabilidade/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>CSS3 &#8211; Breve introdução ao RGBA</title>
		<link>http://tableless.com.br/css3-breve-introducao-a-rgba/</link>
		<comments>http://tableless.com.br/css3-breve-introducao-a-rgba/#comments</comments>
		<pubDate>Mon, 02 May 2011 13:18:56 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[rgba]]></category>
		<category><![CDATA[tecnicascss]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3682</guid>
		<description><![CDATA[Normalmente em web trabalhamos com cores na forma de hexadecimal. Agora o RGBA nos permite que você aplique em uma determinada cor transparência. ]]></description>
			<content:encoded><![CDATA[<h3>Introdução ao RGB</h3>
<p>Normalmente em web trabalhamos com cores na forma de hexadecimal. É a forma mais comum e mais utilizada desde os primórdios do desenvolvimento web. Mesmo assim, há outros formatos menos comuns que funcionam sem problemas, um destes formatos é o RGB. O RGB são 3 conjuntos de números que começam no 0 e vão até 255 (0% até 100%), onde o primeiro bloco define a quantidade de vermelho (Red), o segundo bloco a quantidade de verde (Green) e o último bloco a quantidade de azul (Blue). A combinação destes números formam todas as cores que você pode imaginar.</p>
<p>No HTML o RGB pode ser usado em qualquer propriedade que tenha a necessidade de cor, como: color, background, border etc. Exemplo:</p>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; p <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">rgb</span><span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #933;">13px</span> verdana<span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>Este código RGB define que o background o elemento P será amarelo.</p>
<h3>Aplicando o RGBA e a diferença da propriedade OPACITY</h3>
<p>Até então nós só podíamos escrever cores sólidas, sem nem ao menos escolhermos a opacidade dessa cor. O CSS3 nos trouxe a possibilidade de modificar a opacidade dos elementos via propriedade opacity. Lembrando que quando modificamos a opacidade do elemento, tudo o que está contido nele também fica transparente e não apenas o background ou a cor dele.  <a href="http://tableless.github.com/exemplos/rgba/" title="Teste de RGBA">Veja o exemplo e compare</a>. É aí que entra o  RGBA. </p>
<p>O RGBA funciona da mesma forma que o RGB. No caso do RGBA, além dos 3 canais RGB (Red, Green e Blue) há um quarto canal, A (Alpha) que controla a opacidade da cor. Nesse caso, podemos controlar a opacidade da cor de background, borda, color ou qualquer propriedade que contenha cor sem afetar a transparência dos outros elementos:</p>
<p>Veja um exemplo aplicado abaixo:</p>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; p <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span>rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #933;">13px</span> verdana<span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>O último valor é referente ao canal Alpha, onde 1 é totalmente visível e 0 é totalmente invisível. No exemplo acima está com uma opacidade de 50%. </p>
<p>Como o Hexadecimal, você não precisa decorar todos estes números. Hoje, qualquer programa gráfico já dá o código do RGB da cor utilizada. O Hexadecimal não foi descontinuado. Se caso você tenha alguma cor que não ficará transparente ou algo do tipo, você pode continuar utilizando hexa e para aqueles que tem transparência, você pode utilizar o RGBA sem problemas.</p>
<p><a href="http://tableless.github.com/exemplos/rgba/" title="Teste de RGBA">Veja novamente o exemplo aqui</a> e o <a href="https://github.com/tableless/exemplos/tree/gh-pages/rgba" title="Código no Github">código no github do Tableless</a>.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/introducao-ao-css-3d-flip-card/" title="Introdução ao CSS 3D &#8211; Flip Card">Introdução ao CSS 3D &#8211; Flip Card</a></li><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/css3-sombras-em-textos-e-elementos/" title="CSS3 &#8211; Sombras em textos e elementos">CSS3 &#8211; Sombras em textos e elementos</a></li><li><a href="http://tableless.com.br/css3-modulo-template-layout/" title="CSS3 &#8211; Módulo Template Layout">CSS3 &#8211; Módulo Template Layout</a></li><li><a href="http://tableless.com.br/css3-animation-keyframe/" title="CSS3 &#8211; Animation e regra keyframe">CSS3 &#8211; Animation e regra keyframe</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/css3-breve-introducao-a-rgba/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Manipulando a metatag Viewport</title>
		<link>http://tableless.com.br/manipulando-metatag-viewport/</link>
		<comments>http://tableless.com.br/manipulando-metatag-viewport/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 13:00:09 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Móvel]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[internetmovel]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobilidade]]></category>
		<category><![CDATA[padroes web]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3540</guid>
		<description><![CDATA[Aprenda a manipular o viewport de mobiles e outros dispositivos com a metatag Viewport do HTML.]]></description>
			<content:encoded><![CDATA[<p>O viewport é a área onde seu website aparece. É a área que você se preocupa se o vai ou não caber na hora da criação. O tamanho do viewport depende muito da resolução, tamanho do monitor e dispositivo utilizado. Em máquinas desktop nós não precisamos nos preocupar muito, já estamos acostumados com um determinado tamanho de tela e resolução média utilizada pelos usuários, que hoje gira em torno de no mínimo 1024 de largura. Mas quando começamos a variar muito o tamanho das telas, a largura do viewport começa a ser uma preocupação porque afeta diretamente a forma como o usuário utiliza seu website.</p>
<p>Hoje existe uma gama muito grande de aparelhos com telas de tamanhos variados. Comece a pensar pelos netbooks e depois vá diminuindo até chegar em um smartphone popular como iPhone, Milestone e etc. A variação de tamanho de tela é muito grande. Lembrando que o tamanho da tela é uma coisa e a resolução de tela é outra. Nunca confunda os dois. A largura da tela do iPhone na posição retrato é de 320px. Mas sua resolução padrão é 980px. Isso quer dizer que se você fizer um HTML simples, colocar uma imagem de 980px de largura e visualizar no iPhone, não existirá barra de rolagem. Obviamente a imagem ficará miniaturizada, como mostra abaixo:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/980px.png"></p>
<p>Isso é interessante porque possibilita a boa visualização de websites que não estão preparados para mobiles. Vemos o site inteiro miniaturizado, com possibilidade de fazer zoom em qualquer parte do layout.</p>
<h3>A tag meta viewport</h3>
<p>Mesmo assim os smartphones tem telas pequenas podem dificultar a leitura se fizermos um sistema planejado para grandes resoluções. Por isso é interessante que possamos customizar o viewport para que ele se adeque a realidade desses dispositivos. É aí que entra a metatag viewport.<br />
Com essa metatag iremos customizar a resolução inicial que o browser deve renderizar do viewport do dispositivo. Dessa forma, podemos preparar websites com resoluções personalizadas para smartphones e outros aparelhos.</p>
<p>A sintaxe é muito simples e deve ser colocada, como sempre, na tag <strong>head</strong>:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;viewport&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Os valores de content são os que seguem abaixo:</p>
<table>
<thead>
<tr>
<th>Valor</th>
<th>Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td>width</td>
<td>Define uma largura para o viewport. Os valores podem ser em PX ou &#8220;device-width&#8221;, que determina automaticamente um valor igual a largura da tela do dispositivo.</td>
</tr>
<tr>
<td>height</td>
<td>Define uma altura para o viewport. Os valores podem ser em PX ou &#8220;device-height&#8221;, que determina automaticamente um valor igual a altura da tela do dispositivo.</td>
</tr>
<tr>
<td>initial-scale</td>
<td>Define a escala inicial do viewport.</td>
</tr>
<tr>
<td>user-scalable</td>
<td>Define a possibilidade de o usuário fazer &#8220;zoom&#8221; em um determinado lugar da tela. É ativado quando o usuário bate duas vezes com o dedo em um lugar da tela.</td>
</tr>
</tbody>
</table>
<h3>Como usar</h3>
<p>A tela abaixo não tem nenhuma tag de viewport definida. </p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/viewport-980.png"></p>
<p>Veja que o texto do elemento está bem pequeno. Isso é porque estamos visualizando-o em 980px de resolução em uma tela de smartphone.<br />
Vou acrescentar a seguinte linha:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;viewport&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width=320px&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Define que a largura do viewport será 320px. O resultado está abaixo:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/viewport-320px.png"></p>
<p>Se inserirmos uma imagem ou um objeto maior que a largura do viewport, uma barra de rolagem é criada. Não precisa se preocupar com o espaço da barra, já que pelo menos nos OSs de smartphones novos, como iPhone e Android, a barra fica invisível e só aparece pro cima dos elementos.</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/rolagem.png"></p>
<p>Adicionando o <strong>initial-scale</strong> com o valor de 1.5, temos um aumento na escala da visualização. Abaixo segue um exemplo comparativo. A imagem inserida tem 320px de largura, logo ela ficará bem justa na tela quando a escala é 1.0, e um pouco estourada quando a escala é 1.5 ou maior. Veja:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/initi-scale1.png"></p>
<p>Agora com escala de 1.5:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/init-scale15.png"></p>
<p>Agora com escala de 2:<br />
<img src="http://tableless.com.br/wp-content/uploads/2011/04/init-scale2.png"></p>
<p>E agora com texto, nas mesmas proporções:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/scale1-text.png"><br />
<img src="http://tableless.com.br/wp-content/uploads/2011/04/scale15-text.png"><br />
<img src="http://tableless.com.br/wp-content/uploads/2011/04/scale2-text.png"></p>
<p>Se colocarmos o <strong>user-scalable</strong> como NO, desabilitamos a possibilidade do usuário de fazer zoom quando ele bate duas vezes com o dedo. Deixar habilitado o zoom é interessante utilizar quando o viewport não está sendo customizado. No nosso caso aqui, isso não iria adiantar muita coisa, já que todos os elementos estão com o tamanho natural, por isso vamos desabilitá-lo.</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;viewport&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width=320px, user-scalable=no&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Atente-se para o detalhe de colocar , (vírgula) entre um valor e outro.<br />
Veja um <a href="http://tableless.github.com/exemplos/viewport/viewport.html">exemplo aqui</a>. Tente ver com um smartphone como o iPhone, Android, etc.</p>
<p>Manipular o Viewport nos dá possibilidades para personalizar o visual de qualquer site para praticamente qualquer dispositivo, não importa sua resolução ou seu tamanho de tela. Quando unimos isso às <a href="http://tableless.com.br/introducao-sobre-media-queries">media queries</a>, temos um outro mundo de possibilidades.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/quem-precisa-de-versao-mobile/" title="Quem precisa de versão mobile?">Quem precisa de versão mobile?</a></li><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/browsers-antigos-guerra-contra-o-terror/" title="PDF &#8211; Browsers antigos: guerra contra o terror">PDF &#8211; Browsers antigos: guerra contra o terror</a></li><li><a href="http://tableless.com.br/seu-lugar-ao-sol/" title="Seu lugar ao sol">Seu lugar ao sol</a></li><li><a href="http://tableless.com.br/commander-conquer-tiberium-alliances/" title="Command &#038; Conquer: Tiberium Alliances">Command &#038; Conquer: Tiberium Alliances</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/manipulando-metatag-viewport/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Novo parser HTML5 &#8211; FF4</title>
		<link>http://tableless.com.br/parser-html5-firefox4/</link>
		<comments>http://tableless.com.br/parser-html5-firefox4/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 13:00:08 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[padroes web]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3317</guid>
		<description><![CDATA[O Firefox 4 trouxe uma série de atualizações, uma das mais importantes é o novo parser de HTML5 que promete ser mais rápido e eficiente.]]></description>
			<content:encoded><![CDATA[<p>O Firefox é o meu browser favorito embora não seja meu browser padrão atualmente. Durante muito tempo ele me segurava com suas extensions exclusivas. Os outros browsers demoraram para ter uma coleção aceitável de extensions que realmente competissem com as do Firefox.<br />
Foi lançado na semana passada o <a href="http://getfirefox.com/" title="baixe agora" rel="external">Firefox 4.0</a> que trouxe uma série de mudanças interessantes. Uma das atualizações mais importantes foi o &#8220;redesign&#8221; do parser de HTML5.</p>
<h3>HTML5 parser</h3>
<p>O parser do <a href="http://getfirefox.com">Firefox 4</a> foi todo reescrito para melhorar a performance e eficiência da renderização de código client-side. O motor antigo &#8211; de 1998 &#8211; foi descontinuado e agora com esse novo parser temos a possibilidade de utilizar SVG e MathML diretamente nas páginas HTML5 sem a utilização de namespace de XML. Entre outros diversos <a href="https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=substring&#038;status_whiteboard=[fixed%20by%20the%20HTML5%20parser]&#038;resolution=FIXED">bugs que foram arrumados</a>.</p>
<p>A esse novo parser foi escrito baseando-se na especificação do HTML5, que foi a primeira especificação que explica exatamente como os fabricantes de browsers devem ler e renderização o HTML. Estes detalhes técnicos não eram ditos nas versões anteriores das especificações do HTML. Basicamente o antigo HTML era ainda definido nos termos do antigo SGML. Isso implica na relação do código HTML e DOM. Isso quer dizer que o parseador consegue ler melhor a estrutura do nosso HTML e suas hierarquias. Claro, toda a performance do paseador é somente utilizada se o código for bem escrito e não tiver erros de sintaxe. A grande maioria dos sites na web ainda utilizam códigos mal escritos em HTML4. Leia mais sobre o <a href="http://tableless.com.br/html5/?chapter=16">DOM</a>.</p>
<p>Para os casos onde o HTML for mal escrito, como em sites antigos que foram criados para suprir necessidades de browsers como Netscape e IE, o parser faz uma mudança de interpretação fazendo com que o Firefox entenda esse código antigo e não quebre o site. Logo, não precisamos manter um legado com códigos antigos e abre portas para a criação de código novo, mesmo estando em ambientes onde ainda é necessário conviver com código antigo.</p>
<h3>MathML e SVG</h3>
<p>Uma das vantagens desse novo parser é que ele permite que você sirva MathML e SVG diretamente na sua página sem ter que declarar a página inteira como XML/XHTML. Isso quer dizer que o código abaixo pode ser inserido normalmente em uma página HTML, sem qualquer namespace declarado.</p>
<p>Veja um exemplo de MathML:</p>
<pre lang="html" line="1">
<math>
  <mi>x</mi>

  <mo>=</mo>
  <mfrac>
    <mrow>
      <mo>&minus;</mo>
      <mi>b</mi>
      <mo>&PlusMinus;</mo>
      <msqrt>
        <msup>

          <mi>b</mi>
          <mn>2</mn>
        </msup>
        <mo>&minus;</mo>
        <mn>4</mn>
        <mo>&#038;InvisibleTimes;</mo>
        <mi>a</mi>

        <mo>&#038;InvisibleTimes;</mo>
        <mi>c</mi>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&#038;InvisibleTimes;</mo>
      <mi>a</mi>

    </mrow>
  </mfrac>
</math>
</pre>
<p><a href="http://tableless.github.com/tableless/mathml.html" rel="external">Veja o exemplo online</a>.<br />
Veja o <a href="https://github.com/tableless/exemplos/blob/gh-pages/mathml.html" rel="external">código no Github</a>.</p>
<p>Com o SVG é a mesma coisa, veja o código abaixo:</p>
<pre lang="html" line="1">
<!DOCTYPE html>

<html lang="pt-BR">
<head>

<meta charset="UTF-8" />

</head>
<body>
<a href="http://tableless.com.br/">
    <svg style="width:113px; height:113px; margin-left:30px">
<polygon fill="#EA2125" points="113,91 113,0 0,0 0,113 91,113"/>
<polygon opacity="0.5" fill="#010101" points="113,91 91,91 91,113"/>
<path fill="#FFFFFF" d="M62.364,34.905v14.147l12.991-4.482l3.963,10.369l-13.003,5.447l8.165,11.593l-8.783,6.502L56.82,66.799
l-8.693,11.683l-9.225-6.502l8.261-12.036l-13.096-5.004l3.779-10.369l13.438,4.482V34.905H62.364z"/>
    </svg>
</a>
</body>
</html>
</pre>
<p>Veja o código <a href="http://tableless.github.com/exemplos/logo-tableless-svg.html" rel="external">acima em ação</a> no <a href="https://github.com/tableless/exemplos/" rel="external">nosso GITHUB</a>.</p>
<p>Perceba que os códigos acima se parecem muito mais com um HTML do que com um XML.  Perceba que não há nenhum namespace declarado. Isso é uma maravilha porque dá flexibilidade.</p>
<p>Pela explicação do <a href="http://hacks.mozilla.org/2010/05/firefox-4-the-html5-parser-inline-svg-speed-and-more/">Mozilla Hacks</a>, o algoritmo é dividido em duas partes principais: <strong>tokenization</strong> e <strong>tree building</strong> (mantive o termo original porque a tradução literal seria muito estranha). A tokenization (algo como <strong>tokenização</strong>. Viu, falei que seria estranho) seria o processo de ler o fluxo do código de tags, comentários e atributos de tags. A <strong>tree building</strong> seria o processo de pegar essas informações encontradas pela tokenização e construir a árvore de tags, o árvore do DOM. O fluxo de tags que você construiu.</p>
<h4>Outras atualizações</h4>
<p>O Firefox 4 trouxe outras atualizações que podemos falar mais pra frente aqui no Tableless. São atualizações que navegadores Webkit já tem suporte e também o Opera, como: <a href="http://tableless.com.br/introducao-ao-css-animation">CSS Transitions</a>, <a href="http://tableless.com.br/html5/?chapter=8">Formulários em HTML5</a>, <a href="http://tableless.com.br/html5/?chapter=11">Audio Data API</a>, <a href="http://tableless.com.br/html5/?chapter=21">History API</a>, HTML5 Video buffered property, e o tão aguardado JägerMonkey o novo engine de Javascript da Mozilla.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/css3-breve-introducao-a-rgba/" title="CSS3 &#8211; Breve introdução ao RGBA">CSS3 &#8211; Breve introdução ao RGBA</a></li><li><a href="http://tableless.com.br/ferramentas-de-diagnostico/" title="Ferramentas de diagnóstico">Ferramentas de diagnóstico</a></li><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/introducao-ao-css-3d-flip-card/" title="Introdução ao CSS 3D &#8211; Flip Card">Introdução ao CSS 3D &#8211; Flip Card</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/parser-html5-firefox4/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Convertidos do Tableless</title>
		<link>http://tableless.com.br/convertidos-tableless/</link>
		<comments>http://tableless.com.br/convertidos-tableless/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 04:47:10 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Bonito de se ver]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[Convertidos]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tecnicascss]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3293</guid>
		<description><![CDATA[Os convertidos do Tableless voltaram. Não preciso dizer mais nada. =^)]]></description>
			<content:encoded><![CDATA[<p>Quem acompanha o <a href="http://tableless.com.br">Tableless</a> desde o começo conhece a história de como este humilde website nasceu. Eu estudava e aprendia CSS com HTML de uma única maneira: praticando. Eu convertia para tableless a home de alguns grandes sites just for fun. Só para provar que a técnica era real, possível e muito melhor que tabelas. O Tableless nasceu quando eu decidi compartilhar este material para outros desenvolvedores. </p>
<p>Este material não estava publicado porque uma das empresas que eu utilizei como estudo me mandou uma simpática carta extrajudicial dizendo que eu estava fazendo cópia indevida e todo aquele blá blá blá e que eu devia tirar o materia deles imediatamente do ar&#8230; Eles com certeza não eram bem humorados. Com medo de outras empresas fazerem o mesmo, tirei logo todos os exemplos publicados.</p>
<p>Neste fim de semana estava jogando algumas coisas fora e encontrei um CD com alguns documentos destes websites convertidos. Você pode verificar e baixar os arquivos <a href="http://tableless.com.br/convertidos/" rel="nofollow">nesta página</a>. Até segunda ordem.</p>
<h4>Atenção:</h4>
<p>Se você é um troll babaca que vai analisar o código só para criticar como foi feito, entenda que o código mais antigo é de pelo menos uns 6 ou 7 anos atrás&#8230; Eu faria tudo diferente. <img src='http://tableless.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Se você pertence a alguma empresa listada nos exemplos, tenha em mente que esse material é utilizado apenas para estudo. </p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/css3-abas-com-a-pseudo-classe-target/" title="CSS3 &#8211; Abas com a pseudo-classe :target">CSS3 &#8211; Abas com a pseudo-classe :target</a></li><li><a href="http://tableless.com.br/introducao-ao-css-3d-flip-card/" title="Introdução ao CSS 3D &#8211; Flip Card">Introdução ao CSS 3D &#8211; Flip Card</a></li><li><a href="http://tableless.com.br/experiencia-deve-ter-comeco-meio-e-fim/" title="Experiência deve ter começo, meio e fim">Experiência deve ter começo, meio e fim</a></li><li><a href="http://tableless.com.br/css3-animation-keyframe/" title="CSS3 &#8211; Animation e regra keyframe">CSS3 &#8211; Animation e regra keyframe</a></li><li><a href="http://tableless.com.br/css3-breve-introducao-a-rgba/" title="CSS3 &#8211; Breve introdução ao RGBA">CSS3 &#8211; Breve introdução ao RGBA</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/convertidos-tableless/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

