以下のことをしたいのですが、意味的に正しいでしょうか?
<button>
<div></div>
<div></div>
</button>
現在の HTML5 ドラフトでは、それは正しくないとされています。
http://www.w3.org/TR/2012/WD-html5-20120329/the-button-element.html#the-button-elementには、<button>
フレージング コンテンツのみを含める必要があると記載されています。フレージング コンテンツは、 を含む<span>
が含まないと定義され<div>
ます。
いいえ、有効ではありません。W3C で確認できます。
http://validator.w3.org/#validate_by_input+with_options
これを直接入力に貼り付けてから検証します。
<!DOCTYPE html>
<button>
<div></div>
<div></div>
</button>
W3C でテストする場合は、UTF8 エンコーディングを設定し、HTML5 を選択します。
div 要素と span 要素にはセマンティクスがありません。それらは一般的なブロック要素とインライン要素です。それらを使用するときにセマンティクスについて自問する必要がある唯一の質問は、このコンテンツに対してより良いセマンティクスを持つ要素はありますか? ということです。.
とはいえ、セマンティクスとは関係のない理由で、ボタン内に div を配置するのは正しくありません。仕様では、ボタンのコンテンツ モデルについて次のように述べています。
フレージング コンテンツ。ただし、インタラクティブ コンテンツの子孫があってはなりません。
… span はフレージング コンテンツですが、div はそうではありません。