パンくずナビのマークアップ論点列挙
この話題何度目だよと思ったり思わなかったりもするのですが、そういえば本ブログで思考をまとめたことはなかったし、未だに最適解が定まっていないものでもあるし、あと一時期は食傷気味だったのが最近は誰もこの議論しないので少し寂しい思いもあり(笑)、そして WCAG 方面でちょっとした動きがありそうな予感もあり、改めて書いてみる次第。
あくまで既存の論点を列挙するのみで、とくに解はありません。
リストか否か
-
HTML 仕様の Common idioms
では段落(
<p>
要素)が推奨されている -
W3C HTML 5.1 (WD) 時代、リストが推奨されることになり議論を呼んだことがある
-
2013年5月28日版
以前は段落
-
2013年10月29日版
以降はリスト(2013年9月頃に HTML 5.1 Nightly で変更された当初は
<ol>
要素だったがすぐに<ul>
要素に再変更された) - 余談だがリストのバージョンで
class
でなくid
が使われているのが時代を感じる(CSS セレクター用途にid
を使う文化は2014年には既に廃れていた気もするが)
-
2013年5月28日版
-
これに関連して「パンくずリスト」の呼び方を嫌う考え(
kidachi.kazuhi.to
)もある-
Wikipedia の日本語ページ
は“パンくずリスト”
- でも Wikipedia の英語ページ(
en.wikipedia.org
)は list なんてどこにも書いていない - MDN の日本語版はページによってパンくずナビゲーション(
developer.mozilla.org
)だったりパンくずリスト(developer.mozilla.org
)だったり
-
Wikipedia の日本語ページ
-
多くのサイトでは近接してグローバルナビがあるので、パンくずナビをリストにするとリストが連続してしまう
-
スクリーンリーダーなどの支援技術に対しては見出しや
aria-label
属性等で適切な名前付けを行えば良い
- 一方で制作者スタイルシートが適用されない環境ではかなり微妙
-
スクリーンリーダーなどの支援技術に対しては見出しや
-
そもそもグローバルナビやローカルナビと異なり、パンくずナビは横並びであることに意味があるのでは
- 制作者スタイルシートが適用されない限り、見た目で意図が伝わらないマークアップは適切とは言えないのではないだろうか
- HTML は HTML 単体でユーザーに意図が伝わる必要がある(持論)
- なので私はリスト使わない派
リストにするなら <ol>
, <ul>
, <dl>
のどれなのか
-
ARIA Authoring Practices Guide のサンプル
は
<ol>
要素 -
WCAG 2.2 Techniques の G65
は
<ul>
要素 - 前述のとおり W3C HTML 仕様は
<ul>
要素だった -
<dl>
要素を使った例👉日本郵政(www.japanpost.jp
)の下層ページ- セパレーターを画像にしたうえで、その代替テキストを
alt="の中の"
としていることから分かるように古い時代に設計されたものであることに留意
- セパレーターを画像にしたうえで、その代替テキストを
class
属性値は breadcrumb か topic-path か
-
HTML の
class
属性値はプレゼンテーションな記述よりもコンテンツの性質を記述することが仕様で推奨されているので、この議論から逃れることはできない
- たとえ Tailwind CSS のようなユーティリティーファーストなフレームワークを採用したとしてもセマンティックな値を省略して良い理由にはならない
挿入位置
- グローバルナビゲーションの下に置かれるケースが多い
-
コンテンツエリアの最下部(ページフッターの上)に配置されるケースもある
- コンテンツを読み終わってから上位コンテンツにナビゲーションするのが自然な流れとの理屈(たぶん)
- マークアップ的には
<header>
(あるいは<footer>
) 内? それとも<main>
内? -
いや
<head>
だろう -
最近になって WCAG Techniques で挿入位置のベストプラクティスを明記しようとする動き
がある