Webサイトのアクセシビリティについて【コーディング編】

  • このエントリーをはてなブックマークに追加

こんにちは、石上です。
前々回に引き続きアクセシビリティについて書きたいと思います。
今回はコーディング(HTML化)についてです。

コーディングで、注意したいポイント

文字サイズ

HTMLで文字サイズを指定するにはem、px、pt、%といった記述方法があります。
多くのサイトで%(パーセント)かpx(ピクセル)を使用いると思いますが、この2つはアクセシビリティの視点から見ると「ブラウザ機能の文字サイズが有効か」という点で大きな違いがあります。
(ちなみに、px:絶対値(大きさの規格が決まっているもの)、%:相対値(ブラウザの規定の文字の大きさを100%として表示サイズを調整するもの)

おそらく多くの人がブラウザの文字サイズを変更しないまま利用されていると思いますが、高齢の方などはブラウザ機能で文字サイズを変えていることがあります。
(文字サイズは一度変更するだけで、表示されるサイトの文字のサイズが変わるという機能です。IEの場合は、ブラウザメニューの「表示」⇒「文字のサイズ」から変更できます)

%で作成した場合にはブラウザ機能での文字サイズ変更にも対応して文字サイズが変わりますが、pxで作成するとブラウザ機能の文字サイズ変更が効きません。(pxで指定したサイズで表示されます)

デザイン通りにHTMLで見せたいという場合にはpxは有効ですが、アクセシビリティに配慮が必要なサイトの場合には、%で作成することが必要です。
(pxで作成しても文字サイズ可変ボタンを置けばいいという考え方もありますが、ユーザーの環境を強制的にサイトに合わせて文字可変ボタンを押させるというのもいかがなものかと個人的には思います。)

タブメニュー

複数の要素をタブで切り替える手法は、いまや当たり前になりました。
しかし、このタブメニューでもアクセシビリティとして注意したい点があります。

音声読み上げの場合にどういう順序で読み上げられるのか?という点に注意が必要だと思います。
音声ブラウザは、見た目ではなく、ソースの記述されている順番で読み上げていきます。
見た目は同じでも、記述の仕方次第で、わかりづらい内容になってしまうこともあります。
下記に記述方法の違いによる読み上げられる順序例の図を用意しました

ブログネタ画像_r2_c2

パターンAは見出し1⇒見出し1の内容⇒見出し2…の順で読み上げ、一方パターンBは見出し1⇒見出し2⇒見出し3⇒見出し1の内容…という順番で内容にもよると思いますが、パターンAの方がわかりやすく読み上げられます。

文字の送り仮名

例えば「行って」という文字ですが、「いって」と読むか「おこなって」と読むかは前の文脈で変わってきます。
しかし音声ブラウザの場合には、前の文脈に関係なく「いって」と間違って読まれることが多々あります。
これを回避するために「おこなって」の場合には「行なって」と「な」を送り仮名に入れるなどの工夫が必要です。
他にも地名や難読のものには、後ろに読み仮名をいれるなどの工夫もするとわかりやすくなります。
(※これらは、コーディングというよりも素材として準備する段階での話ですが…)

画像のALTタグ

音声読み上げのことを考慮して、画像にはALTタグを必ずいれるようにします。
画像によりますが、文字だけであればその文字をALTに入れ、それ以外の図表の場合にはキャプションではなく、伝えたいことを正しく記述するようにします。
(図ではなく、文字だけで内容がわかるようなALTタグが望ましいですね)

文法チェック

アクセシビリティに注意をするうえで、一番の難関がこの文法チェックだと思います。
これは、HTML、CSSの文法や構文がアクセシビリティガイドラインに準拠しているかどうかを、ソースやCSSからチェックして点数を表示してくれます。

代表的なツール
・Another HTML-lint
・CSS Validation Service

満点を目指すとなると、場合によってはデザインからやり直したり、表現方法の変更など様々な修正が後から発生することがあります。
このチェックでどこまで満点に近付けるかは、やってみないと分からないところもあるため、クライアントにもある程度、ご理解をいただきたいところです。

ざっくりではありますが、アクセシビリティで注意したいことです。
今後のWebサイトの制作時には、アクセシビリティついて制作会社とクライアント企業とともに一緒になって考えていくことが大切になっていくと思います。

執筆者:8bit

関連記事

プログラミング

SharePoint REST APIを使用してリストの情報を取得し、headerにナビを作る

SharePointで作成したリストの情報をREST APIを使用して取得してみましょう。 今回は、APIで取得した情報を、headerにリンクとして差し込んでみます。サイト全体共通のナビでも、リストを使用すると、一か所で管理できるので便利です。 目次1 前提条件2 1.REST APIで情報を取得2.1 REST APIのURL2.2 データを取得する処理3 2.取得した情報をheaderに表示 前提条件 SharePoint Online モダンUI カスタムJSが使用で […]

WordPress

WordPressで権限やユーザーごとに管理画面のサイドメニュー表示を切り分ける

デフォルトだといろいろな項目が表示されているWordPressの管理画面のサイドメニュー。 慣れていない人にはわかりづらいですよね。 また、権限によってデフォルトで非表示にしてくれたりもしますが、この部分は見せたくないな…ということも多いと思います。 今回はWordPressで権限やユーザーごとにサイドメニューの表示を変更する方法をご紹介します。 目次1 権限の種類について2 function.phpに記述する2.1 サイドメニューの非表示用のコード2.2 権限ごとに振り分け […]

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。