gpt4 book ai didi

html - hreflang 和 lang 属性的语义使用

转载 作者:可可西里 更新时间:2023-11-01 13:21:19 53 4
gpt4 key购买 nike

不是 SEO 问题。

我很好奇如何以与所用语言相关的语义正确方式标记 HTML。如果我的标记有误,请纠正我。

我的问题是:当我已经在 中使用了 hreflang 属性时,我还需要在 html 标签中使用 lang 属性吗?链接标签?

这两个指令在语义上是否不同?我的意思是:两个示例中 link 标记中的自引用在语义上是否会被理解为指示文档的语言?

下面的代码示例可能会澄清我的问题:

英文网页示例

http://example.com/en/

<!DOCTYPE html>
<html lang="en">
<head>
<title>English webpage</title>
<link rel="canonical" href="http://example.com/en">
<link rel="alternate" href="http://example.com/en/" hreflang="en">
<link rel="alternate" href="http://example.com/nl/" hreflang="nl">
<link rel="alternate" href="http://example.com/en/" hreflang="x-default">
</head>
<body>
<p>This is a webpage written in English.
This page is also available in Dutch.
The default language of this page is English.
</body>
</html>

荷兰网页示例

http://example.com/nl/

<!DOCTYPE html>
<html lang="nl">
<head>
<title>Nederlandse webpagina</title>
<link rel="canonical" href="http://example.com/nl">
<link rel="alternate" href="http://example.com/en/" hreflang="en">
<link rel="alternate" href="http://example.com/nl/" hreflang="nl">
<link rel="alternate" href="http://example.com/en/" hreflang="x-default">
</head>
<body>
<p>Dit is een Nederlandstalige web pagina.
Deze pagina is beschikbaar in het Engels.
De standaardtaal van deze pagina is Engels.
</body>
</html>

最佳答案

您应该始终在 html 元素上提供 lang 属性。

与您的案例相关的两个原因:

  • HTML 规范描述了 how the language of a node gets determined . hreflang 属性在这里不起作用。

    如果您没有在 html 元素上提供 lang此节点没有语言。

  • alternate如果 link-hreflang 的值与 的值不同,+hreflang 链接仅被解释为指向当前文档的翻译>html-lang:

    If the alternate keyword is used with the hreflang attribute, and that attribute’s value differs from the root element’s language, it indicates that the referenced document is a translation.

    如果您不在 html 元素上提供 langalternate+hreflang链接不被视为指向翻译。


即使用户代理通过考虑自引用¹ alternate+hreflang 链接来推断文档的语言,也有可能失败的情况:

  • 如果 HTML 文档在本地打开,它不再有 HTTP URL,因此用户代理无法推断出 alternate+hreflang 链接引用这个文档。

  • 如果通过不同的 URL 检索 HTML 文档(例如,使用跟踪参数),alternate+hreflang 链接不再指向当前 URL ,因此用户代理无法推断它也适用于此 URL。

(使用 canonical 链接,这两种情况都可以缓解,但这是用户代理必须支持的另一件事。并非所有人都支持。)


¹ 严格来说,自引用alternate+hreflang 超链接不是语义的,因为alternate被定义为引用“当前文档的替代表示”,但文档当然不是其自身的替代表示。然而,作为Google Search documents its use ,现在看到此标记很常见。

关于html - hreflang 和 lang 属性的语义使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47438763/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com