1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
---
title: '<section>: 汎用セクション要素'
slug: Web/HTML/Element/section
tags:
- Element
- HTML
- HTML sections
- HTML:フローコンテンツ
- HTML:区分コンテンツ
- HTML:知覚可能コンテンツ
- Reference
- Section
- Web
translation_of: Web/HTML/Element/section
---
<div>{{HTMLRef}}</div>
<p><span class="seoSummary"><strong>HTML の <code><section></code> 要素</strong>は、文書の自立した一般的なセクション (区間) を表します。そのセクションを表現するより意味的に具体的な要素がない場合に使用します。</span>少数の例外を除いて、セクションには見出しを置いてください。</p>
<div>{{EmbedInteractiveExample("pages/tabbed/section.html", "tabbed-standard")}}</div>
<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力していただけるのであれば、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div>
<table class="properties">
<tbody>
<tr>
<th scope="row"><a href="/ja/docs/Web/Guide/HTML/Content_categories">コンテンツカテゴリー</a></th>
<td><a href="/ja/docs/Web/Guide/HTML/Content_categories#flow_content">フローコンテンツ</a>, <a href="/ja/docs/Web/Guide/HTML/Content_categories#sectioning_content">区分コンテンツ</a>, <a href="/ja/docs/Web/Guide/HTML/Content_categories#palpable_content">知覚可能コンテンツ</a></td>
</tr>
<tr>
<th scope="row">許可されている内容</th>
<td><a href="/ja/docs/Web/Guide/HTML/Content_categories#flow_content">フローコンテンツ</a></td>
</tr>
<tr>
<th scope="row">タグの省略</th>
<td>{{no_tag_omission}}</td>
</tr>
<tr>
<th scope="row">許可されている親要素</th>
<td><a href="/ja/docs/Web/Guide/HTML/Content_categories#flow_content">フローコンテンツ</a>を受け入れるすべての要素。ただし、 <code><section></code> 要素は {{HTMLElement("address")}} 要素の子孫要素として配置してはならない。</td>
</tr>
<tr>
<th scope="row">暗黙の ARIA ロール</th>
<td>要素に<a href="https://developer.paciellogroup.com/blog/2017/04/what-is-an-accessible-name/">アクセシブル名</a>がある場合は<code><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Region_role">region</a></code>、それ以外の場合は<a href="https://www.w3.org/TR/html-aria/#dfn-no-corresponding-role">対応するロールなし</a></td>
</tr>
<tr>
<th scope="row">許可されている ARIA ロール</th>
<td>{{ARIARole("alert")}}, {{ARIARole("alertdialog")}}, {{ARIARole("application")}}, {{ARIARole("banner")}}, {{ARIARole("complementary")}}, {{ARIARole("contentinfo")}}, {{ARIARole("dialog")}}, {{ARIARole("document")}}, {{ARIARole("feed")}}, {{ARIARole("log")}}, {{ARIARole("main")}}, {{ARIARole("marquee")}}, {{ARIARole("navigation")}}, {{ARIARole("none")}}, {{ARIARole("note")}}, {{ARIARole("presentation")}}, {{ARIARole("search")}}, {{ARIARole("status")}}, {{ARIARole("tabpanel")}}</td>
</tr>
<tr>
<th scope="row">DOM インターフェイス</th>
<td>{{domxref("HTMLElement")}}</td>
</tr>
</tbody>
</table>
<h2 id="Attributes">属性</h2>
<p>この要素には<a href="/ja/docs/Web/HTML/Global_attributes" rel="internal">グローバル属性</a>のみがあります。</p>
<h2 id="Usage_notes">使用上の注意</h2>
<p>前述のように、 <code><section></code> は汎用的な区分要素ですので、それを表現するためのより具体的な要素がない場合にのみ使用してください。例えば、ナビゲーションメニューは {{htmlelement("nav")}} 要素で囲むべきですが、検索結果のリストや地図表示とそのコントロールなどは特定の要素を持たないので、 <code><section></code> の中に入れることができます。</p>
<p>また、次のようなことも考慮してください。</p>
<ul>
<li>この要素の内容が単独の、自立した記事として配信されて意味のある不可分の単位のコンテンツ (例えば、ブログ投稿やブログのコメント、新聞記事など) を表す場合は、 {{HTMLElement("article")}} 要素を使用したほうがいいでしょう。</li>
<li>内容が、メインコンテンツと一緒に機能する有用な付帯情報を表しているものの、メインコンテンツの一部ではない場合 (関連リンクや著者の経歴など) は、 {{HTMLElement("aside")}} を使用してください。</li>
<li>内容が文書のメインコンテンツを表す場合は、 {{HTMLElement("main")}} を使用してください。</li>
<li>スタイル付けのためのラッパーとしてのみ使用する場合は、 {{HTMLElement("div")}} を使用してください。大まかに言うと、 <code><section></code> は文書のアウトラインの中に論理的に現れるべきです。</li>
</ul>
<p>繰り返しになりますが、それぞれの <code><section></code> はできるだけ、特に見出し
({{HTMLElement('h1')}}-{{HTMLElement('h6')}} 要素) を <code><section></code> の子要素に含めて識別できるようにするべきです。見出しのない <code><section></code> の例については以下を参照してください。</p>
<h2 id="Example">例</h2>
<h3 id="simple_usage_example">単純な使い方の例</h3>
<h3 id="Before">導入前</h3>
<pre class="brush: html"><div>
<h2>見出し</h2>
<p>素晴らしいコンテンツの数々</p>
</div></pre>
<h3 id="After">導入後</h3>
<pre class="brush: html"><section>
<h2>見出し</h2>
<p>素晴らしいコンテンツの数々</p>
</section>
</pre>
<h3 id="using_a_section_without_a_heading">見出しのないセクションの使用</h3>
<p><code><section></code> が見出しなしで使用されている状況は、伝統的な文書構造よりも、ウェブアプリケーションや UI のセクションでよく見られます。文書内では、コンテンツの内容を示す見出しのない独立したセクションがあっても、実際には何の意味もありません。このような見出しは、すべての読者にとって便利ですが、特に画面リーダーのような支援技術のユーザーにとっては便利であり、また、 SEO にも有効です。</p>
<p>しかし、二次的なナビゲーションの仕組みを考えてみましょう。グローバルナビゲーションがすでに <code><nav></code> 要素で囲まれている場合、 <code><section></code> の中に前へ/次へのメニューを入れることも考えられます。</p>
<pre class="brush: html"><section>
<a href="#">前の記事</a>
<a href="#">次の記事</a>
</section>
</pre>
<p>また、アプリを制御するためのボタンバーのようなものはどうでしょうか。必ずしも見出しが必要ではないかもしれませんが、それでも文書の明確なセクションであることに変わりはありません。</p>
<pre class="brush: html"><section>
<button class="reply">返信</button>
<button class="reply-all">全員に返信</button>
<button class="fwd">転送</button>
<button class="del">削除</button>
</section>
</pre>
<p>見出しのないセクションは、文書のアウトラインには表示されません。このような HTML ブロックを文書のアウトラインの中に強制的に入れたいが、視覚的な出力には何の影響も与えたくない場合は、非表示にした見出しを入れることができます。</p>
<pre class="brush: html"><section>
<h2 class="hidden">コントロール</h2>
<button class="reply">返信</button>
<button class="reply-all">全員に返信</button>
<button class="fwd">転送</button>
<button class="del">削除</button>
</section>
</pre>
<p>支援技術や画面リーダーに適した CSS を使って非表示にするには、次のようにします。</p>
<pre class="brush: html">.hidden {
position: absolute;
top: -9999px;
left: -9999px;
}
</pre>
<p>コンテンツによっては、見出しを入れることで SEO 施策にもなるので、選択肢の一つとして検討してみてはいかがでしょうか。</p>
<h2 id="Specifications">仕様書</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'sections.html#the-section-element', '<section>')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('HTML5.1', 'sections.html#the-section-element', '<section>')}}</td>
<td>{{Spec2('HTML5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'sections.html#the-section-element', '<section>')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
<p>{{Compat("html.elements.section")}}</p>
<h2 id="See_also">関連情報</h2>
<ul>
<li>その他の区分化関連要素: {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}}</li>
<li><a href="/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines">HTML のセクションとアウトラインの使用</a></li>
<li><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Region_role">ARIA: Region ロール</a></li>
<li><a href="https://www.smashingmagazine.com/2020/01/html5-article-section/">Why You Should Choose HTML5 article Over section</a>, by Bruce Lawson</li>
</ul>
|