La tecla de acceso 'n' lleva a la navegación de la página. Ir al inicio del contenido.

Este documento es una traducción. En caso de discrepancias o errores, la única versión normativa es el último original en inglés. Los derechos de autor originales corresponden al W3C, como puede verse al final de la página.

Traductor: Spanish Translation Team, Trusted Translations, Inc.

s_gotoW3cHome Internacionalización
 

Hojas de estilo en cascada (Cascading Style Sheet: CSS) en contraposición al etiquetado para la compatibilidad bidireccional

Audiencia de destino: 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.

Pregunta

¿Debo usar CSS o etiquetado en lenguajes de etiquetas XML y HTML para aplicar correctamente el formato a un texto bidireccional (bidi) basado en Unicode?

Información preliminar

Los textos redactados en escritura árabe o hebrea se leen, en su mayoría, de derecha a izquierda (Right To Left: RTL), mientras que los textos de otras escrituras se leen de izquierda a derecha (Left To Right: LTR). La mayoría de las veces, el algoritmo bidireccional de Unicode se encarga de la direccionalidad del texto, según las propiedades de los caracteres usados. Sin embargo, es necesario indicar de alguna manera lo siguiente:

A continuación mostramos ejemplos con textos reales escritos de derecha a izquierda e, inmediatamente después, una versión visualmente ordenada sólo como ASCII, que muestra el texto en inglés en minúscula y la versión en hebreo o árabe, en mayúsculas. El orden y la posición de los caracteres son las del original.

Ejemplo:

Para explicar el tercer punto mencionado anteriormente, esta oración de muestra proporciona un ejemplo del resultado que puede obtener si depende únicamente del algoritmo bidireccional. Esto es incorrecto porque la cita completa está en hebreo y, en consecuencia, la secuencia es de derecha a izquierda, el texto "W3C" y la coma deberían aparecer a la izquierda (es decir, después) del texto en hebreo.

El título dice "פעילות הבינאום, W3C" en hebreo.

La versión ASCII:
El título dice "YTIVITCA NOITAZILANOITANRETNI, w3c" en hebreo.

El resultado correcto cuando se muestre debería verse de esta manera:

El título dice "פעילות הבינאום, W3C" en hebreo.

La versión ASCII:
El título dice "w3c ,YTIVITCA NOITAZILANOITANRETNI" en hebreo.

Los formatos XHTML y HTML que proporcionan la opción del uso de etiquetas para cumplir con estos objetivos. Incluyen lo siguiente:

Etiqueta Efecto
atributo dir Define la direccionalidad para el elemento al que se adjunta y el que le sigue. Los valores posibles son rtl y ltr.
elemento bdo Anula la direccionalidad del texto según lo defina el algoritmo bidireccional de Unicode.

CSS también proporciona compatibilidad para la dirección del texto de la siguiente manera:

Propiedad Valores Efecto
unicode-bidi embed El texto al que se aplique esta opción asumirá el flujo direccional indicado en la propiedad direction.
bidi-override El texto al que se aplique esta opción anulará el algoritmo bidireccional de Unicode según el flujo direccional indicado por la propiedad direction.
direction ltr Define una dirección de base de LTR para el texto al que se le aplique la propiedad unicode-bidi.
rtl Define una dirección de base de RTL para el texto al que se le aplique la propiedad unicode-bidi.

La duda es si debería usar el etiquetado o el CSS para indicar la direccionalidad en lenguajes de etiquetas basados en XML y en HTML.

Respuesta

Donde el etiquetado esté disponible siempre debe usar etiquetado bidireccional dedicado para describir su contenido. En consecuencia, el CSS puede o no ser necesario para describir el significado de esa etiqueta. Esto depende del hecho de que se trate de contenido que el agente de usuario utilice como HTML o XML. (Tenga en cuenta que también puede aplicarse a XHTML).

Recuerde siempre que ni el etiquetado ni el CSS deben usarse a menos que sea necesario. Nuestra consulta se relaciona con situaciones en las que el algoritmo bidireccional de Unicode no es suficiente por sí mismo, o bien, ‎ y ‏ no pueden usarse para resolver la direccionalidad.

Observemos este aspecto más detalladamente.

Uso de etiquetas dedicadas

Debido a que a direccionalidad es una parte integrante de la estructura del documento, una etiqueta debe usarse para definir la direccionalidad de un documento o grupo de información, o bien, para identificar los lugares en el texto donde el algoritmo bidireccional de Unicode no sea suficiente para lograr la direccionalidad deseada.

Para producir el efecto bidireccional o de derecha a izquierda deseado, algunas personas simplemente aplican CSS a cualquier párrafo general o a los elementos en línea que rodean el texto relevante. No obstante, el estilo aplicado por CSS no es permanente. Puede desactivarse, anularse, ocultarse, cambiarse o reemplazarse en diferentes contextos. A pesar de que el uso de etiquetas bidireccionales solamente es necesario para la representación visual de un texto, no tiene una función estrictamente decorativa. El etiquetado permanece integrado con el contenido del documento de manera constante. Además, si usa etiquetas bidireccionales dedicadas, permitirá que el contenido tenga una mayor claridad.

En consecuencia, debería usar etiquetas bidireccionales dedicadas cada vez que esté disponible. No adjunte simplemente el estilo CSS a un elemento general para lograr el efecto.

Observe que esto presupone que los documentos escritos en lenguajes de etiquetas siempre recurren al uso de etiquetas específicamente dedicadas a compatibilizar los textos de dirección mezclada. Las personas que diseñan un DTD o esquema deben ser motivadas a agregar elementos o atributos para ese fin.

HTML o XHTML tratado como text/html

Use únicamente etiquetas. La recomendación CSS2 sugiere el uso de etiquetas para el texto bidireccional en HTML. En realidad, indica que para conformar a los agentes de usuario de HTML, se pueden ignorar las propiedades bidireccionales de CSS. Esto se debe a que la especificación HTML define claramente el comportamiento esperado de los agentes de usuario con respecto al etiquetado bidireccional.

XHTML tratado como application/xhtml+xml

En el caso del XHTML 1.0 tratado como application/xhtml+xml, se espera que use la misma semántica que la de HTML. Por lo tanto, también tiene sentido usar sólo etiquetas y no CSS para este caso.

Marcado XML general y XHTML tratados como application/xml o text/xml

Normalmente, un agente de usuario no sabrá ni reconocerá automáticamente qué hacer con cualquier etiqueta bidireccional que use en los documentos XML. Las propiedades de CSS, en consecuencia, deberían usarse para indicar el comportamiento visual esperado del texto en su documento.

No obstante, el CSS siempre debería estar vinculado a la etiqueta bidireccional dedicada en el texto.

Los agentes de usuario consideran el XHTML tratado como application/xml o text/xml como XML, no como HTML.

A continuación se muestran los CSS que serían adecuados para el conjunto de etiquetas disponible en 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

Existen situaciones en XHTML y HTML, y posiblemente otros lenguajes de etiquetas basados en XML, donde el texto aparece en un atributo o elemento que solamente soporta caracteres. No se pueden usar etiquetas ni CSS para modificar la direccionalidad de un texto de atributo o parte del texto en un elemento que sea compatible únicamente con caracteres. En estos casos, deberá usar los códigos de formato direccional de Unicode. (Para obtener más información, consulte las preguntas frecuentes (X)HTML y códigos de formato bidireccional en contraposición al uso de etiquetas).

Para los lenguajes de etiquetas basados en XML, el estilo bidireccional debería definirse en una hoja de estilo separada, que debería incluirse en sus otras hojas de estilo o en el documento. Esto simplifica el desarrollo de las hojas de estilo y refuerza la diferencia entre el estilo bidireccional y otros estilos. Piense en la hoja de estilo bidireccional como parte de la información de esquema que define el significado de las etiquetas bidireccionales específicas, en lugar de pensarla como un estilo decorativo que puede existir en diferentes variantes.

Dinos qué piensas (en Inglés).

Suscripción a feed RSS.

Nuevos recursos

Noticias de la página de inicio

Twitter (Noticias de la página de inicio)

‎@webi18n

Lecturas complementarias

De: Richard Ishida, W3C. Traductor: Spanish Translation Team, Trusted Translations, Inc..

XHTML 1.0 válido
CSS válido
Codificado en UTF-8

Traducido del inglés con fecha 2007-08-29. Traducción modificada por última vez el 2011-05-04 8:29 GMT.

Para ver el historial de cambios del documento, busque qa-bidi-css-markup en la bitácora de internacionalización.