4

我在 HTML5 页面的头部使用了这些标签,但这些标签会导致 W3C Validation Keyword is not registered出现问题。

<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="Sitename - My Website" />
<meta name="keywords" content="graphic, security," />
<meta name="author" content="My Name" />
<meta name="identifier-url" content="" />
<meta name="revisit-after" content="14 days" />
<meta name="robots" content="all" />
<meta http-equiv="content-language" content="en" />
<meta name="Language" content="en" />

都柏林核心也有同样的问题

<!-- Dublin Core -->
<meta name="DC.Title" content="My Site"/>
<meta name="DC.Subject" content="WebDesign; Analysis"/>
<meta name="DC.Description" content="This is my site bla bla bla"/>
<meta name="DC.Publisher" content="My Name"/>
<meta name="DC.Rights" content="Allrights reserved."/>
<!-- Fine Dublin Core -->

我该如何解决这个问题?如果我明显删除这些部分,网站就会运行,但我丢失了有用的关键字,这些关键字有助于更好地索引我的页面。

有什么建议吗?

4

2 回答 2

4

这些是metaHTML5 规范中定义的标准名称:http:
//www.w3.org/TR/2014/REC-html5-20141028/document-metadata.html#standard-metadata-names

其他名称需要在以下网址注册
http ://wiki.whatwg.org/wiki/MetaExtensions

因此对于 HTML5,您可以自由使用name这两个链接上列出的值,但未列出的值无效。

如果您使用已注册的关键字并且验证器将其报告为错误,则验证器可能不是最新的(可以随时在 wiki 中注册新关键字)。


编辑:根据评论中的要求,使用 name 的有效示例dc.language

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Test</title>
  <meta name="dc.language" content="en">
</head>
<body>
</body>
</html>

您可以使用http://validator.w3.org/验证它(使用“直接输入”)。

于 2012-10-08T15:34:46.840 回答
3

你最初的方法是正确的。HTML 验证器已同时更新并批准它。

HTML 元元素中的name属性有一些定义的值 - 请参阅HTML5 规范- 但任何其他值也是合法的。所以下面的代码将通过 W3C 的验证器:

<meta name="dc.whatever" content="dunno">

据我所知,这是包含 DC 元数据的唯一符合 HTML5 的方法。Dublin Core 文档WHATWG(由 W3C 规范引用!)在使用dc值之前建议以下内容<meta>

<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/">

但是,这是无效的。有一组有限的可接受值<link rel="...">,并且schema不在其中:HTML5 规范

出于同样的原因,上面的答案会产生无效的 HTML - 没有链接类型meta。据我所知,没有办法将 XML 包含到 HTML<script>中(这对我来说更像是一种 hack)。

如果您想使用 Dublin Core,切换到 XHTML 可能是您最好的选择。

于 2017-04-05T12:49:26.787 回答