30

我正在看一下Dive Into HTML5。看起来很好很有趣,但我很困惑。

在 1990 年代,当时 Netscape 是浏览器,而 HTML 是 HTML2 或 HTML3,有很多标签:地址、引用、代码……它们中的大多数到今天都没有使用,甚至可能已经过时。

HTML5引入标签来向标签本身表达“语义”。这都是乐趣和游戏,但我在这种方法中看到了一些非常奇怪的东西。从技术上讲,语义可以是非常开放的。HTML5 具有文章、时间、导航栏、页脚的标签。为什么它不应该包含帖子图标、作者地点、姓名和姓氏的标签,或者您想要为其分配特定语义的任何其他标签(我有信心<rant>并且<nsfw>会是非常重要的标签):?我认为 XML 是为事物分配语义的策略。没有什么可以禁止您将 XML 块放在XHTML div 元素下,并为其分配样式表以便正确设置样式,或将处理该名称空间的工作委托给适当的查看器(例如,在处理RSSSVG时))。

总之,我不明白这个扩展背后的原因集中在语义上,因为很明显语义是一个非常广泛的主题,它保证需要潜在的无限量的语义标签。因为我很确定W3C有聪明的人,所以我想我错了,但我想知道为什么。

4

10 回答 10

26

为什么文章、时间、导航栏、页脚的标签很有用?

因为它们有助于解析像谷歌这样的文本处理工具。

这与语义无关(至少在“广义”意义上)。相反,他们只是说:这是页面主体(最重要的文本部分),并且导航栏上充满了链接。使用这种方法,您可以轻松提取所需的内容。

于 2009-11-01T23:01:00.520 回答
8

我也讨厌 W3C 采用他们的规范的方式。有很多我不喜欢的东西,这种“语义”时尚就是其中之一。(其他包括永远完成他们的规范,并留下太多重要的细节供浏览器根据他们的选择来实施)

最重要的是,我不喜欢它,因为它使我作为 Web 开发人员的工作更加困难。我经常不得不做出选择,是让网页“语义正确”还是“视觉/美学上令人愉悦”。后者当然会赢,因为这是用户想要的,但结果验证开始失败,整个事情变得非常非语义(用于布局和其他事情的表格)。

我皱眉的另一个问题是他们已经正式宣布“类”属性用于语义,但随后他们将其用于 CSS 中的视觉呈现选择器。

底线 -不要混合语义和视觉表示。如果您使用某种机制来描述语义(如标签名称、属性值或其他),那么不要将其用于功能/视觉目的,反之亦然。

如果我要设计 HTML,我会简单地添加一个属性“语义”,它可以(如“类”属性)添加到任何标签。然后会有一些预定义的值,比如所有的页眉/页脚/文章/引号/等。

标签将定义功能。基本上,您可以将 HTML 标记减少到少数几个,例如“div”、“table/tr/td”、“a”、“img”、“form”、“input”和“select”。我可能错过了一些,但这是大部分。视觉样式将通过 CSS 完成。

这样,三个领域——语义、视觉表示和功能——将完全独立,并且不会在现实生活中的解决方案中发生冲突。

当然,我认为 W3C 对实际解决方案不感兴趣……

于 2009-11-18T16:03:09.623 回答
4

HTML 标记中已经有很多以类和 ID 形式存在的语义,其中有(几乎)无限的可能性,每个人都有自己处理这些语义的方式。HTML5 的目标之一是尝试为此带来一些结构。您仍然可以使用类和 ID 扩展标签的语义。它也很可能使搜索引擎的事情变得更容易。

于 2009-10-30T15:25:06.640 回答
3

从尝试对页面或从页面引用的对象进行陈述的角度来看它。如果你看到一个 <footer> 标签,你只能说“这里的东西是一个页脚”并通过它。因此,添加自定义标签并不像添加属性并允许人们使用他们自己选择的 URI 来指定谓词和可选值那样通用 - RDFa 胜出,因为您可以在 RDF 中表达您喜欢的任何三重语句一页,一种或另一种方式。

于 2009-11-18T15:46:00.307 回答
2

我只想解决你问题的一部分。你说:

九十年代,当时 Netscape 是浏览器,而 html 是 HTML2 或 HTML3,有很多标签:地址、引用、代码……它们中的大多数到今天都没有使用,甚至可能已经过时。

html 中有很多标签可供选择,但缺乏使用并不意味着它们已经过时。特别是标题标签<h1>等,和<ul><ol>用于以我认为语义的方式将项目连接到列表中。许多人可能不会在语义上使用标签,但创建微格式的努力是您认为是 1990 年代工件的想法的持续延续。尽管全文搜索和链接分析(以谷歌的形式)在如何查找和理解网络方面是赢家,但让语义网络成为赢家的努力仍在继续。

很高兴看到Google 的 Web Stats的更新版本显示“她说话时的 html”。但是你是对的,许多标签没有被充分利用。

html5 是否会成功是一个开放且有趣的问题,但是您描述为过时的标签并没有消失,它们在HTML 4.01xhtml中就存在。HTML5似乎是为了巩固标签中有用的东西。最后,如果 html5 在浏览器中获得支持,并使 Web 开发人员的工作变得更容易,它就会成功。xhtml2 之所以失败,是因为它完全未能在浏览器中获得采用,并且没有做任何事情来简化网页制作者的工作。致力于 html5 的力量似乎敏锐地意识到 xhtml2 的失败,我认为正在避免让 html5 遭受类似的命运。

于 2009-10-30T18:59:29.047 回答
2

“为什么它不应该包含帖子图标、作者地点、姓名和姓氏的标签,或者您想要为其分配特定语义的任何其他标签(我有信心并且会是非常重要的标签):?”

您使用 <dialog> 来描述对话或评论。Rant 和 NSFW 是主观术语,因此不使用它们是有意义的。

据我了解,一群经验丰富的 Web 开发人员进行了研究,并寻找大多数网站在 html 中的共同点。他们注意到大多数网站都有 id="header"、id="footer"、id="section" 和 id="nav" 标签,因此他们决定我们需要 HTML 标签来替换这些 id。所以换句话说,不要指望他们会给你大量的 HTML 词汇。在处理最常见的 HTML 标记时,尽可能保持简单。

NAV 标签对于提供可访问性也非常重要。您希望他们知道导航在哪里,而不是强迫他们查找链接是否用于导航。

于 2010-09-27T02:21:04.007 回答
1

我不同意添加额外的标签。如果实际导入了详细的词汇表,那么字典中的每个单词都可能有不同的标签名称。额外的标签名称没有帮助,因为它们可能会向人类传达额外的含义,但不会帮助机器解析语言。这就是为什么我不喜欢 HTML5 的“语义”标签的原因,因为我认为这对于提供过于复杂的词汇表而只是为未完全解决的问题提供薄弱的解决方案是一种滑坡。

在我看来,标记语言结构数据就像以树形图的形式描述它一样多。通过解析结构和正确使用语义约定,例如 RDFa,可以利用上下文为其他通用标签名称提供特定含义。在这种情况下,不需要存在过多的词汇,并且可以消除结构上冗余的标签名称,例如页脚和旁白。最终目标是使内容更快、更准确地同时被人和机器解释,同时使用尽可能少的代码来实现这一结果。除了 HTML5 之外,该解决方案的重要性不那么重要。

于 2009-11-02T04:23:31.023 回答
1

我认为 XML 是为事物分配语义的策略。

据我所知,不,不是。XML 允许定义以相同方式解析的新语言,因为它们都使用 XML 语法。

它本身并没有提供任何方式来为这些语言添加意义(“语义”只是意味着“有意义”)。在计算机获得人工智能之前,它们实际上并不理解意义,所以意义只是人类之间达成的共识。HTML 是最常用的语言,其标签含义一致。

由于 HTML 如此普遍,因此向其添加一些在其应用程序中非常通用的有意义的标签会很有帮助。新的 HTML5 标签就是针对这一点的。HTML5 规范的作者确实可以沿着这条路线继续前进,为每一个可能的特定含义创建标签,但由于它们不是机器人,它们可能不会。

<section>很有用,并且足够通用,可以有意义地适用于许多文档。<author-last-name>不是。区分两者是一个判断要求,这就是为什么人类而不是计算机编写规范的原因。

对于过于具体而无法作为标签添加到 HTML 的自定义语义,HTML5 定义了microdata

于 2011-04-25T10:42:00.860 回答
0

我一直在阅读 Andy Clark 的《超越 CSS 》一书(第 33 页)。

...,现在人们普遍认为,描述元素外观或位置的表示性名称(例如headerleftred )是糟糕的选择。

读完这几行后,我问自己:嘿,HTML5 规范中没有页眉、页脚等元素吗?为什么页脚更语义化?Andy 在他的书中提倡使用site-info作为页脚 div 的 ID,恕我直言,这更有意义。页脚是一个表示名称(描述元素的位置)。

于 2011-01-14T18:05:09.757 回答
0

总之,AJAX。新标签旨在通过替换许多网站遭受的某些类型的 divitis来支持现实世界的开发人员正在做的事情。<div class="sidebar-wrap"><div class="styling-hook"><div><ul class="nav">HTML5 中唯一<div>剩下的是样式挂钩。

从类提升到标签的语义是开发人员自由地采用集体作为最佳实践的语义,给定延长的 xhtml/css 采用期。在此处查看 WHATWG 开发人员版本的规范部分页面。文档本身很有趣,但如果您还没有看到它,我不会剧透它。

W3C 做出某些决定的不太明显的原因之一是 Webkit 的重要性。如果你看一下,你会发现他们在接受 HTML5 工作组的当前工作和实施想法方面比一些人做得更好。他们历来在合规方面遥遥领先(见此处)。W3C 高度重视它们​​(即Android、iPhone、Googlebot、Chrome、Safari、Dreamweaver 等)。Google,框架用户,Wordpress/Moveable Type/Joomla! 类型用户和其他人想要自包含的构建块,所以这就是我们得到的样式。

Facebook 是模块化的。响应式设计的网格是模块化的。Wordpress 是模块化的。Ajax 最适合模块化页面结构。小部件是模块。插件是模块。看起来我们应该尝试弄清楚如何应用这些标签,以便更容易地在我们的文档/应用程序/信息网络混合 Web 2.0 中挂钩适当的元素并激活它们。

最后,HTML5 旨在编写为 xml(再次参见规范),以确保对文档的一部分进行 ajax 请求的工具和机器将获得格式良好的有用响应。结合诸如提要阅读器、盲文打印机、注释器等设备的媒体查询之类的东西真是太棒了。我看到了一个(近)未来,任何具有良好语义内容的东西都会自动成为它自己的新闻源!仅当开发人员采用并编写合规文档时才会发生这种情况。

于 2012-09-14T16:57:46.377 回答