【顾轶灵的回答(5票)】: ![]() 简单画了一个图,不确定我的理解是否精准。
对于 W3C 的标准,HTML 4.01 中(Paragraphs, Lines, and Phrases): ABBR: Indicates an abbreviated form (e.g., WWW, HTTP, URI, Mass., etc.).这里的 abbr 应该就比较接近上面图中灰色背景的部分(实质上也不尽然),而 acronym 就是黄色背景的部分了。我想区分这两类缩写,可能最有用就在于,在使用读屏器进行朗读 acronym 内容时,可以给出比较准确的发音。比如根据 CSS 2.1 的语音样式(Aural style sheets),我们可以给读屏器提供这样的样式:
但是从整个 HTML 语义的角度来看,这样的区分的确有一些像 @梁海 所说的那样「过分繁琐、细碎」了。而且从逻辑上来说,acronym 是属于 abbr 的,把它们作为并列的元素不太合理。根据 HTML5 Doctor 上的文章(The abbr element)所述,当初浏览器大战时因为网景公司发明了 abbr,微软发明了 acronym,而 W3C 两边都不想得罪就保留了两种缩写的元素。在很长一段时间内,这引起了一些混乱和困惑(就像题主的问题那样)。 在 HTML 5 中(4.6 Text-level semantics),这种区分已经被拿掉了,仅留下了一个宽泛适用于各种所写的 abbr 元素,而原来的 acronym 也被建议更换为 abbr(11 Obsolete features)。这么做避免了仅仅为了读屏器来进行设计(事实上 acronym 带来的优势仅仅如此),因为除了可访问性,HTML 也需要考虑媒介的无关性,就是说不应该为特定媒介来进行设计,这也是那些针对特定媒介设计的元素如 font, center, strike 等也被废弃了。以上是我为这种选择找的理由,至于是否合理,见仁见智了。 【梁海的回答(5票)】: <abbr> 和 <acronym> 当初仅仅是为了分别标记一般的 abbreviation 和 acronym(acronym 特指一类特殊的 abbreviation)。本质区别就是语义不同。但这样的语义划分过于繁琐、细碎了。 所以 HTML5 已经弃用了 <acronym>: 11 Obsolete features 不要再用 <acronym> 了。知道它的历史就行了,也别多想了。 【Chris的回答(2票)】: <abbr> 是缩短词,规则不限,比如 min. (minute), Inc. (including), etc. (et cetera), FBI 等等。 <acronym> 是一种特殊的 <abbr>,一般以每个单词开头的一部分(通常是首字母)组成,且发音通常以组合后的词为准:
至于 W3C,他们把首字母组合词归为 acronyms,: The ABBR and ACRONYM elements allow authors to clearly indicate occurrences of abbreviations and acronyms. Western languages make extensive use of acronyms such as "GmbH", "NATO", and "F.B.I.", as well as abbreviations like "M.", "Inc.", "et al.", "etc.". 因为 W3C 的标准其实并不太严谨,所以如果需要照顾西方阅读器的,按照上面的例子使用应该问题不大,对于亚洲文字的话,<abbr> 就可以。 PS:W3C 的 wiki 里 <acronym> 仍然是非标准元素,看该页面也是很久没更新过,难以吐槽他们的效率。 --- |
|