A tecla de acesso 'n' salta para outro local na navegação da página. Saltar para o início do conteúdo.

Este documento é uma tradução. Se ocorrerem discrepâncias ou erros, o original em inglês mais recente terá precedência. Os direitos autorais originais pertencem à W3C, como indicado abaixo.

Tradutor: Portuguese Translation Team, Trusted Translations, Inc.

s_gotoW3cHome Internacionalização
 

CSS versus marcação para suporte bidirecional

Público alvo: XHTML/HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), CSS coders, schema developers (DTDs, XML Schema, RelaxNG, etc.), and anyone who implements HTML using right-to-left scripts.

Pergunta

É melhor usar CSS ou marcação para formatar corretamente textos bidirecionais (bidi) em Unicode nas linguagens HTML e XML?

Informações

Textos com caracteres arábicos ou hebraicos são, em grande parte, escritos da direita para a esquerda (RTL), ao passo que textos com outros caracteres são escritos da esquerda para a direita (LTR). Na maior parte dos caso, o algoritmo bidi Unicode controla a direção do texto, segundo as propriedades dos caracteres sendo usados. Sempre e desde que sejam criados marcadores que indiquem:

Apresentamos exemplos de textos primeiro no sistema de escrita da direita para a esquerda e depois exclusivamente em ASCII, a versão visualmente organizada é apresentada logo em seguida O texto em inglês aparece em minúsculas e em hebraico ou arábe em maiúsculas. A organização e posição dos caracteres reflete a do original.

Exemplo:

Para ilustrar melhor o terceiro ponto acima, este exemplo de oração mostra o que acontece quando se utiliza somente o algoritmo bidirecional. Incorreto. Pois toda a citação está em hebraico, portanto a direção do texto deve ser da direita para a esquerda, o texto "W3C" e a vírgula devem aparecer à esquerda (isto é, depois) do texto em hebraico.

O título diz "פעילות הבינאום, W3C" em hebraico.

a versão ASCII:
O título diz "YTIVITCA NOITAZILANOITANRETNI, w3c" em hebraico.

O resultado correto deveria aparecer assim:

O título diz "פעילות הבינאום, W3C" em hebraico.

a versão ASCII:
O título diz "w3c ,YTIVITCA NOITAZILANOITANRETNI" em hebraico.

O XHTML/HTML apresenta marcações para atender a esses propósitos. Incluindo o seguinte:

Marcação Efeito
atributodir Determina a direção para o elemento a que está anexado e abaixo. Os valores possíveis incluem rtl e ltr.
elementobdo Ignora a direção de texto definida pelo algoritmo bidi Unicode.

O CSS também oferece suporte para as direções de texto abaixo:

Propriedade Valores Efeito
unicode-bidi embed O texto que receber esta aplicação assumirá a direção de texto indicada pela propriedadedireção.
bidi-override O texto que receber esta aplicação ignorará o algoritmo bidi Unicode de acordo com a direção de texto indicada pela propriedadedireção.
direção ltr Determina uma direção básica de LTR para o texto ao qual a propriedade unicode-bidi for aplicada.
rtl Determina uma direção básica de RTL para o texto ao qual a propriedade unicode-bidi for aplicada.

A questão seria determinar se é melhor usar marcação ou CSS para indicar a direção em linguagens XML e HTML.

Resposta

Deve-se usar uma marcação para bidi para descrever o conteúdo do texto toda vez que tal marcação estiver disponível. Assim pode ser ou não necessário lançar mão do CSS para descrever o significado da marcação. Tudo vai depender de se o conteúdo está sendo tratado pelo agente usuário como HTML ou XML. (Lembre-se que XHTML pode ser usado como ambos!)

Sempre lembre-se que deve-se usar marcação nem CSS somente quando necessário. A questão é, portanto, em relação às situações em que o algoritmo bidi Unicode não é suficiente por si só, ou ‎ e ‏ não pode ser usado para determinar a direção.

Tratemos a questão mais detalhadamente.

Usar marcação dedicada

Como a direção é parte integrante da estrutura do documento, deve-se usar uma marcação para determinar a direção de um documento ou trecho de informação, ou para identificar pontos no texto em que o algoritmo bidirecional não basta para alcançar a direção desejada.

Para produzir texto da direita para a esquerda ou o efeito de bidirecionalidade, algumas pessoas usam simplesmente o CSS para qualquer parágrafo geral ou elementos no meio do texto circundados de texto relevante. Entretanto , o estilo aplicado pelo CSS não é permanente. Pode ser desabilitado, ignorado, não ser reconhecido, ou alterado/substituído em diferentes contextos. Embora marcação bidi seja necessária somente para fins visuais do texto, sua função não é meramente decorativa. A marcação permanece integrada ao conteúdo do documento de uma maneira persistente. Oferece também uma claridade significativa para o conteúdo caso seja usada a marcação bidi dedicada.

Assim, é aconselhável usar a marcação bidi dedicada sempre que esta estiver disponível. Procure não conectar simplesmete o estilo CSS ao elemento geral para conseguir o efeito.

Note que se pressupõe que os documentos escritos em linguagens de marcação sempre têm recurso para marcação especialmente dedicada ao suporte de texto com várias direções. Os criadores de DTD ou Schema devem ser motivados a acrescentar elementos ou atributos para esse fim.

HTML ou XHTML apresentado como text/html

Usar somente marcação. As recomendações CSS2 indicam o uso de marcação para textos bidi em HTML. Pode-se na realidade dizer que agentes usuários de conformação do HTML podem ignorar as propriedades do bidi CSS. Pois a especificação HTML define claramente o comportamento esperado dos agentes usuários em relação à marcação bidi.

XHTML apresentado como application/xhtml+xml

O XHTML 1.0 apresentado como application/xhtml+xml deve usar a mesma semântica do HTML. Portanto, também faz sentido usar somente marcação nesse caso e não CSS.

Marcação geral XML e XHTML apresentada como application/xml ou text/xml

Em geral um agente usuário não reconhece ou sabe automaticamente o que fazer com marcações bidi usadas em documentos XML. As propriedades do CSS devem portanto ser usadas para indicar o comportamento visual esperado do texto no documento.

O CSS, no entanto, deve sempre estar viulado à uma marcação dedicada no texto.

O XHTML apresentado como application/xml ou text/xml é tratado pelo agente usuário como XML, não HTML.

Abaixo aparece o CSS que seria adequado para o conjunto de marcações disponíveis em XHTML:

*[dir="ltr"] { direction: ltr; unicode-bidi: embed }

*[dir="rtl"] { direction: rtl; unicode-bidi: embed }

bdo[dir="ltr"] { direction: ltr; unicode-bidi: bidi-override }

bdo[dir="rtl"] { direction: rtl; unicode-bidi: bidi-override }

A propósito

Há situações em linguagens XHTML/HTML e provavelmente em outros XML em que o texto aparece com atributo ou elemento que suporta somente dados de caractere. Nem a marcação nem o CSS podem ser usados para modificar a direção de texto ou parte do texto num elemento que suporta somente dados de caractere. Nesses casos será necessário usar os códigos de formatação direcional Unicode. (Consulte o FAQ códigos de formatação bidi e (X)HTML versus marcação para mais detalhes.)

Para linguagens XML, o estilo bidi deverá ser definido numa folha de estilo separada, que deve ser incluída nas outras folhas de estilo ou no documento. Isso simplifica a criação de folhas de estilo e reforça a diferença entre bidi e outros estilos. Considere a folha de estilo bidi como parte das informações que definem o significado da marcação bidi específica, em vez de um estilo decorativo que pode existir em várias variantes.

Dê-nos a sua opinião (em inglês).

Subscreva uma alimentação RSS.

Novos recursos

Notícias na página principal

Twitter (Notícias na página principal)

‎@webi18n

Leitura complementar

Autor: Richard Ishida, W3C. Tradutor: Portuguese Translation Team, Trusted Translations, Inc..

XHTML 1.0 válida!
CSS válido!
Codificado em UTF-8!

Traduzido de conteúdo em inglês datado de 2007-08-29. Última versão traduzida modificada 2011-05-04 8:29 GMT

Para obter o histórico de alterações do documento, procure qa-bidi-css-markup no blog da i18n.