我在HTML5页面的头部使用这些标签,但这些标签会导致W3C验证出现问题 关键字未注册。
<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 -->
我如何解决这个问题?如果我删除这些部分显然网站运行但我丢失了有用的关键字,可以帮助更好地索引我的页面。
有什么建议吗?
答案 0 :(得分:4)
这些是HTML5规范中定义的标准meta
名称:
http://www.w3.org/TR/2014/REC-html5-20141028/document-metadata.html#standard-metadata-names
其他名称need to be registered位于:
http://wiki.whatwg.org/wiki/MetaExtensions
所以for HTML5,您可以自由使用这两个链接中列出的name
值,但那里未列出的值无效。
如果您使用已注册的关键字并且验证程序将其报告为错误,则验证程序可能不是最新的(新的关键字可以随时在Wiki中注册)。
编辑:根据评论中的要求,使用名称为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/验证它(使用“直接输入”)。
答案 1 :(得分:1)
您的初始方法是正确的。 HTML验证器在此期间已更新并获得批准。
HTML元素中的name
属性有一些定义的值 - 请参阅HTML5 spec - ,但任何其他值也是合法的。因此,以下代码将通过W3C的验证器:
<meta name="dc.whatever" content="dunno">
据我所知,这是唯一包含DC元数据的HTML5兼容方法。在dc
中使用<meta>
值之前,Dublin Core documentation和WHATWG(由W3C规范引用!)推荐以下内容:
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/">
然而,这是无效的。 <link rel="...">
有一组有限的可接受值,schema
不在其中:HTML5 spec
出于同样的原因answer above生成无效的HTML - 没有链接类型meta
。据我所知,除了<script>
之外,没有办法将XML包含在HTML中(这看起来更像是对我的黑客攻击)。
如果您想使用Dublin Core,可能切换到XHTML将是您最好的选择。