【4.ランドマークをみて改善編】ここから始めようWebアクセシビリティ

## 関連記事
1. [【0.気持ち整理編】](https://qiita.com/shamokit/items/2d490f281a3bd168fdd6)
1. [【1.導入編】](https://qiita.com/shamokit/items/e8c4c2f13cc604f4fb2c)
1. [【2.キーボード操作】](https://qiita.com/shamokit/items/7a4c32979afdab74dcee)
1. [【2-1.キーボード操作改善＋スクリーンリーダー編】](https://qiita.com/shamokit/items/5ad0f0769ef3109936f5)
1. [【3.スクリーンリーダーでの読み上げ改善編】ここから始めようWebアクセシビリティ](https://qiita.com/shamokit/items/a7fd7dd3058a2ef86c34)
1. 最終回　いまここ 【4.ランドマークをみて改善編】ここから始めようWebアクセシビリティ

## 振り返りと概要
前回の記事ではスクリーンリーダーで適切な読み上げがされるように修正しました。

___
さてみなさん、Webサイトを見る時、すべてのコンテンツに目を通しますか？

全部見る人もいるかもしれませんが、おそらくヘッダーやサイドバーは頻繁には見ないし、
最初に見るのはおそらくメインコンテンツで、しかもその中の見出しなどを見て自分が見たいものがありそうならそこから読むことも多いかと思います。

ナビゲーションを見たい時、メインコンテンツを見たい時、のように、読みたい部分がグルーピングされていると目的のコンテンツに辿り着きやすいですよね。

スクリーンリーダーにはランドマークという機能が備わっています。
この記事ではランドマークの表示方法や操作方法、そしてちょっとした改善を行います。

## ランドマーク
本当はWindowsでよく使われているスクリーンリーダーで説明した方がいいとは思いますが、
この記事ではMacで開発している方を対象とし、VoiceOverでの操作方法を説明します。

1. [前回対応したページ](https://shamokit.com/examples/a11y/more-good)でまずVoiceOverを起動しましょう。
2. 次に、その状態で`ctrl + option + U`キーを同時に押しましょう。
3. そうすると
![スクリーンショット 2023-07-23 17.50.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677134/88f7adac-8737-6c7e-4365-44eef514dc57.png)
こういうものが表示されると思います。
フォームコントロールや見出しが表示される人もいるかもしれません。その場合は左右キーを押すことで別のメニューを表示できます。

このメニューは

- メインコンテンツやナビゲーションに飛べるようになっているか
- 見出しの内容が適切か、見出しレベルが正しいか
- リンクテキストが適切か
- フォームコントロールが適切か

このような項目をチェックするのに便利です。

さて、今表示されたランドマークメニューですが、本文がないのでこのメニューからメインコンテンツに飛べません…。
不便ですよね。これを修正しましょう。

3分間クッキングではあらかじめ用意されたものがよく使われますが、この記事でも同じように修正後のページを用意しておきました。
[修正後のページはこちら](https://shamokit.com/examples/a11y/landmark)です。

## 修正内容
- メインコンテンツを`main`タグで囲った
- パンくずを追加した

この二つを対応しました。

HTML５が出たタイミングで既に`header`タグや`nav`タグ、`main`タグ、`footer`タグを使用している人も多いと思います。
すばらしい！そういう方は既にランドマークにそれが表示されています！

先ほど表示されたランドマークには、

- バナー
- ナビゲーション
- フッター

が表示されていました。
バナーというのはヘッダーのことです。（ちょっとわかりにくいですね。`header`タグはデフォルトで`role="banner"`を持っています）

このように、適切なタグでマークアップしていればランドマークもある程度表示されます。
前回までの対応ではわざと`main`タグを使わずマークアップしていたので、ランドマークに「本文」が表示されていませんでした。

`main`タグで本文を囲うとランドマークに「本文」が表示されます。
確認してみてください。

### パンくず
また、今回は
```html
<nav　aria-label="パンくずリスト">
  <ol>...</ol>
</nav>
```
でパンくずを追加したので

![スクリーンショット 2023-07-23 17.40.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677134/73faae1f-e700-ac80-409b-23b205293690.png)

この画像のようにランドマークに「パンくずリスト　ナビゲーション」も追加されています。

`nav`タグをページ内で複数回使用すると、ランドマークに「ナビゲーション」が複数表示されるのでわかりにくくなってしまいます。
**特に必要がないのであれば、グローバルナビのみに`nav`を使用することをお勧めします。**

ユーザーにとって有益なメニューがある場合は`aria-label`を付与して複数の`nav`を配置してもいいと思います。

:::note info
個人的にはパンくずはページ内に必ずあった方がよいと考えており、パンくず自体もランドマークに含めるべきだと考えているためランドマークに含めています。
:::

また、今回新しく追加したパンくずリストの最後の項目の`a`タグには`aria-current="page"`を追加しています。

これによってリンクにフォーカスした時にこのリンクが現在のページのリンクであることが読み上げられるようになり、少し親切になります。

:::note info
パンくず最後の項目はリンクにしないところも多いと思いますが、個人的にはリンクにした方が親切だと思っています。
:::

## まとめ
今回はランドマークに

- 本文
- パンくず ナビゲーション

を含めることによって、本文からすぐに読むことができ、またパンくずにもランドマークから飛んでこのページより前のページにすぐに戻ることができるようになりました。

どちらも不便にはなっておらず、**今までよりも便利になっています**よね。

「ここから始めようWebアクセシビリティ」シリーズの記事では工数を追加するほどでもないくらいの労力でざっくりアクセシビリティを改善してきました。

その結果、
![スクリーンショット 2023-07-23 17.41.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677134/de6aa4b7-ecfb-fd74-679c-7b5f71a74981.png)

このようにフォームコントロールにもボタンやタブが含まれるようになり、主要なスクリーンリーダーでコンテンツのあらゆる場所にアクセスしやすくなり、アクセシビリティが向上しました。

もちろん色の改善や難しいUIの改善など、工数がかかる部分はあると思います。
しかし、ちょっとタグを変えたり属性を追加したりするくらいであれば今すぐにでもできると思いませんか？

その結果、いろんな人が情報にアクセスできるようになり、みんなにメリットがある優しい世界になると思いませんか？

___
このシリーズはこの記事で終わりです。

みなさんのWebサイトやアプリケーションでそれを利用するユーザーから、さらに視野を広げてまだ利用していないユーザーに対してもアプローチできるのがアクセシビリティのいいところです。

[【1.導入編】ここから始めようWebアクセシビリティ](https://qiita.com/shamokit/items/e8c4c2f13cc604f4fb2c#%E7%9F%A5%E8%AD%98%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B)にいくつか書籍の紹介もしています。
チームで輪読会を開いたり対応した内容を共有しあう場所を作ったりしてみましょう。

ここからはみなさん次第です！
みんなでよりよいWebを作っていきましょう！

また、できるだけ短く書いたつもりではありますが、このシリーズでは6記事まで書くこととなりました。
ここまで読んできてくださったみなさん、ありがとうございました。

みなさんの活躍でWebがもっとアクセシブルになることを願っています。