<?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>Rafael Marin &#187; XHTML &amp; HTML</title>
	<atom:link href="http://rafaelmarin.com.br/category/xhtml-html/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafaelmarin.com.br</link>
	<description>User experience designer, user interface designer, ux, ui</description>
	<lastBuildDate>Sun, 10 Jan 2010 17:07:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Vem aí mais um Internet Explorer, que legal</title>
		<link>http://rafaelmarin.com.br/vem-ai-mais-um-internet-explorer-que-legal/</link>
		<comments>http://rafaelmarin.com.br/vem-ai-mais-um-internet-explorer-que-legal/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 13:38:50 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[Cotidiano]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/vem-ai-mais-um-internet-explorer-que-legal/</guid>
		<description><![CDATA[Conheço muita, muita gente &#8211; principalmente clientes &#8211; que ainda estão felizes navegando na Web usando o Internet Explorer 6. Embora já faça um tempinho, o lançamento do Internet Explorer 7 trouxe dois lados distintos para nós, desenvolvedores Web. Talvez quem não conheça os padrões Web, a maneira correta de desenvolver, não tenha se importado muito. Mas nós, fiéis adeptos dos bons costumes, nos deparamos com mais um incômodo. Sim, caros amigos leitores, se já não bastassem algumas incompatibilidades com a versão 6, temos hoje também que nos preocupar com correções de bugs para a versão 7. De certa forma, a empresa de Redmont criou uma preocupação a mais para nós, visto que a migração é algo difícil &#8211; especialmente [...]]]></description>
			<content:encoded><![CDATA[<p>Conheço muita, muita gente &#8211; principalmente clientes &#8211; que ainda estão felizes navegando na Web usando o Internet Explorer 6. Embora já faça um tempinho, o lançamento do Internet Explorer 7 trouxe dois lados distintos para nós, desenvolvedores Web. Talvez quem não conheça os padrões Web, a maneira correta de desenvolver, não tenha se importado muito. Mas nós, fiéis adeptos dos bons costumes, nos deparamos com mais um incômodo.</p>
<p>Sim, caros amigos leitores, se já não bastassem algumas incompatibilidades com a versão 6, temos hoje também que nos preocupar com correções de bugs para a versão 7. De certa forma, a empresa de Redmont criou uma preocupação a mais para nós, visto que a migração é algo difícil &#8211; especialmente levando em consideração que grande parte dos usuários de Internet mal sabem ligar o computador.</p>
<p>Sei que a notícia já é velha, que o IE8 foi anunciado há algum tempo, e que ele até passa no Acid Test 2. Meu site é bem renderizado no Internet Explorer 8 Beta 1, embora possua algumas pequenas falhas.</p>
<p><img src="http://static.rafaelmarin.com.br/blog/uploads/2008/03/provadefogo_ie8.gif" alt="provadefogo_ie8.gif" /></p>
<p>Como a Microsoft gosta de criar confusão, não? Vem aí mais um navegador, e mesmo com suporte impecabilíssimo ao CSS, ainda criará problemas de <em>backwards compatibility</em>. Vindo com <em>Standards mode</em> por padrão, boa parte dos sites até então funcionando no IE6 e IE7 provavelmente quebrarão, ou sofrerão pequenas alterações como aconteceu com o meu. Mas ainda é cedo para se preocupar, pois estamos em um estágio Beta.</p>
<p>Atentem para o fato de que sou totalmente a favor da iniciativa da Microsoft em seguir inteiramente as especificações da W3C. Isso é um grande avanço para a Web. Contudo, precisamos acabar de vez com os navegadores antigos, forçando a migração, mesmo que através de atitudes arrogantes. Ainda que existam maneiras de contornar essas incompatibilidades, como CSS <em>hacks</em>, <em>conditional comments</em>, e agora <em>browser version targeting</em>, está na hora de evoluir um pouco e parar de ficar amarrado lá atrás, em 2002.</p>
<h3>Leia também</h3>
<ul>
<li><a href="http://alistapart.com/articles/beyonddoctype" rel="external">Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 &#8211; A List Apart</a></li>
<li><a href="http://www.pinceladasdaweb.com.br/blog/2008/01/28/internet-explorer-8-e-o-modo-super-standard/" rel="external">Internet Explorer 8 e o modo Super Standard &#8211; Pinceladas da Web</a></li>
<li><a href="http://www.tableless.com.br/ie8-targeting-version" rel="external">Browser Targeting Version &#8211; Tableless</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/vem-ai-mais-um-internet-explorer-que-legal/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Tutorial: Página HTML básica &#8211; Parte 1</title>
		<link>http://rafaelmarin.com.br/tutorial-pagina-html-basica-parte-1/</link>
		<comments>http://rafaelmarin.com.br/tutorial-pagina-html-basica-parte-1/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 00:21:38 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[Feijão com arroz]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/tutorial-pagina-html-basica-parte-1/</guid>
		<description><![CDATA[O departamento de produções audiovisuais tem a honra de aprensentar o primeiro screencast feito por mim, o que é sinônimo de que está bem travado, mal-feito e mal-editado. Direto do CamStudio para o Codeshow Videos da Visie. Mesmo assim, é um tutorial básico que ensina a montar o HTML de uma página &#8220;tableless&#8221;. Em uma próxima oportunidade eu posto a segunda parte, com a camada de apresentação &#8211; o CSS. Link para o vídeo [update] Link para o HTML do tutorial]]></description>
			<content:encoded><![CDATA[<p>O departamento de produções audiovisuais tem a honra de aprensentar o primeiro <em>screencast</em> feito por mim, o que é sinônimo de que está bem travado, mal-feito e mal-editado. Direto do <a href="http://www.camstudio.org/" rel="external">CamStudio</a> para o <a href="http://video.visie.com.br" rel="external">Codeshow Videos</a> da <a href="http://visie.com.br" rel="external">Visie</a>.</p>
<p>Mesmo assim, é um tutorial básico que ensina a montar o HTML de uma página &#8220;tableless&#8221;. Em uma próxima oportunidade eu posto a segunda parte, com a camada de apresentação &#8211; o CSS.</p>
<p><a href="http://video.visie.com.br/kickapps/service/displayMediaPlayPage.kickAction?mediaId=84302&amp;mediaType=VIDEO&amp;as=7300" rel="external">Link para o vídeo</a></p>
<p><strong>[update]</strong> <a href="http://server.rafaelmarin.net/page.html">Link para o HTML do tutorial</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/tutorial-pagina-html-basica-parte-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>O elemento address</title>
		<link>http://rafaelmarin.com.br/o-elemento-address/</link>
		<comments>http://rafaelmarin.com.br/o-elemento-address/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 21:32:41 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/o-elemento-address/</guid>
		<description><![CDATA[Não é necessário saber muito de inglês para concluir que, provavelmente, o elemento address do XHTML sirva para marcar endereços. Na verdade, nem só endereços: address também marca qualquer tipo de informação de contato. Todos conhecem, certo? Certo (ou quase todos). Todos usam? Na verdade não. Geralmente o pessoal apela pela tag soup. Dentro do elemento address você é livre para inserir quaisquer outros elementos inline, como a, span, strong, e por aí vai. Na realidade, é um elemento simples de ser entendido. Vamos a um exemplinho (tirado do código-fonte do site da Visie): &#60;address&#62; &#60;a href="http://visie.com.br/" class="logorodape"&#62;Visie Treinamentos Web&#60;/a&#62; &#60;span&#62; Av. Fagundes Filho, 145, Ed. Austin, Conj. 58 &#60;br/&#62; CEP: 04304-010, Vila Monte Alegre, São Paulo - SP &#60;br/&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Não é necessário saber muito de inglês para concluir que, provavelmente, o elemento <code>address</code> do XHTML sirva para marcar endereços. Na verdade, nem só endereços: <code>address</code> também marca qualquer tipo de informação de contato. Todos conhecem, certo? Certo (ou quase todos). Todos usam? Na verdade não. Geralmente o pessoal apela pela <em>tag soup</em>.</p>
<p>Dentro do elemento <code>address</code> você é livre para inserir quaisquer outros elementos <em>inline</em>, como <code>a</code>, <code>span</code>, <code>strong</code>, e por aí vai. Na realidade, é um elemento simples de ser entendido. Vamos a um exemplinho (tirado do código-fonte do site da <a href="http://visie.com.br/" rel="external">Visie</a>):</p>
<p><code>&lt;address&gt;</code><br />
<code>&lt;a href="http://visie.com.br/" class="logorodape"&gt;Visie Treinamentos Web&lt;/a&gt;</code><br />
<code>&lt;span&gt;</code></p>
<p><code>Av. Fagundes Filho, 145, Ed. Austin, Conj. 58 &lt;br/&gt;</code><br />
<code>CEP: 04304-010, Vila Monte Alegre, São Paulo - SP &lt;br/&gt;</code><br />
<code>T 11 3477.3347 |  &lt;a href="http://www.google.com/" title="Como chegar na Visie"&gt;Mapa de como chegar&lt;/a&gt;&lt;br/&gt;</code></p>
<p><code>&lt;/span&gt;</code></p>
<p><code>&lt;/address&gt;</code></p>
<p>Se você reparar, não existe qualquer dificuldade. Jogue lá dentro suas informações de contato. Inclua dentro quaisquer outros elementos inline.</p>
<h2>Atributos definidos</h2>
<p>Você pode utilizar os seguintes atributos com o elemento <code>address</code>:</p>
<ul>
<li><strong>id</strong>,<strong>class</strong> — identificação</li>
<li><strong>lang</strong>,<strong>dir</strong> — idioma e direção do texto, respectivamente</li>
<li><strong>title</strong> — título do elemento</li>
<li><strong>style</strong> — formatação <em>inline</em></li>
<li><strong>onclick</strong>, <strong>ondblclick</strong>, <strong>onmousedown</strong>, <strong>onmouseup</strong>, <strong>onmouseover</strong>, <strong>onmousemove</strong>, <strong>onmouseout</strong>, <strong>onkeypress</strong>, <strong>onkeydown</strong>, <strong>onkeyup</strong> — eventos instrínsecos</li>
</ul>
<h2>address e o microformato hCard</h2>
<p>Hoje em dia, entretanto, a melhor maneira de marcar endereços é através do microformato hCard. Mesmo assim pode-se utilizar o elemento <code>address</code> com um hCard, aumentando ainda mais a sua semântica. Há um <a href="http://microformats.org/wiki/hcard-examples#Authors_of_Pages_and_Posts" rel="external">exemplo de utilização do elemento <code>address</code> com o microformato hCard</a>, no <a href="http://microformats.org/wiki/" rel="external">Wiki do Microformats.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/o-elemento-address/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML 5: Avanço ou retrocesso?</title>
		<link>http://rafaelmarin.com.br/html-5-avanco-ou-retrocesso/</link>
		<comments>http://rafaelmarin.com.br/html-5-avanco-ou-retrocesso/#comments</comments>
		<pubDate>Tue, 08 May 2007 21:25:07 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/html-5-avanco-ou-retrocesso/</guid>
		<description><![CDATA[[update] O autor do 456 Berea Street fez algumas reconsiderações sobre o artigo Help keep accessibility and semantics in HTML (em suma, traduzido, a seguir) no artigo que publicou hoje, Another look at HTML 5. Explica que parte dos tópicos que citou anteriormente podem ter sido fruto de mal entendimento. Em Another look at HTML 5, reitera o conteúdo do artigo Help keep accessibility and semantics in HTML, detalhando mais sua posição quanto ao assunto. Leitura importante. Depois do que li no 456 Berea Street, fiquei pasmo com a mente de alguns membros do W3C HTML Working Group. Tem gente por lá dizendo, em outras palavras, que semântica e acessibilidade não são importantes. Veja só: Há pessoas contra o valor [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[update]</strong> O autor do 456 Berea Street fez algumas reconsiderações sobre o artigo <a href="http://www.456bereastreet.com/archive/200705/help_keep_accessibility_and_semantics_in_html/" rel="external">Help keep accessibility and semantics in HTML</a> (em suma, traduzido, a seguir) no artigo que publicou hoje, <a href="http://www.456bereastreet.com/archive/200705/another_look_at_html_5/" rel="external">Another look at HTML 5</a>. Explica que parte dos tópicos que citou anteriormente podem ter sido fruto de mal entendimento. Em <a href="http://www.456bereastreet.com/archive/200705/another_look_at_html_5/" rel="external">Another look at HTML 5</a>, reitera o conteúdo do artigo <a href="http://www.456bereastreet.com/archive/200705/help_keep_accessibility_and_semantics_in_html/" rel="external">Help keep accessibility and semantics in HTML</a>, detalhando mais sua posição quanto ao assunto. Leitura importante.</p>
<p>Depois do que li no <a href="http://www.456bereastreet.com" rel="external">456 Berea Street</a>, fiquei pasmo com a mente de alguns membros do <abbr title="World Wide Web Consortium">W3C</abbr> HTML <em>Working Group</em>. Tem gente por lá dizendo, em outras palavras, que semântica e acessibilidade não são importantes. Veja só:</p>
<ul>
<li>Há pessoas contra o valor da semântica e em favor de adicionar mais marcações para controlar a apresentação;</li>
<li>No <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">Rascunho do HTML 5/Web Applications 1.0</a>, recursos de acessibilidade como os atributos <code>summary</code>, <code>headers</code>, e <code>axis</code> (usados para tornar tabelas de dados mais acessíveis) foram removidas sem qualquer explicação;</li>
<li>O conhecimento geral sobre acessibilidade dos membros do <abbr title="World Wide Web Consortium">W3C</abbr> <abbr>HTML</abbr> <em>Working Group</em> é surpreendentemente limitado;</li>
<li>Alguns dos cabeças são vendedores de browsers que parecem ter uma extrema fobia de fazer qualquer coisa para desencorajar o uso de <em>tag soups</em> inválidas e inacessíveis.</li>
</ul>
<p>E ai daquele que não ficar indignado. A Web já é uma bagunça. Quando um grupo se mobiliza para reverter a situação, membros do próprio grupo resolvem amarrar o burro e gritar &#8220;Voltemos ?  era da Internet jurássica&#8221;. OK, pode ser um exagero, mas foi assim que  soou a notícia quando a li.</p>
<p>Pelo jeito, a nova versão do HTML não trará nenhum benefício. As mudanças só irão beneficiar os fabricantes de &#8220;browsers&#8221; e web developers ignorantes. E os que restarem ficarão com o HTML 4.01 Strict. E deu pra bola.</p>
<p>O que as novas versões do HTML precisam é de mais semântica e menos apresentação, e o que os browsers precisam é de suporte decente ao CSS.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/html-5-avanco-ou-retrocesso/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Negociação de conteúdo</title>
		<link>http://rafaelmarin.com.br/negociacao-de-conteudo/</link>
		<comments>http://rafaelmarin.com.br/negociacao-de-conteudo/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 22:10:28 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/04/03/negociacao-de-conteudo/</guid>
		<description><![CDATA[Embora o XHTML devesse ser servido com o MIME application/xhtml-xml, nem todos os browsers estão aptos a entender este MIME Type. Neste contexto, técnicas de negociação de conteúdo &#8211; ou content negotiation em inglês &#8211; podem ser utilizadas para enviar ao agente de usuário diferentes MIME Types, de acordo com o que cada um deles aceita. A esmagadora maioria utiliza o MIME Type text/html para servir documentos XHTML, embora não seja a maneira correta. De acordo com a nota não-normativa da W3C, XHTML Media Types, &#8216;application/xhtml+xml&#8217; SHOULD be used for serving XHTML documents to XHTML user agents. Authors who wish to support both XHTML and HTML user agents MAY utilize content negotiation by serving HTML documents as &#8216;text/html&#8217; and XHTML [...]]]></description>
			<content:encoded><![CDATA[<p>Embora o <abbr title="eXtensible HiperText Markup Language">XHTML</abbr> devesse ser servido com o <acronym title="Multipurpose Internet Mail Extensions">MIME</acronym>  <code>application/xhtml-xml</code>, nem todos os browsers estão aptos a entender este MIME Type. Neste contexto, técnicas de negociação de conteúdo &#8211; ou <em>content negotiation</em> em inglês &#8211; podem ser utilizadas para enviar ao agente de usuário diferentes MIME Types, de acordo com o que cada um deles aceita.  A esmagadora maioria utiliza o MIME Type <code>text/html</code> para servir documentos XHTML, embora não seja a maneira correta. De acordo com a nota não-normativa da W3C, <a href="http://www.w3.org/TR/xhtml-media-types/" rel="external">XHTML Media Types</a>,</p>
<blockquote cite="http://www.w3.org/TR/xhtml-media-types/"><p> &#8216;application/xhtml+xml&#8217; SHOULD be used for serving XHTML documents to XHTML user agents.  Authors who wish to support both XHTML and HTML user agents MAY utilize content negotiation by serving HTML documents as &#8216;text/html&#8217; and XHTML documents as  &#8216;application/xhtml+xml&#8217;.</p></blockquote>
<p>Ou seja, o autor que deseja dar suporte tanto para user agents XHTML quanto para HTML, deve utilizar negociação de conteúdo para servir documentos com o MIME Type adequado a situação.  Um simples script em PHP resolve o problema:</p>
<p><code>&lt;?php<br />
if (stristr($_SERVER[HTTP_ACCEPT], "application/xhtml+xml") ||<br />
stristr($_SERVER["HTTP_USER_AGENT"], "W3C Validator")) {<br />
header("Content-Type: application/xhtml+xml; charset=iso-8859-1");<br />
header("Vary: Accept");<br />
echo("&lt;?xml version=\"1.0\" encoding=\"iso-8859-1\" ?&gt;\n");<br />
} else {<br />
header("Content-Type: text/html; charset=iso-8859-1");<br />
header("Vary: Accept");<br />
}<br />
?&gt;<br />
</code></p>
<p>O script verifica se o agente de usuário suporta o <code>application/xhtml+xml</code>, ou se o agente de usuário é o <a href="http://validator.w3.org" rel="external">W3C Validator</a>. Caso um deles seja verdadeiro, o documento é servido como <code>application/xhtml+xml</code>, caso contrário, ele é servido como <code>text/html</code>. Além disso, se um deles for verdadeiro, o documento recebe a declaração XML.</p>
<p>O cabeçalho <code>Vary: Accept</code> é enviado para que agentes intermediários de cache, como proxy servers, saibam que o MIME Type varia, de acordo com o suporte que o agente de usuário oferece.</p>
<p>O benefício disso tudo é que em browsers como Firefox e Mozilla, que suportam o MIME Type <code>application/xhtml+xml</code>, o código XHTML é tratado como XML no que se refere a intolerância a erros. Ou seja, se um documento XHTML, com MIME Type <code>application/xhtml+xml</code> possuir erros de sintaxe, estes browsers não irão mostrá-lo, assim como acontece com o XML inválido. Somente serão exibidos os documentos assim que os erros de sintaxe estiverem corrigidos. Assim, nem o W3C Validator é necessário para apontar erros.</p>
<h2>Veja também</h2>
<ul>
<li><a href="http://www.456bereastreet.com/archive/200408/content_negotiation/" rel="external">Content negotiation &#8211; 456 Berea Street</a></li>
<li><a href="http://www.456bereastreet.com/archive/200409/content_negotiation_adsense_and_comments/" rel="external">Content negotiation, AdSense, and comments &#8211; 456 Berea Street</a></li>
<li><a href="http://www.japs.etc.br/2006/03/content-negotiation/" rel="external">Content negotiation &#8211; Japs.etc.br</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/negociacao-de-conteudo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que você vê, o que você quer dizer</title>
		<link>http://rafaelmarin.com.br/o-que-voce-ve-o-que-voce-quer-dizer/</link>
		<comments>http://rafaelmarin.com.br/o-que-voce-ve-o-que-voce-quer-dizer/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 00:15:58 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/03/28/o-que-voce-ve-o-que-voce-quer-dizer/</guid>
		<description><![CDATA[Já dizia minha avó que os CMS&#8217;s não se dão muito bem com os desenvolvedores dentro dos padrões. Como todos nós bem sabemos, isto se deve a presença dos editores WYSIWYG (O que você vê é o que você obtém). É característica vital da maioria deles a geração de um código poluído, confuso e nada semântico. Muitas vezes não adianta entregar o site 100% compliant e o cliente próprio atualizar o site com o editor que você instalou, e o cliente atualizar sem se importar com o código, fazendo o trabalho ir por água abaixo. Uma solução seria ensinar o cliente a utilizar códigos como BBCode dos fóruns e o Markdown da Wikipedia. Nem pensar, não é? Neste cenário está [...]]]></description>
			<content:encoded><![CDATA[<p>Já dizia minha avó que os <abbr title="Content Management Systems">CMS&#8217;s</abbr> não se dão muito bem com os desenvolvedores dentro dos padrões. Como todos nós bem sabemos, isto se deve a presença dos editores <abbr title="What You See Is What You Get">WYSIWYG</abbr> (O que você vê é o que você obtém). É característica vital da maioria deles a geração de um código poluído, confuso e nada semântico.</p>
<p>Muitas vezes não adianta entregar o site 100% compliant e o cliente próprio atualizar o site com o editor que <strong>você</strong> instalou, e o cliente atualizar sem se importar com o código, fazendo o trabalho ir por água abaixo. Uma solução seria ensinar o cliente a utilizar códigos como BBCode dos fóruns e o  <a href="http://en.wikipedia.org/wiki/Markdown" rel="external">Markdown</a> da <a href="http://www.wikipedia.org" rel="external">Wikipedia</a>. Nem pensar, não é?</p>
<p>Neste cenário está se difundindo um editor, o <a href="http://www.wymeditor.org" rel="external">WYMeditor</a>, que segue uma linha conhecida por <abbr title="What You See Is What You Mean">WYSIWYM</abbr> (O que você vê é o que você quer dizer). É um editor que se preocupa com a clareza e semântica do código, se concentrando na estruturação do código, e não na sua formatação. O usuário do editor determina apenas parágrafos, links, headings, imagens, ênfases, e tudo o que se refere ?  estruturação do código. Nada de cores, fontes e tamanhos. Quem se encarrega disso são as folhas de estilo do site.</p>
<p><a href="http://demo.wymeditor.org/editor/editor.htm" rel="external">Há um demo on-line para quem quiser experimentá-lo.</a> E ele é bastante extensível. É feito com JavaScript simples, suporta skins, é fácil de integrar e é GRÁTIS e OPEN SOURCE.</p>
<p>Ainda há muito para ser feito, mas como ele está ainda no início, muitas atualizações estão por vir. Sugiro a todos que experimentem!</p>
<p><strong>Update:</strong> Aproveite também para conhecer outros dois projetos, o <a href="http://www.wymstyle.org/" rel="external">WYMstyle</a>, um framework de CSS que pode ajudar no desenvolvimento rápido de layouts (pois é um conjunto de CSSs modulares), e o <a href="http://www.wymsite.org/" rel="external">WYMsite</a>, um CMS 100% <em>compliant</em> (XHTML Strict), feito em PHP 5, URLs amigáveis nativas, com dados baseados em XML, leve e extensível.<br />
Não vou deixar minha opinião sobre estes ainda, pois não fiz grandes testes.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/o-que-voce-ve-o-que-voce-quer-dizer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cartilhas legais para a aprendizagem</title>
		<link>http://rafaelmarin.com.br/cartilhas-legais-para-a-aprendizagem/</link>
		<comments>http://rafaelmarin.com.br/cartilhas-legais-para-a-aprendizagem/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 22:07:04 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microformatos]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/03/21/cartilhas-legais-para-a-aprendizagem/</guid>
		<description><![CDATA[Talvez os desenvolvedores que estão há mais tempo nessa história de padrões web &#8211; abandonando definitivamente os editores visuais &#8211; possam desconsiderar a dica que segue. Contudo, para os iniciantes, a dica é bem útil, vi lá no blog do Pedro Rogério, o Pinceladas da Web. Existem espalhadas pela web algumas cartilhas, ou cheat sheets, que facilitam bastante o trabalho de quem está começando. São grandes tabelas que contém todos os elementos do HTML, CSS, JavaScript e Microformatos, e que quebram um galho enorme algumas vezes quando um elemento ou outro escapa da mente. Mas, para não dar uma de parasita e consumir a banda dos outros, fiz o upload dos arquivos (que estão em PDF) no meu servidor. Faça [...]]]></description>
			<content:encoded><![CDATA[<p>Talvez os desenvolvedores que estão há mais tempo nessa história de padrões web &#8211; abandonando definitivamente os editores visuais &#8211; possam desconsiderar a dica que segue. Contudo, para os iniciantes, a dica é bem útil, vi lá no blog do Pedro Rogério, o <a href="http://www.pinceladasdaweb.com.br" rel="external">Pinceladas da Web</a>.</p>
<p>Existem espalhadas pela web algumas cartilhas, ou <em>cheat sheets</em>, que facilitam bastante o trabalho de quem está começando. São grandes tabelas que contém todos os elementos do HTML, CSS, JavaScript e Microformatos, e que quebram um galho enorme algumas vezes quando um elemento ou outro escapa da mente.</p>
<p>Mas, <a href="http://www.contraditorium.com/2007/03/15/maring-fm-descobre-que-o-buraco-mais-embaixo/" rel="external">para não dar uma de parasita e consumir a banda dos outros</a>, fiz o upload dos arquivos (que estão em <abbr title="Portable Documents Format">PDF</abbr>) no meu servidor.</p>
<h2>Faça o download</h2>
<p>Seguem os links:</p>
<ul>
<li><a href="http://server.rafaelmarin.net/html-cheatsheet.pdf">HTML Cheat Sheet</a>, de <a href="http://www.gosquared.com/liquidicity" rel="external">Liquid City</a></li>
<li><a href="http://server.rafaelmarin.net/css-cheatsheet.pdf">CSS Cheat Sheet</a>, de <a href="http://www.gosquared.com/liquidicity" rel="external">Liquid City</a></li>
<li><a href="http://server.rafaelmarin.net/javascript-cheatsheet.pdf">JavaScript Cheat Sheet</a>, de <a href="http://www.ilovejackdaniels.com/" rel="external">I Love Jack Daniel&#8217;s</a></li>
<li><a href="http://server.rafaelmarin.net/microformats-cheatsheet.pdf">Microformats Cheat Sheet</a>, de <a href="http://www.microformats.org/" rel="external">Microformats.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/cartilhas-legais-para-a-aprendizagem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microformatos</title>
		<link>http://rafaelmarin.com.br/microformatos/</link>
		<comments>http://rafaelmarin.com.br/microformatos/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 23:49:37 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[Microformatos]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/03/09/microformatos/</guid>
		<description><![CDATA[Imagine a quantidade de informação que trafega pela web a cada segundo. Para que os agentes de usuário entendam o que toda essa informação significa &#8211; o que chamamos de semântica &#8211; todo este conteúdo é gerado com marcações, padronizadas. Como em todos as páginas &#8211; teoricamente &#8211; os parágrafos de texto estão marcados com a tag &#60;p&#62;, fica fácil para os programas que lêem estes documentos reconhecer o significado do conteúdo. O mesmo ocorre com todas as outras tags do HTML e XHTML. Agora, imagine se em um site X a tag para marcar parágrafos fosse &#60;bbbbb&#62;, em um site Y fosse &#60;aaaaa&#62;, em um site Z fosse &#60;ccccc&#62; (e assim por diante). Como os browsers, indexadores e leitores [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine a quantidade de informação que trafega pela web a cada segundo. Para que os agentes de usuário entendam o que toda essa informação significa &#8211; o que chamamos de semântica &#8211; todo este conteúdo é gerado com marcações, padronizadas.</p>
<p>Como em todos as páginas &#8211; teoricamente &#8211;  os parágrafos de texto estão marcados com a tag <code>&lt;p&gt;</code>, fica fácil para os programas que lêem estes documentos reconhecer o significado do conteúdo. O mesmo ocorre com todas as outras tags do HTML e XHTML.</p>
<p><span id="more-15"></span>Agora, imagine se em um site X a tag para marcar parágrafos fosse &lt;bbbbb&gt;, em um site Y fosse &lt;aaaaa&gt;, em um site Z fosse &lt;ccccc&gt; (e assim por diante). Como os browsers, indexadores e leitores de tela entenderiam o conteúdo das tags? Impossível, né?</p>
<p>Neste contexto surgem os microformatos (microformats). Eles criaram novos padrões que agregam mais significado ainda ao conteúdo, através de informações que só são vistas no código HTML. Assim como usamos <code>&lt;p&gt;</code> para parágrafos <code>&lt;hx&gt;</code> para títulos, os microformatos utilizam o valores de atributo para padronizar a informação em uma série de situações.</p>
<p>Por exemplo, uma das especificações dos microformatos é o hReview. O hReview é uma especificação dos microformatos destinada ?  reviews de produtos, livros, enfim, de tudo o que é possível de se fazer um review. Você cria o seu review utilizando as marcações e valores de atributo que esta especificação definiu. Mecanismos, como o Technorati, fazem a leitura do seu blog/site e lêem estas classes e valores de atributo e sabem que aquilo se trata de um review. E o fazem da mesma maneira como lêem uma tag <code>&lt;p&gt;</code> e sabem que trata-se de um parágrafo.</p>
<p>Existem outras especificações interessantes, como a hCard, para informações pessoais (como um cartão de visita), a hCalendar, para eventos, entre outros que são um pouco distintos e que falarei mais adiante.</p>
<p>Os microformatos vieram para atribuir mais significado ao conteúdo, extendendo ainda mais o HTML. Caso você ainda não tenha pego o fio da meada, tente ler outros artigos que listarei abaixo e ainda, aprofundar um pouco mais o conhecimento dos padrões Web e sua importância.</p>
<p>Existem <a href="http://www.revolucao.etc.br/archives/category/microformats/" rel="external">vários artigos sobre microformatos</a> no <a href="http://www.revolucao.etc.br/" rel="external">Revolução Etc do Henrique</a>, mas no  <a href="http://www.microformats.org" rel="external">site oficial dos Microformats</a> e no <a href="http://www.microformats.org/wiki" rel="external">Wiki</a> dele existem mais informações sobre todas as especificações.</p>
<p>Aos poucos vou falando das especificações de forma um pouco mais profunda, mas por enquanto é só.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/microformatos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Validação vs. Semântica</title>
		<link>http://rafaelmarin.com.br/validacao-vs-semantica/</link>
		<comments>http://rafaelmarin.com.br/validacao-vs-semantica/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 14:31:43 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/02/25/validacao-vs-semantica/</guid>
		<description><![CDATA[Lendo alguns artigos ? respeito de Validação e Semântica, como o artigo que o Henrique do Revolução Etc escreveu sobre o assunto, resolvi criar a minha versão para este assunto. Talvez eu seja o centésimo que esteja escrevendo sobre isto, mas não importa. Round 1: Validação Muitos pensam pensam que um site validado pelo W3C é o suficiente, principalmente os iniciantes no assunto de Web Standards. É fundamental que o desenvolvedor conheça ao menos qual o papel real do Validador da W3C. Ao validar o código, você apenas verifica que não há nenhum erro de sintaxe, como uma tag que não foi fechada, e coisas do gênero. Só, e nada mais. Round 2: Semântica Talvez seja uma das gafes mais [...]]]></description>
			<content:encoded><![CDATA[<p>Lendo alguns artigos ?  respeito de Validação e Semântica, como <a href="http://www.revolucao.etc.br/archives/validacao-e-semantica/" rel="external">o artigo que o Henrique do Revolução Etc escreveu</a> sobre o assunto, resolvi criar a minha versão para este assunto.<br />
Talvez eu seja o centésimo que esteja escrevendo sobre isto, mas não importa.</p>
<h2>Round 1: Validação</h2>
<p>Muitos pensam pensam que um site validado pelo W3C é o suficiente, principalmente os iniciantes no assunto de Web Standards. É fundamental que o desenvolvedor conheça ao menos qual o papel real do <a href="http://validator.w3.org" rel="external">Validador da W3C</a>. Ao validar o código, você apenas verifica que não há nenhum erro de sintaxe, como uma tag que não foi fechada, e coisas do gênero. Só, e nada mais.</p>
<h2>Round 2: Semântica</h2>
<p>Talvez seja uma das gafes mais comuns cometidas pelos iniciantes confundir validação e semântica. Basicamente, a validação consiste em verificar se não há erros de sintaxe, e semântica é atribuir as tags adequadas de acordo com o conteúdo. Isso significa que usamos as tags <code>&lt;p&gt;</code> para parágrafos, <code>&lt;h1&gt;</code> (e as outras tags h) para títulos, e assim por diante.<span id="more-11"></span></p>
<p>O único validador de semântica que existe é você mesmo. Uma máquina não consegue verificar se o texto de uma tag <code>&lt;p&gt;</code> realmente é um parágrafo, ou se é um elemento com uma classe que o torna com a aparência de título.</p>
<p>Cabe exclusivamente a você avaliar se o seu código é semântico &#8211; o que exige experiência, e o que eu considero muito mais importante do que a validação. Por isso ? s vezes nem ligo se na validação ficam ainda alguns warnings &#8211; claro que tento corrigí-los ao máximo quando possível, mas é algo que não incomoda justamente por que uma das causas destes warnings são as adaptações necessárias para que o site rode tranqüilamente, sem distorções, em diferentes plataformas e browsers.</p>
<p>Ter um código sem erros é ótimo, e para isto (leia-se: SOMENTE para isto) é que serve o validador.  Mas um código semântico, onde as tags realmente são usadas para sua devida função, vale muito mais.</p>
<p>Vou citar um exemplo que mostra a diferença entre validação e semântica, antes de encerrar este artigo: a tag <code>&lt;table&gt;</code> é utilizada para criar tabelas de dados, mas nos últimos tempos vêm sido usada por muitos desenvolvedores para estruturar o corpo da página. Isto é correto? Não, não é correto. Não é semanticamente correto, pois a tag &lt;table&gt; não foi planejada para a estruturação do corpo da página.</p>
<p>Mesmo não sendo o propósito da tag <code>&lt;table&gt;</code>, que é o de exibir dados tabulares, mas fazendo a tabela sem erros de HTML, o código será validado pelo validador. O código é válido? Sim, é válido. É semântico? Não.</p>
<h2>Mais sobre o assunto</h2>
<p>Em outros sites você encontra outras versões &#8211; melhores que a minha talvez &#8211; para este assunto. O <a href="http://jaderubini.wordpress.com/2006/08/03/validar-ou-nao-validar-eis-a-questao/" rel="external">Jader escreveu um bom artigo ?  respeito</a>, e o <a href="http://www.revolucao.etc.br/?s=valida%C3%A7%C3%A3o+sem%C3%A2ntica&amp;searchbutton.x=0&amp;searchbutton.y=0&amp;searchbutton=Buscar&amp;palavra_busca=" rel="external">Henrique do Revolução Etc escreveu vários</a>. Ah, o <a href="http://www.maujor.com/blog/2006/05/12/selos-validacao/" rel="external">Maujor também escreveu um ótimo artigo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/validacao-vs-semantica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vida longa à tag Q</title>
		<link>http://rafaelmarin.com.br/vida-longa-a-tag-q/</link>
		<comments>http://rafaelmarin.com.br/vida-longa-a-tag-q/#comments</comments>
		<pubDate>Sat, 24 Feb 2007 20:24:28 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/02/24/vida-longa-a-tag-q/</guid>
		<description><![CDATA[Após ler no A List Apart sobre a tag &#60;q&#62;, resolvi fazer uma versão em português. A tag &#60;q&#62; existe há aproximadamente 9 anos, desde a primeira versão do HTML 4.0. Sua principal função é exibir citações (quotations) curtas e inline, que não necessitem de quebras de parágrafo. A tag &#60;q&#62; é muitas vezes associada com a tag &#60;blockquote&#62;, que é usada para grandes citações, em forma de bloco. Desde a implementação da tag junto ao HTML 4.0, ela nunca foi totalmente compatível com o IE para Windows. Teoricamente, antes e depois conteúdo dentro da tag &#60;q&#62; deveriam ser renderizadas aspas. Mas o IE não o faz. Talvez este seja um dos motivos pelo qual muitos desenvolvedores deixam de usar [...]]]></description>
			<content:encoded><![CDATA[<p>Após ler no <a href="http://www.alistapart.com" rel="external">A List Apart</a> sobre a tag <code>&lt;q&gt;</code>, resolvi fazer uma versão em português.</p>
<p>A tag <code>&lt;q&gt;</code> existe há aproximadamente 9 anos, desde a primeira versão do <a href="http://www.w3.org/TR/REC-html40-971218/cover.html" rel="external">HTML 4.0</a>. Sua principal função é exibir citações (quotations) curtas e inline, que não necessitem de quebras de parágrafo. A tag <code>&lt;q&gt;</code> é muitas vezes associada com a tag <code>&lt;blockquote&gt;</code>, que é usada para grandes citações, em forma de bloco. Desde a implementação da tag junto ao HTML 4.0, ela nunca foi totalmente compatível com o IE para Windows. Teoricamente, antes e depois conteúdo dentro da tag <code>&lt;q&gt;</code> deveriam ser renderizadas aspas. Mas o IE não o faz. Talvez este seja um dos motivos pelo qual muitos desenvolvedores deixam de usar a tag <code>&lt;q&gt;</code>. Acompanhe o exemplo:<span id="more-8"></span></p>
<p><q>Esta citação está incluída dentro de uma tag <code>q</code>. Em navegadores como o Opera e FF aparecerão as aspas no início e no fim desta citação. Caso esteja usando o IE, elas não aparecerão.</q></p>
<p>Para resolver este problema, poderíamos usar CSS para deixar a tag <code>&lt;q&gt;</code> em itálico, o que causaria confusão, pois citações curtas e inline ficariam difíceis de reconhecer sem as aspas &#8211; além da tag <code>&lt;cite&gt;</code> ser renderizada pelo browser em itálico. Usar JavaScript para renderizar as aspas também não resolveria pois, caso o user-agent não suportasse JavaScript, as aspas não seriam renderizadas. Deixar de usar a tag <code>&lt;q&gt;</code> &#8211; o que muitos fazem &#8211; também não resolveria o problema, pois o código não ficaria semântico. Usar <code>&lt;blockquote&gt;</code> não seria bom, pois usar a tag incorreta não é a solução. E, finalmente, inserir as suas próprias aspas (o que também não resolveria, pois em browsers que suportam bem a tag <code>&lt;q&gt;</code> seriam geradas aspas duplas). Podemos, todavia, usar generated content no CSS para alterar todos os outros browsers. ao invés de buscar uma solução semanticamente correta para o IE. Acompanhe o exemplo a seguir:</p>
<p><code>q:before, q:after{<br />
content: "";<br />
}</code></p>
<p>Como você pode ver, a propriedade <code>content:</code> está em branco, pois isso remove as aspas em todos os browsers. (Lembrando que no IE/Win os pseudo-elementos <code>:before</code> e <code>:after</code> não são reconhecidos, mas não faz diferença pois este truque não é voltado ao IE/Win, e sim a todos os outros browsers).</p>
<p>E então, adicionar aspas você mesmo antes e depois da tag <code>&lt;q&gt;</code>, fora das tags, como no exemplo abaixo:</p>
<p><code>Segundo Seu Madruga, "&lt;q&gt;A vingança nunca é plena, mata a alma e a envenena.&lt;/q&gt;" o que nos leva a concluir que...</code></p>
<p>OBS: Lembrando de adicionar o código CSS que citei acima.</p>
<h2>O que diz a W3C?</h2>
<p>Segundo a <a href="http://www.w3.org/TR/html4/" rel="external">Especificação W3C HTML 4.01</a>:</p>
<blockquote cite="http://www.w3.org/TR/html4/struct/text.html#edef-BLOCKQUOTE"><p>Visual user agents must ensure that the content of the q element is rendered with delimiting quotation marks. Authors should not put quotation marks at the beginning and end of the content of a q element.</p></blockquote>
<p>Ou seja, os autores não devem usar as aspas dentro das tags <code>&lt;q&gt;</code>, pois também estas deveriam ser renderizadas automaticamente com as aspas.</p>
<p>A forma descrita pelo autor do artigo no A List Apart também me soa um pouco mais semanticamente correta, pois não depende de JavaScript, e não desobedece ? s especificações da W3C.</p>
<h2>Links relacionados:</h2>
<ul>
<li><a href="http://www.alistapart.com/articles/qtag/">Long live the Q tag &#8211; A List Apart</a> &#8211; Artigo original no qual me baseei.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/vida-longa-a-tag-q/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

