編寫語意標記
當您學習 HTML 與 Web 時,您可能會常常反覆遇到一個未被定義的特定詞彙。這個詞正是「語意 (semantic)」。
您可能會讀到像是「我們去尋找語意元素」或「我們嘗試盡可能語意化」之類的說明,但永遠無法清楚地了「語意」一詞的含義。
在本文中,我們將探索語意標記的世界,提出該術語的可行定義,並將概念應用於 HTML 標記的方式。
什麼是語意標記?
根據 Dictionary.com 的定義,「語意」是指某個詞語或句子的正確解釋或意義。
從語意上來使用詞語就是依照詞語的真正意義來使用它;當我們錯用詞語時,那麼我們就是在非語意地使用它。
許多 HTML 標籤具有語意意義。換句話說,這些元素本身就能告訴我們關於其中內容的一些資訊。
例如,當瀏覽器遇到一個h1標籤時,它能解釋此標籤表示h1元素的內容構成了包含該元素段 落的主要標題。
h1 標籤的語意含義是用於識別特定網頁或段落中最重要的標題。
實現語意標記的兩種實踐方法
如果我們要撰寫語意標記,必須採用兩種不同的實踐方法:
- 語意標記需要依據 HTML 元素原本預期目的來使用。
- 語意標記需要將內容與呈現分開。
正確地使用 HTML 元素
在撰寫語意標記時,我們使用 HTML 標籤來向瀏覽器提供有關元素內容的資訊。在語意標記中,標籤不再僅僅是將內容以人類可讀的格式顯示在網頁上的方式。
這些標籤本身成為了一種向機器(無論是瀏覽器、電腦、智慧型手機或其他智慧型裝置)傳達內容意義的方式。
要撰寫語意標記,我們必須正確使用 HTML 標籤,以確保我們的標記既可供人類閱讀,又可供機器閱讀。
分離內容與呈現
過去,經常使用標記來定義樣式與網頁布局。
開發者可能會根據網頁在瀏覽器所呈現的視覺效果來選擇標題級別,而不是其真正的階層意義;表格可能被當作頁面布局的工具,而不是用來呈現資料;還有一些 HTML 標籤,如 frameset,其設計初衷就是用於網頁布局。
但當我們撰寫語意標記時,我們不能單純基於視覺呈現來選擇 HTML 元素,反而應該基於語意來選擇 HTML 元素,惟後使用 CSS 來定義內容的視覺呈現。
在撰寫語意標記時,網頁元素的呈現完全獨立於內容本身的標記之外。
定義語意標記
牢記這兩種做法,我們可以這樣定義語意標記:
語意標記是使用標記語言(如 HTML ),透過正確選擇標記元素來傳達文件中每個元素的意義,並保持文件中所包含元素的標記與視覺呈現間完全分離。
為什麼語意標記這麼重要?
對一般的網站瀏覽者,良好的 CSS 可以隱蔽不良的 HTML 標記。然而,無論多少樣式都不會使不良的標記對於電腦化訪客更有意義,如搜尋引擎的網頁爬蟲、瀏覽器翻譯工具或螢幕報讀軟體等輔助科技。
Bruce Lawson 指出,語意化地使用 HTML 元素可以「提高其無障礙性、可搜尋性、國際化及互通性 (interoperability) 」。換句話說,如果您希望您的網站可以對所有人開放、在搜索引擎中獲得較高的排名、服務全球的使用者,並且有效地與其他網站服務進行互動,那麼就必須使用語意標記。
語 意標記是為了建立人類與電腦均可閱讀的網頁內容。當網頁能夠被人類與電腦同樣地良好地閱讀時,它就會變得更容易取用,因為電腦便可以更好地分析其內容、索引與交付,而開發者則可以更好地將不同資訊來源整合成新的網頁服務。
如何撰寫具有語意的標記?
我們透過正確選擇與使用 HTML 標籤,以及挑選能夠傳達標籤所標記內容的資訊標籤來書寫語意標記。
在 HTML 中有一些是具有語意的元素,而有一些則是非語意元素。非語意元素的例子含 div
與 span
。這些標籤並不告訴電腦關於元素內容意義的任何資訊。
雖然非語意標籤在某些情況下很有用,但如果對於特定用途有適合的語意標籤,應優先使用語意標籤,而不要倚賴非語意標籤。
許多語意標籤來自於由 Google 與 Opera 等公司對網頁標記的分析。他們觀察到許多網站使用 id
與 class
屬性來提示非語意元素內容含義。
例如,他們發現許多 div
元素看起來像這樣: <div id="nav">
、<div id="header">
與 <div id="footer">
。這些發現可以幫助 W3C 識別並在 HTML5 中定義新的語意標籤,如 nav
、header
、footer
、article
與 aside
。我們可以將最常見與重要的語意元素分為四類:
- 文件結構標籤
- 文字意義標籤
- 媒體類型標籤
- 關聯性標籤
文件結構標籤
以往
div
元素是網站中識別與分組各個網頁段落的主要方法。但隨著 HTML5 的問世,我們有幾個新的標籤可供使用,不僅可以用來分組屬性外,還提供了語意意義:
header
:用於網頁標題的容器元素,通常用於網頁頂部,其中包含了網站標誌、標題元素,以及網站導覽。footer
:用於網頁頁腳的容器元素,通常用於網頁底部,其中包含了作者資訊、聯絡方式、版權資訊,以及導覽連結與返回網頁頂部的連結。。main
:高層級元素,用於包含單個網頁上唯一且不在多個網頁上重複出現的所有內容。nav
:用來包含網站導覽連結區塊的元素。通常位於網頁的頂部與底部,也可能在側邊欄 (aside) 元素中使用。section
:用來標示文件中的區段,例如章節或長文的主要段落。aside
:用來識別與網頁主要內容相關但不是文件主要流程的內容。例如,aside
元素可以包含部落格文章中某個術語的詞彙定義,或者與頁面內容相關的廣告。article
:用來識別一個區塊的內容,適合在其他場合進行重複使用與共享,例如部落格文章或技術文章。
請參閱文件教學,以深入了解如何使用這些為網頁增加結構的語意標籤。