<section>
のと<div>
の違いは何ですかHTML
?
どちらの場合もセクションを定義しているのではないですか?
ベストアンサー1
<section>
内部のコンテンツがグループ化されている (つまり、単一のテーマに関連している) ことを意味し、ページのアウトラインのエントリとして表示されます。
<div>
一方、 は、、および属性に見られる意味以外には、いかなる意味も伝えません。class
lang
title
つまり、 を使用しても<div>
HTML 内のセクションは定義されません。
仕様より:
<section>
要素
<section>
は、ドキュメントまたはアプリケーションの一般的なセクションを表します。この場合のセクションとは、コンテンツのテーマ別のグループです。各セクションはsection
、通常、要素の子として見出し (h1-h6 要素) を含めることによって識別されます<section>
。セクションの例としては、章、タブ付きダイアログ ボックス内のさまざまなタブ付きページ、論文の番号付きセクションなどが挙げられます。Web サイトのホームページは、紹介、ニュース項目、連絡先情報のセクションに分割できます。
...
要素
<section>
は汎用コンテナ要素ではありません。要素がスタイル設定の目的またはスクリプトの利便性のためだけに必要である場合、作成者は<div>
代わりに 要素を使用することをお勧めします。一般的なルールとして、<section>
要素は、要素の内容がドキュメントのアウトラインに明示的にリストされる場合にのみ適切です。
(https://www.w3.org/TR/html/sections.html#the-section-element)
<div>
要素
<div>
には特別な意味はまったくありません。これはその子を表します。class
、lang
、title
属性と一緒に使用して、連続する要素のグループに共通するセマンティクスをマークアップできます。注:
<div>
作成者は、他の要素が適切でない場合の最後の手段として、 要素を検討することを強くお勧めします。<div>
要素の代わりにより適切な要素を使用すると、読者にとってのアクセシビリティが向上し、作成者にとっては保守が容易になります。
(https://www.w3.org/TR/html/grouping-content.html#the-div-element)
セクションは、支援技術のランドマークナビゲーションに最も関連しています。ドキュメントのアウトラインまたはランドマークリストに表示するには、またはaria-label
を使用して割り当てられる名前が必要です。aria-labelledby
title
<section aria-labelledby="s3-h2">
<h2 id="s3-h2">Introduction</h2>
…
たとえば、Mac の VoiceOver では、そのセクションに直接移動するためのアウトラインを提供できます。