“语义正确”是啥意思?

Posted

技术标签:

【中文标题】“语义正确”是啥意思?【英文标题】:What does "semantically correct" mean?“语义正确”是什么意思? 【发布时间】:2010-11-20 15:18:42 【问题描述】:

我在 css talk 中看到了很多。语义正确是什么意思?

【问题讨论】:

@johnny:在发布问题之前,您是否尝试过搜索问题的答案?并不是说这是一个坏问题,而是人们写了很多关于它的问题。 是的,但老实说,没有冒犯的意思,但我看不出这些类型的问题有什么害处,也不知道为什么有些人在被问到时会被冒犯。如果我欠一个网站,我不会介意,因为它只会创建更多可以被索引的页面。我认为它对网站有帮助。但是,我确实看过并没有看到一个简单的答案。同样,无意冒犯。我只是不明白这些抱怨。 其实johnny是对的。只要问题是 *** 的原创问题,那么它就是一个合法的问题。 meta.stackexchange.com/questions/2686/… 【参考方案1】:

正确标注

这意味着你正在调用它实际上是什么。经典的例子是,如果某个东西是table,它应该包含数据的行和列。将其用于布局在语义上是不正确的 - 你说的是“这是一张桌子”,而实际上它不是。

另一个例子:列表(<ul><ol>)通常用于对相似的项目(<li>)进行分组。您可以对组使用 div,对每个项目使用 <span>,并将每个 span 设置为单独的行并带有项目符号,它可能看起来像您想。但“这是一份清单”传达了更多信息。

符合 html 背后的理想

HTML 代表“超文本标记语言”;其目的是标记或标记您的内容。标记得越准确越好。 HTML5 中引入了新元素,以更准确地标记常见网页部分,例如页眉和页脚。

让它更有用

所有这些语义标签都有助于机器解析您的内容,从而帮助用户。例如:

了解您的元素 是什么 让浏览器可以使用合理的默认值来确定它们应该如何外观和行为。这意味着您要做的自定义工作更少,更有可能在不同的浏览器中获得一致的结果。 浏览器可以正确应用您的 CSS(层叠 样式 表格),描述每种类型的内容的外观。您可以提供替代样式,或者用户可以使用自己的样式;只要您在语义上标记了元素,“我希望标题很大”之类的规则就可以使用。 如果将逻辑部分分成fieldsets,每个部分对应一个legend,盲人屏幕阅读器可以帮助他们更轻松地填写表格。盲人用户可以听到 legend 文字并决定“哦,我可以跳过这一部分”,就像有视力的用户通过阅读它可能会做的那样。 当手机看到type="tel"(用于电话号码)的表单输入时,手机可以切换到数字键盘。

【讨论】:

【参考方案2】:

这意味着 HTML 元素在正确的上下文中使用(不像表格用于设计目的),CSS 类以人类可理解的方式命名,并且文档本身具有非浏览器可以处理的结构客户端,例如屏幕阅读器、试图从文档中提取信息及其结构的自动解析器等。

例如,您使用列表来构建菜单。这样,残疾人的屏幕阅读器将知道这些列表项是同一菜单级别的一部分,因此它将按顺序阅读它们以供人们做出选择。

【讨论】:

【参考方案3】:

“元素的语义正确使用意味着您将它们用于它们的用途。这意味着您将表格用于表格数据而不是用于布局,这意味着您使用列表来列出事物, strong 和 em 用于强调文本等。”

发件人:http://www.codingforums.com/archive/index.php/t-53165.html

【讨论】:

【参考方案4】:

HTML 元素是有意义的。 “语义正确”意味着您的元素意味着它们应该是什么。

例如,您的定义列表由代码中的<dl> 列表表示,您的缩写为<abbr>s 等。

【讨论】:

【参考方案5】:

我从来没有在纯粹的 CSS 上下文中听说过它,但是当谈到 CSS 和 HTML 时,它意味着使用正确的标签(例如,避免对非表格数据使用 table 标签),提供正确的值用于标识所包含数据是什么的类和 id(并酌情使用microformats),等等。

这一切都是为了确保您的数据能够被人类(一切都正确显示)和计算机(一切都被正确识别和标记)理解。

【讨论】:

不过,它也存在于纯 CSS 上下文中。考虑在span 内的替代文本上设置display: none 的不同图像替换黑客(例如FIR)。这在语义上是错误的,并导致屏幕阅读器软件在看到 CSS 时会跳过文本,即使它应该已经被阅读(毕竟,替代文本的存在正是为了盲人用户)。【参考方案6】:

语义基本上意味着“意义的研究”。

通常当人们谈论代码在语义上正确时,他们指的是准确描述某事的代码。

在 (x)HTML 中,某些标签赋予它们所包含的内容以意义。例如:

H1 ​​标记将其包含的数据描述为 1 级标题。 H2 标签将其包含的数据描述为 2 级标题。这背后的隐含含义是 H1 下的每个 H2 在某种程度上是相关的(即标题和副标题)。

当您以语义方式编码时,您基本上可以为您所描述的数据赋予意义。

考虑以下 2 个语义 VS 非语义示例:

<h1>Heading</h1>
<h2>Subheading</h2>

VS 非语义等价物:

<p><strong>Heading</strong></p>
<p><em>Subheading</em></p>

有时你可能会在辩论中听到人们说“你现在只是在谈论语义”,这通常是指说与对方意思相同但使用不同词语的行为。

【讨论】:

不知道“语义”这个词的真正含义,很有启发性。

以上是关于“语义正确”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

做副标题的最语义正确的方法是啥?

PPPoE是啥意思,PPPoE是啥意思

“?”是啥意思?在 Erlang 中是啥意思? [复制]

“this”这个词是啥意思,“static”是啥意思?

“||”是啥意思在 var 语句中是啥意思? [复制]

CVE是啥意思,CVE是啥意思