PDF フォームで必須項目のフォームコントロールを示す

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.1 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.1 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

フォームを持つタグ付き PDF 文書

これは、次の達成基準に関連する達成方法である:

解説

この達成方法は、PDF フォームで入力する必要のあるフィールドが入力されていないことを利用者に通知することを目的としている。必須フィールドは、フォームフィールドの辞書の /Ff エントリを使用して実装する PDF 1.7 (ISO 32000-1) の節 12.7 (Interactive Forms) の Table 220 を参照のこと。これは通常、PDF のオーサリングツールを使用して行う。

エラーが見つかった場合、テキストに含まれているエラーの性質について説明するアラートダイアログボックスが表示される。これは作成者が作成したスクリプトを通じて指定できる (例えば、SCR18: クライアントサイドのバリデーション及びアラートを提供する を参照のこと)。Adobe Acrobat Pro や LiveCycle などのユーザエージェントでは、(以下の事例で説明されているように) 自動的にアラートを表示できる。

注記: 利用者がアラートダイアログボックスを閉じた後に、エラーの発生したフィールドにキーボードのフォーカスが移動するようにスクリプトを記述すると役立つ。ただし利用者によっては、アラートが表示される直前にフォーカスされていたコントロールにフォーカスが残ることを想定する場合がある。作成者は、利用者が想定するとおりにフォーカスを移動するよう注意を払う必要がある。例えば、必須の電話番号が入力されていないことを示すアラートが表示された場合に、アラートを閉じると電話番号フィールドにフォーカスが置かれるようにすることは、利用者にとって役立ち、想定される動作であると考えられる。ただし場合によっては、これが不可能なことがある。ページ上で複数の入力エラーが発生した場合には、エラーを通知するために別のアプローチをとる必要がある (例えば、Adobe: JavaScript for Acrobat を参照のこと)。

利用者が必ずエラーが発生したことに気付き、何が間違っているのかを判断し、修正できるようにすることは、ソフトウェアのユーザビリティとアクセシビリティにとって重要である。この目的を達成することは、すべての利用者が簡単かつ確実にトランザクションを完了できるようにするのに役立つ。

必須フォームコントロールのラベル

エラーが発生する可能性があることを利用者が認識することも重要である。この情報は、「日付 (必須)」のようなラベルや、赤いアスタリスクによって必須フィールドを示すなどの方法で組み込むことができる (必須フィールドがある各フォームに説明文が必ず表示されるようにする (例: "* = 必須フィールド"))。

事例

事例 1: Adobe Acrobat 9 Pro を使用して PDF フォーム内に必須フィールドを作成する

この事例は Adobe Acrobat Pro の場合を示している。同様の機能を実行するソフトウェアツールは他にも存在する。他のソフトウェアツールのリストについては、「」を参照のこと。

訳注:

上記「」に該当する記述が、WCAG 2.1 達成方法集の原文では削除されている。WCAG 2.0 達成方法集においては、PDF テクノロジーノートの中に「アクセシビリティがサポートされている PDF オーサリングツール」というセクションがある。

  1. フィールドのコンテキストメニューから[プロパティ]ダイアログボックスを選択する。
  2. フィールドが必須である場合は、[必須]チェックボックスを選択する。このチェックボックスによって、選択されたフォームフィールドへの入力が利用者に強制される。必須フィールドが空白のまま利用者がフォームを送信しようとすると、エラーメッセージが表示され、空白の必須フォームフィールドが強調表示される。
図1. フォームフィールドの [プロパティー] ダイアログボックス。[必須] チェックボックスが選択されている。

この事例のサンプルとして、Acrobat で必須フィールドを作成したサンプル (PDF ファイル) がある。

事例 2: Adobe LiveCycle Designer ES 8.2.1 を使用して PDF フォーム内に必須フィールドを作成する

この事例は Adobe LiveCycle Designer の場合を示している。同様の機能を実行するソフトウェアツールは他にも存在する。他のソフトウェアツールのリストについては、「」を参照のこと。

訳注:

上記「」に該当する記述が、WCAG 2.1 達成方法集の原文では削除されている。WCAG 2.0 達成方法集においては、PDF テクノロジーノートの中に「アクセシビリティがサポートされている PDF オーサリングツール」というセクションがある。

  1. フォームコントロールのコンテキストメニューから、パレット > オブジェクトを選択する。
  2. [種類]プルダウンメニューから[利用者定義 - 必須]を選択する。
  3. [空白のメッセージ]フィールドにエラーメッセージを入力する。このメッセージは、利用者が必須フィールドに値を入力せずにフォームを送信しようとした場合に表示される。

必須フィールドが空白のまま利用者がフォームを送信しようとすると、[空白のメッセージ]に入力されたテキストが表示され、空白の必須フォームフィールドが強調表示される。

次の画像は、「必須」を選択した Adobe LiveCycle のオブジェクトパレットを示している。

図2. [利用者定義 - 必須] の選択を示す Adobe LiveCycle オブジェクトパレットの画像。

フォームラベルに明示的なテキストを追加して (「(必須)」など)、必須フィールドを示すこともできる。

この事例のサンプルとして、LiveCycle Designer で必須フィールドを作成したサンプル (PDF ファイル) がある。

事例 3: /Tx フィールドタイプおよび Ff フラグを使用して、PDF フォームに必須テキストフィールドを追加する

次のコードフラグメントは、一般的なテキストフィールドのオブジェクト定義で一般的に使用されるコードを示している。テキストフィールドは必須であり、Ff フラグを使用している。これは通常、オーサリングツールを使用して行う。

<< /AP -dict-                                                   
   /DA /Helv  0 Tf 0 g
   /DR -dict-
   /F 0x4
   /FT Tx              % FT key set to Tx for Text Field
   /Ff 0x2             % Ff integer 0x2 value indicates required
   /P -dict-
   /Rect -array-
   /StructParent 0x1
   /Subtype Widget
   /T First            % Partial field name First
   /TU First name (required)  % TU tool tip value serves as short description
   /Type Annot
   /V Pat Jones
>>
...
<Start Stream>
 BT
  /P <</MCID 0 >>BDC
  /CS0 cs 0  scn 
  /TT0 1 Tf
    -0.001 Tc 0.003 Tw 11.04 0 0 11.04 72 709.56 Tm
    [(P)-6(le)-3(as)10(e)-3( )11(P)-6(rin)2(t)-3( Y)8(o)-7(u)2(r N)4(a)11(m)-6(e)]TJ
  0 Tc 0 Tw 9.533 0 Td
  ( )Tj
  -0.004 Tc 0.004 Tw 0.217 0 Td
  [(\()-5(R)-4(e)5(q)-1(u)-1(i)-3(r)-3(e)-6(d)-1(\))]TJ
 EMC
  /P <</MCID 1 >>BDC
  0 Tc 0 Tw 4.283 0 Td
  [( )-2( )]TJ
   EMC
   /ArtifactSpan <</MCID 2 >>BDC
   0.002 Tc -0.002 Tw 0.456 0 Td
  [(__)11(___)11(___)11(___)11(___)11(_)11(____)11(___)11(___)11(__)]TJ
  0 Tc 0 Tw 13.391 0 Td
  ( )Tj
  EMC
 ET
<End Stream>

参考リソース

この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

検証

手順

それぞれの必須のフォームフィールドについて、次の方法によって、必要な情報や説明文が提供されていることを確認する。

  1. フォームコントロールのラベルに必須であることが示されていることを確認する。
  2. フィールドを空白のままにしてフォームを送信すると、エラーについて説明するアラートが表示されることを確認する。
  3. アクセシビリティ API を通じて文書を表示するツールを使用して、必須プロパティが示されていることを確認する。

期待される結果

  • 1.、2. 及び 3. の結果が真である。