歡迎來到語義網(Semantic Web)的世界!

在本章中,我們將探索資訊科技(Information Technology)中非常重要的一部分:語義網(Semantic Web)。別擔心這個術語聽起來很深奧!簡單來說,我們不再只是讓網站看起來「漂亮」,而是更專注於讓它們變得「聰明」。在看完這些筆記後,你將學會如何編寫讓電腦、搜尋引擎以及身心障礙人士都能完美理解的代碼。讓我們開始吧!


1. 什麼是語義化 HTML(Semantic HTML)?

在網路發展的早期,人們使用代碼僅是為了改變外觀(例如讓文字變大或變藍)。語義化 HTML 則不同,它是一種使用能夠描述內容含義(而非僅僅是外觀)的 HTML 標籤的做法。

為什麼這很重要?

當你使用正確的標籤時,你其實是在幫助多種不同的「使用者」:

1. 搜尋引擎: 像 Google 這類工具會利用語義化代碼來了解你的網頁內容。這就是所謂的搜尋引擎優化(SEO)。如果你使用 "header" 標籤來標記標題,Google 就會知道那是網頁中最核心的部分。
2. 輔助技術: 視障人士會使用螢幕閱讀器(Screen Readers)。這些設備會將代碼朗讀出來。語義化標籤能告訴螢幕閱讀器哪裡是導覽列,或者哪裡是文章的主體內容。
3. 更好的維護性: 對開發人員來說,閱讀和更新結構良好且具有語義的代碼要容易得多。

類比: 想像你在搬家。你可以把所有東西都丟進一模一樣的棕色紙箱裡,這就是「非語義化」。但如果你在箱子上標註「廚房 - 碗盤」或「臥室 - 枕頭」,這就是「語義化」。裡面的東西是一樣的,但標籤讓每個人在整理時都輕鬆得多!

快速複習: 語義化代碼描述的是內容,而不是外觀


2. 建構基石:結構元素

課程要求你必須熟悉定義網頁結構的特定標籤。你可以把它們想像成你數位房屋裡的「房間」。

關鍵結構標籤:

<header> 和 <footer>: 這是頁面或特定區域的頂部與底部。標頭(header)通常包含標誌(logo),而頁尾(footer)則包含聯絡資訊或連結。
<nav>: 代表導覽(navigation)。只在幫助使用者瀏覽網站的主要連結區塊使用此標籤。
<main>: 標記該特定頁面的獨特內容。每個頁面通常只應有一個 <main> 標籤。
<article>: 用於獨立的內容。如果你能將其複製並貼上到另一個網站上,且內容依然完整有意義(例如新聞報導或部落格文章),就應該使用 article 標籤。
<section>: 用於將相關內容歸類在一起,就像書中的章節一樣。
<aside>: 用於「側邊」的內容。它與主要內容相關,但不是重點,例如包含額外事實或廣告的側邊欄。

重點總結: 使用這些標籤能為電腦建立一份清晰的網頁地圖。


3. 通用容器:當「意義」缺失時

有時候,你只是為了設定樣式(例如在隨機的一堆物件周圍加上框線)而需要將元素組合在一起,但沒有適合的語義標籤。在這種情況下,我們使用非語義化容器:

<div>: 一個區塊級(block-level)容器。它會從新的一行開始,並佔據可用的整個寬度。
<span>: 一個行內(inline)容器。它保持在同一行,且只佔用文字內容所需要的空間。

別擔心這個部分: 只要記住 <div><span> 本身沒有任何含義。只有在沒有其他合適的語義標籤(如 <article> 或 <nav>)可用時,才使用它們。


4. 為文字賦予含義

語義化標記不僅適用於大型區塊,對單詞也同樣重要!以下是如何為文字添加語義

重要性 (<strong>): 用於非常重要的文字。瀏覽器通常會將其設為粗體
強調 (<em>): 當你想強調某個詞(就像你說話時改變語氣)時使用。瀏覽器通常會將其設為斜體
引用: 使用 <blockquote> 進行長篇引用,使用 <q> 進行簡短的行內引用。
縮寫 (<abbr>): 幫助解釋縮寫詞(例如 "NASA")的全稱。
引註與定義: 使用 <cite> 引用作品標題(如書名),使用 <dfn> 定義新術語。
地址 (<address>): 專門用於文件作者或所有者的聯絡資訊。
標記 (<mark>): 用於高亮顯示文字,就像在紙上使用螢光筆一樣。

記憶小撇步: <strong> 是為了重要性(Importance),而 <b> 只是單純的粗體(Bold)。如果文字真的很重要,請務必選擇 <strong>!

5. 圖表與標題

當你添加一張圖片、圖表或代碼片段,且它是「獨立存在」的(意味著即便脫離主文,其目的依然明確),就應該使用 <figure> 標籤。

若要為該 figure 添加標題或說明,請在 figure 標籤內使用 <figcaption> 標籤。

你知道嗎? 使用 <figcaption> 比單純在圖片下方放置一個段落要好得多,因為它能為螢幕閱讀器在圖片與說明文字之間建立永久性的連結。


6. WAI-ARIA:無障礙設計的額外輔助

有時候 HTML 標籤不足以解釋複雜的網頁功能(如彈出式選單或載入條)。這就是 WAI-ARIA(網頁無障礙倡議 – 無障礙豐富網路應用程式)發揮作用的地方。它提供了額外的「屬性」來幫助輔助技術。

考試重點:

角色(Roles): 告訴電腦該元素是什麼(例如 role="button" 或 role="search")。
狀態與屬性(States and Properties): 告訴電腦元素的當前狀態(例如核取方塊的 aria-checked="true")。
即時區域(Live Regions): 這非常酷!它們告訴螢幕閱讀器在變更發生時立即進行播報,而無需使用者重新整理頁面(例如「新訊息」提醒)。
增強鍵盤導航: ARIA 有助於確保無法使用滑鼠的使用者能僅透過「Tab」和「Enter」鍵進行完整瀏覽。

要避免的常見錯誤: 不要過度使用 ARIA!「ARIA 的第一原則」是:如果可以使用原生的 HTML 標籤(例如 <button>),就使用該標籤,而不是透過 ARIA 把其他元素硬改成按鈕。


期末快速複習箱

1. 語義化 HTML = 含義。
2. 結構標籤包括 <header>, <nav>, <main>, <article>, <section>, <aside> 和 <footer>。
3. 非語義化標籤(如 <div>)僅用於樣式設定。
4. SEO 與無障礙設計是我們使用語義網的兩大主因。
5. WAI-ARIA 為複雜功能添加額外標籤,以協助螢幕閱讀器。