Contact Form 7 4.5

デフォルトのコンタクトフォームテンプレートが8年ぶりに変更されました。主な変更点は label 要素の追加です。

label 要素を使ってフォームコントロールをラベル付けすることがアクセシビリティのガイドラインで推奨されています。以前のバージョンでは、デフォルトのテンプレートでは label 要素を使っておらず、そのため、フォームをアクセシブルにしたいなら自分で追加する必要がありました。

2008年より以前にリリースされたバージョンでは label 要素がデフォルトテンプレートで使われていたのですが、ある理由があって廃止されました。


もし label 要素がデフォルトテンプレートで使われていたとすると、ユーザーはそれに倣い、自分が追加したフィールドにも label 要素を使おうとするでしょう。そのこと自体は何の問題もありませんが、しばしばこれが重大なミスを導きました。

label 要素まわりで見られるありがちなミスを実演するために、次の行をあなたのコンタクトフォームに追加してみてください:

<label>[checkbox your-country "中国" "インド" "サンマリノ"]</label>

正しく見えますか? では2番目か3番目の項目のラベル(“インド” もしくは “サンマリノ” と書かれたテキスト)をクリックしてみてください。チェックボックスにチェックを入れることができますか? できませんよね。これはまるっきり壊れているんです。

こういうことが起こるのは単一の label 要素内に複数のフォームコントロールを置いたためです。一つの label 要素は一つのフォームコントロールに対応していなければなりません。前述のフォームタグ ([checkbox your-country "中国" "インド" "サンマリノ"]) は実際には3個の入力フィールドに置換されるので、マークアップとして正しくないものになります。

チェックボックスやラジオボタンのラベル付けには、Contact Form 7 は use_label_element オプションを用意しています。label 要素の代わりにこちらを使ってください。

デフォルトのコンタクトフォームテンプレートで label 要素を使うことはこのような問題を誘発させることにもなるため、一旦は廃止されました。しかしながら、ユーザーに正しいラベル付けを促すべきだということもまた、疑いのないことでしょう。

このような状況の打開策として、Contact Form 7 4.5 はその設定検証ツールに新たなテスト項目を導入します。一つの label 要素の中に2個以上のフォームコントロールを挿入すると、誤設定を示すアラートが表示されます。

この改善は WordCamp Europe 2016 コントリビューター・デーでの WordPress アクセシビリティチームとの議論の結果として作られました。

必要バージョン: WordPress 4.4 以上
テスト済み: WordPress 4.6 まで

» WordPress.org から Contact Form 7 プラグインをダウンロード

変更点

  • デフォルトコンタクトフォームテンプレートの改定。
  • reCAPTCHA: フォーム送信後に grecaptcha.reset() を実行。
  • autocomplete 属性の操作のために、フォームタグの autocomplete オプションと wpcf7_form_autocomplete フィルターフックを導入。
  • 設定検証の刷新。サードパーティーのコードから介入可能にするため wpcf7_config_validator_validate アクションフックを導入。
  • 文字数カウントのフォームタグのバグが修正された。
  • 言語パック: デンマーク語 (da_DK)、ポーランド語 (pl_PL)、チェコ語 (cs_CZ) の言語ファイルがプラグインのパッケージから削除された。