アプリで多くのフォームを使用しており、あらゆる種類のケースに共通のマークアップ (および書式設定) スキームを使用したいと考えています。これらのフォームに「読み取り専用」データを含めることができることも重要です。これにより、一部のフォーム コントロールではなく、テキストのみが存在します。
これを解決するために、定義リストを考え、それらをフォーム要素と組み合わせます。
<form>
<fieldset>
<legend>The Legend</legend>
<dl>
<dt><label for="changeable">Label A</label></dt>
<dd><input id="changeable" value="This can be changed"></dd>
<dt>Label B</dt>
<dd>Readonly value</dd>
</dl>
</fieldset>
<fieldset> ... more ... </fieldset>
<menu><input type="submit"> ... other actions ...</menu>
</form>
したがって、大きな利点は、さまざまな種類のデータでマークアップが変わらないことです。意味的にも正しいようです。
ただし、フォーマット上の理由により、各ペアをレイヤーでラップする必要があります。だから私はこのようにすることができます:
<dl>
<div class="wrapper">
<dt><label for="changeable">Label A</label></dt>
<dd><input id="changeable" value="This can be changed"></dd>
</div>
<div class="wrapper">
<dt>Label B</dt>
<dd>Readonly value</dd>
</div>
</dl>
しかし、別のリストを使用して<dl>
、外側のレイヤーとして使用することもできます。ただし、これにより、1 つの項目のみを含む単一のリストが多数作成されますが、マークアップを節約できます。
<dl>
<dt><label for="changeable">Label A</label></dt>
<dd><input id="changeable" value="This can be changed"></dd>
</dl>
<dl>
<dt>Label B</dt>
<dd>Readonly value</dd>
</dl>
問題は、これは理にかなっていて、まだ有効な HTML5 なのかということです。または、編集可能な要素と「読み取り専用」要素を含む混合フォームを表現するためのより良いオプションはありますか? ソリューションが多かれ少なかれ同じレイアウトとマークアップを使用し、それでもセマンティックの観点から理にかなっていることが重要です。