documento XHTML - pregunta opciones Lang
-
11-09-2019 - |
Pregunta
¿Cuál es la diferencia entre las 2 líneas que se muestran a continuación:?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<meta http-equiv="content-language" content="en-GB" />
Si yo no tenía la etiqueta meta, lo que sería la consecuencia?
¿La meta uno afecta a los lectores de pantalla y el de arriba no? Estoy un poco confundido en cuanto a qué es exactamente lo que hacen.
Gracias de antemano por cualquier ayuda
Saludos
Salta.
Solución
Sumérjase en la accesibilidad de La identificación de su página de lenguaje recomienda añadir tanto como sea posible para manejar la mayor cantidad de lectores de pantalla como puede, dependiendo de su tipo de documento:
Si está utilizando cualquier variante de HTML 4, cambiar su tarjeta a dicha (uso su propio código de idioma si no se Inglés):
<html lang="en">
Si estás usando cualquier variante del XHTML 1.0, cambiar su tarjeta a dicha (use su código de idioma en tanto lugares):
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
Si estás usando XHTML 1.1, cambiar su etiquetas en esta (otra vez, insertar su propio código de idioma):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
El mismo artículo también hace referencia a ISO 639.2 para determinar lo que el valor de xml: lang debe ser, aunque la especificación XML hace referencia a un documento separado, RFC4646 mejor práctica actual -. Etiquetas para la identificación de Idiomas , lo que parece indicar que su valor de "en-GB" es válido
Estadísticas Web de creación (2005) tienen la siguiente decir al respecto:
El siguiente es el valor Content-Language (Utilizado en el atributo http-equiv). Casi como muchas personas lo utilizan como especificar el atributo lang en el html elemento. En la especificación HTML5 actualmente el atributo http-equiv sólo permitido para el caso de ajuste la codificación de caracteres, que no puede Realmente dejarse caer, como el gráfico anterior demuestra. Sin embargo, http-equiv = "Content-Language" es con el apoyo de al menos un navegador, y como vemos aquí, que es ampliamente utilizado - quizá http-equiv no se debe quitar después de todo.
Además, un hilo en conversaciones webproworld sobre la diferencia entre usar http-equiv = contenido en idioma y el nombre = lenguaje para describir el lenguaje del documento e implica que ambos son necesarios.
Por último, consulte la HTML técnicas para Web Content Accessibility Guidelines 1.0 documento en el W3C para algunos más recomendaciones, específicamente la identificación de la primaria idioma.
En conclusión se ve como los lectores de pantalla están mirando lang atributos más que en lengua meta de contenido de información, pero la mayoría de las recomendaciones que he visto aconsejar el uso de los metadatos de todos modos. Especialmente las estadísticas de Google parecen pertinentes, por lo que tal vez debería dejar en tanto.
Otros consejos
Creo que una de las ventajas de la versión <meta>
es que se pueden especificar varios idiomas, como en <meta http-equiv="Content-Language" content="en-GB, fr" />
, por ejemplo. Echar un vistazo a este para un examen más a fondo de el tema.
Content-Language
no es conforme en XHTML5 .
A pesar de que no le permiten especificar más de un idioma, no deberías hacer eso (que no ayuda a nadie). Debe utilizar atributos xml:lang
en elementos específicos en lugar, por ejemplo.
<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>
W3C I18N FAQ también es claramente contra <meta>
:
La cabecera HTTP o información de elemento meta no son relevantes aquí. Por extensión, debe especificar el idioma de procesamiento de textos del contenido en su conjunto mediante el uso de la
lang
y / o atributosxml:lang
en la etiquetahtml
.
Por lo que yo sé, meta http-equiv Sólo se requiere (en su caso) para Los documentos HTML (XHTML) No, porque XHTML permite especificar el idioma con xml:. Lang
Por lo tanto, no hay diferencia, la segunda línea es redundante.
El HTTP / 1.0 RFC 1945 dice que el campo de cabecera Content-Language "representa las lenguas de la audiencia".
El Content-Language entidad de cabecera campo describe lo natural idioma (s) de la audiencia para la entidad cerrada. Tenga en cuenta que esto puede no ser equivalente a toda la lenguas utilizadas dentro de la entidad.
HTML 4 y XHTML1.x tratar la etiqueta meta http-equiv como la misma información incrustada en el documento HTML en lugar de la cabecera HTTP.
Por otro lado, xml:. Lang y el html lang atribuyen identificar el idioma del documento, o el fragmento contenido dentro del elemento sobre el que aparece el atributo
Así, supongamos que tiene un documento que fue principalmente en francés con el propósito de la enseñanza del francés a personas de habla inglesa, el contenido en idioma sería es-ES, en-US (por ejemplo), mientras que el atributo xml: lang sería fr-FR.
No obstante , HTML 5 cambios de esto, y la meta http-equiv = "Content-Language" se considera HTML no conformes que, no obstante define el idioma predeterminado para todo el documento y sólo admite un único lenguaje tan efectiva es idéntica a xml: lang en el elemento html. No puedo decir que entiendo el razonamiento detrás de este cambio, pero Daniel Glazman e Ian Hickson discutirlo en el hilo a partir de http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html