第28回 Railsでフォームを関連付ける - ラベルとフィールドの基本

フォームの構築は一般的なタスクの一つです。Railsが提供する**form_withヘルパーは、このプロセスを簡単かつ効率的にするための強力なツールです。

 

フォームのラベルと入力フィールドを関連付ける理由

アクセシビリティユーザビリティの観点から、フォームのラベルは関連する入力フィールドと関連付けるべきです。ラベルが関連付けられている場合、ユーザーはラベルをクリックするだけで入力フィールドにフォーカスできます。

コード例

ユーザーの名前を入力するシンプルなフォームを示しています。


<%= form_with model: @user do |form| %>
  <div class="field">
    <%= form.label :name %>
    <%= form.text_field :name %>
  </div>
  <!-- 他のフィールドとサブミットボタン -->
<% end %>

このコードでは、**:nameシンボルはform.labelform.text_field**の両方で使用されており、これによりRailsは自動的に両者を関連付けます。

生成されるHTML

上記のコードから生成されるHTMLは以下のようになります。

<div class="field">
  <label for="user_name">Name</label>
  <input type="text" name="user[name]" id="user_name" />
</div>

このHTMLでは、**<label>タグのfor属性が<input>タグのid**属性と一致しています。この一致が重要で、これによりラベルと入力フィールドが関連付けられます。

まとめ

Railsの**form_with**を使用する際には、フォームのフィールドとラベルを適切に関連付けることで、ユーザビリティアクセシビリティを高めることができる。