2012-09-27 18 views
6

(estoy interesado en HTML 4.01 y HTML 5, si no debería haber diferencias)elemento `img` con atributo` lang`: ¿idioma de la imagen en sí?

¿El atributo lang en un elemento img aplica al atributo src, también? ¿O es solo para los atributos alt y title?

Ejemplo:

<img src="example.png" alt="a red foobar" lang="en" /> 

Es la imagen "example.png" considera que está en Inglés? (piense en capturas de pantalla de un hilo del foro, o una representación gráfica de una palabra, o un escaneo de un documento)

Si es cierto, las imágenes con contenido no lingüístico tendrían que obtener lang="zxx". Pero eso se aplicaría a los atributos alt/title, también, lo que sería incorrecto.

Respuesta

5

HTML 4.01 defines el atributo lang como especificar “el idioma base de los valores y el atributo contenido de un elemento”, mientras que HTML5 defines como “el idioma principal de los contenidos del elemento y para cualquiera de los atributos del elemento que contienen texto”. La diferencia está aparentemente en la formulación solamente. El atributo lang especifica el idioma del atributo alt y title, así como otros atributos que pueden contener texto en prosa, al contrario que los valores tipo código como URL o los atributos style, donde el idioma (humano) no es aplicable. El atributo src no es de ningún lenguaje (humano), lógicamente.Entonces la pregunta es si el atributo lang se extiende a la imagen indicada por el atributo src. Esta es una pregunta bastante teórica: ¿qué impacto en el comportamiento del software podría tener la respuesta? De todos modos, la respuesta depende de lo que entendemos como "contenido de texto" (las imágenes son texto en cierto sentido, en formato, pero probablemente HTML 4.01 significa referirse a datos de caracteres reales solamente) y como "contenido de elementos" (es una imagen parte de el contenido del elemento img?). En general, parece que el lenguaje de la imagen (aunque es un concepto factible) no se puede especificar en HTML.

Así que no hay necesidad de preocuparse por imágenes con contenido no lingüístico. Para el contenido de texto que no es "lingüístico" (es decir, no es texto en ningún idioma humano, por ejemplo, una notación de código o una secuencia aleatoria de caracteres), el uso de lang="" es lo que recomienda HTML5. También es el enfoque práctico. En los pocos casos en los que el atributo lang tiene algún impacto, como en la separación silábica automática, lang="" significa efectivamente que no se aplican reglas de idioma (por ejemplo, sin separación silábica). Esto es diferente de omitir el atributo, lo que significa que el elemento hereda la información del idioma de su padre.

+0

Nunca supo que 'lang' aceptó una cadena vacía, pero tiene sentido hacerlo. ¿'Lang =" "' alguna vez fue válido antes de HTML5? – BoltClock

+0

@BoltClock, 'lang =" "' no es válido en HTML 4.01 (incluso en el sentido formal), ya que declara el atributo con el valor 'NAME'. Pero HTML 4.01 está bastante desactualizado a este respecto. XHTML5 cita BCP 47, que define explícitamente la cadena vacía como un posible código de idioma. –

+0

En cuanto a los valores 'lang': El valor' zxx' significa "sin contenido lingüístico", mientras que el valor vacío también podría significar "desconocido" (similar a 'und' para" indeterminado "), ¿o estoy equivocado? – unor

2

En HTML 4.01, section 13.8 dice:

El idioma del texto alternativo está especificado por el atributo lang.

En HTML5, it says:

Especifica el idioma principal de los contenidos de elemento y para cualquiera de los atributos del elemento que contienen texto.

no puedo encontrar nada en el proyecto de HTML5 actual que define la relación entre los alt y lang atributos tan explícitamente como la especificación HTML 4.01 hace. Esperemos que se aclare más tarde, pero supongo que por el momento no hay ningún cambio, y que lo que hace es estado es aplicable.

Ni estados spec una relación explícita entre los src y lang atributos, pero no asumiría que el lenguaje de la imagen de origen en sí se corresponde con el atributo lang, ya que no todas las imágenes tendrán contenidos lingüísticos (como se haya mencionado).

Lo mismo ocurre con title y lang, pero esto puede depender del tipo de elemento, no estoy del todo seguro. Una vez más, lo que hace estado en general anterior debería ser aplicable a title.

Cuestiones relacionadas