標籤:

<acronym> 和 <abbr> 這兩個標籤有什麼本質上的區別嗎?


簡單畫了一個圖,不確定我的理解是否精準。

  • abbreviation 從廣義上來說是一個寬泛的概念,日常可以用於描述各種縮寫。
  • initialism 指的是最容易理解的「首字母縮寫」,人們在朗讀的時候會把字母一個個念出來。
  • acronym 起初也是指首字母縮寫,但逐漸地,人們把它和 initialism 區分開來了。差異之處在於,acronym 表示的縮寫可以單詞的形式讀出來,甚至有些不完全是首字母縮寫也可以算 acronym,還有些 acronym 都已經成為很常規的單詞,甚至都不需要大寫了。

對於 W3C 的標準,HTML 4.01 中(Paragraphs, Lines, and Phrases):

ABBR: Indicates an abbreviated form (e.g., WWW, HTTP, URI, Mass., etc.).

ACRONYM: Indicates an acronym (e.g., WAC, radar, etc.).

這裡的 abbr 應該就比較接近上面圖中灰色背景的部分(實質上也不盡然),而 acronym 就是黃色背景的部分了。我想區分這兩類縮寫,可能最有用就在於,在使用讀屏器進行朗讀 acronym 內容時,可以給出比較準確的發音。比如根據 CSS 2.1 的語音樣式(Aural style sheets),我們可以給讀屏器提供這樣的樣式:

abbr { speak: spell-out; }
acronym { speak: normal; }

這樣可以表達在遇到 NBA 的時候按字母朗讀,而遇到 UEFA 時按單詞朗讀了。這對於可訪問性來說,應該是有一定程度的提升的。

但是從整個 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 等也被廢棄了。以上是我為這種選擇找的理由,至於是否合理,見仁見智了。


& 和 & 當初僅僅是為了分別標記一般的 abbreviation 和 acronym(acronym 特指一類特殊的 abbreviation)。本質區別就是語義不同。但這樣的語義劃分過於繁瑣、細碎了。

所以 HTML5 已經棄用了 &:

11 Obsolete features

11.2 Non-conforming features

Elements in the following list are entirely obsolete, and must not be used by authors:

&: Use & instead.

不要再用 & 了。知道它的歷史就行了,也別多想了。


& 是縮短詞,規則不限,比如 min. (minute), Inc. (including), etc. (et cetera), FBI 等等。

& 是一種特殊的 &,一般以每個單詞開頭的一部分(通常是首字母)組成,且發音通常以組合後的詞為準:

&NATO&
&Sonar&
&HTML&
&FBI&

至於 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 的標準其實並不太嚴謹,所以如果需要照顧西方閱讀器的,按照上面的例子使用應該問題不大,對於亞洲文字的話,& 就可以。

PS:W3C 的 wiki 里 & 仍然是非標準元素,看該頁面也是很久沒更新過,難以吐槽他們的效率。

---

- Paragraphs, Lines, and Phrases

- HTML/Elements/acronym


推薦閱讀:

HTML4,HTML5,XHTML 之間有什麼區別?
<time>標籤裡面的時間有什麼實際意義?
設計網頁時如何考慮多餘空白區域?
如何在移動端實現純css的自定義布局?
靜態資源(JS/CSS)存儲在localStorage有什麼缺點?為什麼沒有被廣泛應用?

TAG:HTML | HTML5 |