指定 XHTML 元素的语言时是否需要 `xml:lang` 属性(除了 HTML `lang` 属性)?

问题描述 投票:0回答:3

我有一份 XHTML 1.0 过渡文档。大部分内容都是英文的,因此这就是我在顶部的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

有些元素采用不同的语言,例如

<a href="#" lang="es">Español</a>

我是否也需要向此类元素添加

xml:lang="es"
,从而复制语言信息?

html xhtml internationalization
3个回答
5
投票

如果您要发送具有

text/html
MIME 类型的文件,则应该这样做,因为您正在尝试同时使用 HTML 和 XHTML。 (不过,浏览器只会查看
lang
。)

另一方面,如果您使用正确的 MIME 类型 (

application/xhtml+xml
),则只需要
xml:lang=""
,如果(正确地)指出您正在使用 HTML,并且带有 HTML 文档类型,则只需要
 lang=""


1
投票

根据 XHTML 1.0 规范:是的,同时使用

但没有说为什么。

深入了解可访问性的语言页面也说了同样的事情,正如Rahul对类似问题的回答中提到的。


0
投票

<html>
元素应提供
lang
和/或
xml:lang
属性,以便标识文档的默认语言。

它使屏幕阅读器等辅助技术能够通过适应语言的发音和口音来提供舒适的阅读体验。它还可以帮助盲文翻译软件,例如告诉它切换重音字符的控制代码。

快速修复向“”元素添加“lang”和/或“xml:lang”属性。

参考:https://www.w3.org/International/questions/qa-html-language-declarations


错误的 HTML 示例:

<!DOCTYPE html>
<html>
    <head>
          <title>An English Page</title>
          <meta content="text/html; charset=utf-8" />
    </head>  
    <body>     
    ...   
    </body>
</html>

良好的 HTML 示例 A:

<!DOCTYPE html>
<html lang="en">
    <head>
          <title>An English Page</title>
          <meta content="text/html; charset=utf-8" />
    </head>  
    <body>     
    ...   
    </body>
</html>

良好的 HTML 示例 B:

<!DOCTYPE html>
<html lang="en" xml:lang="en">
    <head>
          <title>An English Page</title>
          <meta content="text/html; charset=utf-8" />
    </head>  
    <body>     
    ...   
    </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.