Técnica Scripts de servidor WCAG 2.2
SVR5Indicar el idioma principal en la cabecera HTTP Content-Language
Nombre oficial en el W3C: Especificar el idioma predeterminado en la cabecera HTTP
En pocas palabras
El servidor puede indicar en la cabecera HTTP Content-Language el idioma del público al que va dirigida la página. Ese valor debe coincidir con el idioma principal de la página. Es un complemento recomendado: no sustituye al atributo lang de HTML.
Por qué es importante
La cabecera ayuda a identificar a qué público va dirigida cada página. Es útil, por ejemplo, en un ayuntamiento con versión en castellano y en valenciano.
Pero los lectores de pantalla (programas que leen en voz alta el contenido) no usan esta cabecera para pronunciar. Para eso hace falta el atributo lang en la etiqueta html, que es lo que pide el criterio 3.1.1.
Cómo se hace
- Ponga primero el atributo
langen la etiquetahtmlde cada página, por ejemplolang="es". - Configure el servidor para enviar la cabecera con el mismo código:
Content-Language: es. - En PHP, envíela antes de cualquier contenido:
header('Content-Language: es'); - En Apache se puede fijar con
Header set Content-Language es(módulomod_headers). - En sitios con varios idiomas, envíe en cada versión el código de su idioma:
es,ca,eu,gl,en…
Cómo comprobarlo
- Abra las herramientas de desarrollo del navegador (F12), vaya a la pestaña Red y recargue la página.
- Seleccione la petición del documento y busque
Content-Languageen las cabeceras de respuesta. - Compare su valor con el atributo
langde la etiquetahtml. Deben indicar el mismo idioma.
Ver el texto completo del W3C (traducción al español)
Esta es una traducción no oficial al español de la técnica SVR5 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.
Aplicabilidad
Tecnologías del lado del servidor, incluidos los lenguajes de scripting de servidor y los ficheros de configuración del servidor que permiten establecer cabeceras HTTP.
Descripción
El objetivo de esta técnica es proporcionar información sobre el idioma o idiomas principales de una página web, con el fin de identificar al público destinatario del contenido. La cabecera HTTP Content-Language puede contener una lista de uno o más códigos de idioma, que pueden utilizarse para la negociación de idioma entre un agente de usuario y un servidor. Si las preferencias de idioma del agente de usuario están configuradas correctamente, la negociación de idioma puede ayudar al usuario a encontrar una versión del contenido en el idioma que se ajuste a sus preferencias.
Tenga en cuenta que la cabecera HTTP Content-Language no sirve para identificar el idioma utilizado en el procesamiento del contenido. El idioma de procesamiento del contenido puede identificarse mediante otras técnicas, como los atributos lang y xml:lang de los lenguajes de marcado.
Esta técnica garantiza que el idioma principal del documento, tal como se especifica por ejemplo en el atributo lang o xml:lang, figure en la cabecera HTTP Content-Language.
Ejemplos
Establecer el idioma del contenido en Java Servlet y JSP
En Java Servlet o JavaServer Pages (JSP), quien desarrolla puede usar response.setHeader("Content-Language", lang), donde «lang» representa una etiqueta de idioma (por ejemplo, "en" para el inglés):
...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...
response.setHeader("Content-Language", "en");
PrintWriter out = response.getWriter();
...
}
Establecer el idioma del contenido en PHP
En PHP, quien desarrolla puede enviar una cabecera HTTP directa con el método header. El siguiente ejemplo establece el idioma en francés:
<?php header('Content-language: fr'); ... ?>
Pruebas
Procedimiento
- Usar un visor de cabeceras HTTP en tiempo real para averiguar el valor de la cabecera
Content-Language. - Comprobar que este valor coincide con el idioma predeterminado de la página web.
Resultados esperados
- El paso n.º 2 es verdadero.
Recursos
- W3C Internationalization FAQ: HTTP and meta for language information (preguntas frecuentes de internacionalización del W3C sobre HTTP y meta para la información de idioma)
- Declaring metadata about the language(s) of the intended audience en Authoring HTML: Language declarations - Nota del Grupo de Trabajo del W3C de 3 de junio de 2014.
- RFC 9110, 8.5. Content-Language
- PHP header (documentación de la función header de PHP).
Cómo lo comprobamos en ADDAW
En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.
Basado en la técnica SVR5 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.