RDFa `<meta>`没有`name`属性在HTML5中兼容吗?

4
RDFa为<meta>元素引入了property属性,W3C甚至推荐将其作为HTML5的扩展。例如,Facebook的Open Graph协议就是使用RDFa的property属性,如下所示(来自Open Graph网站的示例):
<html prefix="og: http://ogp.me/ns#">
<head>
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />

然而,HTML5规范似乎禁止这种用法。我不是在谈论它是否允许property属性;我指的是对于<meta>元素,如果没有name属性,则明确禁止使用content属性:

如果指定了namehttp-equiv中的任意一个,则必须同时指定content属性。否则,必须省略content属性。

这难道不与Open Graph等当前RDFa用法直接冲突吗?HTML5规范似乎也要求此处同时存在name属性。

1个回答

4
"W3C推荐的“HTML+RDFa 1.1”扩展了HTML规范(您可以在W3C注释中找到所有扩展)。此扩展更改了HTML对meta元素的符合性要求:

如果meta元素上存在RDFa @property属性,则不需要@name@http-equiv@charset属性,且必须指定@content属性。

"

因此,这两个HTML+RDFa元素是有效的:

<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />

(另外两个 meta 元素是无效的,因为它们有URL值,必须使用 link元素。)

我理解扩展规范的概念,但我不明白如何改变规范的绝对要求(“必须省略”);否则,就无法根据规范进行验证,因为任何“扩展”都可能更改规范的任何部分。这就像一个Java类指示fooBar()方法具有public可见性,然后子类试图使用可见性private覆盖该方法一样(参见LSP)。一个“扩展”能否撤销禁令? - Garret Wilson
@GarretWilson: HTML消费者(例如符合性检查器)不需要支持扩展。如果它们支持该扩展,则完全适应符合性要求;如果它们不支持该扩展,则即使只有“property”属性,无论是否指定了“name”属性,它们也将认为该文档无效。-- 扩展可以被理解为对整个HTML规范的可选更改,因此决定(例如出于组织/可用性/稳定性原因)最好将它们放在单独的文档中。 - unor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接