フォーム送信ボタン
Silktideはページ上のフォームを調べ、入力可能なフィールドがあるにもかかわらず送信ボタンがないフォームを報告します。送信ボタンがないと、フォームを送信する方法がない訪問者がいるほか、フォームがいつ動作するのか予測できない訪問者もいます。
重要な理由
目に見える送信ボタンは、訪問者に2つのことを伝えます。フォームの送信方法と、訪問者が操作を選択するまで何も起こらないことです。を使用する人の中には、ボタンを有効にすることによってしかフォームを送信できない人もいます。フィールドでEnterキーを押す方法を誰もが利用できるわけではありません。また、ボタンのないフォームでは、訪問者が入力したり選択を変更したりすると自動的に送信されることがあります。これは予期しないコンテキストの変化であり、作業の途中で突然別のページに移動させられるため、の利用者や認知障害のある人を混乱させる可能性があります。
これはの成功基準3.2.2(入力時)であり、の要件です。最も基本的な適合レベルの一部にあたります。
修正方法
フラグが付いた各フォームに、type="submit"を明示的に指定した送信ボタンを追加します。
<!-- 問題: 意図的に送信する方法がない -->
<form action="\/search">
<input type="text" name="q">
</form>
<!-- 修正: 明示的な送信ボタン -->
<form action="\/search">
<input type="text" name="q">
<button type="submit">検索</button>
</form>
フォームをどこにも送信すべきではない場合(たとえば、結果をリアルタイムで更新し、その動作を通知するフィルターなど)は、検出結果をするか、要素をチェック対象から除外できます。
Silktideによるテスト方法
- ページ上のすべての
<form>要素を検索します。ただし、チェック対象から除外したものは除きます。 - 使用可能なフィールドがないフォーム(ページの読み込み時に、表示される入力欄、テキストエリア、選択欄、ボタンのいずれも含まないフォーム)は無視します。これにより、トラッキング用フォームや、一部のプラットフォームが生成するページ全体を囲む非表示のフォームを除外します。これらを除外しないと誤検出になる可能性があります。
type="submit"を持つ要素がない、残りの各フォームを報告します。
トラブルシューティング
フォームにボタンがあるのにフラグが付いた
Silktideは明示的なtype="submit"を探します。type属性のない<button>は、ほとんどのブラウザーではフォームを送信しますが、このチェックでは認識されません。type="submit"を追加することは、ボタンの動作が明確になるため、いずれにしても適切な方法です。type="button"のボタンがフォームを送信することはありません。
フォームが操作によって表示される
フィールドは、ページが最初に読み込まれた時点で評価されます。ポップアップメニュー内にある場合など、最初は非表示で後から表示されるフォームはテストされないことがあります。そのため、このチェックに合格しても、ページ上のすべてのフォームにボタンがあるとは限りません。