怎樣才算一份可及的 PDF——以及為什麼這很重要
Spec: ISO 14289-1ISO 14289-1Spec: ISO 14289-2ISO 14289-2Spec: ISO 32000-2ISO 32000-2Spec: WCAG 2.2WCAG 2.2
快速概覽
標題為「快速概覽」的區段一份可及的 PDF,是一份看不見頁面的人仍然能讀懂的 PDF——以你所設想的順序、每一張圖片都被描述、每一個標題都被宣告為標題。本頁說明一份 PDF 如何承載那層意義——標記化內容、一棵結構樹、閱讀順序、替代文字——以及為什麼把它做對是值得的。
為什麼這很重要
標題為「為什麼這很重要」的區段一份 PDF,預設是一組落在座標上的標記。它說把這個字符放在這裡、把這張影像畫在那裡。它本身並不說這是一個標題、這一列屬於那一欄,或這張圖片顯示一份已簽署的合約。一位視覺正常的讀者,會從版面瞬間補足這些空缺。一個螢幕報讀器做不到。它擁有的,只有檔案實際載明的內容。
於是一份未標記的 PDF 可以看起來毫無瑕疵,讀起來卻像是胡言亂語:一個雙欄頁面被一路橫著宣讀、一個資料表格被攤平成一串毫無關聯的數字、一張圖表就那樣默不作聲。資訊就在頁面上。它只是搆不著。對數以百萬計的人而言,那正是一份他們能用的文件與一份他們不能用的文件之間的差別——而且,這越來越成為一項合規的公共服務與一項法律暴險之間的差別。
精簡版說明
標題為「精簡版說明」的區段- 一份標記化 PDF 在視覺標記之上,承載一層平行的意義:這一段字符是一個標題、那一塊是一個清單、這一區是一個表格。
- 那些標記掛在一棵結構樹上——一份文件的邏輯大綱,與各物件落在頁面何處無關(Spec: ISO 32000-2, §14.7ISO 32000-2 §14.7)。
- 這棵樹固定了閱讀順序,因此內容會以你所設想的序列呈現,而不是字符碰巧被畫出來的順序。
- 非文字內容承載一個文字等價物:影像的一段
/Alt描述,或為某段報讀器原本會讀錯的字符段所提供的替換文字(Spec: ISO 32000-2, §14.8ISO 32000-2 §14.8)。 - PDF/UA(ISO 14289)是說明這一切何時齊備且正確的標準。它正是「可及的 PDF」作為一項工程主張、而非行銷主張時的意涵(Spec: ISO 14289-1ISO 14289-1)。
NextPDF 的處理方式
標題為「NextPDF 的處理方式」的區段兩層,一個檔案
標題為「兩層,一個檔案」的區段把一份可及的 PDF 想成兩層一同移動。內容層是你所見的:字符、線條、影像,置於座標上。結構層是它所代表的意義:一棵由元素構成的樹——文件、標題、段落、清單、表格、圖形——為每一塊內容命名並把它排好順序。
兩者由標記內容縫合在一起。頁面上每一段有意義的內容都被包裹起來並賦予一個識別符;對應的結構元素指回那個識別符。正是那道連結,讓輔助技術能走訪這棵邏輯樹,並在每一個節點上找到它所描述、頁面上的那段確切位元組。把這道連結做對,一個標題就會被宣告為一個標題;做錯了,結構就成了一段與所顯示內容不符的虛構。
閱讀順序存於樹中,而非版面
標題為「閱讀順序存於樹中,而非版面」的區段這是讓人意外的那個概念。螢幕報讀器所使用的順序,是結構樹的順序,而那與內容落在頁面何處無關(Spec: ISO 32000-2, §14.7ISO 32000-2 §14.7)。你可以把一個側欄畫在最後、把一個註腳畫在最前;只要這棵樹以你設想的序列把它們串起來,文件就會被正確地讀出。反過來說,一個排版精美、樹卻錯亂的頁面,會被精美地讀錯。版面是給眼睛的。樹是給其他所有人的。
為所有不是文字的東西提供一個文字等價物
標題為「為所有不是文字的東西提供一個文字等價物」的區段一張照片、一個標誌、一張圖表、一條裝飾性的分隔線——這些都不是文字,因此預設都不會宣告任何內容。標記化 PDF 用替代描述補上這道缺口:影像的 /Alt 文字描述它所傳達的意思,而 /ActualText 為某段原本會被讀錯的字符段——例如一個連字或一個風格化的首字下沉——提供一個乾淨的替換(Spec: ISO 32000-2, §14.8ISO 32000-2 §14.8)。純粹裝飾性的標記被標記為人工製品,因此被略過、而不是被當成雜訊讀出。規則很簡單:若它承載意義,它就得到一個文字等價物;若它不承載,它就被標記到一旁。
螢幕報讀器實際上如何讀取這個檔案
標題為「螢幕報讀器實際上如何讀取這個檔案」的區段當輔助技術開啟一份標記化 PDF 時,它並不讀取頁面。它讀取那棵樹,並利用標記內容的連結,依序呈現每一個元素的文字。
- OpenThe reader finds the structure tree root in the document catalog, the entry point to the logical document.
- Walk the treeIt traverses the logical hierarchy — document, headings, paragraphs, lists, tables — in structure order.
- Map the roleEach structure type maps to a familiar role, so a heading is announced as a heading and a list as a list.
- Read the contentFor each element it reads the linked page text, or the alternate description when the content is an image.
- Skip the noiseAnything tagged as a decorative artifact is passed over, never spoken.
因為這個序列是樹的序列,一份正確標記的雙欄報告會先讀完一欄、再讀另一欄,一個表格會連同表頭逐格讀出,而一張圖形會宣告它的描述、而不是陷入沉默。報讀器永遠不必去猜作者的意圖,因為意圖已被記錄在檔案裡。
把它釘住的那個標準:PDF/UA
標題為「把它釘住的那個標準:PDF/UA」的區段這一切,在 PDF/UA 之下成為一項可檢核的主張。PDF/UA-1 以 ISO 14289-1 發布,在標記化 PDF 模型之上載明了一份可及 PDF 的檔案層級要求(Spec: ISO 14289-1, §7ISO 14289-1 §7)。PDF/UA-2,即 ISO 14289-2,把那些要求帶到 PDF 2.0 基線之上,並精修了真實內容如何對應到結構模型(Spec: ISO 14289-2, §8ISO 14289-2 §8)。PDF/UA 管轄檔案的結構;更廣的網頁內容可及性指引描述一份文件所對照衡量的成效,而一項符合性主張會指名它實際達到的層級(Spec: WCAG 2.2, §5WCAG 2.2 §5)。兩者協同運作:PDF/UA 說明機制齊備且正確,WCAG 框定何謂對人而言的「夠好」。
實務範例
標題為「實務範例」的區段標記是看不見的,因此檢查它們唯一誠實的方式,是去看一個工具所回報的結構。一個最小的可及頁面有一棵真正的樹:一個文件根、一個標題、一個段落,以及一個承載描述、而非沉默的圖形。
StructTreeRoot └─ Document ├─ H1 "Quarterly Report" ├─ P "Revenue rose across every region this quarter." └─ Figure /Alt "Bar chart: revenue by region, all four up"一個走訪這棵樹的報讀器,會宣告一個第一級標題、讀出那個段落,接著讀出圖形的描述——以那個順序,無論每個元素被畫在何處。把這棵樹剝掉,同一個頁面就變成三段彼此斷開的字符串,外加一個沉默的矩形。像素是相同的。體驗則不然。
常見誤解
標題為「常見誤解」的區段常見的看法是,一份 PDF「可及,因為文字是可選取的」。可選取的文字意味著那些字符是真正的字元、而非一張掃描的圖片——必要,但遠遠不夠。沒有結構樹的可選取文字,依然沒有標題、沒有閱讀順序、沒有表格關係,也沒有影像描述。可及性關乎的是結構與意義,而不僅僅是可擷取字元的存在。一個檔案可以通過複製貼上,卻在螢幕報讀器面前徹底失敗。
第二個陷阱是把「已標記」當成一個是非分明的徽章。一個檔案可以已標記、卻仍然錯了:把內容貼錯標籤的標記、順序與意圖不符的樹、帶有空白或無用 /Alt 文字的影像。已標記是這場對話的開端,而不是它的結尾。
限制與邊界
標題為「限制與邊界」的區段本頁說明那些概念,以及定義它們的那些標準。它不是一份符合性證書,沒有任何工具能憑自身核發一份。
| Edition | Availability |
|---|---|
| Core | Core 會寫出標記化 PDF:它產出一棵結構樹、把裝飾性內容標記為人工製品,並承載你所提供的替代文字。 |
| Pro | 為複雜版面新增更豐富的結構對應——多層級表格、清單與圖形——使這棵樹更貼合所設想的閱讀順序。 |
| Enterprise | 新增一道結構符合性檢核與報告。它仍然是一道結構檢核,而非認證——最終判定屬於驗證器與一位人工審查者。 |
有兩道邊界值得明白說清楚。第一,引擎能產生正確的結構,卻無法評斷編輯品質:它會忠實地承載一段寫著「圖片」的 /Alt 描述,而那是作者的責任,不是引擎的。可及性是一個記錄意義的工具與一個提供意義的人之間的協作。第二,一道自動化的檢查——包括像 veraPDF 這樣的驗證器——確認機制齊備且格式良好。它並不確認一位使用螢幕報讀器的人,是否真能理解這份結果。最終定案是人為的。關於那道自動化檢查如何融入其中,請參見驗證 PDF/A 與 PDF/UA。
相關文件
標題為「相關文件」的區段- 標準全貌——在 NextPDF 所追蹤的那個更廣的標準聯邦中,PDF/UA 與 WCAG 各居何處。
- 字型:最難的部分——為什麼看似正確的文字仍可能無法搜尋,以及那如何牽動可及性。
- PDF 究竟是什麼——結構樹所棲身其中的那個物件模型。
- 驗證 PDF/A 與 PDF/UA——如何執行一道自動化的符合性檢核,以及它能與不能告訴你什麼。
詞彙表
標題為「詞彙表」的區段- 標記化 PDF(Tagged PDF)——一份在其視覺內容之上承載一層平行結構標記的 PDF,使輔助技術能搆得著文件的意義,而不僅是它的標記。
- 結構樹(Structure tree)——一份文件的邏輯大綱(根、標題、段落、清單、表格、圖形),獨立於頁面版面而記錄,並用以決定閱讀順序。
- 閱讀順序(Reading order)——內容呈現給讀者的序列,取自結構樹、而非取自字符被畫出的位置。
- 替代文字(Alternative text)——非文字內容的一個文字等價物:影像的一段
/Alt描述,或為某段原本會被讀錯的字符段所提供的/ActualText替換。 - 人工製品(Artifact)——被標記為裝飾性的內容(一條分隔線、一個背景、一個浮水印),使報讀器略過它、而不是把它宣讀出來。
- PDF/UA——PDF/Universal Accessibility,ISO 14289。定義一份標記化 PDF 何時真正可及的標準。PDF/UA-1 是 ISO 14289-1;PDF/UA-2 是 ISO 14289-2,建立在 PDF 2.0 基線之上。