Universidad de Alicante
Departamento de Lenguajes y Sistemas Informáticos

Accesibilidad Web

Buscador

Migas de pan

Estás en: Accesibilidad web > Ejemplos > Errores típicos > Contenido > Internacionalización

Internacionalización

Según la Wikipedia, la internacionalización es "el proceso de diseñar software de manera tal que pueda adaptarse a diferentes idiomas y regiones sin la necesidad de realizar cambios de ingeniería ni en el código". ¿Qué relación guarda la internacionalización con la accesibilidad web? Está claro que ofrecer un contenido en el idioma preferido del usuario facilita su uso y comprensión para todo el mundo, con o sin discapacidad. ¿Qué dicen las pautas de accesibilidad del WAI respecto al idioma de una página web?

En WCAG 1.0, la pauta 4 Identifique el idioma usado contiene la siguiente explicación y los siguientes puntos de verificación:

Use marcadores que faciliten la pronunciación o interpretación de texto abreviado o extranjero.

Cuando los desarrolladores de contenido especifican los cambios en el idioma de un documento, los sintetizadores de voz y los dispositivos braille pueden cambiar automáticamente al nuevo lenguaje, haciendo el documento más accesible a usuarios multilingües. Los desarrolladores de contenido deberían identificar el idioma predominante del contenido de un documento (a través de un marcador o en el encabezado HTTP). Deberían también proporcionar la expansión de las abreviaturas y los acrónimos.

Además de apoyar a las ayudas técnicas, la identificación del idioma usado permite a los motores de búsqueda localizar las palabras claves e identificar los documentos en el idioma deseado. Los marcadores de idioma mejoran también la legibilidad de la Web para todo el mundo, incluso para aquellos con discapacidades de aprendizaje, cognitivas o sordera.

Cuando los cambios en las abreviaturas y el idioma no son identificados, pueden ser indescifrables para los lectores de pantalla y los dispositivos braille.

4.1 Identifique claramente los cambios en el idioma del texto del documento y en cualquier texto equivalente (Por ejemplo, leyendas). [Prioridad 1]
Por ejemplo en HTML, utilice el atributo "lang". En XML, utilice "xml:lang".
4.2 Especifique la expansión de cada abreviatura o acrónimo cuando aparezcan por primera vez en el documento. [Prioridad 3]
Por ejemplo, en HTML, use el atributo "title" de los elementos "ABBR" y "ACRONYM". Proporcionar la expansión en el cuerpo principal del documento también ayuda a la usabilidad del documento.
4.3 Identifique el idioma principal de un documento. [Prioridad 3]
Por ejemplo, en HTML, coloque el atributo "lang" en el elemento HTML. En XML, utilice "xml:lang". Los operadores de servidores podrían configurar sus servidores para aprovechar los mecanismos de transferencia del contenido del protocolo HTTP ([RFC2068], sección 14.13), de forma que los clientes puedan recibir automáticamente los documentos en el idioma seleccionado.

En WCAG 2.0, la pauta 3.1 Readable: Make text content readable and understandable contiene los siguientes criterios de éxito (success criterion):

3.1.1 Language of Page: The default human language of each Web page can be programmatically determined. (Level A)

3.1.2 Language of Parts: The human language of each passage or phrase in the content can be programmatically determined except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text. (Level AA)

Si consultamos la razón (Understanding SC 3.1.1 y Understanding SC 3.1.2) que se esconde detrás de cada uno de estos criterios de éxito, es que las tecnologías de apoyo y los agentes de usuarios tradicionales (los navegadores) pueden mostrar el texto y demás contenido de una forma más precisa si se conoce el idioma en el que está escrito el texto.

En concreto, en el caso de los lectores de pantallas, la identificación correcta del idioma del texto permite utilizar las reglas de pronunciación adecuadas para cada idioma.

¿Cómo se usan los atributos lang y xml:lang que se sugieren en WCAG 1.0? ¿Qué pasa con el encabezado HTTP Content-Language? ¿Y con la etiqueta <meta>? ¿Qué más necesito saber?

Elementos clave de la solución

Solución

El W3C tiene un sitio web dedicado a Internationalization (I18n) Activity. Entre los documentos ofrecidos, destaca Internationalization Best Practices: Specifying Language in XHTML & HTML Content que explica las diferentes formas de indicar el idioma principal y los cambios de idioma en una página web. Este documento está en inglés, pero podemos encontrar en castellano un Tutorial: Identificación del idioma en XHTML y HTML y la respuesta a la pregunta frecuente ¿Por qué utilizar el atributo de idioma? que justifica el empleo de los atributos lang y xml:lang.

En el documento Internationalization Best Practices: Specifying Language in XHTML & HTML Content se definen unas "buenas prácticas" a la hora de indicar el lenguaje del texto:

Buena Práctica 1: Uso de los atributos en la etiqueta html
Declara siempre el idioma por defecto del texto en la página mediante los atributos de la etiqueta html, a menos que el documento contenga contenido dirigido a hablantes de más de un idioma.
Consulta la Buena Práctica 5: Elegir entre lang y xml:lang para decidir qué atributo utilizar. Consulta la Buena Práctica 11: Uso de BCP 47 para saber qué valores se emplean para identificar los idiomas.
Buena Práctica 2: Uso de los atributos en la etiqueta html para públicos de más de un idioma
Cuando un documento contiene contenido destinado a hablantes de más de un idioma, decide si quieres declarar un idioma en la etiqueta html, o quieres dejar el idioma sin definir hasta más adelante.
Buena Práctica 3: División de los documentos multilingüe
Cuando un documento contiene un contenido dirigido a hablantes de más de un idioma, trata de dividir el documento lingüísticamente al más alto nivel posible, y declara el lenguaje apropiado para cada una de estas divisiones.
Buena Práctica 4: Identifica los cambios de idioma en el documento
Utiliza los atributos lang y/o xml:lang alrededor del texto para indicar cualquier cambio en el idioma.
El atributo lang se puede utilizar con todos los elementos de HTML excepto applet, base, basefont, br, frame, frameset, iframe, param y script. Si no hay etiquetas alrededor del texto con un idioma diferente, utiliza <span> para delimitarlo.
Buena Práctica 5: Elegir entre lang y xml:lang
Para HTML utiliza sólo el atributo lang, para XHTML 1.0 servido como text/html utiliza los atributos lang y xml:lang, y para XHTML servido como XML utiliza sólo el atributo xml:lang.
Buena Práctica 6: Elegir entre Content-Language y atributos
Usa los atributos en vez de HTTP o los elementos meta para declarar el idioma por defecto para el procesamiento del texto.
Los agentes de usuario rara vez utilizan la información del encabezado HTTP Content-Language o de la etiqueta <meta>.
Buena Práctica 7: Uso de la etiqueta body
No declares el idioma por defecto de un documento en el elemento body, utiliza el elemento html.
La etiqueta <body> sólo se refiere a una parte del documento. Por ejemplo, la etiqueta <title> está en el <head> y no tendría definido un idioma si se declara en el <body>.
Buena Práctica 8: Manejo de los valores de los atributos y del contenido del elemento con diferentes idiomas
Si el texto en los valores de los atributos y el contenido del elemento están en diferentes idiomas, considera utilizar un enfoque anidado.
Buena Práctica 9: Uso de HTTP o una etiqueta meta para indicar el público
Considera utilizar una declaración Content-Language en la cabecera HTTP o una etiqueta meta para declarar los metadatos sobre el o los idiomas del público de un documento.
Sin embargo, no está claro hasta qué punto los agentes de usuario utilizan estos metadatos y cuál de los dos mecanismos es preferido si ambos son utilizados con distintos valores.
Buena Práctica 10: Proporciona una lista de idiomas separados por comas
Cuando un documento contiene contenido dirigido a hablantes de más de un idioma, utiliza Content-Language con una lista de idiomas separados por comas.
Con la etiqueta <meta> también se puede indicar una lista de idiomas.
Buena Práctica 11: Uso de BCP 47
Sigue las pautas de BCP 47 del IETF para los valores de los atributos de idioma.
BCP 47 define unas reglas para crear los códigos de idiomas.
Buena Práctica 12: Decide la longitud del código del idioma
Usa el código del idioma más corto que pueda ser.
Si no es necesario, no indiques una localización. Por ejemplo, si una página está escrita en español, no indiques que el idioma es español de Argentina (es-AR) o español de España (es-ES), a no ser que contenga expresiones idiomáticas de esas variantes.
Buena Práctica 13: Utiliza códigos Hans y Hant
Cuando sea posible, utiliza los códigos zh-Hans y zh-Hant para indicar Chino Simplificado y Tradicional.
Buena Práctica 14: Identifica el idioma de un documento de destino
Cuando se referencia un recurso en otro idioma, analiza las ventajas y desventajas de indicar el idioma del documento de destino.
Buena Práctica 15: Uso hreflang con CSS
Si quieres indicar que un documento de destino de un elemento está en otro idioma, analiza las ventajas y desventajas de utilizar hreflang con CSS.
Buena Práctica 16: Uso de banderas para indicar los idiomas
No uses iconos de banderas para indicar los idiomas.
Las banderas representan países y no idiomas. Numerosos países comparten el mismo idioma, y numerosos países tienen más de un idioma oficial.

Estándares, licencia y contacto