本文へ移動
easeweb
ご相談
トピックを検索

キーボードでは署名できない手書きの署名欄

フォームの署名欄が手書き用のパッドしかないため、マウスや指、スタイラスで書けない人は署名できず、フォームも送信できない

WCAG 2.2
SC 2.1.3AAA
必須とする規格
Section 508、EN 301 549、JIS X 8341-3 では必須ではない
問題あり new SignaturePad(canvas)
アクセシビリティの問題を示した図: 手の操作:マウスなしでどう署名する?
01

問題

キーボード、スイッチ、音声操作、スクリーンリーダーの利用者が、手書きのパッドしかない署名欄に署名できず、レンタル契約を送信できない

02

試してみる

キーボードだけで、レンタル契約に署名して送信してみましょう

名前を入力してからTabキーを押してください。手で書かずに署名する方法はありますか?次に修正を適用して、もう一度試してください。パッドには、マウスや指で今までどおり書けます。

問題あり 修正できますか?

問題手書きのパッドだけ

署名

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

名前を入力して署名できるようにする

修正前
問題手書きのパッドだけ
<form class="agreement">  <p class="field">    <label for="name">氏名</label>    <input id="name" name="name" autocomplete="name" required>  </p>  <div class="signature">    <p>署名</p>    <canvas id="pad" width="400" height="140"></canvas>    <button type="button" id="clear">書き直す</button>    <input type="hidden" name="signature" id="signature-data">    <p id="signature-error" class="error" hidden>枠内に署名してください。</p>  </div>  <button type="submit">署名して送信</button></form>
問題点3点

氏名の欄とボタンには問題がありません。問題は署名にあります。

  • Tabキーは「氏名」から「書き直す」に移動します。パッドには一度も止まらず、どのキーでも描けません。
  • 隠しフィールドには描いた内容からしか値が入らないため、ほかに署名する方法がありません。
  • 何か描くまで「署名して送信」はフォームを受け付けないため、キーボードの利用者はまったく送信できません。
修正後

入力か手書きか

<form class="agreement">  <p class="field">    <label for="name">氏名</label>    <input id="name" name="name" autocomplete="name" required>  </p>  <fieldset class="signature">    <legend>署名</legend>    <label for="typed-signature">署名として氏名を入力</label>    <input id="typed-signature" name="typed-signature" autocomplete="name">    <p>または手書きで署名</p>    <canvas id="pad" width="400" height="140"></canvas>    <button type="button" id="clear">手書きを消す</button>    <input type="hidden" name="signature" id="signature-data">    <p id="signature-error" class="error" hidden>氏名を入力するか、手書きで署名してください。</p>  </fieldset>  <button type="submit">署名して送信</button></form>
修正の手順5ステップ
  1. 署名を fieldset でまとめ、凡例を「署名」にします。2つの署名方法が1つの質問として読み上げられます。
  2. 先頭に「署名として氏名を入力」というラベル付きの入力欄を置きます。Tabキーで移動でき、スクリーンリーダーはラベルを読み上げ、音声操作でも入力できます。
  3. その後ろに、手で書きたい人のためのパッドを「または手書きで署名」として残します。
  4. どちらか一方があればフォームを受け付けます。描いた内容は、描かれているときだけ読み取ります。
  5. どちらも空のときは、エラーで両方の方法を伝え、入力欄にフォーカスを移します。

これで修正前の例は直り、2.1.3を満たします。入力した名前が同じ役目を果たすため、署名に軌跡が要らなくなります。手書きは、使いたい人のための近道として残ります。

04

修正の確認

4項目、マウス不要

確認方法: キーボード、スクリーンリーダー、音声入力

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。フォームや署名のライブラリーを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。署名をキーボードでも行えるようにする方法を示していますが、入力した名前が契約に対して法的に十分かどうかは判断していません。ドラッグなど、1本の指やポインターで代われないジェスチャーは、ボタンで代われないピンチ・ドラッグ・傾きのジェスチャーで扱っています。キーボード、スイッチ、音声操作、スクリーンリーダーを使う人と一緒に、手続き全体を確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

EaseWebのサービス

修正した問題を、次のリリースで再発させない

このガイドのような修正方法を、コーディングエージェントが従うルールと、CIのチェックに組み込みます。あわせて定期的に、キーボードとスクリーンリーダーで手動の再テストを行います。

サービス内容を見る