たったこれだけ!アクセシビリティ向上策

サーバーサイドで何ができるか 「第2回:たったこれだけ!ユーザビリティ向上策(http://www.thinkit.co.jp/article/134/2/)」では、使いやすいWebサイトのための設定を紹介しました。今回は特集のもう1つのテーマであるアクセシビリティについて考えていきます。サンプル

伊藤 千光

2008年9月19日 20:00

サーバーサイドで何ができるか

 「第2回:たったこれだけ!ユーザビリティ向上策(http://www.thinkit.co.jp/article/134/2/)」では、使いやすいWebサイトのための設定を紹介しました。今回は特集のもう1つのテーマであるアクセシビリティについて考えていきます。サンプルコードがダウンロード(http://www.thinkit.co.jp/images/article/134/3/13431.zip)できますので、ご利用ください(13431.zip/5.23 KB)。

 とはいえ、アクセシビリティはユーザビリティ以上にコンテンツ依存の問題です。特にハンディキャップのあるユーザーへの対応に限定すると、残念ながらサーバーサイドでできることはほとんどありません。そこで、ここではもう少し枠を広げて、さまざまなユーザーやデバイスに対して適切なコンテンツを配信する方法を紹介します。

 このあたりを実践しているサイトの1つがGoogleです。日本語環境から日本のGoogle(http://www.google.co.jp/)にアクセスすると、当然ながら日本語のページが表示されます。しかし、英語環境から同じURLにアクセスすると、きちんと英語のページが表示されるのです。さらに携帯電話からアクセスした時は、同様に携帯電話向けのページになります。このように環境やデバイスによってコンテンツを自動的に切り替えることで、多くのユーザーにとってアクセスしやすいサイトになり、結果的に多くのユーザーを獲得できます。

 これはなにも難しい技術を駆使しているわけではありません。Webサーバーに数行の設定を施すだけで、ほぼ同様のことが実現できます。以降で具体的な設定方法を解説しますので、英語ページや携帯電話向けページをお持ちの方は、ぜひ設定してみてください。

コンテント・ネゴシエーションとは

 環境に合わせたコンテンツの自動切り替えを実現する代表的な技術が「コンテント・ネゴシエーション」です。これはHTTP/1.1規格(RFC 2616(http://www.ietf.org/rfc/rfc2616.txt))で規定された標準的な機能で、多くのWebサーバーで利用できます。特にApacheでは、とても簡単に使えるように工夫されています。

 コンテント・ネゴシエーションの仕組みは単純です(図1)。多くのWebブラウザは、Webサーバーにファイルを要求する際に、表示言語の優先順位や処理できるファイル形式、文字コードなどの情報をHTTPヘッダ(データ本体と共に送られる付加情報)に含めて送信します。Webサーバー側では、これらの情報を元に用意されているコンテンツから最も適したものを選択して、Webブラウザに送り返します。このようにして、ユーザーに合わせた適切なコンテンツを表示しているわけです。

 Webブラウザの中には、コンテント・ネゴシエーション用の情報をカスタマイズできるものもあります。例えばFirefoxでは、環境設定の「コンテンツ」タブにある「詳細設定」ボタンで言語選択ダイアログが表示されますが、これが実はHTTPヘッダで送信される表示言語の設定なのです。試しに「英語 [en]」を最上位にしてGoogle(http://www.google.co.jp/)にアクセスしてみると、その設定どおり英語のページが表示されます。コンテント・ネゴシエーションによって英語のページが最適であるとWebサーバーが判断したわけです。

 コンテント・ネゴシエーションの仕組みがわかったので、次のページでは実際にApacheでそれを利用する方法を解説します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30