Categoria XHTML & HTML

Apr 03

Negociação de conteúdo

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 - ou content negotiation em inglês - 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,

‘application/xhtml+xml’ 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 ‘text/html’ and XHTML documents as ‘application/xhtml+xml’.

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:

<?php
if (stristr($_SERVER[HTTP_ACCEPT], “application/xhtml+xml”) ||
stristr($_SERVER["HTTP_USER_AGENT"], “W3C Validator”)) {
header(”Content-Type: application/xhtml+xml; charset=iso-8859-1″);
header(”Vary: Accept”);
echo(”<?xml version=\”1.0\” encoding=\”iso-8859-1\” ?>\n”);
} else {
header(”Content-Type: text/html; charset=iso-8859-1″);
header(”Vary: Accept”);
}
?>

O script verifica se o agente de usuário suporta o application/xhtml+xml, ou se o agente de usuário é o W3C Validator. Caso um deles seja verdadeiro, o documento é servido como application/xhtml+xml, caso contrário, ele é servido como text/html. Além disso, se um deles for verdadeiro, o documento recebe a declaração XML.

O cabeçalho Vary: Accept é 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.

O benefício disso tudo é que em browsers como Firefox e Mozilla, que suportam o MIME Type application/xhtml+xml, 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 application/xhtml+xml 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.

Veja também

Mar 28

O que você vê, o que você quer dizer

Já dizia minha avó que os CMS’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á se difundindo um editor, o WYMeditor, que segue uma linha conhecida por WYSIWYM (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.

Há um demo on-line para quem quiser experimentá-lo. E ele é bastante extensível. É feito com JavaScript simples, suporta skins, é fácil de integrar e é GRÁTIS e OPEN SOURCE.

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!

Update: Aproveite também para conhecer outros dois projetos, o WYMstyle, um framework de CSS que pode ajudar no desenvolvimento rápido de layouts (pois é um conjunto de CSSs modulares), e o WYMsite, um CMS 100% compliant (XHTML Strict), feito em PHP 5, URLs amigáveis nativas, com dados baseados em XML, leve e extensível.
Não vou deixar minha opinião sobre estes ainda, pois não fiz grandes testes.

Mar 21

Cartilhas legais para a aprendizagem

Talvez os desenvolvedores que estão há mais tempo nessa história de padrões web - abandonando definitivamente os editores visuais - 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 o download

Seguem os links:

Mar 09

Microformatos

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 - o que chamamos de semântica - todo este conteúdo é gerado com marcações, padronizadas.

Como em todos as páginas - teoricamente - os parágrafos de texto estão marcados com a tag <p>, 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.

(more…)

photo Rafael Marin Bortolotto
RafaelMarin.net
rafael arroba rafaelmarin.net
Rua Antonio Rossato, 223
Caxias do Sul , RS , 95013-090 Brazil
Latitude: -29.160758, Longitude: -51.197619
+55 54 3211.3159