HTML dfn和abbr标记以及title属性的正确用法

时间:2014-02-10 16:17:48

标签: html html5

我想弄清楚使用dfn标记以及title属性和abbr标记的正确方法是什么我不确定我是否正确执行并希望有人可以告诉我,如果不是所有的下面的例子都是正确或错误的话,那么哪个例子是错误的,为什么这样我可以更好地理解我在做什么并纠正我的错误(s谢谢?

示例1

<p><dfn>CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

示例2

<p><dfn title="Cascading Style Sheets">CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

示例3

<p><dfn title="A style sheet language used for describing the look and formatting of a document written in a markup language.">CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

示例4

<p><dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn> is a simple mechanism for adding style to Web documents.</p>

示例5

<p><dfn title="CSS"><abbr title="Cascading Style Sheets">CSS</abbr></dfn> is a simple mechanism for adding style to Web documents.</p>

3 个答案:

答案 0 :(得分:4)

我认为应该是:

<p>
  <dfn>
    <abbr title="Cascading Style Sheets">CSS</abbr>
  </dfn>
  is a simple mechanism for adding style to Web documents.
</p>
  

否则,如果它只包含带有title属性的abbr元素,那么该术语就是该属性的值。

MDN

答案 1 :(得分:1)

在HTML规范和草稿中匹配abbrdfn的松散定义意义上,它们都是“正确的”。这里的陈述根本不是一个定义(它说的是关于CSS的东西,而不是指定它与其他实体区分所需的基本特征,而“CSS”实际上并不是缩写而是名称,虽然名义上形成为缩写但是规范是如此模糊,即使问题中的标记也可能被解释为与这些元素的“语义”相匹配。

问题在于学术性,因为abbrdfn除了默认渲染的某些功能之外几乎没有任何影响,您可以而且应该使用确认或覆盖此类样式的CSS规则,然后你几乎可以使用span

答案 2 :(得分:1)

TL; DR:尽管其中两个示例在语义上都是正确的,但最语义化的方式是示例4

<p><dfn>CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

正确。根据{{​​3}},因为您没有使用title属性,所以“ CSS”被视为p中句子定义的术语。

<p><dfn title="Cascading Style Sheets">CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

错误。根据{{​​3}},title属性用于“ 术语的另一种形式”,但仅当定义的术语不是缩写时才适用。如果该术语是缩写,则应在abbr元素内使用dfn

<p><dfn title="A style sheet language used for describing the look and formatting of a document written in a markup language.">CSS</dfn> is a simple mechanism for adding style to Web documents.</p>

错误title属性用于“ 术语的另一种形式”,而不是其定义。

<p><dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn> is a simple mechanism for adding style to Web documents.</p>

正确。根据{{​​3}},这是推荐的用法。

<p><dfn title="CSS"><abbr title="Cascading Style Sheets">CSS</abbr></dfn> is a simple mechanism for adding style to Web documents.</p>

错误。根据{{​​3}},如果dfn元素包含单个子元素并且不具有任何文本内容,并且该子元素是具有标题属性的abbr元素,那么abbr元素的title属性的确切值就是所定义的术语。因此,语义系统(人工智能,潜伏者,可访问性等)不应该考虑dfn元素的title属性。


我主要利用Mozilla Mozilla

上的“ 一起使用缩写和定义”和“ 指定要定义的术语”部分来产生此答案。