HTML 属性: readonly

readonly は論理属性で、存在する場合、要素が変更可能ではなくなり、ユーザーがそのコントロールを編集できなくなります。

試してみましょう

<label for="firstName">名前:</label>
<input id="firstName" name="firstName" type="text" value="アダム" />

<label for="age">年齢:</label>
<input id="age" name="age" type="number" value="42" readonly />

<label for="hobbies">趣味:</label>
<textarea id="hobbies" name="hobbies" readonly>野球</textarea>
label {
  display: block;
  margin-top: 1em;
}

input:read-only,
textarea:read-only {
  background-color: silver;
}

概要

readonly 属性が input 要素に指定された場合、その入力欄をユーザーが編集できないので、その要素は制約検証が行われません。

readonly 属性は、次のようなテキストのフォームコントロールで対応してます。

この属性は、 <select><button> を含む他のすべての要素には影響しません。また、次のようなテキスト以外の入力要素にも適用されません。

readonly 属性に対応しており、この属性が設定されていない入力フィールドは、 :read-write 擬似クラスに一致します。それ以外の要素はすべて、 :read-only 擬似クラスに一致します。

属性の相互作用

disabledreadonly の違いは、読み取り専用 (read-only) のコントロールは機能し、フォーカスを設定することもできるのに対し、無効な (disabled) コントロールはフォーカスを受け取ることができず、フォームで送信されず、一般に有効化されるまでコントロールとしては機能しません。

読み取り専用のフィールドはユーザーの操作で値を変更することはできないので、 requiredreadonly 属性が一緒に指定されている入力欄では効果がありません。

readonly が付いた値を動的に変更できる唯一の方法は、スクリプトを通して行うことです。

メモ: required 属性は readonly 属性が指定された入力欄では許可されていません。

ユーザビリティ

ブラウザーは readonly 属性を表示します。

制約検証

要素が読み取り専用である場合、要素の値をユーザーによって更新することができないため、制約検証は行われません。

HTML

html
<div class="group">
  <input type="text" value="何らかの値" readonly="readonly" id="text" />
  <label for="text">テキストボックス</label>
</div>
<div class="group">
  <input type="date" value="2020-01-01" readonly="readonly" id="date" />
  <label for="date">日付</label>
</div>
<div class="group">
  <input type="email" value="何らかの値" readonly="readonly" id="email" />
  <label for="email">メールドレス</label>
</div>
<div class="group">
  <input type="password" value="何らかの値" readonly="readonly" id="pwd" />
  <label for="pwd">パスワード</label>
</div>
<div class="group">
  <textarea readonly="readonly" id="ta">何らかの値</textarea>
  <label for="ta">メッセージ</label>
</div>

結果

仕様書

Specification
HTML
# attr-input-readonly
HTML
# attr-textarea-readonly

ブラウザーの互換性

html.elements.input.readonly

html.elements.textarea.readonly

関連情報