HTML5

**HTML5** 是 HTML 最新的修訂版本，由全球資訊網協會（W3C）於 2014 年 10 月完成標準制定。目標是取代 1999 年所制定的 HTML 4.01 和 XHTML 1.0 標準，以期能在網際網路應用迅速發展的時候，使網路標準達到符合當代的網路需求。廣義論及 HTML5 時，實際指的是包括 HTML、CSS 和 JavaScript 在內的一套技術組合。它希望能夠減少網頁瀏覽器對於需要外掛程式的豐富性網路應用服務（Plug-in-Based Rich Internet Application，RIA），例如：Adobe Flash、Microsoft Silverlight 與 Oracle JavaFX 的需求，並且提供更多能有效加強網路應用的標準集。

HTML5 添加了許多新的語法特徵，其中包括 `<video>`、`<audio>` 和 `<canvas>` 元素，同時整合了 SVG 內容。這些元素是為了更容易地在網頁中添加和處理多媒體和圖片內容而添加的。其它新的元素如 `<section>`、`<article>`、`<header>` 和 `<nav>` 則是為了豐富文件的資料內容。新的屬性的添加也是為了同樣的目的。同時也有一些屬性和元素被移除掉了。一些元素，像 `<a>`、`<cite>` 和 `<menu>` 被修改，重新定義或標準化了。同時 APIs 和 DOM 已經成為 HTML5 中的基礎部分了。HTML5 還定義了處理非法文件的具體細節，使得所有瀏覽器和客戶端程式能夠一致地處理語法錯誤。

## 發展歷史

網頁超文字技術工作小組（WHATWG）於 2004 年開始制定新標準。當時，HTML 4.01 自 2000 年以來從未更新，以及全球資訊網協會（W3C）正在將未來的發展重點放在 XHTML 2.0。2009 年，W3C 允許 XHTML 2.0 工作組章程結束過期並且決定不再續訂。W3C 與 WHATWG 合作共同為發展 HTML5 而努力。

2004 年 6 月，Mozilla 基金會和 Opera 軟體公司在全球資訊網協會（W3C）所主辦的研討會上提出了一份立場文件，其重點是開發與現有瀏覽器向後相容的技術，包括 Web Forms 2.0 最初草案規範。研討會以 8 票贊成，14 票反對的結果否決繼續對 HTML 的開發工作。這引起一些人的不滿，在研討會之後，立即成立了網頁超文字技術工作小組（WHATWG），以根據該目標展開工作，並宣佈第二個草案 Web Applications 1.0。後來這兩種規範合併形成 HTML5。2007 年，獲得 W3C 接納，並成立了新的 HTML 工作團隊。2008 年 1 月 22 日，第一份公開工作草案發布。

儘管 HTML5 已經在網路開發人員中非常出名，但它成為主流媒體的話題是在 2010 年的 4 月，當時蘋果公司的 CEO 賈伯斯發表一篇題為「對 Flash 的思考」的文章，指出隨著 HTML5 的發展，觀看影片或其它內容時，Adobe Flash 將不再是必須的。這引發了開發人員間的爭論，包括 HTML5 雖然提供了加強的功能，但開發人員必須考慮到不同瀏覽器對標準不同部分的支援程度的不同，以及 HTML5 和 Flash 間的功能差異。

2014 年 10 月 28 日，W3C 正式發布 HTML5 推薦標準。

### 時間表

W3C 的 HTML5、5.1、5.2、5.3 推薦標準時間表：

## 特點

### 標記

HTML5 提供了一些新的元素和屬性，反映典型的現代用法網站。其中有些是技術上類似 `<div>` 和 `<span>` 標籤，但有一定含義，例如 `<nav>`（網站導航塊）和 `<footer>`。這種標籤將有利於搜尋引擎的索引整理、小螢幕裝置和視障人士使用。同時為其他瀏覽要素提供了新的功能，透過一個標準介面，如 `<audio>` 和 `<video>` 標記。一些過時的 HTML 4.01 標記將取消，其中包括純粹用作顯示效果的標記，如 `<font>` 和 `<center>`，因為它們已經被 CSS 取代。還有一些透過 DOM 的網路行為。

儘管和 SGML 在標記上的相似性，HTML5 的句法並不再基於它了，而是被設計成向下相容對老版本的 HTML 的解析。它有一個新的開始列看起來就像 SGML 的文件類型聲明，`<!DOCTYPE HTML>`，這會觸發和標準相容的彩現模式。在 2009 年 1 月 5 日，HTML5 添加了 Web Form 2.0 的內容，HTML5 開始發展起來。

### 新的 API

除了原先的 DOM 介面，HTML5 增加了更多樣化的應用程式介面（API）：

* Canvas
* 定時媒體播放
* 離線
* 可編輯內容
* 拖放
* 歷史
* MIME 和協定處理程式時表頭登記
* 微資料
* 網路訊息
* 網路儲存

以上技術儘管是 WHATWG HTML 說明文件的內容，但並沒有全部包括在 W3C HTML5 的說明文件裡。一些相關的技術，像下面所列的，並沒有包括在這 2 份文件中的任何一份中。W3C 給這些技術單獨出版了說明文件。

* 地理位置
* 網頁 SQL 資料庫 ─ 本地 SQL 資料庫（不再維護）
* IndexedDB
* 檔案 ─ 處理檔案上傳和操縱檔案
* 目錄和檔案系統 ─ 這個 API 是為了滿足客戶端在沒有好的資料庫支援情況下儲存要求
* 檔案寫入 ─ 從網路應用程式向檔案裡寫內容
* 網路音訊
* ClassList
* 網路加密
* WebRTC

一個普遍的誤解是 HTML5 能夠在網頁中提供動畫效果，這是不對的，動畫效果是需要配合 JavaScript 和 CSS。然而靜態 HTML5 配合 CSS 可以表示出複雜的排版結構而且原生支援與影片的混合與控制（控制一般由 JavaScript 執行），因此簡單可以把 HTML5 單位時間的狀態理解為動畫的關鍵影格。

### XHTML5（XML-serialized HTML5）

XHTML5 是對 HTML5 的 XML 序列化。XML 文件必須被設定為 XML 網際網路檔案類型，像 `application/xhtml+xml` 或者 `application/xml`。XHTML5 要求像 XML 一樣嚴格的格式化的語法。在 XHTML5 中，HTML5 的 `<!DOCTYPE HTML>` 可有可無的。

XHTML5 並非 XHTML 的第 5 版，沒有自己獨立的標準規範，而是 HTML5 的一種序列化方式。XHTML1.x 和 2.0 使用的名字是 Extensible HyperText Markup Language，不同於 XHTML5。

### 例外處理

HTML5 在設計時保證舊的瀏覽器能夠安全地忽略掉新的 HTML5 代碼。與 HTML4.01 相比，HTML5 給出了解析的完整規則，讓不同的瀏覽器即使在發生語法錯誤時也能返回完全相同的結果。

### 普及率

根據 2011 年 9 月 30 日發布的一份報告，全球排名前 100 的網站中有 34 個網站使用 HTML5──主要是搜尋引擎與社群網站。2013 年 8 月發布的另一份報告顯示，財富美國 500 強企業中已有多達 153 家採用 HTML5。

### HTML 5 和 XHTML 1.x 的差異

以下為大略的不同之處，與例子：

* 檔案類型聲明（`<!DOCTYPE>`）僅有一型：`<!DOCTYPE HTML>`。
* 新的解析順序：不再基於 SGML。
* 新的元素：`section`, `video`, `audio`, `bdi`, `progress`, `nav`, `meter`, `time`, `article`, `aside`, `canvas`, `command`, `datalist`, `details`, `embed`, `figcaption`, `figure`, `footer`, `header`, `hgroup`, `keygen`, `mark`, `output`, `rp`, `rt`, `ruby`, `source`, `summary`, `wbr`, `track`。
* `input` 元素的新類型：`date`, `email`, `url` 等等。
* 新的屬性：`ping`（用於 `a` 與 `area`）, `charset`（用於 `meta`）, `async`（用於 `script`）。
* 全域屬性：`id`, `tabindex`, `repeat`。
* 新的全域屬性：`contenteditable`, `contextmenu`, `draggable`, `dropzone`, `hidden`, `spellcheck`。
* 移除元素：`acronym`, `applet`, `basefont`, `big`, `center`, `dir`, `font`, `frame`, `frameset`, `isindex`, `noframes`, `strike`, `tt`。

## 各瀏覽器的支援

HTML5 Test 網站，是用以測試對瀏覽器對熱門新功能的支援。測試的滿分是 555 分。而當中的額外分數表示瀏覽器對一些沒有列入 W3C 的標準亦有支援，例如 `<video>` 元素並沒有指明編碼標準，HTML5 支援 MPEG-4、H.264、Ogg Theora 及 WebM 影音編碼。HTML5 Test 並未測試所有新加入的功能，分數高只代表瀏覽器現時對所挑選的新網頁編碼整體上有較佳的支援，並不代表日後其表現的趨勢，因此分數只能作為參考。

2018 年 7 月 15 日，以及 2022 年補充五大瀏覽器所取得的分數分別是：

## 注釋

## 參考文獻

## 外部連結

* WHATWG 的 HTML 動態標準、GitHub 倉庫
* W3C 標記語言驗證服務
* W3C 和 WHATWG 簽訂諒解備忘錄
* W3C 的 HTML 工作組