注意

本文件為W3C於2020年11月10日發布之推薦規格Audiobooks的翻譯版本。此翻譯版本係由台灣數位出版聯盟(Taiwan Digital Publishing Forum, TDPF)自願翻譯,譯者盡可能維持英文原文本意與翻譯品質,唯翻譯內容仍可能有所錯誤。如有發現錯誤或不妥之處,請透過GitHub與譯者聯繫、修正或建立issue。

本翻譯文件僅供參考,唯一的正式版本請以W3C網站發布之英文原文版為準。

翻譯版本最後更新日期:2022年01月23日

有聲書(Audiobooks)

W3C推薦規格

本版本:
https://www.w3.org/TR/2020/REC-audiobooks-20201110/
最新發佈版本:
https://www.w3.org/TR/audiobooks/
最新編輯草稿:
https://w3c.github.io/audiobooks/
實作報告:
https://www.w3.org/publishing/groups/publ-wg/implementation/results.html
前一版本:
https://www.w3.org/TR/2020/PR-audiobooks-20201001/
編輯者:
Wendy Reid (Rakuten/Kobo)
Matt Garrish (DAISY Consortium)
參與協助:
GitHub w3c/audiobooks
提出問題
版本紀錄
修改要求

請由勘誤表查看發表後回報的各項錯誤或問題。

也可查看翻譯

本文件也以此非規範性檔案格式提供:EPUB


概要

本規格描述創建有聲書時的需求,其使用了出版品宣告規格中的子規格。

本文件狀態

本節解釋了本文件在其發布時的狀態。其他文件可能取代本文件。W3C的當前出版品清單以及本技術報告的最新版本可於位在https://www.w3.org/TR/之W3C技術報告索引中獲得。

本文件由出版工作小組發布為推薦規格。

推薦使用GitHub Issues對本規格進行討論。此外,你也可以將意見寄送到我們的郵寄列表。請寄送到public-publ-wg@w3.org郵件封存紀錄)。

W3C推薦規格是一份經過了廣泛的共識確認並受到W3C及其會員之認可與背書的規格文件。W3C建議將此格規作為網頁標準廣泛部署。本推薦規格的未來更新可能會包含新的功能

本文件由基於2017年8月1日W3C專利政策下運作的一個小組所製作。W3C維護了一份與該小組交付成果有關的任何專利披露公開清單,該頁面也包含了專利披露的說明。任何人若實際擁有某項專利知識並相信其包含該專利之主要申請範圍,則必需依照W3C專利政策第六節之規定揭露該訊息。

本文件受2020年9月15日W3C流程文件所規範。

1. 導論

本節不具規範性。

一本有聲書是聲音資源的集合,其透過將閱讀順序、詮釋資料以及資源全部包含於一份宣告中所組合而成。此有聲書可以在開放網頁平台上使用,或者作為一個封裝實體。

本規格之目的為對有聲書在網頁以及在企業間的分發模型進行標準化,並應促進有聲書在不同使用者代理程式架構間處理時的的互通性。其主要的目標是協助目前標準化服務不足的出版產業界釐清部份規格,同時將有聲書帶給開放網頁平台或新的使用者代理程式。本規格不描述內容創作者該使用何種檔案類型或者格式,僅定義一個供遞送內容用的宣告清單。

本規格不定義使用者代理如何去處理有聲書。關於如何增強使用者代理的能力以為使用者提供良好閱讀體驗的細節,請參考 [pwp-ucr] 中的定義。

2. 術語

特別供出版產業使用具有特殊意涵的術語在本文件中為首字大寫(中文版則加上括號,如「閱讀系統」)。這些術語及其定義的完整清單請參見 [pub-manifest] 。

每個術語僅在第一次於章節出現中時才會連結到其定義。

此外,以下術語定義供本規格使用:

補充內容(Supplemental Content)

補充內容為任何與有聲書內容相關的內容,但對該出版品之完整體驗來說並非必要的內容。補充內容的範例包含相片、圖表,或者與在該有聲書中所提及的主題相關之資料。

3. 一致性

除了標註為不具規範性的章節外,本規格中所有製作指引、圖表、範例與注意事項亦不具規範性。其餘本規格中的內容則均為具規範性。

本文件中出現之關鍵字可以(MAY)必需(MUST)不得(MUST NOT)推薦(RECOMMENDED)需要(REQUIRED)應該(SHOULD)之解釋以BCP 14 [RFC2119] [RFC8174] 所描述為準,同時也僅在出現時以全大寫(中文為粗體)顯示。

4. 建構程序

4.1 主要進入頁面(Primary Entry Page)

主要進入頁面(Primary Entry Page)為一個HTML資源,用來表示有聲書之首選起始資源,並同時被用於發現其宣告。一般用於介紹該有聲書並且提供對內容的存取。

主要進入頁面必需包含一個宣告的連結或者直接嵌入宣告 [pub-manifest] 。其也應該包含目錄

有聲書必需包含一個主要進入頁面,除非在封裝中允許替代的宣告發現方法。當主要進入頁面存在時,該頁面必需包含在資源清單中。

4.2 目錄

目錄提供了一份階層清單的連結,可供表現有聲書及其任何可能包含之補充內容的主要章節結構大綱。

目錄透過其中一個資源裡的 [html] 元素(一般為nav元素)來表示。該元素必需透過其role屬性 [html] 值為 "doc-toc" [dpub-aria-1.0] 來識別。

當目錄位於主要進入頁面中時,目錄必需為該文件在「文件樹狀順序 [dom] 」中第一個具有上述role值的元素。此外,宣告清單應該識別出包含該結構的資源。

當目錄不位於主要進入頁面時,宣告清單應該識別出包含該結構的資源。

當有聲書包含額外資源(例如補充內容)時:

注意事項

當包含補充內容時請注意,除非透過目錄連結,使用者可能無法存取到該內容。強烈建議對所有不在預設閱讀順序中的內容提供連結。

注意事項

若要了解更多目錄結構與格式的指南,請參考出版品宣告 - 機讀目錄 [pub-manifest] 。

5. 宣告(Manifest)

5.1 導論

本節不具規範性。

有聲書宣告由一組屬性所定義,其描述了使用者代理用以處理及呈現有聲書所需的基本資訊。這些屬性被分類於出版品宣告 [pub-manifest] 中。本節將說明由出版品宣告所延伸之屬性。

注意事項

有聲書宣告由特別「型態」的 [json-ld11] 所定義。此型態也非正式地透過一個JSON綱要 [json-schema] 來定義,並以此表現於本規格中所定義之限制。該綱要維護於https://www.w3.org/ns/pub-schema/audiobooks/

5.2 需求

有聲書屬性與資源關係的需求表述定義如下:

注意事項

本屬性清單使用描述於 [schema.org]和[pub-manifest] 的屬性正式名稱。對於使用目的不明確的屬性,會在括號中加以描述說明。

必要屬性
推薦屬性
注意事項

有些屬性為隱性必要屬性,它們可在沒有明確被寫出時由其他替代資訊所取得。請參考內部表述資料模型 [pub-manifest] 以獲得更多資訊(有聲書的表述僅在type屬性的預設值上有所不同)。

5.3 宣告語境(Manifest Contexts)

有聲書宣告必須由設定JSON-LD語境 [json-ld] 開始。其語境由以下兩個主要元件所構成:

範例 1 :語境宣告。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    …
}

為了在宣告的詮釋資料中加入全球語言與書寫方向,也可以在語境中加入語言與方向的語境聲明 [pub-manifest] :

範例 2 :聲明法文作為宣告的預設語言。
{
    "@context" : [
        "https://schema.org",
        "https://www.w3.org/ns/pub-context",
        {"language":"fr"}
    ] 
    …
}

5.4 出版品一致性

conformsTo屬性 [pub-manifest] 中所表示的一致性URL必需為"https://www.w3.org/TR/audiobooks/"。

範例 3 :設定出版品符合有聲書一致性。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/"
    …
}

5.5 出版品類型

出版品類型type屬性 [pub-manifest] 所定義。

範例 4 :設定出版品的類型為有聲書。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "type"     : "Audiobook"
		…
}

如果未指定type,則假設Audiobook [schema.org]為預設值。

5.6 屬性

5.6.1 創作者

創作者(creator)為對該有聲書創作負責的個人或實體。有聲書子規格可使用定義在 [pub-manifest] 中的完整創作者清單。

創作者清單中包含兩個推薦給有聲書的創作者屬性:

範例 5 :書籍作者。
{
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"] ,
    "type" : "Audiobook",
    …
    "url" : "https://publisher.example.org/janeeyre",
    "author" : {
        "type" : "Person",
        "name" : "Charlotte Bronte"
    }
}
範例 6 :有聲書的作者與朗讀者。
{
    "conformsTo" : "https://www.w3.org/TR/audiobooks/";
    "@context": ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    …
    "url"	: "https://publisher.example.org/janeeyre",
    "author" : {
        "type": "Person",
        "name": "Charlotte Bronte"
    }
    "readBy" : {
        "type": "Person",
        "name": "Ivan Herman",
        "id"	: "https://www.w3.org/People/Ivan/"
    }
}

5.6.2 時間長度

時間長度(duration)是有聲書中聲音資源的時長。duration屬性完整定義於出版品宣告 [pub-manifest] 中。

時間長度應該要作為宣告的一部分以用來表示整個有聲書的長度,並且應該預設閱讀順序中以項目等級呈現。

當內容創作者同時指定整本有聲書的時間長度以及預設閱讀順序中的項目等級時間長度時,資源等級的時間長度應該與在閱讀順序中所有項目的時間長度的總和相等。

範例 7 :以秒表示有聲書的長度
{
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"] ,
    …
    "url" : "https://publisher.example.org/janeeyre",
    "author" : {
         "type"  : "Person",
         "name"  : "Charlotte Bronte"
    },
    "duration" : "PT12345.235S"
}

5.7 預設閱讀順序

預設閱讀順序(default reading order) [pub-manifest] 為有聲書中所有聲音資源的指定行進順序。

預設閱讀順序必需至少包含一個聲音資源,該資源可以透過type的屬性值LinkedResource [pub-manifest] 來識別。預設閱讀順序不得包含非聲音的資源。

一個聲音資源可以透過一個URL [url] 來參照其整個實體。而對於對於多個章節指到單一檔案的內容,則可利用媒體片段(Media Fragments) [media-frags] 來指定精確的開始與結束點。

注意事項

需要特別注意的是一個資源不能在閱讀順序中被參照多次。當使用單一聲音檔案來呈現一本書的多個章節內容之情境時,可以使用目錄來指定在大型聲音檔案中各章節的開始與結束點,可參考本範例所展示。

注意事項

註解也可以使用媒體片段來指定資源中註解的位置,其也相容於網頁註解(Web Annotations)模型。這個方法只能應用於沒有被封裝的有聲書宣告。

範例 8 :單一資源的有聲書閱讀順序。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url" : "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "readingOrder" : [{
        "type" : "LinkedResource",
        "url" : "audio/janeeyre.mp3",
        "encodingFormat" : "audio/mp3",
        "name" : "Jane Eyre",
        "duration" : "PT124503.123S"
    }] 
}
範例 9 :使用媒體片段的多重資源有聲書閱讀順序。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url" : "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "readingOrder" : [{
        "type": "LinkedResource",
        "url" : "audio/part001.wav#t=0,457.931",
        "encodingFormat" : "audio/vnd-wav",
        "name" : "Chapter 1",
        "duration" : "PT457.931S"
    }, {
        "type" : "LinkedResource",
        "url" : "audio/part002.wav#t=12.741",
        "encodingFormat" : "audio/vnd-wav",
        "name" : "Chapter 2",
        "duration" : "PT234.245S"
    }] 
}

5.8 資源清單

資源清單(resource list)列舉了所有用於處理與呈現有聲書,但未列於閱讀順序的附加資源。其透過resources屬性來表示。

如果一本有聲書包含補充內容,這些內容必需在資源清單中參照。

範例 10 :有補充內容的有聲書
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url" : "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "resources" : [
        "cover.jpg",
        "portrait_CB.jpg",
        "supplement.pdf"
    ] 
}

5.9 有聲書預覽

預覽是一個讓使用者在購買或者下載完整有聲書之前能夠提供體驗完整內容的常見方式。

預覽可透過 [pub-manifest] 中所定義preview連結關係來指定。

預覽可以是有聲書的外部或內含資源。

範例 11 :擁有外部預覽資源的有聲書。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url"	: "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "resources" : [{
        "type" : "LinkedResource",
        "url" : "https://publisher.example.org/jane-eyre-preview.wav",
        "encodingFormat" : "audio/wav",
        "rel" : "preview"
    }] 
}
範例 12 :擁有內部預覽資源的有聲書。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url"	: "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "resources" : [{
        "type" : "LinkedResource",
        "url"	: "preview.wav",
        "encodingFormat" : "audio/wav",
        "rel"	: "preview"
    }] 
}

5.10 封裝

本節不具規範性。

有聲書會使用描述於輕量封裝格式(Lightweight Packaging Format) [lpf] 備忘中的方法來進行封裝。

5.11 無障礙輔助性

本節不具規範性。

有聲書的歷史是源自於無障礙輔助的世界。不管是純聲音的出版品或者有著文字與聲音同步播放的出版品長久以來都用於協助有著輔助閱讀需求及偏好的使用者。

在出版品中提供無障礙輔助同步媒體的做法目前已可以透過出版品同步媒體社群小組之成果達成。請參考該小組的工作成果以獲得更多製作這種內容以及將其整合進有聲書的資訊。

作為另一個替代方案,內容創作者亦可在資源中以HTML [html] 資源提供相同的文字內容。

範例 13 :有著替代文字內容的有聲書。
{
    "@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "url" : "https://publisher.example.org/janeeyre",
    "name" : "Jane Eyre",
    "readingOrder" : {
        "type" : "LinkedResource",
        "url" : "audio/part001.wav#t=0",
        "encodingFormat" : "audio/vnd-wav",
        "name" : "Chapter 1",
        "duration" : "PT457.931S",
        "alternate" : {
            "type" : "LinkedResource",
            "url" : "text/part001-1.html",
            "encodingFormat" : "text/html"},
    },
    "resources" : [{
         "type": "LinkedResource",
         "url": "text/part001-1.html",
         "encodingFormat" : "text/html"
     }…
    ] 
}

6. 宣告處理流程

本章節是依循Infra標準 [infra] 所建立。

本規格延伸出版品宣告之處理演算法 [pub-manifest] 如下:

產生內部表述(Generating the Internal Representation)

以下延伸步驟是為了有聲書宣告而增加:

  1. (§ 5.6.2 時間長度)按以下流程檢查該出版品的時間長度:

    1. resourceDuration用於儲存所有個別資源的總時間長度。

    2. 對於每一個 data["readingOrder"] 中的resource 來說:

      1. 如果 resource ["duration"] 未定義,則為驗證錯誤

      2. 否則,若 resource ["duration"] 存在,則將 resource ["duration"] 增加至 resourceDuration

    3. 如果因為沒有設定 data ["duration"] 導致時間長度值無法被比較,則為驗證錯誤

      否則,若 resourceDurationdata ["duration"] 所呈現的整體時間長度不一致,則為驗證錯誤

    解釋

    本步驟檢查在閱讀順序中的所有資源均有指定duration時間長度,並同時確認所有閱讀順序資源之時間長度加總與該出版品描述的總時間長度相等。

    驗證錯誤僅會在檢查每一個資源並發現該資源沒有指定duration時間長度時發出。總長度的有效性 [pub-manifest] 已經在出版品宣告演算法中檢查過,因此在此沒有重複進行的必要。

資料驗證(Data Validation)

以下延伸步驟是為了有聲書宣告而增加:

  1. §5.7預設閱讀順序)按以下方式檢查閱讀順序:

    1. 如果沒有設定 data ["readingOrder"] ,則為嚴重錯誤

    2. 對於每一個 data ["readingOrder"] 中的 resource 來說,如果 resource 不是聲音資源,則為驗證錯誤,由 data ["readingOrder"] 移除 resource

    3. 如果 data ["readingOrder"] 為空白清單,則為嚴重錯誤

    解釋

    本步驟確保在閱讀順序列表中僅有聲音資源,並且移除其他不是聲音資源的項目。

    如果檢查每個資源後閱讀順序沒有任何資料,則回傳嚴重錯誤並視為此出版品不是符合規範的有聲書。

  2. § 5.5 出版品類別) 如果 data ["type"] 未設定或為空白清單,則為驗證錯誤,將其設為« "Audiobook" »

    解釋

    type 屬性未指定時,本步驟將設定出版品的預設類型為audiobook

  3. § 5.2 需求)確認以下每一個屬性都有設定,並將每一個沒有設定的屬性視為驗證錯誤

    • data ["abridged"]
    • data ["accessMode"]
    • data ["accessModeSufficient"]
    • data ["accessibilityFeature"]
    • data ["accessibilityHazard"]
    • data ["accessibilitySummary"]
    • data ["author"]
    • data ["dateModified"]
    • data ["datePublished"]
    • data ["id"]
    • data ["inLanguage"]
    • data ["name"]
    • data ["readBy"]
    • data ["readingProgression"]
    • data ["resources"]
    • data ["url"]
    解釋

    本步驟驗證所有的推薦屬性是否都有被設定。若要了解更多關於這些的資訊,請參考 §5.2需求

  4. § 5.2 需求) 如果在 data ["readingOrder"] data ["resources"] 沒有任何資源擁有一個包含cover關係的 rel 資料,則為驗證錯誤

    解釋

    本步驟檢查閱讀順序與資源列表已確認封面有被指定(亦即一個其rel屬性的值為cover的資源)

7. 使用者代理處理機讀目錄流程

本節不具規範性。

本規格延伸出版品宣告之使用者代理處理機讀目錄演算法 [pub-manifest] 如下以用來確定目錄元素的位置:

  1. 如果有主要進入頁面,則執行其演算法以確認目錄元素在主要進入頁面中的位置。
  2. 如果前一步驟沒有成功,則如在 [pub-manifest] 中 §4.8.1.3目錄所描述的宣告來尋找相關資源。若資源存在,則對該資源執行相同演算法。

請參見§4.2目錄以取得進一步的細節。

8. 安全與隱私考量

有聲書為出版品宣告 [pub-manifest] 的子規格,所有在該規格中對安全與隱私的考量都適用於本子規格。

本子規格承認有以下的考量:

9. 使用者代理對有聲書之行為

本節不具規範性。

本章節勾勒了在實作有聲書時預期的使用者代理行為。對處理指示而言,使用者代理應該參考出版品宣告規格 [pub-manifest] 中的宣告處理流程章節,並且確認符合該處所描述的所有行為。

所有於本節中說明的使用者代理行為是為了提供實作者一份指南,而非嚴格的需求。本文件中的描述的行為主要來自於工作小組所發表之使用案例與需求 [pwp-ucr] 備忘。

9.1 開啟及導覽有聲書的內容

當使用者代理開啟有聲書並按照出版品宣告 [pub-manifest] 中的規則進行宣告處理程序時,其應能順利由使用者代理所開啟。閱讀順序目錄(如果有的話),應該要能讓使用者無障礙地存取。使用者代理應該要能夠在使用者要求時提供有聲書的內容列表。如果在閱讀順序中有出現非聲音的資源時,使用者代理可以選擇呈現給使用者或者忽略之。

針對在閱讀順序及資源清單中的非聲音資源,使用者代理應該提供一個顯示該資源的方式。如果該內容無法被使用者代理所顯示,則推薦使用者代理告知使用者有該內容但無法顯示。

當有主要進入頁面時,其預期應該是有聲書的進入點。如果內容製作者提供了主要進入頁面,且使用者代理能夠顯示或者處理HTML內容,則其應為第一個呈現給使用者的內容。主要進入頁面可以包含或不包含目錄,如果有使用role="doc-toc"包含的話,其應該要被當作目錄來處理。如果目錄為另一個獨立的文件,只要符合以上的需求,使用者代理選擇如何呈現。如果在主要進入頁面或者其他地方都未包含目錄的話,使用者代理應該參考閱讀順序。

9.2 有聲書的播放性

如同在使用案例與需求 [pwp-ucr] 備忘中所勾勒,有聲書必需在使用者代理中能被導覽。這意味著使用者代理必需提供使用者透過在閱讀順序間無縫移動或存取目錄等的方式進行線性或非線性的有聲書內容存取的方法。使用者代理應該也要能允許使用者能在單一聲音檔案中短時間前後移動。

對有聲書來說,使用者代理應該提供一個允許使用者導覽、播放或暫停該有聲書的播放器介面 [pwp-ucr] 其。該介面可以以任何方式呈現給使用者(例如,物理按鍵、視覺介面、鍵盤輸入或者聲音指令等),但應該在聆聽體驗的任何一點上都提供無障礙輔助。

9.3 有聲書封裝以及離線存取

使用案例與需求 [pwp-ucr] 備忘中建議內容應該要能離線存取,且任何封裝格式均不應影響出版品之疊代。這意味著即使內容被透過多種使用者代理多次複製給很多使用者,其核心宣告與其識別碼都不該被改變。

本規格推薦使用輕量封裝格式 [lpf] 來封裝有聲書內容,但這不是必要需求。有聲書使用者代理應該能夠接受LPF檔案供播放,並應按照本文件中的需求與建議來顯示內容。

如果使用者代理直接由其服務提供內容(例如,作為內容的零售商或儲存庫),則建議他們提供讓使用者離線使用或者下載內容的方法。這可以是任何他們所挑選的格式,但有聲書應是完整且符合規範的,同時列於宣告中的內容應該完整的提供。即使使用者代理不支援顯示某種資源(例如一個影像檔或者資料表格),其應仍讓使用者能下載。

本規格不提供內容製作者保護或者為其內容加上浮水印的方法,目前在市場上已經許多這類方法。使用者代理與想要保護或者限制其內容分發的內容製作者合作時,可以挑選最符合其需求的方法做搭配。

9.4 有聲書無障礙輔助性

本規格建議並提供一個方法給內容製作者來建立具完整無障礙輔助性的有聲書。使用者代理應該使用這些在無障礙輔助性章節中資訊,來實作具無障礙輔助的有聲書介面。同時建議使用者代理提供具無障礙輔助的播放器介面,以及當內容製作者提供alternate內容時能夠讓該補助內容顯示的方法。

10. 變更紀錄

初次發布工作草稿以來的主要變更:

請參見Github追蹤系統以獲得所提及issue的完整清單。

A. 宣告範例

本節不具規範性。

A.1 簡單的有聲書

有聲書的宣告。也有本宣告的標準版本。

{
  "@context": ["https://schema.org", "https://www.w3.org/ns/pub-context"] ,
  "conformsTo" : "https://www.w3.org/TR/audiobooks/",
  "type": "Audiobook",
  "id": "https://librivox.org/flatland-a-romance-of-many-dimensions-by-edwin-abbott-abbott/",
  "url": "https://w3c.github.io/wpub/experiments/audiobook/",
  "name": "Flatland: A Romance of Many Dimensions",
  "author": "Edwin Abbott Abbott",
  "readBy": "Ruth Golding",
  "publisher": "Librivox",
  "inLanguage": "en",
  "dateModified": "2018-06-14T19:32:18Z",
  "datePublished": "2008-10-12",
  "duration": "PT15153S",
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",

  "resources": [
    {
      "rel": "cover",
      "url": "http://ia800704.us.archive.org/9/items/LibrivoxCdCoverArt12/Flatland_1109.jpg",
      "encodingFormat": "image/jpeg"
    },{
      "rel": "contents",
      "url": "toc.html",
      "encodingFormat": "text/html"
    }
  ] ,

  "readingOrder": [
    {
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_1_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1371,
      "name": "Part 1, Sections 1 - 3"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_2_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1669,
      "name": "Part 1, Sections 4 - 5"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_3_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1506,
      "name": "Part 1, Sections 6 - 7"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_4_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1669,
      "name": "Part 1, Sections 8 - 10"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_5_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1506,
      "name": "Part 1, Sections 11 - 12"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_6_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1798,
      "name": "Part 2, Sections 13 - 14"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_7_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1225,
      "name": "Part 2, Sections 15 - 17"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_8_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1371,
      "name": "Part 2, Sections 18 - 20"
    },{
      "url": "http://www.archive.org/download/flatland_rg_librivox/flatland_9_abbott.mp3",
      "encodingFormat": "audio/mpeg",
      "duration": 1659,
      "name": "Part 2, Sections 21 - 22"
    }
  ] 
}

A.2 有補充內容的有聲書

有補充內容有聲書的宣告。

{
    "@context" : ["https://schema.org", "https://www.w3/org/ns/pub-context"] ,
    "conformsTo" : "https://www.w3.org/TR/audiobooks/",
    "id" : "https://publisher.example.com/janeeyre",
    "url" : "https://publisher.example.com/janeeyre",
    "name" : "Jane Eyre",
    "author" : "Charlotte Bronte",
    "readBy" : "Jane Doe",
    "duration" : "PT123456.789S",
    "abridged" : false,
    "inLanguage" : "en",
    "dateModified" : "2019-03-29T15:59:00Z",
    "datePublished" : "2019-03-29",

    "readingOrder": [
        {"url": "audio/chapter001.aac", "encodingFormat": "audio/aac", "name": "Chapter 1", "duration": "PT1234.567S"},
        {"url": "audio/chapter002.aac", "encodingFormat": "audio/aac", "name": "Chapter 2", "duration": "PT890.123S"},
        {"url": "audio/chapter003.aac", "encodingFormat": "audio/aac", "name": "Chapter 3", "duration": "PT456.789S"},
        {"url": "audio/chapter004.aac", "encodingFormat": "audio/aac", "name": "Chapter 4", "duration": "PT987.654S"},
        {"url": "audio/chapter005.aac", "encodingFormat": "audio/aac", "name": "Chapter 5", "duration": "PT321.987S"}
    ] ,

     "resources": [
        {"rel": "cover", "url": "images/cover.jpg", "encordingFormat": "image/jpeg"},
        {"rel": "contents", "url": "toc.html", "encodingFormat": "text/html"},
        {"url": "haworth_house.pdf", "encodingFormat": "application/pdf"}
    ] 
}

B. 目錄範例

本節不具規範性。

B.1 有目錄的主要進入頁面

有著簡單目錄的有聲書主要進入頁面。

    <head><script type="application/ld+json">
    {
        "@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"] ,
        "conformsTo" : "https://www.w3.org/TR/audiobooks/",
        …
        "url" : "https://publisher.example.org/janeeyre",
        …
    }
    </script></head>
<body><section role="doc-toc">
        <ol>
            <li><a href="audio/chapter001.wav">Chapter 1. There was no possibility of taking a walk that day...</a></li>
            <li><a href="audio/chapter002.wav">Chapter 2. I resisted all the way:...</a></li>
            <li><a href="audio/chapter003.wav">Chapter 3. The next thing I remember is,...</a></li></ol>
    </section></body>

B.2 簡單的目錄

簡單有聲書的目錄。

<nav role="doc-toc">
    <h2>JANE EYRE</h2>

    <ol>
        <li><a href="audio/chapter001.mp3">Chapter 1. There was no possibility of taking a walk that day...</a></li>
        <li><a href="audio/chapter002.mp3">Chapter 2. I resisted all the way:...</a></li>
        <li><a href="audio/chapter003.mp3">Chapter 3. The next thing I remember is,...</a></li></ol>
</nav>

B.3 有媒體片段的目錄

在目錄中使用媒體片段以在單一音軌中參照到指定位置。

<nav role="doc-toc">
    <h2>JANE EYRE</h2>

    <ol>
        <li><a href="https://example.publisher.org/janeeyre/part001.mp3#t=0,456.788">Chapter 1</a></li>
        <li><a href="https://example.publisher.org/janeeyre/part001.mp3#t=456.789,1234.566">Chapter 2</a></li>
        <li><a href="https://example.publisher.org/janeeyre/part001.mp3#t=1234.567">Chapter 3</a></li>
    </ol>
</nav>

C. 致謝

本節不具規範性。

編輯者感謝所有出版工作小組的成員對本規格的貢獻:

本工作小組也想要對數位出版興趣小組的成員對本規格鋪路的努力致謝。

D. 參考資料

D.1 規範性文件

[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[dpub-aria-1.0]
Digital Publishing WAI-ARIA Module 1.0. Matt Garrish; Tzviya Siegman; Markus Gylling; Shane McCarron. W3C. 14 December 2017. W3C Recommendation. URL: https://www.w3.org/TR/dpub-aria-1.0/
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[json-ld]
JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 16 January 2014. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
[media-frags]
Media Fragments URI 1.0 (basic). Raphaël Troncy; Erik Mannens; Silvia Pfeiffer; Davy Van Deursen. W3C. 25 September 2012. W3C Recommendation. URL: https://www.w3.org/TR/media-frags/
[pub-manifest]
Publication Manifest. Matt Garrish; Ivan Herman. W3C. 10 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/pub-manifest/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174
[schema.org]
Schema.org. URL: https://schema.org
[url]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/

D.2 參考性文件

[json-ld11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 7 May 2020. W3C Proposed Recommendation. URL: https://www.w3.org/TR/json-ld11/
[json-schema]
JSON Schema: core definitions and terminology. K. Zyp. Internet Engineering Task Force (IETF). 31 January 2013. Internet-Draft. URL: https://tools.ietf.org/html/draft-zyp-json-schema
[lpf]
Lightweight Packaging Format (LPF). Laurent Le Meur. 2018-08-07. URL: https://w3c.github.io/lpf/
[pwp-ucr]
Web Publications Use Cases and Requirements. Franco Alvarado; Joshua Pyle. W3C. 13 August 2019. W3C Note. URL: https://www.w3.org/TR/pwp-ucr/