ノベルティメディア
media自社コーポレートサイト改修記録!アクセシビリティ向上への取り組み
![自社コーポレートサイト改修記録!アクセシビリティ向上への取り組み](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F26739cc00bed4b3aa199a4ee9099ab8b%2Fmember_yamada.jpg&w=64&q=75)
![自社コーポレートサイト改修記録!アクセシビリティ向上への取り組み](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F4f27e8e8f90949e1bca3016b0d33ee94%2F2407_yamada.jpg&w=1920&q=75)
こんにちは!アシスタントコーダーの山田です。
ノベルティでは、Webアクセシビリティの向上を目指し、より多くのユーザーがWebコンテンツを利用できるように取り組んでいます。
その一環として、Next.jsで構築されている自社のコーポレートサイトをよりアクセシブルに改修しました。今回は改修箇所について一部ご紹介します!
改修トピックには、対応するWCAG2.1の適合レベルとWCAG2.1解説書(日本語訳)のリンクも記載しています。興味のある方はぜひこちらもご覧ください。
画像のalt(代替テキスト)の最適化
altとは、Webサイトの画像の代替テキストのことです。画像が何らかの原因で表示されないときや、音声読み上げ支援技術(スクリーンリーダーなど)を使用する際に、画像の情報を取得できるようになります。X(旧ツイッター)の投稿時も、画像にALTをつけることができますね。
ALTの内容には、あくまで画像から伝わる情報を記載し、主観的なことは書かないほうがよいとされています。また、あまりに長い説明ですと読み上げも長くなってしまいますので、文章をコンパクトにまとめることも大切です。
今回の改修では、画像に適切なaltを設定し、装飾的な画像に関しては、スクリーンリーダーの読み上げが冗長になってしまうことを避けるためにaltを空にしています。
【適合レベル】A
【参考】
フォーカスリングの可視化
フォーカスリングは、キーボードナビゲーションを使用するユーザーが現在どの要素にフォーカスがあるかを視覚的に確認できるようにするためのものです。これにより、マウス以外の支援技術を用いて操作するユーザーがより快適にWebサイトを利用できるようになります。
アクセスしたいリンクや操作したいボタンがあるのに、自分がどこにいるかわからない状態はとても困りますよね。
そのため、キーボードで操作する際、どこにフォーカスが当たっているかわかるように、フォーカスリングを実装しました。
![コーポレートサイト制作のリンクに青いフォーカスリングが当たっている](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F5cce16b64f5e4c3995f8e1acc3688d34%2Fa11y-focus.png&w=1200&q=75)
【適合レベル】AA
【参考】
ナビメニューの開閉操作
ヘッダーのナビメニューをホバーしたときに出てくるメニュー。皆さんも一度はご覧になったことがあると思います。
呼び方には諸説ありますが、ここでは「メガメニュー」と呼ぶことにします。
このメガメニュー、ホバーして出てくるのは便利なのですが、フォーカスが少し外れるとすぐ非表示になってしまい、操作しにくいことってありませんか?
マウススティックを利用しているユーザーや、マウスを動かすことが困難なユーザーにとっては、マウスカーソルを合わせること自体が大変な場合があります。また、画面が拡大されたときにホバーすると、ホバーを解除する術がなくなり、メニューを閉じることができない問題も発生します。
上記を踏まえ、ヘッダーのメガメニューを、マウスクリックかつキーボードのEnterキー(もしくはSpaceキー)で開閉できるように改修しました。
![ホーム、はじめての方へ、サービス、制作の進め方のリンクがある。サービスの横に下矢印があり、青いフォーカスリングが当たっている。](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2Ff7864b98925a4e79b08861d7f1317580%2Fa11y-mega.png&w=1080&q=75)
【適合レベル】AA
【参考】
ホバー又はフォーカスで表示されるコンテンツを理解する - WCAG 2.1 解説書
1.4.13 ホバーまたはフォーカスで表示されるコンテンツを制御できる - Ameba Accessibility Guidelines
メガメニュー内のフォーカストラップ
キーボードのフォーカス順序はHTMLの順番のため、メニューを操作している時にフォーカスがメニューの外に出てしまう問題があります。キーボードユーザーにとって、開いているメニューを閉じることができずにその背景にフォーカスが当たってしまうことは、操作性に関わるとても大きな問題です。
そのため、メニュー内の最後のリンクにフォーカスが当たったら次は閉じるボタンにフォーカスが当たるように、フォーカストラップを実装しました。ReactのカスタムフックであるuseRefを使用しています。useRefは、ナビメニューのフォーカス順序にも使用しています。
![実績のメガメニュー。プロジェクト実績と事例紹介のリンクがあり、事例紹介のリンクにフォーカスが当たっている。右上には閉じるボタンがある。](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F3ef20143cb5b480d90279a5dfcd30819%2Fa11y-focusTrap.png&w=3840&q=75)
【適合レベル】A
【参考】
キーボードトラップなしを理解する - WCAG 2.1 解説書
スライダーの一時停止ボタン
画面上に継続して動くコンテンツがあると、そちらに気を取られ、他の操作や閲覧が困難になるユーザーがいます。
そのため、トップページのスライダーに一時停止ボタンを設置しました。この一時停止ボタンにより、注意力が分散しやすい状況を防ぎ、視覚的負担を軽減することができます。
ボタンはマウスクリックとキーボード操作の両方に対応し、一時停止ボタンのクリックイベントを制御してスライダーの動作を停止・再開します。
![](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F6691a46a2d304510807b783052b3c971%2Fa11y-slider.png&w=640&q=75)
【適合レベル】A
【参考】
一時停止、停止、非表示を理解する - WCAG 2.1 解説書
継続的に動くコンテンツの停止
上記の停止ボタンと同様の理由で、継続的に動くコンテンツを停止するように改修しました。
「はじめての方へ」のアニメーションは、以前は動き続けていましたが、3秒以内に止まるようにしています。
【参考】
一時停止、停止、非表示を理解する - WCAG 2.1 解説書
ボタンのラベル追加と開閉状況の通知
以前に私が書いた記事、アクセシビリティツリーとは?ウェブの使いやすさを支える技術で解説したように、スクリーンリーダーを使用している際にボタンにフォーカスが当たると、そのボタンの役割やボタンの状況が読み上げられます。
反対に、ボタン要素なのに<button>タグではなく他のhtmlタグを使っていたり、誤ったARIA属性の付け方をしたりしていると、適切な状況がスクリーンリーダーユーザーに伝わりません。
下記は自社コーポレートサイトのハンバーガーボタンにカーソルが当たったときの読み上げです。aria-labelに「メニューボタン」aria-expandedでボタンを開閉状況を設定しているため、どのボタンか、またボタンがどのような状況かがわかります。
![ハンバーガーボタンにフォーカスが当たり、voice overの読み上げ「メニューボタン、下位項目が折りたたまれました、ボタン」と表示されている](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F88d2580efc964308a58f41efc6def1a1%2Fa11y-ham.png&w=1920&q=75)
【適合レベル】AA
【参考】
名前 (name)・役割 (role)・値 (value) を理解する - WCAG 2.1 解説書
スクリーンリーダーの英単語読み上げ対応
スクリーンリーダーの中には、大文字の英単語をアルファベットごとに読み上げるものがあります。アルファベットでの読み上げは、意味が伝わりづらくなり、ユーザーの混乱を招いてしまう恐れがあります。
そのため、英単語のマークアップを小文字にし、見た目をCSSで調整するようにしました。
![サービスの下に大文字の英単語SERVICEがある](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F806a9cf3faa34477a12eaa88601b1d05%2F5432b78149b148769e71f1c833c30bf1%2Fa11y-en01.png&w=640&q=75)
【適合レベル】A
【参考】
意味のあるシーケンスを理解する - WCAG 2.1 解説書
おわりに
いかがでしたか?
ノベルティでは、アクセシビリティに重視したWeb制作・開発に取り組んでいます。
自社コーポレートサイトをアクセシビリティに対応させたい方、アクセシビリティに興味があるWeb担当者様は、ぜひ下記リンクからお問い合わせください!
アクセシビリティに関してもっと詳しく知りたい方は、下記のサイト内ページやコラム記事をご覧ください!
おすすめ記事/ PICKUP
記事カテゴリー/ CATEGORY
企業の課題はノベルティひとつで完結
ホームページ制作などのWeb制作をはじめ、
システム開発やマーケティング支援などワンストップで対応
まずはお気軽にお問い合わせください
お電話またはメールでお気軽にお問い合わせください。
各種サービスの資料をご用意しています