要件
下図のように<a>タグを入れ子にしたいです。
少なくとも、HTML Standard(通称HTML5)において、<a> は入れ子に出来ません。
ですので、要件を「<a>を入れ子にせずに、入れ子にしたかのような挙動を実現する方法」に読み替えて、回答します。
※HTML上の制約(<a>は入れ子に出来ない)を回避して、実現方法を模索する人をたまにみかけますが、多くの場合は間違った手段だと思います。理由を後述します。
アクセシビリティ (WCAG)
この達成基準の意図は、利用者がリンクを辿りたいかどうか決めることができるように、各リンクの目的を理解することを助けることである。可能な限りいつでも、追加のコンテキストを必要とせずに、リンクの目的を特定するリンクテキストを提供すること。支援技術は、ウェブページにあるリンクの一覧を利用者に提供することができる。可能な限り意味を持たせたリンクテキストは、このリンクの一覧から選択したい利用者の助けとなる。意味のあるリンクテキストはまた、リンクからリンクへと Tab キーで移動したい利用者にとっても役に立つ。意味のあるリンクは、ページを理解するために複雑な戦略を必要とせずに利用者が辿るリンクを選択するのに役立つ。
この基準に則り、実装結果イメージを読みます。
- 著者名をクリック -> 著者ページへ遷移
- タグをクリック -> タグページへ遷移
これは問題ありません。リンクテキストとリンク先が一致しています。
- 画像のタイトルをクリック -> 作品ページへ遷移
- 画像をクリック -> 作品ページへ遷移
- 外側の罫線と各リンク先間の余白部分をクリック -> 作品ページへ遷移
「画像」をクリックして「作品」に遷移するのは手段と結果が一致していません。
下記のようになるべきでしょう。
- 作品のタイトルをクリック -> 作品ページへ遷移
- 作品画像をクリック -> 作品ページへ遷移
最後に、「余白部分をクリック -> 作品ページに遷移」ですが、これは「余白 = 作品」の明示が行われていないので、実装すべきではありません。
仮にこの問題をlegend要素あたりで解消したとしても、実装すべきではないと考えます。
最近、スマートフォンが普及してタッチ操作も一般化してきましたが、操作に不慣れな方はタッチする範囲に苦労しているようです。
ありがちなのは、
- 指先で押したつもりで、指の腹が接触した為、想定したより下がタップした状態になってしまう
というもので、本ケースに当てはめると、
- 「タグ」をタップしたつもりが「余白」をタップしてしまう
- 意図せぬ「作品ページ」に遷移してしまう
- 新規タブで開いたなら [閉じる]、同一タブで開いたなら [戻る]
-
- からやり直す
「1.」も問題ですが、「3.」も苦労すると思います。
Android端末なら、[戻る] ボタンで何とかなりますが、iPhoneに [戻る] ボタンはないので、両者を区別しないといけないのではないでしょうか(未所持なので想像です。間違ってたら、指摘下さい)。
こうした事態を防ぐためには、
- 別のリンク同士の間に余白を設ける
- リンクの境界が明らかになるようデザインを工夫する
が考えられますが、本質問の要件では余白がゼロなので、誤クリックを防げません。
Re: kurazushi さん