<?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>HTML &#8211; Turbosite &#8211; Blog</title>
	<atom:link href="https://www.turbosite.com.br/blog/category/html-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.turbosite.com.br/blog</link>
	<description></description>
	<lastBuildDate>Tue, 09 Dec 2014 13:54:17 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://www.turbosite.com.br/blog/wp-content/uploads/2026/09/cropped-logo_turbo_vermelha-32x32.png</url>
	<title>HTML &#8211; Turbosite &#8211; Blog</title>
	<link>https://www.turbosite.com.br/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SQL do lado do Cliente? Web SQL Database com HTML5</title>
		<link>https://www.turbosite.com.br/blog/sql-do-lado-do-cliente-web-sql-database-com-html5/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Tue, 09 Dec 2014 13:54:17 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[html 5 SQL]]></category>
		<category><![CDATA[novidade HTML 5]]></category>
		<category><![CDATA[SQL do lado do cliente]]></category>
		<category><![CDATA[Web SQL Database]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3903</guid>

					<description><![CDATA[Como trabalhar com o recurso Web SQL Database HTML 5. Vamos explicar, exemplificar e testar a funcionalidade para demonstrar sua utilização e seus benefícios.]]></description>
										<content:encoded><![CDATA[<p>Já pensou em utilizar SQL do lado do Cliente? Bom, agora isso é possível, com o HTML 5 podemos utilizar o Web SQL Database.</p>
<p>Ele traz uma API de banco de dados SQL Web, por enquanto ainda é uma especificação separada do HTML 5, mas já introduz um conjunto de APIs para manipular base de dados do lado do cliente utilizando SQL.</p>
<p>Estamos supondo que você já conheça e trabalhe com o SQL, mas caso não saiba o que é, recomendamos um <a href="https://www.youtube.com/watch?v=EjE57WqB7xg&amp;list=PLyH68Dr1pa5ym3xKGelKhDkjfe-MfBWCJ" target="_blank">mini curso de MySQL</a>.</p>
<p>Por enquanto, Web SQL Database está suportado nas últimas versões do Chorme, Safari e Opera.</p>
<p>Esta postagem é baseada no artigo em inglês:<a href="http://www.tutorialspoint.com/html5/html5_web_sql.htm" target="_blank"> Web SQL Database</a></p>
<p>&nbsp;</p>
<h2>Os métodos principais:</h2>
<p>Há três seguintes métodos fundamentais definidos na especificação de que vamos mostrar nesta postagem:</p>
<ol>
<li><b>openDataBase:</b> Este método cria o objeto de banco de dados, depois utiliza um banco de dados existente ou criar um novo.</li>
<li><b>transaction:</b> Este método controlar a transação e  nos retorna uma confirmação ou anulação com base no que foi executado.</li>
<li><b>executeSql:</b> Este método é usado para executar um consulta SQL.</li>
</ol>
<p>&nbsp;</p>
<h2>Abrindo Base de dados:</h2>
<p>O o<i>penDataBase</i> método cuida da abertura de um banco de dados se ele já existe, este método irá criá-lo se ele não existe.</p>
<p>Para criar e abrir um banco de dados, use o seguinte código:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);
</pre>
<p>&nbsp;</p>
<p>Acima método tem quatro parâmetros:</p>
<ol>
<li>Nome do banco</li>
<li>Número da versão</li>
<li>Descrição de texto</li>
<li>Tamanho da base de dados</li>
</ol>
<p>&nbsp;</p>
<h2>Execução de consultas:</h2>
<p>Para executar uma consulta, deve ser utilizado a função database.transaction (). Esta função precisa de um único argumento, mas pode ser passado o 2º e 3º parametro para verificar se foi completado com sucesso o comando, segue exemplo de duas consultas, uma simples e outra debugando:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);

// Simples
db.transaction (function (tx) {  
   tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log)");
});

// Debugando
db.transaction (function (tx) {  
   tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log)",
       function(tx){
           /*Sucesso*/
       },
       function(erro){
           /*Error*/
       });
});</pre>
<p>&nbsp;</p>
<p>As consultas acima irão criar uma tabela chamada LOGS na base de dados &#8220;Teste&#8217;.</p>
<p>&nbsp;</p>
<h2>Inserir dados:</h2>
<p>Para inserir dados  na tabela, utilizamos a função transaction() também, só que, desta vez com o INSERT para popular a tabela, veja o exemplo:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);

db.transaction (function (tx) {
   tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log)");

   // Os 3 null represetam
   // 1º - Um array contendo dados
   // 2º - Função para sucesso
   // 3º - Função para Erro
   // Vamos explicá-los mais abaixo
   tx.executeSql ("INSERT INTO LOGS (log) VALUES ('Resultado do Log de Teste 01') ", null, null, null);
   tx.executeSql ("INSERT INTO LOGS (log) VALUES ('Resultado do Log de Teste 02') ", null, null, null);
});</pre>
<p>&nbsp;</p>
<p>Também podemos passar valores dinâmicos, utilizamos a seguinte sintaxe:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);

db.transaction (function (tx) {

  var novo_log = 'Resultado do Log de Teste 01';

   // Os 3 null estão sendo mostrados aqui
   // 1º - Um array contendo dados, estamos passando apenas um valor com o novo_log
   // 2º - Função para sucesso
   // 3º - Função para Erro
   // Vamos explicá-los mais abaixo
  tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log)");
  tx.executeSql ("INSERT INTO REGISTROS (log) VALUES (?)",[novo_log],null,null);						
});</pre>
<p>&nbsp;</p>
<p>Aqui novo_log é uma variável e executeSql mapeia cada item no argumento de matriz para o &#8220;?&#8221;, isto é, poderíamos ter vários &#8220;?&#8221; e no final teríamos [var_1,var_2,var_3], sendo que, ele utilizará a ordem exata das variáveis para popular a query.</p>
<p>&nbsp;</p>
<h2>Lendo os dados:</h2>
<p>Para ler os registros já existentes usamos um callback para capturar os resultados da seguinte forma:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);

db.transaction (function (tx) {
    tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log TEXT)",null,null);
    tx.executeSql ("INSERT INTO LOGS (log) VALUES (?)",['Resultado do Log de Teste 01'],null,null);
    tx.executeSql ("INSERT INTO LOGS (log) VALUES (?)",['Resultado do Log de Teste 02'],null,null);
});

db.transaction (function (tx) {
   tx.executeSql ('SELECT * FROM LOGS', [], function (tx, results) {
   var len = results.rows.length, i;
   msg = "&lt;p&gt; Registros encontrados:" + len + "&lt;/ p&gt;";
   for (i = 0; i &lt;len; i ++) {
      console.log(results.rows.item(i) .log);
   }
 }, null);
});</pre>
<p>&nbsp;</p>
<h2>Exemplo final:</h2>
<p>Então, finalmente, vamos  criar um exemplo em HTML 5,  este exemplo está funcional e testado no Chrome versão Versão 39.0.2171.71 m.</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">var db = openDatabase ('Teste', '1.0', 'Teste Web SQL Database', 2 * 1024 * 1024);

db.transaction (function (tx) {
    tx.executeSql ("CREATE TABLE IF NOT EXISTS LOGS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, log TEXT)",null,null);
    tx.executeSql ("INSERT INTO LOGS (log) VALUES (?)",['Resultado do Log de Teste 01'],null,null);
    tx.executeSql ("INSERT INTO LOGS (log) VALUES (?)",['Resultado do Log de Teste 02'],null,null);
   console.log('Log mensagem criada e linha inserida');
});

db.transaction(function(tx){
    tx.executeSql(       
        "SELECT * FROM LOGS",
        [],
        function(tx, result){
            console.log('Deu certo!');
            var len = result.rows.length, i;
            for(i=0;i&lt;len;i++){
                console.log( result.rows.item(i) );
            }
        },
        function(tx, error){
            console.log('Deu errado!');
            console.log(error);
        }
    );
});</pre>
<p>&nbsp;</p>
<p>Isso produziria o seguinte resultado:</p>
<pre class="top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:js decode:true">Log mensagem criada e linha inserida
Deu certo!
Object {id: 1, log: "Resultado do Log de Teste 01"}
Object {id: 2, log: "Resultado do Log de Teste 02"}
</pre>
<p>&nbsp;</p>
<h2>Conclusão:</h2>
<p>É bem simples utilizar e depende apenas de um pouco de treino, nos testes detectamos que a sua persistência é como uma sessão, ao fechar o browser perde-se o objeto, mas ao trocar de página dentro do mesmo domínio o mesmo permanece.</p>
<p>Já pensou em utilizar esta nova funcionalidade com o evento <a href="https://www.turbosite.com.br/blog/aviso-de-alteracoes-na-pagina-para-nao-perder-dados-javascript/" target="_blank">onBeforeUnload </a>para rastrear todo o caminho que um usuário caminhou dentro do seu site? A utilização ficará por conta da imaginação de vocês.</p>
<p>&nbsp;</p>
<p>Um exemplo que encontramos no GitHub e que vale a pena ver:<br />
<a href="https://gist.github.com/andyj/1599544" target="_blank">Link original do código aqui.</a></p>
<p>https://gist.github.com/andyj/1599544</p>
<p>Link de uma aplicação feita com Web Sql.<br />
<a href="https://github.com/abeauseigle/webSqlApp" target="_blank">HTML5 webSQL app synching with a php MySQL server</a></p>
<p>Se gostaram, compartilhem e façam comentários, sugestões, correções e correções sempre são bem vindas. A Turbosite tem o comprometimento em divulgar conhecimento!</p>
<hr />
<p>&nbsp;</p>
<p><strong>Quer servidores Seguros, Estáveis, com uptime de 99,9%, no Brasil e de baixo Custo? A <span style="color: #ff0000;">Turbosite</span> é sua resposta.</strong></p>
<p><strong><a href="https://www.turbosite.com.br/hospedagem-de-sites" target="_blank">Hospedagem de Sites</a>, <a href="https://www.turbosite.com.br/datacenter" target="_blank">Data Center</a> e <a href="https://www.turbosite.com.br/registro-dominio" target="_blank">Registro de Domínio Grátis</a> só aqui!</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dando significado ao conteúdo na internet &#8211; Schema.org</title>
		<link>https://www.turbosite.com.br/blog/dando-significado-ao-conteudo-na-internet-schema-org/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Mon, 01 Dec 2014 13:25:38 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[google rank]]></category>
		<category><![CDATA[indexar site]]></category>
		<category><![CDATA[page rank]]></category>
		<category><![CDATA[schema.org]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3848</guid>

					<description><![CDATA[Neste artigo vamos analisar o Schema.org. São conceitos que podem te ajudar a melhorar o ranqueamento em mecanismos de busca e dar significado ao seu conteúdo na internet.]]></description>
										<content:encoded><![CDATA[<p>Encontramos este artigo e por ser muito valioso, resolvemos publicá-lo aqui, foi escrito pela <strong>Dani Guerrato </strong>no Blog <a href="http://blog.popupdesign.com.br/schema-org-dando-significado-ao-conteudo-na-internet/">PopUpDesign</a>.</p>
<p>Sintaxe, semântica e vocabulário. Parece até aula de português, mas é desenvolvimento web! Neste artigo vamos analisar como todos estes conceitos podem te ajudar a melhor o ranqueamento em mecanismos de busca, facilitar a vida do seu usuário e dar significado ao seu conteúdo na internet.</p>
<p><strong><em>Squema</em> </strong>em grego quer dizer forma, plano ou modelo. Já <a title="Schema.org" href="http://schema.org/">schema.org</a> é uma série de tags xml utilizadas para fornecer informações extras sobre o conteúdo da internet para mecanismos de busca. Ou seja, pequenos trechos de código que ajudam muito na hora das pessoas encontrarem facilmente o SEU site em meio a tantos outros na web.</p>
<p>A ideia de criar tags xml que apresentem informação sobre o significado de um conteúdo não é nova. Existem e já existiram no passado diversas outras iniciativas como microdados, microformatos e RDFa… Mas esta pluralidade de linguagens era justamente o que tornava difícil a adoção por parte dos desenvolvedores. Afinal, com tantos padrões diferentes que só funcionavam em um determinado contexto, como escolher o ideal? E este é justamente o diferencial do schema.org. Ele surgiu de uma ação colaborativa entre os principais mecanismos de busca do mundo, o Google, Bing, Yahoo! e o buscador russo Yandex. A adoção de um modelo mais “universal” eliminou a ramificação causada pelo uso de diferentes formatos facilitando a vida dos desenvolvedores (que não precisam mais se desdobrar entre tantas linguagens diferente) e acima de tudo, dos usuários.</p>
<figure id="attachment_3852" aria-describedby="caption-attachment-3852" style="width: 640px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" class="size-full wp-image-3852" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/mecanismos-de-busca.jpg" alt="Mecanismos de Busca" width="640" height="300" /><figcaption id="caption-attachment-3852" class="wp-caption-text">Mecanismos de Busca</figcaption></figure>
<h2>Por que utilizar?</h2>
<p>Se você souber o básico da língua portuguesa, apenas ao bater o olho em um texto como este (XX) XXXX-XXXX é obviamente um número de telefone! Mas diante de palavras como <em>τηλέφωνο</em> ou <em>հեռախոս</em> a coisa fica mais complicada, certo? Estas duas palavras também significam telefone respectivamente em grego e armênio, mas a não ser que você conheça estas línguas fica difícil de entender. É isto que acontece com os robôs de mecanismos de busca. Eles não falam bem português, grego ou armênio. Eles se esforçam o tempo todo para “adivinhar” e classificar as informações que postamos na internet, mas no final das contas acaba sendo tudo na base do chute. Um chute baseado em cálculos matemáticos complexos, mas ainda assim um chute. Para que todas as pessoas possam encontrar as informações facilmente na internet nós, desenvolvedores, precisamos dizer para os mecanismos de busca qual é o significado de um conteúdo. E podemos fazer isso através das tags propostas pelo (acho que você já adivinhou) schema.org!</p>
<p>Ao utilizar os padrões determinados pelo schema os mecanismos de busca saberão o número de telefone da sua empresa independentemente do contexto. E poderão mostrar esta informação no corpo do resultados de busca, facilitando a tarefa do usuário que nem precisará caçar a informação no site. E isto não funciona apenas para números de telefone. É possível marcar uma infinidade de dados como nome, endereço, email, etc.</p>
<p>&nbsp;</p>
<h2>Rich Snippets</h2>
<p>Outra grande vantagem são os chamados Rich Snippets. Você provavelmente já viu isto por aí. São resultados de busca que contém informações extras e muitas vezes ganham formatos, cores e símbolos diferentes. Estas informações diferentes vem justamente de tags xml como que vamos aprender neste post. E mesmo que o usuário não esteja buscando exatamente a informação mostrada no rich snippet você irá ganhar mais cliques. Isto acontece devido a um conceito de teoria da percepção (gestalt) chamado segregação que diz basicamente que tudo que é diferente chama mais a atenção. Como é mais comum as pessoas “scanearem” uma página do que lerem atentamente todo o conteúdo, um resultado que se destaca mais irá consequentemente receber mais visitas. Atualmente o Google suporta rich snippets para pessoas, eventos, resenhas, produtos, receitas e navegação estrutural (breadcumbs).</p>
<p>Realizei uma busca no Google sobre a serie Game of Thrones. Veja uma comparação entre um resultado normal e o resultado “tunado” com rich snippets.</p>
<figure id="attachment_3850" aria-describedby="caption-attachment-3850" style="width: 640px" class="wp-caption alignnone"><img decoding="async" class="size-full wp-image-3850" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/exemplo-google-rich-snippets.jpg" alt="Exemplo Google Rich Snippets" width="640" height="400" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/exemplo-google-rich-snippets.jpg 640w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/exemplo-google-rich-snippets-300x188.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption id="caption-attachment-3850" class="wp-caption-text">Exemplo Google Rich Snippets</figcaption></figure>
<p>&nbsp;</p>
<p>Se você ainda precisa ser convencido pense que alguns serviços de busca avançada como o <a title="Google Shopping" href="http://www.google.com/shopping">Google Shopping</a> e <a title="Google Recipes" href="http://www.google.com/landing/recipes/">Google Recipes</a> dependem muito de uma marcação semântica para funcionarem corretamente. E a grande tendência é esta lista crescer com o tempo.</p>
<figure id="attachment_3854" aria-describedby="caption-attachment-3854" style="width: 640px" class="wp-caption alignnone"><img decoding="async" class="size-full wp-image-3854" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/receita-rich-snippet.jpg" alt="Exemplo Google Rich Snippet - Receita" width="640" height="300" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/receita-rich-snippet.jpg 640w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/receita-rich-snippet-300x141.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption id="caption-attachment-3854" class="wp-caption-text">Exemplo Google Rich Snippet &#8211; Receita</figcaption></figure>
<h2></h2>
<h2>Entendendo como funciona o schema</h2>
<p>Se você já participou de uma mudança sabe por experiência que se não etiquetar corretamente as caixas de roupas, livros, utensílios, etc pode acabar sem encontrar um par de meias limpo na sua nova casa. O melhor, portanto, é deixar os objetos em caixas que possuem algum elemento em comum como pertencerem a um mesmo ambiente (quarto, cozinha, banheiro) ou possuírem a mesma função (sapatos, brinquedos, ferramentas). Cada caixa de mudança pode então ser considerada um conjunto de elementos que possuem um objetivo em comum. O mesmo acontece com as palavras. Elas podem ser agrupadas por terem significados em comum, ou, se você quiser usar outro termo, fazem parte de um mesmo campo <strong>semântico</strong>.</p>
<p>A função do schema.org é marcar o significado por trás das caixas de conteúdo na internet. Funciona basicamente como etiquetar o seu html com marcações que indicam qual é o campo semântico que aquele conteúdo faz parte. Para que isto funcionasse de maneira mais organizada foi criado uma hierarquia para o vocabulário.</p>
<p>&nbsp;</p>
<figure id="attachment_3851" aria-describedby="caption-attachment-3851" style="width: 640px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-3851" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/hiearquia-schema-org.jpg" alt="Hierarquia Schema.org" width="640" height="300" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/hiearquia-schema-org.jpg 640w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/hiearquia-schema-org-300x141.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /><figcaption id="caption-attachment-3851" class="wp-caption-text">Hierarquia Schema.org</figcaption></figure>
<p>&nbsp;</p>
<p>O primeiro grande conjunto é “Thing” ou coisa. Mas é claro, “coisa” é muito genérico, certo? O ideal é ser o mais especifico possível. O grupo “Thing”, por sua vez, é dividido em conjuntos filhos. São eles CreativeWork (trabalho criativo), Event (evento), Intangible (intangivel), MedicalEntity (entidade médica), Organization (organização), Person (pessoa), Place (lugar) e Product (produto). Por suas vez estes grupos (ou schemas) são divididos ainda em grupos menores. Cada uma destas entradas tem ainda propriedades especificas. Lembrando que cada um dos “filhos” herdam as características dos pais. E isto é só a ponta do iceberg. Você pode e deve consultar a <a title="Hiearquia do Schema" href="http://schema.org/docs/full.html">hiearquia completa</a> no site oficial. Bem, vamos ver como isto fica na prática!</p>
<p>&nbsp;</p>
<h2>Por dentro dos schemas</h2>
<p>Aviso aos navegantes! A primeira coisa a se levar em conta é que é necessário utilizar HTML5. Este tipo de sintaxe não funciona com outros doctypes! Então certifique-se que o seu documento está nesta linguagem, ok?</p>
<p>Para utilizar o shema.org devemos conhecer três parâmetros de micro dados que surgiram com o HTML5. Conheça seus novos melhores amigos:</p>
<p>itemscope – Define o escopo dos meta dados. Ou seja, anuncia para o mundo que as informações que você escrever a seguir fazem parte de um mesmo grupo de significado. Esta propriedade é inútil se você não referenciar qual é afinal este grupo! E para isto devemos utilizar o parâmetro a seguir: o itemtype.</p>
<p>itemtype – É a etiqueta da caixa de mudança. Define qual é o grupo do item que você está utilizando. No caso do schema.org, você sempre precisará definir uma url começando por “http://schema.org/” (por exemplo: <a title="schema.org/Place" href="http://schema.org/Place">http://schema.org/Place</a>).</p>
<p>itemprop – Define as propriedades do item. Cada propriedade tem um valor esperado que pode ser um texto, numeral, url, etc. Consulte a documentação de cada itemtype que você deseja utilizar para obter uma lista completa das propriedades aceitas por cada elemento e seus respectivos valores.</p>
<p>Encare este post como um dicionário básico português-schema. Decorar um número de telefone de um <a title="It Crowd Emergency Number" href="http://www.youtube.com/watch?v=ab8GtuPdrUQ">jingle</a> é uma tarefa impossível, certo? Sorte que existe a internet! Vamos aprender a dizer “Ei mecanismo de busca! Aqui está o telefone de emergência do hospital.”. Para isto vamos utilizar o itemtype <a title="schema.org/Hospital" href="http://schema.org/Hospital">Hospital</a>(que compartilha características com Thing, Organization, LocalBusiness e MedicalOrganization) e dois itemprops name e telephone.</p>
<div id="crayon-547c5d2d02f08755857488" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true">...
 
&lt;div itemscope itemtype="http://schema.org/Hospital"&gt;
   &lt;span itemprop="name"&gt;Hospital&lt;/span&gt;
   &lt;span itemprop="telephone"&gt;0118 999 881 999 199 725 3&lt;/span&gt;
&lt;/div&gt;
 
...</pre>
<p>&nbsp;</p>
</div>
</div>
<h2>Mais um exemplo prático, por favor!</h2>
<p>Hora de por a mão na massa. Como eu sou fã de meta linguagem vou usar este post como exemplo.</p>
<div id="crayon-547c5d2d02f1e632373923" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true">...
 
&lt;article&gt;
&lt;h1&gt;Schema.org – Dando significado ao conteúdo na internet&lt;/h1&gt;
&lt;h2&gt;por Dani Guerrato&lt;/h2&gt;
&lt;img src="http://blog.popupdesign.com.br/wp-content/uploads/2012/09/schema-org.jpg" alt="schema.org"&gt;
&lt;p&gt;Sintaxe, semântica e vocabulário. Parece até aula de português, mas é desenvolvimento web! Neste artigo vamos analisar como todos estes conceitos podem te ajudar a melhor o ranqueamento em mecanismos de busca, facilitar a vida do seu usuário e dar significado ao seu conteúdo na internet. Conheça o schema.org.&lt;/p&gt;
&lt;/article&gt;
 
...</pre>
<p>&nbsp;</p>
</div>
</div>
<p>Como isto é um post de um blog escolhi o itemtype <a title="schema.org/BlogPosting" href="http://schema.org/BlogPosting">BlogPosting</a>. Este schema é “filho” das categorias Thing, CreativeWork e Article.</p>
<p>Estas são algumas de suas propriedades:</p>
<p>author – pessoa ou organização responsável pela autoria do post<br />
headline – titulo do post<br />
articleBody- o texto do post<br />
image – uma imagem de exibição<br />
url – endereço da página<br />
keywords – palavras chave</p>
<div id="crayon-547c5d2d02f27808667083" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true">...
 
&lt;article itemscope itemtype="http://schema.org/BlogPosting"&gt;
&lt;h1 itemprop="headline"&gt;Schema.org – Dando significado ao conteúdo na internet&lt;/h1&gt;
&lt;h2&gt;por &lt;span itemprop="author"&gt;Dani Guerrato&lt;/span&gt;&lt;/h2&gt;
&lt;img src="http://blog.popupdesign.com.br/wp-content/uploads/2012/09/schema-org.jpg" alt="schema.org" itemprop="image"&gt;
&lt;p itemprop="articleBody"&gt;Sintaxe, semântica e vocabulário. Parece até aula de português, mas é desenvolvimento web! Neste artigo vamos analisar como todos estes conceitos podem te ajudar a melhor o ranqueamento em mecanismos de busca, facilitar a vida do seu usuário e dar significado ao seu conteúdo na internet. Conheça o schema.org.&lt;/p&gt;
&lt;/article&gt;
 
...</pre>
<p>&nbsp;</p>
</div>
</div>
<p>Fácil de aplicar,certo?</p>
<p>É possível combinar e utilizar diversos itemscopes em apenas uma página. Por exemplo, na página sobre de um blog poderiamos usar o itemscope author para cada um dos colunistas. Ao encadear diversos itemscopes a coisa pode ficar meio confusa. Nesta hora é sempre bom utilizar uma ferramenta como a <a title="Google Rich Snippet Tool" href="http://www.google.com/webmasters/tools/richsnippets">Google Rich Snippet tool</a> para testar.</p>
<p>&nbsp;</p>
<h2>Uma pequena nota sobre coisas invisíveis</h2>
<p>A esta altura vocês devem estar pensando “Hey! Você comentou as propriedades url e keywords e não usou no seu exemplo”. Eu fiz isto por que queria informar estes dados para os mecanismos de busca, mas eles não precisavam ficar visíveis para o usuário. Não seria nada semântico utilizar alguma gambiarra como divs escondidas para fazer isto… Mas existe uma saída fácil  e prática. Basta declarar estas informações utilizando meta tags. A sintaxe é bem simples: utilize itemprop e o parâmetro content para o conteúdo desejado.</p>
<div id="crayon-547c5d2d02f2f187053398" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true">...
&lt;article itemscope itemtype="http://schema.org/BlogPosting"&gt;
&lt;meta itemprop="url" content="http://blog.popupdesign.com.br/schema.org-dando-significado-ao-conteudo-na-internet" /&gt;
&lt;meta itemprop="keywords" content="schema.org, SEO, microdata" /&gt;
&lt;/article&gt;
...</pre>
<p>&nbsp;</p>
</div>
</div>
<h2>Quero utilizar um itemtype que não está no schema.org. O que eu faço?</h2>
<p>Você pode, a princípio, usar uma marcação mais genérica. Não existe um itemtype específico para programador ou desenvolvedor front-end, por exemplo, mas você pode usar person para ambos. Ou, você pode utilizar o mecanismo de expansão do schema. Vamos ver como funciona?</p>
<p>Para utilizar o mecanismo é necessário seguir algumas regras de sintaxe:<br />
&#8211; Tipos e enumerações devem começar com letras maiúsculas e não conterem espaços ente as palavras. Por exemplo WebDesigner ao invés de Web Designer (padrão conhecido como <a title="CamelCase na WIkipedia" href="http://pt.wikipedia.org/wiki/CamelCase">CamelCase</a>).<br />
&#8211; Já no caso de propriedades a primeira palavra deve ser escrita com letra minuscula, mas a segunda (se existir) deverá ter letra maiúscula. Se Web Designer fosse uma propriedade deveria ser escrito como webDesigner.</p>
<p>Agora é a parte fácil. Basta utilizar uma barra (o caracter / ) para acrescentar o seu termo novo ao schema. Como o nosso WebDesigner é uma pessoa vamos expandir o termo “person”.</p>
<div id="crayon-547c5d2d02f37744621256" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true ">...
 
&lt;div itemscope itemtype="http://schema.org/Person/WebDesigner"&gt;
   &lt;h1 itemprop="name"&gt;Dani Guerrato&lt;/h1&gt;
&lt;/div&gt;
 
...</pre>
<p>&nbsp;</p>
</div>
</div>
<p>Acabei de dizer para o mundo que eu sou uma pessoa e uma webdesigner. Simples, né? Você pode fazer isso com qualquer itemscope. Um dos itens que mais senti falta no schema foi portfólio. Mas podemos entender portfólio como uma expansão do scope WebPage, afinal, está no mesmo campo semântico. Então bastaria utilizar http://schema.org/WebPage/Portfolio</p>
<p>É importante ter em mente que não é possível criar novos itens, apenas expandir as classes que já existem. Isto é uma regra que serve para manter um padrão coerente. Se você inventasse uma tag aleatória ela não teria mais nenhum vinculo com o schema.org, não seria compatível com nenhum mecanismo de busca ou browser e perderia o propósito da existência já que não teríamos nenhuma pista para entender o que você tentou escrever… Mas se você pensou em uma ideia incrível e nem o mecanismo de expansão atende as suas expectativas você pode ainda tentar sugerir um novo item através desta <a title="Schema Wiki" href="http://www.w3.org/wiki/WebSchemas/SchemaDotOrgProposals">wiki</a>. Lembrando que a sua proposta deverá ser bem escrita e seguir o template proposto pela wiki para ser levada em consideração com nome, descrição, exemplos concretos de uso, etc. Tudo em inglês, é claro. Ou você pode deixar um <a title="Schema Feedback" href="http://schema.org/docs/feedback.html">feedback</a> no site oficial mesmo.</p>
<p>&nbsp;</p>
<h2>Informações do autor nos resultados de pesquisa</h2>
<p>Que tal ir um passo além e utilizar rich snippets para ter o seu nome e imagem ao lado de um artigo de sua autoria nos resultados de busca do Google? O processo é bem simples, mas por enquanto só é possível para quem possui um perfil na rede social <a title="Google+" href="https://plus.google.com/">Google+</a>. Existem duas opções para você confirmar para o Google que é o autor de verdade daquele texto:</p>
<p>Opção 01 – Se você tiver um endereço de email com o seu nome no seu domínio.</p>
<p>Primeiro certifique-se que cada artigo possua um título identificando o seu nome de maneira clara (por exemplo, “Por Dani Guerrato” ou “Autor: Dani Guerrato”). Então visite a página <a title="Google Authorship" href="https://plus.google.com/authorship">Autoria</a> e envie seu endereço de e-mail ao Google. Você só precisará fazer isto uma vez, independente de quantos textos de sua autoria existirem no domínio.</p>
<p>Opção 2 – Se você NÃO possui um endereço de email no seu domínio</p>
<p>Adicione em algum lugar do seu site um link para o seu perfil no Google+. Lembrando de substituir [profile_url] pela URL de seu perfil. Não esqueça do parâmetro ?rel=author.</p>
<div id="crayon-547c5d2d02f41320685437" class="crayon-syntax crayon-theme-popup crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">
<pre class="lang:php decode:true ">...
 
&lt;a href="[profile_url]?rel=author"&gt;Seu nome&lt;/a&gt;
 
...</pre>
<p>&nbsp;</p>
</div>
</div>
<p>O segundo passo é atualizar a seção “Colaborador de” no seu perfil do Google+ com um link de volta para o seu site. Clique em salvar.</p>
<figure id="attachment_3853" aria-describedby="caption-attachment-3853" style="width: 640px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-3853" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/post-autor-rich-snippet.jpg" alt="Postagem de tipo Autor com Rich Snippet" width="640" height="300" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/post-autor-rich-snippet.jpg 640w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/12/post-autor-rich-snippet-300x141.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /><figcaption id="caption-attachment-3853" class="wp-caption-text">Postagem de tipo Autor com Rich Snippet</figcaption></figure>
<p>&nbsp;</p>
<p>Só lembrando que não existe nenhuma garantia. Estas informações só apareceram nas nas pesquisas que o Google achar relevante. Mas o resultado fica bem bacana! Você pode, novamente, utilizar a ferramenta  <a title="Google Rich Snippet Tool" href="http://www.google.com/webmasters/tools/richsnippets">Google Rich Snippet tool</a> para testar.</p>
<p>&nbsp;</p>
<h2>Conclusão e dicas de Leitura</h2>
<p>No caso do schema.org é impossível fazer um bom trabalho sem consultar a <a title="Schema.org " href="http://schema.org/docs/documents.html">documentação</a>. Como é uma ferramenta em constante evolução vale a pena também ficar de olho no <a title="Schema.org Blog" href="http://blog.schema.org/">Blog do Schema.org</a> para conferir as novidades. Se estiver procurando uma leitura em português, o post <a title="Microdata" href="http://loopinfinito.com.br/2012/05/02/microdata/">Microdata</a> do blog Loop Infinito também trás informações bacanas a respeito.</p>
<p>Espero que vocês tenham gostado. Fiquem de olho para mais artigos sobre criatividade, design e desenvolvimento web.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Faça um loading apenas com CSS</title>
		<link>https://www.turbosite.com.br/blog/faca-um-loading-apenas-com-css/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Wed, 19 Nov 2014 12:07:30 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Pure CSS]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3777</guid>

					<description><![CDATA[Reunimos nessa postagem uma coletânea de animações loading spinners, utilizando apenas código CSS e HTML, sem a necessidade de código JavaScript ou imagens.]]></description>
										<content:encoded><![CDATA[<p>A equipe da <a href="https://www.turbosite.com.br">Turbosite </a>compartilha com essa postagem uma coletânea de animações <strong>loading spinners</strong>, utilizando apenas código <strong>CSS</strong> e<strong> HTML</strong>. Com um pequeno pedaço de código CSS é possível criar animações de <em>loading</em> incríveis, sem a necessidade de imagens ou código JavaScript.</p>
<p>Essa implementação resulta em um desempenho melhor em sua página, além de uma rápida implementação, já que todo o trabalho seria feito com algumas linhas de código escrito. Comparando com a clássica implementação de um <em>loading spinner</em>, em que era era necessário gerar uma imagem animada GIF, de vários <em>kbytes de tamanho</em> e com uma custosa implementação.</p>
<p>Listamos abaixo algumas dessas animações. Colocamos ao seu alcance o resultado, o código HTML e o código CSS para a implementação de cada <em>spinner</em>. Caso tenha interesse em aplicar alguma animação em seu código, basta copiar e colar o trecho do código em seu site.</p>
<p>&nbsp;</p>
<p>Abaixo você confere alguma animações retiradas do perfil <a href="http://codepen.io/thebabydino/">Ana Tudor</a> do <a href="http://codepen.io/">CodePen</a>.</p>
<p class="codepen" data-height="550" data-theme-id="0" data-slug-hash="yfpds" data-default-tab="result" data-user="thebabydino">See the Pen <a href="http://codepen.io/thebabydino/pen/yfpds/">CSS Loading Spinners</a> by Ana Tudor (<a href="http://codepen.io/thebabydino">@thebabydino</a>) on <a href="http://codepen.io">CodePen</a>.</p>
<p><script src="//assets.codepen.io/assets/embed/ei.js" async=""></script><br />
Retiramos do site <a href="http://projects.lukehaas.me/css-loaders/">Single Element CSS Spinners</a> mais alguma animações e colocamos tudo no <a href="http://jsfiddle.net/">JSFiddle</a> para que você possa conferi-las abaixo. Caso você tenha interesse em alguma animação, recomendamos que visite a <a href="http://projects.lukehaas.me/css-loaders/">página do site</a> para o código avulso.</p>
<p><iframe loading="lazy" width="100%" height="550" src="http://jsfiddle.net/guilhermefgl/7c6498vx/embedded/result,html,css/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>&nbsp;</p>
<p>Por último retiramos do site <a class="header-title" href="http://css-spinners.com/#/">CSS Spinners</a> mais algumas animações. Mais uma vez juntamos todas as animações no <a href="http://jsfiddle.net/">JSFiddle</a> para que você possa conferí-las ao vivo logo abaixo. Caso você tenha interesse em alguma animação, recomendamos que acesse esse <a href="http://css-spinners.com/#/spinners/">link</a> para a retirada do código.</p>
<p><iframe loading="lazy" width="100%" height="550" src="http://jsfiddle.net/guilhermefgl/2r2y74zg/embedded/result,html,css/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>&nbsp;</p>
<p>Conseguimos juntar ao todo 30 animações de loading com essa postagem. Com um pequeno código CSS é possível criar animações incríveis e por não usar nenhuma outra ferramenta, a página ganhará em desempenho e qualidade de escrita. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Especificações do HTML5 estão finalizadas</title>
		<link>https://www.turbosite.com.br/blog/especificacoes-do-html5-estao-finalizadas/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Thu, 30 Oct 2014 11:51:05 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[W3C]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3625</guid>

					<description><![CDATA[Após 10 anos em desenvolvimento, a W3C finalizou hoje seu trabalho com a linguagem HTML5, definindo sua quinta e última grande revisão do HTML]]></description>
										<content:encoded><![CDATA[<p>Após 10 anos em desenvolvimento, o <span style="text-decoration: underline;">Grupo de Trabalho de HTML</span> publicou hoje o documento <a href="http://www.w3.org/TR/html5/">HTML5 como Recomendação W3C</a>, pelo canal do consórcio W3C, que padroniza a rede mundial de computadores (WWW na sigla em inglês). Esta especificação define a quinta grande revisão do <em>HTML</em>, que é a peça chave da plataforma da <em>Web aberta</em>. Isso quer dizer que as regras de utilização dos códigos não vão mais mudar, dando garantia de funcionamento a páginas web ou a aplicativos criados com a versão final.</p>
<blockquote><p><em>&#8220;Hoje não pensamos que estamos assistindo um vídeo e áudio de forma nativa no navegador, e muito menos acessando um navegador em um telefone. Nós esperamos ser capazes de compartilhar fotos, fazer compras, ler notícias e procurar informações em qualquer lugar, em qualquer dispositivo. Embora eles permanecem invisíveis para a maioria dos usuários, HTML5 e a Plataforma Aberta da Web está guiando estas crescentes expectativas dos usuários. &#8220;</em></p>
<p><strong>Tim Berners-Lee, diretor do W3C</strong></p></blockquote>
<p>O vídeo abaixo, publicação da W3C, mostra o árduo trabalho da equipe  para criar os padrões da Web.</p>
<p><iframe loading="lazy" width="680" height="382" src="//player.vimeo.com/video/110256895?title=0&amp;byline=0&amp;portrait=0" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Práticas Web acessíveis</title>
		<link>https://www.turbosite.com.br/blog/praticas-web-acessiveis/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Wed, 29 Oct 2014 10:59:57 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3615</guid>

					<description><![CDATA[Tornar uma página responsiva é uma boa prática que deve ser sempre aplicada para a transmissão da informação, porem, apenas isso  não é o bastante para deixar a página acessível.]]></description>
										<content:encoded><![CDATA[<p>Tornar uma página responsiva, tanto à diferentes resoluções de telas quanto a dispositivos variados, praticamente já tornou-se lei de mercado para que uma página tenha uma boa qualidade na transmissão da informação. Porém, apenas  adaptar o <em>layout</em> da página para respeitar padrões <strong>responsivos</strong>, não é o bastante para deixar a página <strong>acessível</strong>.</p>
<p>Hoje, se você tem interesse em criar uma  página acessível à vários ambientes, apenas adaptar o <em>layout</em> à variações de resolução não basta. Algumas metodologias devem ser revistas para uma completa adequação. Eventos gerenciados pelo DOM, como key press, mouse over e mouse out, não funcionam muito bem em dispositivos móveis. Enquanto conteúdos que são ativados por meio de alguma ação, não serão bem aproveitados para usuários com alguma deficiência, por exemplo.</p>
<p>Alguns tópicos serão levantados durante esse artigo, envolvendo questões quanto á portabilidade e acessibilidade.</p>
<p>&nbsp;</p>
<h3>Independência de dispositivo</h3>
<p>Eventos que funcionam somente pelo <span lang="en">mouse</span> são um grande problema para a acessibilidade, pois nem todas as pessoas conseguem utilizar o <span lang="en">mouse</span>. Quem utiliza leitor de tela, por exemplo, navega exclusivamente pelo teclado. Pessoas com determinados tipos de deficiência física poderão não ter a habilidade de usar o <span lang="en">mouse</span> convencional e poderão utilizar teclados e <span lang="en">mouses </span>adaptados. Por isso, todas as funções de uma página devem ser dispositivo-independentes, ou seja, devem funcionar pelo <strong><span lang="en">mouse</span></strong>, <strong>teclado</strong> ou <strong>outro dispositivo</strong>. Além disso, o foco do teclado não deve ficar fixado ou “preso” em algum elemento, pois o usuário deve poder percorrer toda a página pelo teclado facilmente. Valendo lembrar que em dispositivos móveis, muitos eventos são inexistentes.</p>
<p>Como exemplo, aquele <em>popover</em> que aparece na página, coma opção de fechar ao click de um botão gera uma excelente usabilidade, mas uma acessibilidade terrível para usuários que não conseguem alcançar aquele botão. Uma simples adição de código aplica à tecla &#8220;ESC&#8221; do teclado a ação de fechar o <em>popover</em>.</p>
<p>&nbsp;</p>
<pre class="lang:js decode:true  ">window.onload = function(){
	document.onkeydown = function(e){
		// tecla ESC
		if(e.keyCode==13){
			fecha_popover();
		}
	}
}
</pre>
<p>Se forem utilizados eventos de JavaScript específicos para <span lang="en">mouse</span>, devem ser utilizados os correspondentes para teclado:</p>
<table style="height: 192px;" width="416">
<caption>Eventos correspondentes para <span lang="en">mouse</span> e teclado</caption>
<thead>
<tr>
<th>Evento do teclado</th>
<th>Evento correspondente do <span lang="en">mouse</span></th>
</tr>
</thead>
<tbody>
<tr>
<td>onkeydown</td>
<td>onmousedown</td>
</tr>
<tr>
<td>onkeyup</td>
<td>onmouseup</td>
</tr>
<tr>
<td>onkeypress</td>
<td>onclick</td>
</tr>
<tr>
<td>onfocus</td>
<td>onmouseover</td>
</tr>
<tr>
<td>onmouseover</td>
<td>onmouseout</td>
</tr>
</tbody>
</table>
<p>Adequar a navegação da página pela tecla &#8220;TAB&#8221; do teclado é outra dica importante. Ordene o conteúdo da sua página para que este tipo de navegação passe apenas por conteúdos utilizáveis, como formulários e links.</p>
<p>Por fim, sempre teste o site navegando por todo o conteúdo somente pelo teclado, com setas e &#8220;TAB&#8221;, e em diferentes navegadores.</p>
<p>&nbsp;</p>
<h3>Alterações temporais do conteúdo</h3>
<p>É muito comum a utilização de conteúdos que se movem, como os <em>slideshows</em>. Esse tipo de elemento não deve mover-se automaticamente, pois o usuário é quem deve decidir se quer “rolar” o conteúdo ou não. Assim, devem ser oferecidos controles para <strong>iniciar, pausar e reiniciar </strong>tais rolagens. Esses controles devem ser acessíveis também pelo teclado e devem estar bem descritos, para quem utiliza leitor de tela.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="size-large wp-image-3617 aligncenter" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/10/slide-show-1024x292.png" alt="slide show" width="680" height="193" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/10/slide-show-1024x292.png 1024w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/10/slide-show-300x86.png 300w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/10/slide-show-768x219.png 768w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/10/slide-show.png 1075w" sizes="auto, (max-width: 680px) 100vw, 680px" /></p>
<p>&nbsp;</p>
<h3>Atualização e redirecionamento automáticos</h3>
<p>Quando ocorre uma mudança, atualização ou redirecionamento repentino na página, o usuário pode sentir-se confuso ou desorientado, especialmente se estiver utilizando algum recurso de Tecnologia Assistiva, como um leitor de tela, por exemplo. Isso ocorre em páginas com atualização ou redirecionamento automáticos. A atualização automática periódica – muito utilizada por canais de notícias &#8211; é comumente realizada através do uso do o atributo <em>http-equiv</em> com conteúdo “<em>refresh</em>” do elemento <em>meta</em> no <em>HEAD</em> do documento.</p>
<p>Em páginas onde a atualização é absolutamente necessária, o usuário deverá ser informado que a página é atualizada automaticamente.</p>
<p>Quanto ao redirecionamento automático, o mesmo deve ocorrer de forma transparente para o usuário. Ou seja, não devem ser utilizadas marcações para redirecionar a uma nova página, como o uso do atributo <em>http-equiv</em> com conteúdo “<em>refresh</em>” do elemento <em>META</em>.</p>
<p>&nbsp;</p>
<h3>Limite de tempo</h3>
<p>Em uma página onde há limite de tempo para realizar uma tarefa deve haver a opção de <strong>desligar</strong>, <strong>ajustar</strong> ou <strong>prolongar</strong> esse limite. Essa recomendação não se aplica a eventos em que o limite de tempo é absolutamente necessário. Deve-se lembrar que, em ambos os casos, o limite de tempo deve ser informado.</p>
<p>Ao especificar o tempo limite para o usuário conclua a ação, não se deve tomar como modelo um desktop conectado a teclado e mouse convencionais. Dispositivos móveis mostram uma ergonomia mais precária, comparadas ao desktop, exigindo um esforço maior e mais prolongado para resolver algumas ações. Deficiências motoras retardam a conclusão de alguns trabalhos na página da web. É importante adequar o tempo levando em conta o dispositivo que o usuário esteja utilizando, e a dificuldade que usuários possam ter concluir trabalhos convencionais.</p>
<p>&nbsp;</p>
<h3>Intermitência de tela</h3>
<p>Não apenas pela acessibilidade, mas também pelo bom gosto. Não devem ser utilizados efeitos visuais piscantes, intermitentes ou cintilantes. Em pessoas com epilepsia fotosensitiva, o cintilar ou piscar pode desencadear um ataque epilético. Além disso, elementos piscantes podem causar desconforto, desatenção e confusão para os usuários.</p>
<p>&nbsp;</p>
<h3>A importância do contraste para usuários com Daltonismo</h3>
<p>A deficiência de cor vermelho/verde é o tipo mais comum de Daltonismo. Por isso, deve-se evitar a utilização de <strong>contrastes</strong> entre essas duas cores.</p>
<ul>
<li>Utilizando combinação de cores verde/vermelho: com a deficiência de cor não é possível perceber o contraste entre as cores.</li>
</ul>
<p><img decoding="async" class="imagem aligncenter" src="http://emag.governoeletronico.gov.br/cursodesenvolvedor/desenvolvimento-web/imagens/img-43.jpg" alt="Representação de como uma pessoa com visão normal e uma pessoa com daltonismo encherga a imagem com conbinações de cores verde e vermelho" /></p>
<ul>
<li>Utilizando combinação de cores verde/lilás: mesmo com a deficiência de cor, ainda é possível perceber o contraste.</li>
</ul>
<p><img decoding="async" class="imagem aligncenter" src="http://emag.governoeletronico.gov.br/cursodesenvolvedor/desenvolvimento-web/imagens/img-44.jpg" alt="Representação de como uma pessoa com visão normal e uma pessoa com daltonismo encherga a imagem com conbinações de cores verde e lilás" /></p>
<p>&nbsp;</p>
<p><strong>Elementos ocultos na tela</strong></p>
<p>É bastante comum, e deixa a página &#8220;inteligente&#8221;, ocultar texto que devem ser mostrar apenas se o usuário desejar velos. Mutas vezes por alguma ação do mouse over  aplicada a um ícone de ajuda, por exemplo, para configurar uma capacidade de aprendizagem. Porém, dependendo método aplicado ao elemento para esconde-lo da página, aplicativos de <strong>leitores de tela</strong> não conseguem alcançar o conteúdo. Dependendo do método, a acessibilidade à aquela ajuda, não exite.</p>
<p>Abaixo é mostrado os diferentes métodos para esconder um elemento da página, e sua reação aos aplicativos leitores de tela.</p>
<table class="tabela">
<caption>Formas de ocultar elementos e efeitos na acessibilidade</caption>
<tbody>
<tr>
<th scope="col">CSS</th>
<th scope="col">Efeito na tela</th>
<th scope="col">Efeito na acessibilidade</th>
</tr>
<tr>
<td>visibility:hidden;</td>
<td>O elemento fica oculto, mas continua a ocupar o espaço que normalmente ocuparia</td>
<td>O conteúdo é ignorado pelos leitores de tela</td>
</tr>
<tr>
<td>display:none;</td>
<td>O elemento fica oculto e não ocupa espaço</td>
<td>O conteúdo é ignorado pelos leitores de tela</td>
</tr>
<tr>
<td>height: 0; width: 0; overflow: hidden;</td>
<td>O elemento fica oculto e não ocupa espaço</td>
<td>O conteúdo é ignorado pelos leitores de tela</td>
</tr>
<tr>
<td>text-indent: -999em;</td>
<td>O conteúdo é movido para &#8220;fora da tela&#8221;, não sendo mais visível, mas links podem ser focalizados de maneira imprevisível</td>
<td>Os leitores de tela acessam o conteúdo, mas somente texto e elementos inline</td>
</tr>
<tr>
<td>position: absolute; left: -999em;</td>
<td>O conteúdo é removido de sua posição, não ocupando espaço e é movido para &#8220;fora da tela&#8221;, ficando oculto</td>
<td>Os leitores de tela acessam o conteúdo</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><strong>Elementos ocultos na tela</strong></p>
<p>Por fim, para a avaliar se sua página é <strong>Web acessível</strong>, existem ferramentas automáticas que auxiliam na avaliação de acessibilidade. O aplicativo eMAG sugere um passo a passo para avaliar a acessibilidade de um site:</p>
<ol>
<li>Validar os códigos de conteúdo HTML e folhas de estilo;</li>
<li>Verificar o fluxo de leitura da página, utilizando um navegador textual ou um software leitor de tela;</li>
<li>Checar o fluxo de leitura das páginas sem estilos, sem scripts e sem as imagens;</li>
<li>Verificar as funcionalidades disponíveis na barra de acessibilidade, como atalhos e contraste;</li>
<li>Efetuar a validação automática de acessibilidade, através de avaliadores automáticos;</li>
<li>Realizar a validação manual, com uso de checklists de validação humana.</li>
</ol>
<p>Um recurso bastante útil na avaliação de acessibilidade de um site são as extensões para navegadores para análise de acessibilidade:</p>
<ul>
<li>Para Firefox: <a href="https://addons.mozilla.org/en-us/firefox/addon/accessibility-evaluation-toolb/"><span lang="en">Accessibility Evaluation Toolbar</span> (link para um novo site)</a></li>
<li>Para Google Chrome: <a href="https://chrome.google.com/webstore/detail/accessibility-developer-t/fpkknkljclfencbdbgkenhalefipecmb?hl=en"><span lang="en">Accessibility Developer Tools</span> (link para um novo site)</a></li>
<li>Para Internet Explorer: <a href="http://www.paciellogroup.com/resources/wat"><span lang="en">Web Accessibility Toolbar for Internet Explorer</span> (link para um novo site)</a></li>
</ul>
<p>&nbsp;</p>
<p>Artigo Retirado de <a title="Curso eMAG / Desenvolvedor" href="http://emag.governoeletronico.gov.br/cursodesenvolvedor/desenvolvimento-web/recomendacoes-de-acessibilidade-definicao.html" target="_blank">Curso eMAG &#8211; gov.br</a> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Chrome DevTools &#8211; Conheça os segredos com 10 vídeos feitos pelo Google</title>
		<link>https://www.turbosite.com.br/blog/chrome-devtools-conheca-os-segredos-com-10-videos-feitos-pelo-google/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Fri, 05 Sep 2014 15:09:28 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[debug codigo]]></category>
		<category><![CDATA[debugar codigo]]></category>
		<category><![CDATA[debugar codigo javascript]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[google developers]]></category>
		<category><![CDATA[segredos google]]></category>
		<category><![CDATA[segreods google developer]]></category>
		<category><![CDATA[web debug]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3481</guid>

					<description><![CDATA[Debugar código JS com Alert? Nunca mais, conheça os segredos de como debugar suas aplicações Web. Confira 10 vídeos criado pela Google destrinchando seus segredos. ]]></description>
										<content:encoded><![CDATA[<p>Nos últimos anos, as tecnologias client-side como HTML, CSS e JavaScript evoluíram de uma maneira absurda. Uma avalanche de APIs vieram com o HTML5, dezenas de novas propriedades foram adicionadas ao CSS3 e uma série de novidades chegaram no JavaScript a partir das novas especificações do ECMAScript.</p>
<p>Consequentemente, muita coisa no workflow de desenvolvimento web também mudou. Debugar códigos JS usando <code>alert</code>? Ir e voltar no navegador para ver como ficaram as mudanças de CSS? Redimensionar a página para simular responsive design? Esse tempo já passou.</p>
<p>A chegada do famigerado <a href="http://getfirebug.com/">Firebug</a> há alguns anos atrás, abriu portas para um novo conjunto de ferramentas como <a href="https://developer.chrome.com/devtools">Chrome DevTools</a>, <a href="http://www.opera.com/dragonfly/">Opera Dragonfly</a> e <a href="https://developer.mozilla.org/en/docs/Tools">Firefox DevTools</a> que auxiliam e muito a vida dos desenvolvedores web.</p>
<p>Nessa série oficial da <em>Google</em>, <strong>gravada em português e produzida por brasileiros</strong>, você vai ver em 10 vídeos como tirar proveito do Chrome DevTools para manipular elementos no DOM, identificar memory leaks, debugar código JavaScript, emular dispositivos móveis, otimizar o waterfall de requisições, e muito mais.</p>
<p>Se você se interessa por produtividade e qualidade no desenvolvimento de aplicações web, não deixe de assistir todos os vídeos!</p>
<p>Para facilitar a navegação entre os vídeo, acesse este link com a lista de reprodução de todos os vídeos: <a href="https://www.youtube.com/playlist?list=PLiGzvgwA5Gmgnq5vPjJxW52hDiX3ndL53" target="_blank">Google Developers</a></p>
<p><iframe loading="lazy" width="100%" height="390" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/videoseries?list=PLiGzvgwA5Gmgnq5vPjJxW52hDiX3ndL53&amp;hl=en_US" frameborder="0"></iframe></p>
<p>Via: <a href="http://tableless.com.br/os-segredos-chrome-devtools/">Tableless</a> </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Editor de texto Atom com a Extensão Emmet</title>
		<link>https://www.turbosite.com.br/blog/editor-de-texto-atom-com-a-extensao-emmet/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Mon, 25 Aug 2014 13:44:22 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[atom emmet]]></category>
		<category><![CDATA[escrita rapida de codigo]]></category>
		<category><![CDATA[extensao emmet]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=3387</guid>

					<description><![CDATA[Como instalar e utilizar a extensão Emmet com o editor de texto Atom da Github. No vídeo, você pode conferir em detalhes sua utilização, além de ver várias dicas.]]></description>
										<content:encoded><![CDATA[<p style="color: #404040;">Já fizemos uma fizemos uma breve apresentação ao <a style="font-weight: bold; font-style: inherit;" title="Excelente editor de texto Atom da Github" href="https://www.turbosite.com.br/blog/excelente-editor-de-texto-atom-da-github/">editor de texto Atom</a> da <a href="https://github.com/">GitHub</a>, se você não leu, clique <a title="Excelente editor de texto Atom da Github" href="https://www.turbosite.com.br/blog/excelente-editor-de-texto-atom-da-github/">aqui</a>. Hoje vamos falar sobre uma das extensões disponíveis para o Atom.</p>
<p style="color: #404040;"><strong style="font-style: inherit;">Emmet</strong>. Esta é uma extensão que vai ajudar a criar códigos HTML e CSS mais rapidamente, ganhando até 80% a mais de agilidade na escrita destes códigos.</p>
<p style="color: #404040;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3388" src="https://www.turbosite.com.br/blog/wp-content/uploads/2014/08/extensao-emmet-atom-turbosite.jpg" alt="extensao-emmet-atom-turbosite" width="700" height="393" srcset="https://www.turbosite.com.br/blog/wp-content/uploads/2014/08/extensao-emmet-atom-turbosite.jpg 700w, https://www.turbosite.com.br/blog/wp-content/uploads/2014/08/extensao-emmet-atom-turbosite-300x168.jpg 300w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p style="color: #404040;">A extensão <a style="font-weight: bold; font-style: inherit;" href="http://emmet.io/">Emmet</a> é muito conhecida pelos desenvolvedores web, pois, permite aumentando a produtividade com escrita de códigos.</p>
<p style="color: #404040;">Com esta extensão, são ativadas diversas funcionalidade, você será capaz de escrever HTMLcom marcações CSS. Se, por exemplo, escrevermos isto:  <span id="crayon-53fb2851e9b7b165969227" class="crayon-syntax crayon-syntax-inline  crayon-theme-classic crayon-theme-classic-inline crayon-font-monaco" style="font-style: inherit;"><span class="crayon-pre crayon-code" style="font-weight: inherit; font-style: inherit; color: #000000;"><span class="crayon-v" style="font-weight: inherit !important; font-style: inherit; color: #002d7a !important;">ul</span><span class="crayon-p" style="font-weight: inherit !important; font-style: inherit; color: #b85c00 !important;">#minha_lista&gt;li*5</span></span></span> e clicarmos na tecla “tab” ou &#8220;CTRL+E&#8221; no Windows, o seguinte será produzido:</p>
<div id="crayon-53fb2851e9b97653199518" class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" style="color: #404040;" data-settings=" minimize scroll-mouseover">
<div class="crayon-toolbar" style="font-weight: inherit; font-style: inherit;" data-settings=" show">
<div class="crayon-tools" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-language" style="font-weight: inherit !important; font-style: inherit; color: #999999 !important;">XHTML</span></div>
</div>
<div class="crayon-plain-wrap" style="font-weight: inherit; font-style: inherit;"></div>
<div class="crayon-main" style="font-weight: inherit; font-style: inherit;">
<table class="crayon-table" style="font-weight: inherit; font-style: inherit;">
<tbody style="font-weight: inherit; font-style: inherit;">
<tr class="crayon-row" style="font-weight: inherit; font-style: inherit;">
<td class="crayon-nums " style="font-style: inherit; color: #5499de !important;" data-settings="show">
<div class="crayon-nums-content" style="font-weight: inherit; font-style: inherit;">
<div class="crayon-num" style="font-weight: inherit !important; font-style: inherit;" data-line="crayon-53fb2851e9b97653199518-1">1</div>
<div class="crayon-num crayon-striped-num" style="font-weight: inherit !important; font-style: inherit; color: #317cc5 !important;" data-line="crayon-53fb2851e9b97653199518-2">2</div>
<div class="crayon-num" style="font-weight: inherit !important; font-style: inherit;" data-line="crayon-53fb2851e9b97653199518-3">3</div>
<div class="crayon-num crayon-striped-num" style="font-weight: inherit !important; font-style: inherit; color: #317cc5 !important;" data-line="crayon-53fb2851e9b97653199518-4">4</div>
<div class="crayon-num" style="font-weight: inherit !important; font-style: inherit;" data-line="crayon-53fb2851e9b97653199518-5">5</div>
<div class="crayon-num crayon-striped-num" style="font-weight: inherit !important; font-style: inherit; color: #317cc5 !important;" data-line="crayon-53fb2851e9b97653199518-6">6</div>
<div class="crayon-num" style="font-weight: inherit !important; font-style: inherit;" data-line="crayon-53fb2851e9b97653199518-7">7</div>
</div>
</td>
<td class="crayon-code" style="font-style: inherit;">
<div class="crayon-pre" style="font-weight: inherit; font-style: inherit;">
<div id="crayon-53fb2851e9b97653199518-1" class="crayon-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;ul </span><span class="crayon-e " style="font-weight: inherit !important; font-style: inherit; color: #004ed0 !important;">id</span><span class="crayon-o" style="font-weight: inherit !important; font-style: inherit; color: #006fe0 !important;">=</span><span class="crayon-s " style="font-weight: inherit !important; font-style: inherit; color: #008000 !important;">&#8220;minha_lista&#8221;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-2" class="crayon-line crayon-striped-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;li&gt;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/li&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-3" class="crayon-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;li&gt;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/li&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-4" class="crayon-line crayon-striped-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;li&gt;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/li&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-5" class="crayon-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;li&gt;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/li&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-6" class="crayon-line crayon-striped-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;li&gt;</span><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/li&gt;</span></div>
<div id="crayon-53fb2851e9b97653199518-7" class="crayon-line" style="font-weight: inherit !important; font-style: inherit;"><span class="crayon-r " style="font-weight: inherit !important; font-style: inherit; color: #800080 !important;">&lt;/ul&gt;</span></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="color: #404040;">No vídeo abaixo, você poderá conferir como instalar a extensão além de,  mostrar como funciona o sistema de abreviaturas e alguns atalhos.<br />
Vídeo exibido em <a href="http://coxpe.com/">Coxpe</a>.</p>
<p style="color: #404040;"><iframe loading="lazy" style="font-weight: inherit; font-style: inherit;" src="http://www.youtube.com/embed/3NnAokCQANs?vq=hd720" width="700" height="394" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p style="color: #404040;">Como foi mencionado no vídeo, não falamos de todos os atalhos. Podem ver mais atalhos <a style="font-weight: bold; font-style: inherit;" href="https://github.com/emmetio/emmet-atom">aqui</a>.<br />
Esta extensão está disponível para mais editores de texto como o Espresso, Notepad++, Sublime Text, etc. Se quiser fazer o download, clique <a style="font-weight: bold; font-style: inherit;" href="http://emmet.io/download/">aqui</a>.</p>
<p style="color: #404040;">A Turbosite valoriza e apoia o desenvolvido Web. Com servidores no Brasil, hoje dispõe de DataCenter próprio com links de alta velocidade e redundantes. Quer contratar uma Hospedagem de Site segura e confiável? É na <strong><a href="https://www.turbosite.com.br">Turbosite</a></strong>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A História Visual do HTML5</title>
		<link>https://www.turbosite.com.br/blog/historia-visual-do-html5/</link>
		
		<dc:creator><![CDATA[turboajuda]]></dc:creator>
		<pubDate>Wed, 14 Nov 2012 16:34:51 +0000</pubDate>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[HTML]]></category>
		<guid isPermaLink="false">http://blog.turbosite.com.br/?p=2337</guid>

					<description><![CDATA[HTML5 é um dos temas mais comentados na Internet nos últimos anos, e por uma boa razão. Você pode até não saber o que significa HTML5 exatamente, mas se você gosta…]]></description>
										<content:encoded><![CDATA[<p>HTML5 é um dos temas mais comentados na Internet nos últimos anos, e por uma boa razão. Você pode até não saber <strong><a title="O Que É Esse Tal de HTML5?" href="http://pt.wix.com/blog/2012/03/o-que-e-esse-tal-de-html5/" target="_blank">o que significa HTML5</a></strong> exatamente, mas se você gosta dos logotipos especiais do Google ou da rádio online Pandora, você provavelmente já experimentou um pouco dessa tecnologia incrível.</p>
<p>Mas de onde veio o HTML5? E como ele evoluiu de uma simples idéia para o padrão web de hoje? Veja isso e muito mais neste infográfico que criamos especialmente para isso:</p>
<p><img decoding="async" alt="" src="http://pt.wix.com/blog/wp-content/uploads/2012/08/A-Hist%C3%B3ria-Visual-do-HTML5.jpg" /></p>
<p>Eu vi no <a href="http://pt.wix.com/blog/2012/08/a-historia-visual-do-html5/" target="_blank">WIX</a> </p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
