Portable Document Format(PDF)は、文書の作成に使用したアプリケーションソフトウェア、ハードウェアおよびオペレーティングシステムや、表示または印刷に使用する出力デバイスに依存せずに文書を表示できるファイル形式である。PDF ファイルは、信頼性が高くデバイスに依存しない方法で、文書内のページの表示を指定する。PDF 仕様は、1993 年に Adobe Systems によって一般公開向けの標準として発表された。2008 年 1 月には、PDF 1.7 が ISO 規格(ISO 32000-1)になった。
アクセシビリティについては、2010 年 11 月に ISO Draft International Standard(DIS)になった PDF/UA(ユニバーサルアクセシビリティ)に規定されている(ISO/DIS 14289-1(PDF/UA Wiki(ISO DIS 14289 - 1)を参照のこと))。PDF/UA は、テクニック(ハウツー)仕様を示すものではなく、よりアクセシブルな PDF を作成するための一連のガイドラインを提供することを目的としたものである。この仕様では、必須のコンポーネントと禁止されているコンポーネントを示すとともに、障害のある人を含め、可能な限り幅広い人々がファイルを利用できるようにすること目的に、それらのコンポーネントを PDF ファイルに含めるか否かを規定する条件について説明している。それらのコンポーネントを PDF ストリームに含めるための機構は、個々の開発者、PDF 作成者または PDF 表示エージェントの裁量に任されている。PDF/UA は、適合するリーダーの動作を規定するルールも指定している。
PDF には、障害のあるユーザーのための文書のアクセシビリティをサポートするいくつかの機能が含まれている。このサポートの核心は、論理構造およびタグ付き PDF を通じて、コンテンツの外観またはレイアウトに依存せずに PDF 文書内のコンテンツの論理的な順序を決定できることにある。アプリケーションでは、階層構造をトラバースして各ノードのコンテンツを表示することにより、文書のコンテンツを抽出して障害のあるユーザーに提示することができる。この理由から、PDF ファイルの作成者は、階層構造を利用して文書内のすべての情報を参照できるようにしなければならない。
PDF の論理構造機能(PDF 1.3 で導入)は、文書のコンテンツに関する構造情報を PDF ファイルに組み込むための機構を提供する。このような情報の例としては、章、見出し、段落、セクションなどの文書の編成や、図、表、脚注などの特殊エレメント情報がある。論理構造機能は拡張可能であり、どのような構造情報を組み込んで、それをどのように表示するかは、PDF ファイルを作成するアプリケーションが選択できる。一方で、PDF ユーザーは作成側の構造上の仕組みを知らなくてもファイル内を移動できる。
PDF の論理構造の基本的な機能は、HTML、SGML、XML などの標準的な文書マークアップ言語と共通している。文書の論理構造は、辞書オブジェクトとしての構造エレメントの階層として表される。他のマークアップ言語の構造エレメントと同様に、PDF の構造エレメントにはコンテンツと属性を持たせることができる。PDF では、HTML、SGMLおよびXMLでのテキストの役割を、レンダリングされた文書コンテンツが担っている。
PDF 文書の論理構造は、視覚的に認識できるコンテンツとは別個に保存され、相互にポインタで結ばれている。このように分けられているため、論理エレメントの順序と階層構造を、文書のページ上のグラフィックオブジェクトの順序と位置から完全に独立して扱うことができる。
文書の論理構造は、構造階層または構造ツリーと呼ばれる、オブジェクトの階層によって記述される。この階層のルートにあるのが、構造ツリールートと呼ばれる辞書オブジェクトであり、文書カタログの StructTreeRoot エントリによって指定することができる。PDF 1.7(ISO 32000-1)の節 14.7.2(「構造階層」(英語))を参照すると、表 322 に構造ツリールート辞書内のエントリが示されている。K エントリは、構造エレメントである、構造ツリールートの直接の子を指定する。
タグ付き PDF(PDF 1.4)は、PDF をスタイル化して使用するためのものであり、PDF の論理構造フレームワーク上に構築される。タグ付き PDF では一連の標準的な構造タイプと属性が定義され、ページのコンテンツ(テキスト、グラフィックおよび画像)を抽出して他の目的に再利用することができる。これは、次のような操作を行うためのツールで使用することを意図している。
単純にテキストとグラフィックを抽出して、他のアプリケーションに貼り付ける。
元のレイアウトとはサイズが異なるページに合わせて、テキストおよび関連するグラフィックを自動的にリフローする。
検索、インデックス付け、スペルチェックなどの目的でテキストを処理する。
文書構造と基本的なスタイル情報を保持しながら、他の一般的なファイル形式(HTML、XML、RTF など)に変換する。
支援技術に依存するユーザーがコンテンツを操作できるようにする。
PDF ファイルはアプリケーションプログラムによって直接作成することも、間接的に他のファイル形式や画像モデルから変換して作成することもできる。さらに、アクセシビリティを確保するために PDF ファイルの検査、確認および修復を行うツールが用意されている。以下の各セクションでは、このような用途で一般的に使用される、代表的なアプリケーションやツールのリストを示す。
ただし、これらのリストは網羅的なものではなく、また特定のアプリケーションやツールを支持するものでもない。これらのリストは、WCAG ワーキンググループが PDF 文書の作成テクニックを検討し公表した時点で、広範に使用されていたツールを例示するにすぎない。あらゆるソフトウェアと同様に、アプリケーションによる PDF アクセシビリティのサポートは、バージョンの違い、特定の PDF 文書の書式要件またはアプリケーションの実際の使用方法によって異なる。つまり、タグなどを適切に作成するには、各種のツールを正しく使用しなければならない。
一般的に、古いツールよりも新しいツールのほうが、優れた機能を提供する。ツールによる PDF のアクセシビリティサポートに関する正式な情報は、そのツールのベンダーから得られる。
多くのアプリケーションが PDF ファイルを直接生成でき、また一部のアプリケーションは直接インポートすることもできる。画像モデルやインタラクティブな文書交換機能を含む、PDF のすべての機能をアプリケーションで利用できるため、この直接的なアプローチが望ましい方法である。これに対して、PDF を直接生成しないアプリケーションでは、PDF 出力が間接的に行われる。間接的な方法としては、主に次の 2 つがある。
Microsoft® Windows® の GDI や Apple Mac OS の QuickDraw などのアプリケーションプログラミングインターフェイス(API)を呼び出すことで、アプリケーションが印刷可能な出力を記述する。プリンタードライバーと呼ばれるソフトウェアコンポーネントがこれらの呼び出しをインターセプトして解釈し、PDF 形式の出力を生成する。
アプリケーションが、印刷可能な出力を他のファイル形式(PostScript、PCL、HPGL、DVI など)で直接生成し、それが別の変換プログラムによって PDF に変換される。
これらの間接的な方法を使用すれば既存のアプリケーションから簡単に PDF 出力が得られるが、この方法によって作成される PDF ファイルでは、文書のセマンティックを明らかにする高度な PDF 画像モデルが十分に活用されない場合がある。この原因は、アプリケーションの API 呼び出しまたは中間物としての出力ファイルで具現化される情報では、目的の結果が低いレベルでしか記述されていないためである。元のアプリケーションで維持されていた高度な情報は失われ、プリンタードライバーや変換装置でその情報を利用することができない。
例えば、プリンタードライバーまたは変換装置では正確な視覚的出力が行われるため、PDF 出力の作成時に、文書のセマンティックに関する情報がまったく送信されないか無視される場合がある。その結果、見出しが正しくタグ付けされなかったり、リンクテキストとリンクオブジェクトが関連付けされなかったりする。ツールを使用して、タグ付けされた完全な出力を生成する方法については、PDF オーサリングツールのベンダーに問い合わせのこと。
Adobe Acrobat の PDFMaker - PDFMaker は Adobe Acrobat に含まれており、Microsoft Office、AutoCAD、Lotus Notes などの多数のビジネスアプリケーションに、コンテンツを元の形式からタグ付き PDF に変換するためのマクロを追加する。
Adobe FrameMaker - Adobe Systems が提供する DTP アプリケーション。タグ付き PDF が直接エクスポートされ、代替テキストによる記述もサポートされている。
Adobe InDesign - Adobe Systems が提供するページレイアウトおよび DTP アプリケーション。タグ付き PDF が直接エクスポートされ、代替テキストによる記述もサポートされている。
Adobe LiveCycle Designer - Adobe Systems が提供する Windows ベースのフォームデザインアプリケーション。タグ付き PDF インタラクティブフォームが直接エクスポートされ、代替テキストによる記述もサポートされている。スタンドアロン、または Acrobat Pro からの起動が可能。
LibreOffice - The Document Foundation が提供するオープンソースのワードプロセッシングソフトウェア。タグ付き PDF をエクスポートできる。
Lotus Symphony Documents - IBM が提供するオープンソースのワードプロセッシングソフトウェア。タグ付き PDF をエクスポートできる。
Microsoft® Word - Microsoft Corporation が提供するワードプロセッシングソフトウェア。XPS または PDF として保存するユーティリティによってタグ付き PDF をエクスポートできる。
OpenOffice.org Writer - Sun Microsystems Inc. が提供するオープンソースのワードプロセッシングソフトウェア。PDF としてエクスポートするユーティリティによってタグ付き PDF をエクスポートできる。
PAW - Netcentric Technologies が提供する Microsoft Office 用の PDF アクセシビリティウィザード。Microsoft® Word のアドインであり、タグ付き PDF 文書を作成できる。PAW は、コンテンツ作成者が Microsoft Word 環境でアクセシビリティテストを実行し、アクセシビリティに関する問題を修正できるツールを備えている。
Xenos Axess™ for Accessible Statements - この PDF ソフトウェアを組織の既存のエンタープライズコンテンツマネジメント(ECM)インフラストラクチャと統合することで、大量の印刷ストリームをキャプチャし、タグ付き PDF に自動的に変換できる。
WordPerfect® Office - Corel が提供するワードプロセッシングソフトウェア。タグ付き PDF 文書の作成、マークアップおよび共有に使用できる。
Microsoft Office 10 - デスクトップオフィスアプリケーションのスイート。タグ付き PDF を作成できる。
注記: タグ付き PDF ファイルの作成がサポートされていないツールがあるため、様々な PDF 作成ツールの中から選択する場合には注意が必要である。
Adobe Acrobat Pro:Adobe Acrobat Pro は、PDF ファイルの作成と編集を行うアプリケーションである。このアプリケーションには、タグパネルを通じた構造ルートのアクセス機能、順序パネルを通じて読み上げ順序を直接操作する機能、組み込みのアクセシビリティチェッカー、PDF 文書のアクセシビリティを評価および修復するグラフィック機構である TouchUp 読み上げ順序ツールなど、PDF ファイルのアクセシビリティを評価および修復するための多数のツールが含まれている。
Commonlook™ Section 508 for Adobe Acrobat:Commonlook Section 508 for Adobe Acrobat は、Netcentric Technologies が提供する Adobe Acrobat Pro 用プラグインである。CommonLook は、画像、テーブル、フォームおよびその他の非テキストオブジェクトに対する適切なタグ付けを含め、アクセシビリティに関する最も一般的な問題の修正を支援する。PDF 作成者は準拠レポートによって、アクセシビリティ上の問題に関する詳細な情報を取得して問題を修正できる。
PAC - PDF Accessibility Checker:PAC は、«Access for all» Foundation が開発し配布している、PDF 文書と PDF フォームのアクセシビリティを評価するための無料のツールである。PAC には、構造化された PDF 文書のプレビューを Web ブラウザーで表示する機能が追加されている。PAC のプレビューでは、PDF 文書に含まれているタグが示され、アクセシブルなエレメントが、支援技術(スクリーンリーダーなど)によって解釈される場合と同様に表される。PAC では、検出されたアクセシビリティエラーがリストされたアクセシビリティレポートも提供される。レポート内のリンクをクリックすると、文書内で最も可能性が高いエラー原因が表示される。
aDesigner - Eclipse Foundation が提供する障害シミュレーター。視覚に障害のあるユーザーにとってアクセシブルで使いやすいコンテンツを設計することができる。
inspect32 - Microsoft Windows Software Development Kit(SDK)に含まれており、開発者やテスト担当者が UI コンポーネントのアクセシブルプロパティを調べることができる。
PDDOMView - Acrobat_Accessibility_9.1.zip 内にあり、Accessibility API Reference 文書で説明されている、アクセシビリティインターフェイスの Windows クライアントが使用できるファイルが含まれている。
UISpy - Microsoft Windows Software Development Kit(SDK)に含まれており、開発者やテスト担当者がアプリケーションのユーザーインターフェイス(UI)エレメントを表示し、操作することができる。
アクセシビリティがサポートされている PDF ユーザーエージェントには次のものがある。
Adobe Acrobat Pro - Adobe Systems が提供する PDF オーサリングツール、エディターおよびビューアー。Windows プラットフォームの MSAA デバイスと互換性がある。テキスト読み上げ(Read Out Loud)、ハイコントラストディスプレイ、大型文字ディスプレイのリフロー、自動スクロール、アクセシビリティのフルチェック、アクセシビリティのクイックチェック、TouchUp 読み上げ順序ツール、アクセシビリティセットアップアシスタントなど、多数のアクセシビリティ機能が組み込まれている。
Adobe Reader – Adobe Systems が無料で配布している PDF ビューアー。Windows プラットフォームの MSAA デバイスと互換性がある。テキスト読み上げ(Read Out Loud)、ハイコントラストディスプレイ、大型文字ディスプレイのリフロー、自動スクロール、アクセシビリティのクイックチェック、アクセシビリティセットアップアシスタントなど、多数のアクセシビリティ機能が組み込まれている。
Kurzweil 3000™ - Kurzweil Educational Systems® が提供する、読み書きおよび学習のための総合的なソフトウェアソリューション。テキスト読み上げ機能によって PDF ファイルが読み上げられる。
Adobe は、PDF ファイルのコンテンツをスクリーンリーダーなどの支援技術で利用できる方法を提供している。
Microsoft® Windows® オペレーティングシステムでは、Acrobat および Adobe Reader は、PDF コンテンツを Component Object Model(COM)オブジェクトとしてエクスポートする。スクリーンリーダーなどのアクセシビリティアプリケーションは、Acrobat または Adobe Reader とのインターフェイスを次の 2 つの方法でとることができる。
Acrobat または Adobe Reader でエクスポートされた MSAA オブジェクトを使用して、Microsoft Active Accessibility(MSAA)を通じてアクセスする。
Document Object Model(DOM)と呼ばれる PDF 文書の内部構造を参照できる、エクスポートされた COM オブジェクトを通じて直接アクセスする。
UNIX® プラットフォームでは、Adobe Reader は Gnome アクセシビリティアーキテクチャをサポートしている。C ベースのアクセシビリティツールキット(ATK)インターフェイスを利用できる。
DOM と MSAA の両モデルは関連しており、開発者はいずれかまたは両方を使用できる。Acrobat では、PDF ファイルウィンドウ内で発生する注目すべきイベントに関する通知が、アクセシビリティクライアントに対して発行される。またアクセシビリティクライアントからの要求に対する応答が行われる。Acrobat および Reader の最新バージョンでは、アクセシビリティインターフェイスに対するサポートが強化されている。
Acrobat/Reader 5.0 以降では MSAA インターフェイスがサポートされている。
Acrobat/Reader 6.0 以降では、PDF DOM を表すダイレクト COM オブジェクトを通じて、基盤になっている PDF 構造に関する情報を参照できる。DOM アクセシビリティインターフェイスでは、より広範なアクセスが可能になっている。
Acrobat/Reader 7.0 以降では、ATK および拡張 DOM サポートを利用できる。
Linux®、Solaris™、AIX® および HP-UX バージョンの Adobe Reader では、C ベースの ATK インターフェイスが実装されているため、スクリーンリーダー、スクリーン拡大鏡、オンスクリーンキーボードを使用して、アクセシブルなアプリケーションについて Accessibility Technology - Service Providers Interface(AT-SPI)レジストリに対するクエリを行うことができる。
DOM が拡張されたことで、カーソル、選択およびフォーカスのサポートが強化され、新しいインターフェイスである IPDDomDocument、ISelectTextおよびIPDDomNodeExt が提供されている。
JAWS 12 for Windows - Freedom Scientific が提供するスクリーンリーダー。PDF のサポートは JAWS バージョン 4 から開始されている。
MAGic 11 - Freedom Scientific が提供するスクリーン拡大鏡。
NVDA 2011.1 - NonVisual Desktop Access: NV Access が配布するオープンソースのスクリーンリーダー。NVDA では、合成音声と Braille を通じたフィードバックによって、全盲または視覚に障害のある人が Windows オペレーティングシステムや多数のサードパーティアプリケーションにアクセスして操作できる。
Supernova Access Suite 12.02 – Dolphin が提供する、拡大表示、音声、Braille サポートを利用できるフルスクリーンのリーダー。PDF のサポートは HAL バージョン 5 から開始されている。
System Access To Go - Serotek Corporation が提供するスクリーンリーダー。
VoiceOver - Mac OS X v10.6 Snow Leopard 用のスクリーンリーダー。
Window-Eyes 7.2 - GW Micro が提供するスクリーンリーダー。Window-Eyes は、Window-Eyes 4.2 で PDF ファイルのサポートを最初に提供したスクリーンリーダーである。
ZoomText 9.1 - Ai Squared が提供するスクリーン拡大鏡およびスクリーンリーダー。Adobe Acrobat および Reader がサポートされている。
AppReader と DocReader の両方を使用することで PDF 文書の表示が可能(特別な設定は不要)
すべての Windows オペレーティングシステムで PDF 文書の表示が可能(特別な設定は不要)
AppReader および DocReader は Adobe Reader からすぐに起動可能
PDF 文書を高い精度でページングの遅延なく表示可能
Internet Explorer で PDF 文書を表示可能(Adobe Reader プラグインを使用)
特別な Adobe Reader 設定がなくても表示の最適化が可能
日本語訳における注記:
この文書の正式版は、W3Cサイトで公開されている英語の文書であり、この日本語訳には誤訳が含まれていることもありえます。なお、文中にある「日本語訳における注記」は、W3Cの原文にはないものであり、日本語訳監修者が追記したものです。