HTML

The <p> element marks a logical paragraph in the text, signaling to browsers and assistive technologies that a new topic begins at that point.

p 要素

そもそも「段落」とは?

語源
“paragraph” はラテン語 paragraphe(添え書き)に由来し、文章の論理的区切りを指します。
Web における意義
情報を「意味」で区切り、スクリーンリーダーや検索エンジンに文章構造を伝えるための最小単位。
可視化と論理構造の分離
見た目の改行 <br> と違い、<p> は「ここから新しいトピックが始まる」という論理情報を持ちます。

最小構文と書式

HTML

<p>これは最初の段落です。</p>
<p>続く段落は別のアイデアを述べています。</p>

これは最初の段落です。

続く段落は別のアイデアを述べています。

省略形 : HTML Living Standard では 開始タグのみ(いわゆる「省略可能な終了タグ」)も認められますが、可読性とメンテナンス性の観点から 常に <p></p> を閉じる クセを付けましょう。

デフォルトレンダリング

各ブラウザは “block‐level box” として描画し、前後に margin-block: 1em 相当(約 16 px)の余白を付与。

行間はユーザー設定のフォントサイズと line-height に依存(多くは 1.2〜1.4)。

margin‐collapsing : 隣接する段落上下のマージンは 1 つに“重なる”ので、意図した余白が減ったように見える点に注意。

よくある誤用とアンチパターン

見出し目的で <p class="title">
代わりに <h1>-<h6> を使用。スクリーンリーダが文書階層を誤認します。
リスト代わりに複数段落
項目の集合は <ul><li>…</li></ul> が適切。意味付けが欠落すると SEO にも不利。
段落内に入れ子のブロック要素
p は “パルスコンテナ” ではありません。<div><section><article> 等を段落内に含めるとパーサが自動で </p> を挿入し、意図しない階層崩れが起こります。

アクセシビリティ & SEO への影響

スクリーンリーダー読み上げ
多くの SR は段落境界でポーズを付けます。不要な <br> 多用は可読性を損ないます。
汎用 ARIA ロール
role="paragraph" を明示する利点は通常ありません。デフォルトロールを尊重しましょう。
構造化データ
p 自体は schema.org Microdata の対象になりませんが、<section itemprop="articleBody"> などの子要素として意味付けすると SEO 向上に寄与します。

フォームや対話型 UI との連携

WHATWG 仕様では「フォーム中の各フィールドは段落で分けると良い」と示されています。ラベルと入力を同じ <label> 内にラップしつつ、それ自体を <p> でくくると簡潔に整列できます。

モダン CSS と p 要素

Container Queries
段落ごとに container-type: inline-size; を指定すれば、幅に応じ文字サイズや列数を変えられる。
View Transitions API
pview-transition-name を付けてページ間の差分をスムーズにアニメーション。
CSS Anchor Positioning
コメントアイコンを p 行内でアンカー基準に表示するなど、インライン-レベルでも柔軟に配置。

上級者向けメタ情報

削除済み・非推奨属性
align, clear, compact などは HTML 4.01 旧来属性。CSS へ置換が必須。
Shadow DOM と <slot>
Web Components 内で段落をスロットに流し込む場合、元文書の p が 暗黙終了 しやすいので、テンプレート側は div を用い意図しない閉じタグ挿入を回避。
DOM API
ブラウザは HTMLParagraphElement インタフェースを実装。document.createElement('p') で生成可能。型判定は instanceof HTMLParagraphElement
印刷フロー
Paged-media CSS で p { page-break-inside: avoid; } を指定し、段落切断を防止。
国際化 (i18n)
行頭インデントは縦書き・右から左 (RTL) の環境で視覚的に不自然になりやすい。CSS text-indent を環境変数 env(inline-start) と組み合わせ、書字方向を意識。

テスト・検証のためのスニペット

HTML

<p>
	「p 要素」は単なる視覚上の改行ではなく、論理構造を明示するための
	セマンティックなタグです。スクリーンリーダーは段落の境界で
	ポーズを入れます。検索エンジンはここを文章の最小単位と扱います。
</p>

<p>
	Container Queries を併用すると、段落幅が
	45 文字未満になった瞬間自動的に字下げを解除する――
	といった高次な制御も容易です。
</p>

CSS

p {
	line-height: 1.8;
	max-width: 60ch;
	margin-inline: auto;
}
p::first-letter {
	font-size: 2.4em;
	font-weight: 700;
}

「p 要素」は単なる視覚上の改行ではなく、論理構造を明示するための セマンティックなタグです。スクリーンリーダーは段落の境界で ポーズを入れます。検索エンジンはここを文章の最小単位と扱います。

Container Queries を併用すると、段落幅が 45 文字未満になった瞬間自動的に字下げを解除する―― といった高次な制御も容易です。

まとめ

これで p 要素を巡る基本から最新トレンド、内部実装までを網羅しました。日常のコンテンツ作成はもちろん、大規模 UI コンポーネントやアクセシビリティ改善の出発点として活用してください。