2005年7月22日作成
この文書は,財団法人 日本規格協会 情報技術標準化研究センター 情報アクセシビリティ国際標準化委員会 ウェブ部会によって作成されました。この技術解説書は,ウェブ開発者が,JIS X 8341-3:2004 「高齢者・障害者等配慮設計指針-情報通信における機器,ソフトウェア及びサービス- 第3部:ウェブコンテンツ」(ウェブコンテンツアクセシビリティガイドライン)を理解するための参考書です。
この文書についての皆様のコメントを求めています。コメントには,「指摘対象箇所」と「指摘内容」と「指摘の理由」と「修正案」をお書きください。コメントの提出先は,bf_open@jsa.or.jpです。
「高齢者・障害者等配慮設計指針-情報通信における機器,ソフトウェア及びサービス- 第3部:ウェブコンテンツ - JIS X8341-3:2004」は2004年6月に公示,出版されたウェブコンテンツのアクセシビリティガイドラインである。このJISは,ウェブコンテンツをどのように制作すればよりアクセシブルなものにすることができるかをウェブの開発・制作者の立場でまとめたもので,多くの例示によってその具体的な実現方法の例を示し,使いやすいガイドラインを目指して作成されたものである。しかし,JISは頻繁に改定されるべきでないとの考え方から,規定はできるだけ技術に依存しないように記述されている。また,規格発効後,日本規格協会を通じていくつかの質問や意見が寄せられた。それらの疑問に答えることもこの技術解説の目的のひとつである。そこで,本体規格を技術に即した視点からよりわかりやすくし,JIS X8341-3:2004の正しい理解を促進するために技術解説を策定することとなった。この文書は,日本規格協会情報技術標準化研究センター(INSTAC)に平成16年度に設置された,情報アクセシビリティの国際標準化委員会ウェブアクセシビリティ国際規格調査研究部会(WG2)において作成された。
なお,この技術解説はJIS X8341-3:2004を補足するものであり,規格ではないことに注意されたい。
本体規格を技術に即した視点からよりわかりやすくし,JIS X8341-3:2004の理解を促進するために,この技術解説は,JIS X8341-3:2004の第5章及び第6章を対象に,その内容の技術的背景を明らかにする。その実現方法の例を技術に即して具体的に示すことを目的としている。
次の点を明確にして記述した。
なお,この技術解説は規格票を理解し運用するための参考であって,規格ではない。また,本書の各々の技術解説は規格票の示す基準を満たそうとするときに用いることができる技術を例示的に列挙したものであって,それらを用いて開発されたウェブコンテンツがJIS X8341-3:2004に準拠していることを保証するものではない。
この技術解説では,JIS X-8341-3の第5章,第6章の要件を「背景と問題点」「関連する要素」「関連項目」「技術解説」「ソリューション」「注意事項」に分けて解説している。
ウェブコンテンツは,関連する技術の規格や仕様,および文法に準拠して作成しなければならない。
(対応:JIS X8341-3:5.1 a)
一般によく使われているブラウザでは,HTMLなどの文法に厳密に準拠していなくても,文法のエラーを自動的に回避して表示する機能を持っている場合がある。しかし,このような文法解釈の自動的な修正機能はウェブブラウザに依存した機能であり,あらゆる環境で有効である保証はない。音声ブラウザやスクリーンリーダーなどの高齢者障害者支援技術は,これらの問題のあるHTMLを一般的なブラウザと同等に解釈できるとは限らない。また,アクセシビリティチェックツールは文法が正しくないと,判断を誤ってしまう可能性がある。したがって,アクセシビリティの改善を行う前提条件として仕様や文法に正しく則ってコンテンツが作成されている必要がある。
meta
なし
HTML,CSSなどのウェブコンテンツを記述するための言語やソースコード,技術は,W3C,ISO,又はJISが定めた規格,あるいは勧告に準拠することを求める。ただし,このガイドラインはW3CのWCAGに準拠することを求めているわけではなく,一般的な文法等の仕様に準拠することをもとめている点に注意が必要である。あくまでも,一般的な技術の仕様や文法についてであって,アクセシビリティに関する基準については,X8341-3:2004を用いる。準拠すべき規格,勧告の代表的なものを以下に示す。この中から,利用している技術だけを選択して,準拠しているかどうかを確認すべきである。
これら以外の規格,勧告,技術を用いる場合にもできる限りそれらの仕様に合致するよう開発するとよい。
XHTMLなどXMLを基本にした仕様の場合,その文法はDOCTYPE宣言によって示されたDTDで指定されるが,その場合ローカルなDTDを指定することは好ましくない。ウェブブラウザや高齢者障害者支援技術がDTDを正しく解釈する能力を持っているとは限らず,プログラムによって固定的な解釈をおこなう可能性があるからである。したがって,やむをえない事情がある場合を除いて,上記のマーク付け言語などで定義されたDTDをそのまま使うほうが良い。
本ガイドラインは,必ずしも最新の仕様を用いることを要求してはいない。例えば,段階的スタイルシートに現時点で最新のCSS 2.1を使うことを要求しているわけではない。最新の規格,勧告,または仕様を用いることは好ましいが,それらをウェブブラウザや高齢者障害者支援技術が正しく解釈,処理できない場合には,かえって混乱を招くこともあるからである。
また,マーク付け言語の仕様においてX8341-3を用いる場合に,Strictな要素だけを用いるべきか,あるいはTransitionalな要素を用いても良いと考えるべきかと迷う場合があるかもしれない。本ガイドラインでは,仕様に準拠することだけを求めていると考えることができるので,StrictでもTransitionalでも許容するというのが原則である。しかし,一般的にTransitionalな要素の中には,アクセシビリティの観点から見て好ましくない要素が残されており,Strictな要素だけを用いたほうがアクセシブルなページを容易に開発できることが分かっている。したがって,Transitionalを用いる場合にも,Strictを基準として用いて,やむをえない場合だけTransitionalな要素を使うようにするとよい。
文字コードの指定を正しくおこなうことも重要である。HTML文書でマーク付けされた文字コードの指定と,実際に用いた文字コードが一致しないと,利用者の環境によっては文字化けをおこしてしまう。この問題も,高齢者・障害者だけでなく,広く一般の利用者が混乱する原因となるので,注意が必要である。
次の方法を選択して,あるいは組み合わせて用いる。
制作,開発に当たっては,使用するHTML等のバージョンをあらかじめ決定しておき,それらを用いることを制作担当者,開発担当者に徹底するとともに,正しい文法や仕様で記述できるよう教育する。また,このことがアクセシビリティの確保・向上に役立つことを理解させる。
HTML,XHTML,XMLにおいてはDOCTYPE宣言を用いてDTDを定義する。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
この例にないローカルなDTDを用いる場合は,代表的な高齢者障害者支援技術によって利用可能なことを確認する必要がある。
DTD宣言の内容にしたがって文法が妥当(valid)であるかどうかを確認する。確認の方法には,文法チェッカーを用いる方法とオーサリングツールに内蔵されたチェッカーを用いる方法とがある。オーサリングツールのチェッカーを用いる場合には,そのチェッカーがチェック可能な言語や仕様を確認しておく必要がある。
文字コードの宣言と実際に記述した文字コードが一致することを確認する。
meta
要素を用いて head
内で次のように定義する。<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
独自のファイル形式ではサポートされている文字でも,シフトJISやUTF-8などのHTMLの文字コードに含まれない文字は化けてしまうことがある。文字実態参照や数値文字参照を使うことも検討すべきである。また,対象とする音声読み上げアプリケーションで,どう読み上げられるかも確認しておく必要がある。
機種依存文字や携帯電話で用いられる絵文字(携帯端末用コードでよく使われるもの)が用いられていると,音声ブラウザ等で正しく読み上げられないばかりでなく,一般的なウェブブラウザでも正しく表示されないことがある。これらは,アクセシビリティというよりはむしろユーザビリティにおける問題と考えられるが,高齢者などが混乱することが考えられるため,配慮が必要である。機種依存文字は“丸付き文字”,“ローマ数字”,“単位記号”及び“外字”などがある。図1に機種依存しない文字の例を示す。
JISコード | 文字 | 名称 |
---|---|---|
2122 | 、 | 読点 |
2123 | 。 | 句点 |
2124 | , | コンマ |
2125 | . | ピリオド |
2126 | ・ | 中点 |
215C | + | 正符号,加算記号 |
215D | − | 負符号,減算記号 |
216B | ° | 度 |
2174 | # | 番号記号,井げた |
2175 | & | アンパサンド |
2176 | * | 星印,アステリスク |
2177 | @ | 単価記号 |
2178 | § | 節記号 |
2179 | ☆ | 白星 |
217A | ★ | 黒星 |
217B | ○ | 丸印,白丸 |
217C | ● | 黒丸 |
217D | ◎ | 二重丸 |
2821 | ─ | 細線素片 |
2822 | │ | 細線素片 |
2823 | ┌ | 細線素片 |
規格,または勧告等にウェブブラウザが対応できていない場合がある。また,一般的なウェブブラウザは対応していても,高齢者障害者支援技術が未対応の場合もある。例えば,XForms,SVGはアクセシビリティの確保・向上には有効な技術だが,対応が進んでいない。したがって,これらの技術を使う場合には,それがたとえ標準規格や勧告であっても,一般的なウェブブラウザで正しく表示され,代表的な高齢者障害者支援技術を用いて利用可能であることを確認しておく必要がある。
ウェブコンテンツには,アクセス可能なオブジェクトなどの技術を使うことが望ましい。
(対応:JIS X8341-3:5.1 b)
(X)HTMLやスタイルシート以外に,動画,音声,アニメーションのためのプラグインなど,多様なオブジェクトがウェブコンテンツの一部に用いられつつある。特に,サイトの重要な情報や基本的な操作のためのメニューなどが,非(X)HTMLな技術を用いていてアクセシブルでないと,そのサイト全体が利用できず致命的な問題となることがある。
関連する要素 関連する要素を以下に示す。
object
, applet
, script
, noscript
, embed
, noembed
5.4.c 5.4.d 5.4.e 5.3d
オブジェクトなどの技術とは,主としてプログラムを用いて作成されたものを指す。X8341-3では,これらの技術が高齢者障害者支援技術で利用できることを保障することを求めている。オブジェクトなどの技術は,object
,applet
要素を用いて HTMLページに埋め込まれるものと,アンカーを使って直接リンクされたファイルを含む。たとえば,Java™,JavaScript,VBScriptのようにプログラムによって制御されウェブブラウザ上に(X)HTMLとともに表示されるもの,ActiveX技術などを使った専用のプラグインを用いるMacromedia Flashなど,外部のプログラムを起動して表示されるAdobe Acrobatなどを含む。マイクロソフトワード,エクセル,アクセスなどの文書ファイルがコンテンツとして提供される場合には,それらのファイルが高齢者障害者支援技術を用いてアクセス可能であることを確認しておく必要がある。なお,X8341-3はオブジェクトを積極的に用いることを推奨しているわけではなく,単に用いる際にアクセス可能であることを求めているだけである。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
object
要素のオブジェクトをアクセシブルにするapplet
要素はHTML 4.0以降の使用では非推奨要素であるため,object
要素を使用することが推奨されている。これらの要素を用いているときは,その技術がアクセシブルであることを確認する。確認の方法としては,次の方法が考えられる。
オブジェクトの開発,実行環境等を提供している企業がアクセシビリティのガイドラインを持っている場合には,それらがJIS X8341-3:2004を満たしていることを確認したうえで,そのガイドラインを使用する。
http://www.macromedia.com/jp/macromedia/accessibility/ を参照する。
http://www.microsoft.com/japan/enable/(ユーザ向け情報),
http://www.microsoft.com/japan/msdn/accessibility/(開発者向け情報)
を参照する。
ただし,日本における主要なスクリーンリーダーは現状ではこれらの対策によっても,Javaプログラムにアクセスすることができない点に注意が必要である。
http://developer.apple.com/documentation/Carbon/Accessibility-date.html を参照する。ただし,現在のところ,Mac OSに対応した日本語のスクリーンリーダーは発売されていない。
ガイドラインでは対応できない事項,触れられていない事項がある。ガイドラインを満たすことで満足せず,ユーザの使用実態において配慮すべき事を確かめ評価すべきである。例えば,拡大する機能がついていたとしても,スクロール距離が大きく使用が非常に困難であったりする。また,始めに,ユーザがフォーカスを移動させなければ使用を開始できないなど,ユーザが明示的に使用条件を得られず,使用が困難な場合がある。
他に参考にできるガイドラインがない場合には,JIS X8341-2及び3を用いてアクセシブルかどうかを確認する。特に,高齢者障害者支援技術を用いた評価,利用者を交えた評価が有効である。
object
要素の代替テキストを提供するobject
要素には代替テキストを提供する。オブジェクトを利用できないときでも当該ページを利用できるようすることが求められる。代替テキストは,オブジェクトのもつ情報と同等の内容を提供するか,もしくはそのオブジェクトを用いることができない場合の代替手段に関する情報を提供する。
<object data="logo.mpg" type="application/mpeg">やさしい工業株式会社のロゴ</object>
高齢者や初心者などはオブジェクトの表示に必要なプラグインの入手に手間取る可能性がある。したがって,プラグインの入手とインストールに関する情報を提供するとわかりやすい。
プラグインが使用される前に,または使用されている場所に,プラグインが入手できるWebページへのテキストリンクやリンクバナー画像を配置する。
script
要素があるとき,そのスクリプトはアクセシブルであること。スクリプトに関する具体的なソリューションは,5.3a 非デバイス依存の項を参照すること。
script
要素があるとき,noscript
要素を使ってscript
が使えないときにも,アクセスできることnoscript
要素の記述例<script type="text/javascript"> メニューのためのスクリプトが書いてある </script>
<noscript><a href="altmenu.html">メニューのページを開く</a></noscript>
embed
およびnoembed
要素は非標準の要素であり用いないオブジェクトは object
要素を用いるべきであるが,現時点ではブラウザの対応状況が不完全であり,非対応のブラウザや高齢者障害者支援技術でも利用できるように,代替手段としてembed
などの他の要素を併用することも考慮する。
なし
ウェブコンテンツは,見出し,段落,リストなどの要素を用いて文書の構造を規定しなければならない。
(JIS X8341-3: 5.2 a)
グラフではデータ構造を(X)HTMLでマーク付けし,表示スタイルはスタイルシートなどで指定することで,データ及びデータ構造と表示スタイルを分離できる。これにより,情報を失うことなく,利用者の環境や属性に合わせたデータ表示が可能になる。言い換えれば,情報,機能,構造を表現から分離することが重要である。
紙の文書を作成する際,太字にしたり,大きい文字にしたり,あるいは,先頭に点や丸などの記号置くなどして,目立たせることで,見出しを示すことがある。また,箇条書きも同様に,先頭に点や丸などの記号を置くなどして表すことがある。これは,文書の構造をわかりやすく(明確に)するための工夫である。つまり,文書構造を明確にすることで,文書の概要や必要な情報を探すのに役に立つからである。
同様に,Webページでも,視覚的に文書構造をわかりやすくするために,見出しや箇条書きを点や丸などの記号,あるいは字体に変化をつけて作成されている場合が多い。しかし,紙の文書と同じように,文字種や文字の大きさ,あるいは,行頭に記号を置くなどの方法で,視覚表現に依存した方法で文書構造を表してしまうと,音声ブラウザやスクリーンリーダーなどの支援技術は,文書のナビゲーションに文書構造を用いることができず,ユーザーに適切な形で情報を伝えたり適切なナビゲーションの手段を提供したりできなくなる。
h1
, h2
, h3
, h4
, h5
, h6
, p
, div
, span
, dl
, ol
, ul
, li
, big
, small
, em
, strong
, blockquote
, q
, font
, style
5.2 b 構造と表示スタイルの分離(CSS)
HTMLでは,文書構造をあらわすための要素が準備されている。たとえば,見出し(h1
~h6
),や箇条書き(ul
, ol
, dl
)など。これらの要素を利用することで,見た目だけでなく,HTML的に文書構造を明確に表すことができる。
HTMLの要素を利用して文書構造をあらわすことで,統一された形で視覚的に文書構造を示すことができる。また,視覚に頼らないで文書を利用する場合,たとえば,音声ブラウザなどで文章を読み上げる場合や点字ディスプレイで文章を表示する場合,見出しや箇条書きであることを知らせることができるなど,支援技術が適切に情報を提供したり,適切な形に変換したりしてユーザーに提供することが可能となる。 また,検索エンジンなどのコンピュータが文書を理解し処理するためにも役立つ情報である。なお,視覚的にどのように表現するかの指定は,CSS(段階的スタイルシート)で表現することができる。
次の方法を選択して,あるいは組み合わせて用いる。
h1
~ h6
を利用する文書の構造を示すために,見出しをつける場合は,太文字などのフォントの見映えの変更としてではなく,見出し要素h1
からh6
を利用して記述する。そうすることで, h1
からh6
までに対応した文書の階層構造を表現できる。
見出しはできるだけ簡潔に記述し,文書構造や内容が理解できるようにする。
見出し要素を書式の変更や見出しを表現すること以外に利用するべきでない。
h1
は大見出し,h2
は中見出し,h3
は小見出し,といった文書の章節構造などの階層構造を正しく表現できるように見出し要素を利用する。文字の書式(字体,大きさ)の違いによって,h1
からh6
を選択するべきではない。
title
要素とh1
要素の内容を一致させるtitle
要素とh1
要素の内容を一致させ,h1
要素は一つだけにし,ページの始めの方に配置することができる。dl
要素のdt
要素を7階層目の見出しにしたり,構成を検討するなどの工夫をする必要がある。箇条書きは,順序付きリスト(ol
),順序なしリスト(ul
),定義リスト(dl
) をそれぞれ用途にあった形で利用する。
テーブル要素を用いて箇条書きを記述すると視覚的に同様な効果が得られる場合があるが,文書構造を正しく示しているとはいえないため,避けるべきである。
リスト要素を字下げ等を目的に,見映えのためだけに利用すべきでない。
(HTML)
<div id="NAVI">
<ul>
<li><a href="dummy1.html">トップページ</a></li>
<li><a href="dummy2.html">商品</a></li>
<li><a href="dummy3.html">サービス</a></li>
<li><a href="dummy4.html">会社概要</a></li>
<li><a href="dummy5.html">サイトマップ</a></li>
</ul>
</div>
(スタイルシート)
#NAVI li {
background: #3333CC;
display: block;
margin: 0px;
padding: 0.3em;
list-style: none;
color: #FFFFFF;
float: left;
border: 1px solid #000066;
}
<p>
や汎用ブロックレベル要素<div>
,汎用インライン要素<span>
を利用する段落を表現する場合は,段落要素<p>
を利用する。また,字下げしたり,右寄せ左寄せなど本文の一部の書式をブロックレベル要素として変更する場合は,div
要素を利用することができる。文中の言葉などのインライン要素の見映えを変える場合には,span
要素を利用することができる。
字下げをするなど表示スタイルをかえる目的のためだけに,リスト要素や引用のための要素(<blockquote>
,<q>
)等を利用するべきでない。
なお,div
とspan
はともに文書に構造を与える要素だが,span
はインライン要素であり,div
はブロック要素である。文中の一時的な表示スタイルの変更にはspan
を,それより大きな分のまとまりに対してはdiv
を用いるのが一般的である。
div
要素とh1
~h6
要素を関連づける方法の例示<div class="section" id="human_nature"> <h1>人間の本性</h1> <p>この章では,人間の本姓とは何かについて論じていくことにする。</p> ...つづく... <div class="subsection" id="innateness" > <h2>心の生得性 </h2> <p>本性を考える上で,まず問題になるのは「心はどこまでが生得的か」という議論だろう。</p> ...この節つづく... </div> </div>
span
要素<em>
, <strong>
等を用いる段落の中で特定の箇所を強調する場合は,論理的な字種や書体を現す要素<em>
, <strong>
等を用いることができる。強調する場合には,b
,i
,ではなくem
,strong
などの論理的強調要素を用いる。
字体を直接変更するような<font>
などは用いるべきでない。
字体や書式変更を行う場合はCSSを用いて行う。
<code>
を用いることができるHTMLやCSS,JavaScriptなどコードを示す場合は,code
要素を用いる。字下げや改行,空白などテキストで整形された通りに見せたい時は,pre
要素を用いることができる。
<var>
を用いることができる変数や引数であることを現す要素<var>
等を用いることができる。
<blockquote>
, <q>
, <cite>
を用いるblockquote
要素は,引用された段落・文章であることを示すブロックレベル要素である。q
要素は,引用された文章であることを示すインライン要素である。cite
要素は,出典や参照先を現し,文書名や規格名,著者名を示す要素である。
<abbr>
, <acronym>
を用いるabbr
要素は,略語を示すために利用する。acronym
要素は,数語からなる語句の各単語の始めの文字を組み合わせて作り,一つの単語として発音するものである頭字語を示す。この時,省略していない元の名称は,title
属性に入れる。
<dfn>
を用いる文章の中で,ある用語が定義・説明されている場合に,その用語を示す要素<dfn>
を用いる。
ウェブコンテンツの表示スタイルは,文書と分離して,書体,サイズ,色,行間,背景色などをスタイルシートを用いて記述することが望ましい。ただし,利用者がスタイルシートを使用できない場合,又は意図的に使用しないときにおいても,ウェブコンテンツの閲覧及び理解に支障が生じてはならない。
(JIS X8341-3: 5.2 b)
前項と同様に,視覚的な方法で文書構造を表してしまうと,音声ブラウザやスクリーンリーダーなどの支援技術は適切な文書構造を理解することができず,ユーザーに適切に情報を伝えられなくなる可能性がある。ウェブブラウザの標準の表示スタイルを変更したいときには,HTML文書に記述せず,外部スタイルシートを用いて指定することができる。
h1
, h2
, h3
, h4
, h5
, h6
, p
, div
, span
, dl
, ol
, ul
, li
, big
, small
, em
, del
, th
, strong
, blockquote
, q
, font
, style
font-size
, font-weight
, text-align
, color
, background-color
, margin-top
, margin-bottom
, margin-left
, margin-right
, list-style-type
, list-style-image
, line-height
, font-size
, position
, top
, left
なし
文書構造を視覚的に示すために,書体,サイズ,色,行間,背景色などの表示上の表現は CSS(段階的スタイルシート)で記述する。CSSでは,スタイルシートで設定されているプロパティは,「誰が設定したか」「限定の度合いが高いか低いか」「読み込みの順番が前か後か」により,優先度が決められ,対象の要素に反映される。
スタイルシートが利用できないブラウザや,利用者が意図的にスタイルシートを無効にしたり,利用者独自のスタイルシートを設定したりしている場合でも,文書構造が最低限の内容が正しく伝わり,理解できるようにしておく必要がある。
次の方法を選択して,あるいは組み合わせて用いる。
<h?>
の書式変更にスタイルシートを用いる見出し要素は,ブラウザによって異なるが,何のスタイルも与えられてない場合,<h1>
が大きい文字で,<h6>
に行くにしたがって,小さい文字になって行き,また,少し広めの改行幅で改行される表現がされる。
しかし,ページの構成のためや読みやすさの向上のために,文字書式(字体・大きさ)や改行幅などを変更したい場合がある。その場合はCSSを利用して書式設定を行うことができる。
h1, h2, h3, h4, h5, h6 {
font-size: 1.5em;
font-weight: bold;
}
h1 {
font-size: 1.5em;
font-weight: bold;
text-align: center;
}
h2, h3, h4, h5, h6 {
font-size: 1.5em;
font-weight:bold;
color: #ffffff;
background-color: #00ff00;
}
(スタイルシート)
h1 {
font-size: 1.5em;
font-weight: bold;
margin-top: 0;
margin-bottom: 0;
}
(HTML)
<h1><img src="title.gif" alt="私のホームページ"></h1>
<img src="line.gif" alt="">
(スタイルシート)
ul.disc { list-style-type: disc; }
ul.circle { list-style-type: circle; }
ul.square{ list-style-type: square; }
ul.myface { list-style-image: url(myface.jpg) }
(HTML)
<ul class="myface">
…
</ul>
ul {
margin-left: 0.5em;
padding-left: 0.5em;
}
li {
margin-bottom: 1em;
line-height: 1.5em;
padding-left: 2em;
}
li
要素またはul
要素に設定することができる)。li {
font-size: 1.5em;
font-weight: bold;
color: #00ff00;
}
ul {
font-size: 1.5em;
font-weight: bold;
color: #00ff00;
}
li
要素を横に並べて,ナビゲーションにする。ウインドの横幅を狭くすると,自動的に下の段に改行される。自動的に改行できるようにすることは,視野狭窄のユーザが幅の狭い領域でコンテンツを見たい場合に役立つ。また同時に低視力のユーザが幅の広い領域で文字を大きくしてみることができる自由度を得ることができる。(HTML部分)
<div id="NAVI">
<ul>
<li><a href="dummy1.html">トップページ</a></li>
<li><a href="dummy2.html">商品</a></li>
<li><a href="dummy3.html">サービス</a></li>
<li><a href="dummy4.html">会社概要</a></li>
<li><a href="dummy5.html">サイトマップ</a></li>
</ul>
(スタイルシート部分)
#NAVI li {
display: block;
float: left;
margin: 0px;
padding: 0.3em;
border: 1px solid #000066;
list-style: none;
color: #FFFFFF;
background: #3333CC;
}
a:link {
color: #FFFFFF;
background: #3333CC;
}
a:visited {
color: #FFFF00;
background: #000000;
}
a:hover {
color: #000000;
background: #CCFFFF;
}
a:active {
color: #660000;
background: #CCCCCC;
}
p
)を字下げする場合p { margin-left:2em; }
div { margin-left:4pm; }
div { text-align:right; }
p { letter-spacing:0.25em; line-height:1.5em; }
ページ全体やテキストなどが入ったdiv
要素やp
要素やtd
要素の横幅を固定にしないデザイン(リキッドデザイン,またはリキッドレイアウト)にすると,ユーザが,ブラウザのウインドの横幅を変えたり,文字サイズを変えると,それに応じて内容を自動配置してくれる。
例えば,float
などにより段組されて,横に数個並んでいる要素は,自動的に改行されて下の段に移動する。このように,ページを閲覧する時にユーザが自分の見やすい表示にできる自由度が向上する。
特に,横幅を固定しないことは,視野狭窄のユーザが幅の狭い領域でコンテンツを見たい場合に役立つ。また低視力のユーザは,幅の広い領域で文字を大きくして見ることができる自由度を得ることができる。
リスト要素は,各項目の先頭に点や丸などの記号,または数字をつけて表示される。
しかし,点や丸などの記号を変更したり,数字の始まりを変更したりしたい場合がある。その場合は,CSSを利用して書式設定を行うことができる。
(スタイルシート)
ul.disc { list-style-type: disc; }
ul.circle { list-style-type: circle; }
ul.square { list-style-type:square; }
ul.myface { list-style-image: url(myface.jpg) }
(HTML)
<ul class="myface">
…
</ul>
ul {
margin-left: 0.5em;
padding-left: 0.5em;
}
li {
margin-bottom: 1em;
line-height: 1.5em;
padding-left: 2em;
}
li
要素またはul
要素に設定することができる)。li {
font-size: 1.5em;
font-weight: bold;
color: #00ff00;
}
ul {
font-size: 1.5em;
font-weight: bold;
color: #00ff00;
}
p
要素,div
要素) にスタイルシートを用いる各段落において,字下げしたり,右寄せをしたりしたい場合がある。その場合は,CSSを利用して書式設定を行うことができる。
p
)を字下げする場合p {
margin-left: 2em;
}
<div style="margin-left: 4pm">
.....
</div>
<div style="text-align: right">
.....
</div>
<p style="letter-spacing: 0.25em; line-height: 1.5em;">
…
</p>
段落の中で特定の箇所を強調する場合がある。その場合は,CSSを利用して書式設定を行うことができる。
em { color: green }
strong { color: red; font-size: 2em }
div { text-align: center }
span { font-size: 1.5em }
/* 2文字分の文字間隔を設定 */
span { letter-spacing: 2em }
/* 文字間隔等は設定せず */
集合場所:駅前噴水広場<br>
/* 0.5文字分の字間を設定 */
span { letter-spacing:0.5em}
/* 0.5文字分の字間を設定 */
span { letter-spacing: 0.5em }
/* 字間を-0.3文字分に縮める設定 */
h1 { letter-spacing: -0.3em }
JIS X8341-3: 5.2 aを遵守し,文書構造を正しく記述することで,CSSによって指定している書式や表示スタイルがなくなった場合やユーザーによってCSSが変更された場合でも,最低限の基本的な情報をユーザーに伝えることができるようになっているはずである。
CSSによる表示位置の指定をむやみに多用することは避けるべきである。それは,CSSが有効である場合と無効である場合で表示される順番が異なる可能性があるからである。
もし表示位置の指定をする場合は,CSSが無効になった場合のことを考慮し,HTMLの記述する順番どおりに表示しても,最低限の基本的な情報をユーザーに伝えることができるようになっているようにするべきである。
<html>
<head>
<title>CSSでの位置指定</title>
</head>
<body>
<style type="text/css">
div.1 {
position: absolute;
top: 60px;
left: 100px;
}
div.2 {
position: absolute;
top: 78px;
left: 100px;
}
div.3 {
position: absolute;
top: 96px;
left: 100px;
}
div.4 {
position: absolute;
top: 114px;
left: 100px;
}
p.ranking {
position: absolute;
top: 60px;
left: 20px;
}
</style>
<body>
<h1>今週の血液型ランキング</h1>
<p class="ranking">
第一位:<br>
第二位:<br>
第三位:<br>
第四位:<br>
</p>
<div class="2">A型</div>
<div class="3">B型</div>
<div class="4">AB型</div>
<div class="1">O型</div>
</body>
</html>
th
要素の書式の変更(自動的に太文字になるのを抑制する)th
要素のフォントの太さを標準にする例th {
font-weight: normal;
}
表は,わかりやすい表題を明示し,できる限り簡単な構造にして,適切なマーク付けによってその構造を明示しなければならない。
(JIS X8341-3: 5.2 c)
新聞や雑誌などに載っているテレビ番組表やカレンダーのように,行と列の位置関係に情報の意味があるような場合がある。たとえばテレビ番組表の場合は,行と列の位置関係に時間とテレビ局の情報が関連付けられているし,カレンダーの場合は,曜日や第何週目かといった情報が関連付けられている。
このような表のデータは,視覚的に確認する場合非常に便利であるが,音声読み上げで情報を理解しようとすると非常に困難である。音声ブラウザ上から順番に読み上げていくだけだからだ。たとえばカレンダーの場合,曜日を一通り読み上げて,次に1から30まで読み上げるという状態になり,曜日と日付の対応や,第何週目かといった情報を理解することが困難である。
table
, td
, th
, caption
, style
, scope
, headers
, id
, summary
5.2 b 構造と表示スタイルの分離(CSS)
音声ブラウザの中には「テーブル読み上げモード」があり,位置情報と一緒に読み上げる機能が用意されている。これを活用するためには,あらかじめ行と列の見出しなど,表の構造を明示しておかなければならない。
「テーブル読み上げモード」は,表全体を眺めることはできず,1つの操作では,現在の読み上げ一にあたるセルの中身だけであるため,表の全体の情報を知るためには,表の中のたくさんのセルを上下左右に,まるで迷路のように動き回る必要がある。このとき,セルが結合されていたりすると,利用者が表の中での位置を見失ってしまい,セルからセルへの移動が非常に困難になる場合がある。そのため,表は必要以上にセル結合せず,単純な構造にする。
どうしても,セル結合などで,表の構造が複雑になってしまう場合は,id
属性, headers
属性, scope
属性などで,セルの関係性を示しておく。
また,その表に対する表題や概要を記述することで,すばやくその表を理解したり,重要度を判断したりする助けとなる。
次の方法を選択して,あるいは組み合わせて用いる。
th
を利用する表の見出し,たとえば,テレビ番組表であれば,時間帯やテレビ局名が記述されているセルには,th
要素を利用する。th
要素を利用すると,字体が太字等に変更されてしまう場合がある。字体を変更したい場合は,CSSを利用する。
th
要素にabbr
属性を付ける。th
要素に内容の省略した名称をabbr
属性で入れておくと,読み上げエージェントをテーブル読み上げモードにして,td
要素を読み上げた時に,見出しとしてこの短い名称の方で読み上げてくれる。これにより,セルごとに冗長な見出しの内容を繰り返し聞かなければならないことを避けることができる。
<th abbr="売上高">売上高およびその他の収益</th>
th
のみでは十分に表の構造を表現できない場合は,scope
, headers
, id
属性を利用するcaption
要素を利用するcaption
要素で表と表題を構造的に関連付けする。表題は,その表がどんな表であるか明確にわかるようなものにする。
summary
属性として記述するsummary
属性には,表の理解の助けとなるような情報,たとえば,何を伝えようとしている表なのかといった概要や,表の大きさ,行や列に関する情報などを記述しておくと,表を理解するうえで大きな助けとなる。
表組みの要素をレイアウトのために使わないことが望ましい。
(JIS X8341-3: 5.2 d)
現在table
要素(表組み)を利用して視覚的な画面レイアウトを行っているWebページが多い。これは,CSSが無かった時代から,一般的に利用されてきた,視覚的な画面レイアウト手法であった。しかし,表組みで,視覚的な画面レイアウトを行うと,製作者が意図した画面表示の順番と,音声ブラウザが読み上げる順序が異なる場合があるため,音声ブラウザでは,正しく情報を理解できない可能性がある。
table
, td
, th
5.2 b 構造と表示スタイルの分離(CSS)
レイアウトにはCSSを利用することが望ましいが,表を利用して画面レイアウトする場合は,音声ブラウザが読み上げる順序を常に意識して記述していくことが必要である。音声ブラウザは,一般的にHTMLに記述されている順番に読み上げる。そのため表組みの場合は,1行目の左から右へ,2行目の左から右へ,3行目の左から右へ,・・・そして最終行の左から右へと読み上げていく。さらに,このような順序で読み上げても,内容が理解できるようにする必要がある。さらに,セル結合などをさせた表の場合は,無意識のうちに思い込んでいる順序と,まったく異なる場合がある。また,テーブルの構造を表すような要素 たとえば th などを利用してしまうと,音声ブラウザなどの支援技術が間違った解釈をしてしまい,ユーザーに正しく情報が伝わらないことがある。
次の方法を選択して,あるいは組み合わせて用いる。
表組みを利用せずに,CSSを利用して表示位置を調整することもできる。HTMLでは,音声ブラウザの読み上げ順序に配慮した形で記述し,CSSで表示レイアウトを指定する。
(HTML)
<div id="header">(ヘッダ)</div>
<div id="navigation">
<ul class="navi">
<li>トップページ</li>
<li>商品</li>
<li>サービス</li>
<li>会社概要</li>
<li>サイトマップ</li>
</ul>
</div>
<div id="content"><p>(内容)</p><p>いろいろな内容など。</p></div>
<div id="footer">(フッタ)</div>
(スタイルシート)
body {
margin: 0px;
padding: 0px;
}
div#header {
margin: 0px;
padding: 0.5em;
border: groove 1px #AAAAAA;
color: #FFFFFF;
background-color: #330099;
}
div#navigation {
float: left;
width: 100px;
margin: 0px;
padding: 0px;
border: solid 1px #AAAAAA;
background-color: #DDDDDD;
}
ul.navi {
margin: 0px;
padding: 0px;
list-style-type: none;
}
ul.navi li {
margin: 0px;
padding: 0.5em;
border: groove 1px #AAAAAA;
background-color: #EEEEEE;
}
div#content {
float: left;
margin: 0px;
padding: 0.5em;
border: groove 1px #DDDDDD;
background-color: #F5F5F5;
}
div#footer {
clear: both;
margin: 0px;
padding: 0.5em;
border: groove 1px #AAAAAA;
color: #FFFFFF;
background-color: #444444;
}
次のいくつかの表は,音声ブラウザがどのような順番で読み上げるかを示したものである。この読み上げ順序を考慮しながら,表組みによるレイアウトを行う。
1 | 2 | 3 |
1 | 2 | 3 |
4 | 5 | 6 |
1 | ||
2 | 3 | 4 |
1 | 2 |
3 |
1 | 2 | 3 |
4 | 5 |
1 | 2 | |
3 | 4 |
1 | 2 | 3 |
4 |
1 | 2 | 3 |
4 |
1 | 2 | 3 |
4 | 5 |
表組みを利用せずに,CSSを利用して表示位置を調整することもできる。HTMLでは,音声ブラウザの読み上げ順序に配慮した形で記述し,CSSで表示レイアウトを指定する。
ページのタイトルには,利用者がページの内容を識別できる名称を付けなければならない。
(JIS X8341-3: 5.2 e)
ページのタイトルは,そのページの概要を理解したり,目的のページかどうか判断したりするのに利用されることが多い。またページを保存したり,ブックマークやお気に入りに登録したりする場合に,ページのタイトルがその名前として利用される。このページのタイトルが記述されていなかったり,ページの内容と異なっていたり,あるいは,複数のページにまったく同じタイトルが記述されていると,開いたページが本当に目的のページかどうか,すぐに判断できなかったりする場合がある。また,せっかくブックマークに保存して後から参照しようとしても,タイトルがわかりやすくないと,ブックマークそのものが,見つけ出せなくなってしまう場合がある。
title
なし
多くの音声ブラウザなどは,最初にページのタイトルを読み上げてから,内容を読み上げる。もし,ページのタイトルが適切でないときや,記述されていない場合,そのページを上から下まで全部読み上げてみないと,そのページが目的のページかどうかの判断ができないことがある。このような問題を避けるために,ページのタイトルにそのページの概要がわかるような固有のタイトルを記述する。
さらに,目的のページを探すために,ページを進めたり,戻ったりしている場合にも,それぞれに内容を表す固有のタイトルが記述されていることで,現在のページが確認しやすくなる。
次の方法を選択して,あるいは組み合わせて用いる。
ホームページやサイトを設計するときに,あらかじめ同一タイトルが存在しないようタイトルの付け方を決める。
音声ブラウザの利用者はページが移動したかどうかを確認するときに最初に確認するのが,ページタイトルである。そのため同一のタイトルであるとページの移動が確認できない場合がある。最低限,利用者が経験する可能性のあるページのパス(流れ)の中で同一タイトルがないか確認する必要がある。
単にサイト名等だけでなく,ページの内容を端的に表す単語やフレーズを含めることで,利用者がそのページを詳細に見ることが必要かどうかの判断を助けることになる。
これはブラウザによって表示しきれない部分は省略されることを考慮するためである。また,音声でタイトル情報を聞く場合,あまり長いとタイトルを聞くだけで時間がかかってしまう場合がある。
小さいが画面でタイトルの後半が省略されてしまう場合,先頭の同じ文字列(サイト名)などしか見えず,結果的にユーザーにとっては同じタイトルしか見えないという事態を避けることができる。また,音声ブラウザを利用する場合も,最初の段階でタイトルの違いがわかるため,効率よく情報を得ることができる。
目次 - HTML 4.01の基礎講座
p要素 - HTML 4.01の基礎講座
body要素 - HTML 4.01の基礎講座
div要素 - HTML 4.01の基礎講座
HTML 4.01の基礎講座 - 目次
HTMLの基礎 - p要素
HTMLの基礎 - body要素
HTMLの基礎 - div要素
HTML 4.01の基礎講座 - 目次1
HTML 4.01の基礎講座 - 目次2
HTML 4.01の基礎講座 - 目次3
frame
を使用した場合は,ページのタイトル名を付け忘れないこと。フレームは,必要以上に用いないことが望ましい。使用するときは,各フレームの役割が明確になるように配慮しなければならない。
(JIS X8341-3: 5.2 f)
フレームは適切な場面で利用すれば,有効な表現手段となる。ただし,音声ブラウザでは,それぞれのフレームを切り替えないと全体が確認できない場合もあるため注意が必要である。また,フレーム切り替えに,キーボード操作をしている場合,切り替え操作が煩雑になる可能性がある。
frameset
, frame
, noframes
, iframe
, link
なし
音声ブラウザによっては,1度に確認できる範囲が1つのフレームに限られ,キーボード操作により,次のフレームまたは,前のフレームといった具合にその都度切り替えながらでないと,全体が確認できない場合がある。そのため,複雑なフレーム構成になっていると,ページ構成が理解できない場合がある。さらに,支援技術によってはフレームに対応していない場合もある。
また,リンクをクリックしたときに別のフレームに内容が表示される場合,音声ブラウザによっては,別のフレームに新しいページが開いたことがわからないため,目的の情報が得られない場合や,次の操作ができなくなってしまう場合も考えられる。
したがって,フレームを利用する場合は,本当にふさわしいかどうか,検討する必要がある。フレームを利用する場合は,各フレームの役割を明確に記述することが大切である。
次の方法を選択して,あるいは組み合わせて用いる。
サイトロゴやバナー広告のためだけのフレームは基本的に作成しないほうがよい。どうしても必要な場合は,代替の手段を検討する。
iframe
) 要素iframe
) 要素も<iframe>~</iframe>
の内容も読上げないエージェントが存在するため,呼び出し先のページへのリンクを別に提供するなどの対策をとる。frame
要素にはtitle
属性を用いて各フレームの役割を記述する。さらに,参照先のHTMLファイルにもtitle
要素を用いてフレームの役割を記述する。title
属性を記述することで,音声ブラウザなどの支援技術がユーザーにそのタイトルの情報を示してくれる。また,タイトルを付けることで,おのずと不要なフレームを見分けることができるかもしれない。不要なフレームは省略し,できるだけ少なくする。
frameset
要素のsrc
属性で指定されたファイルが,さらにフレームであるようなページは,音声ブラウザを利用するユーザによっては,非常に複雑な階層構造の中を移動することになるため避ける。
noframes
要素には,フレーム未対応のブラウザで表示した場合でも最低限の情報やナビゲーションを記述する。noframes
要素は必ず記述するようにする。さらに,noframes
要素の内容は,「フレーム対応のブラウザーをご利用ください」といった内容であってはならない。必ずフレームが利用できない場合のことを考慮した最低限の内容を記述する。最低限フレーム内の個々のページへのリンクやナビゲーションなどを記述する。
フレーム版でもフレームなし版でも同様に自由にコンテンツ内を見ることができるようにする。また,その2つの間を自由に行き来できるように配慮する。
閲覧しているページがウェブサイトの構造のどこに位置しているか把握できるように,階層などの構造を示した情報を提供することが望ましい。
(JIS X8341-3: 5.2 g)
ページを閲覧していて,次から次へとページを移動していったり,目的のページを探すために,ページを戻ったり進んだりしていくと今現在のページが,サイトの中のどのあたりに位置するのか,わからなくなる場合があったり,作業の中断などによってそれまでの作業があいまいになって,現在位置や作業目的がわからなくなる場合がある。または,作業をやり直すために,スタート地点や基準となる場所へ戻りたい場合,ブラウザの戻る機能を利用しても,なかなか適切な場所に戻れないことがある。
なし
なし
Webの閲覧者がページの中で迷子にならないように,あるいは迷子になっても適切な場所からやり直せるようにする必要がある。特に他のサイトから直接リンクされているようなページの場合,そのサイトのトップページへリンクがあると有効である。また,ナビゲーションバーやパンくずリスト(またはパンくずナビゲーション)の採用,あるいはサイトマップを作成して,どのページからも参照できるようにするとよい。
次の方法を選択して,あるいは組み合わせて用いる。
各ページには,最低限トップページのリンクを設定することで,いつでもサイトの先頭に戻ってやり直すことができる。また,前のページや次のページがある場合は,後方または前方へのページに移動するリンクを設定する。
サイト全体の構造を現すサイトマップを作成して,各ページのわかりやすいところへリンクを設定しておく。目立たないところにリンクを設定すると,サイトマップは利用されないので注意が必要である。
サイト全体が複雑な場合やより快適なナビゲーションを提供する場合は,ナビゲーションバーの採用や,いわゆるパンくずリストなどのナビゲーションの採用を検討する。
link
要素によるサイト構造の提示head
内のlink
要素により,現在の文書がサイト内でどのような位置でどんな関係にあるかと言う情報を提供する。
link
要素視野狭窄のユーザは,サイト内での移動に限らず,情報が多いとページ内においても自分の今見ているページ内での位置を見失うことがある。
position
のfixed
やJavaScriptを利用し,ページをスクロールしても,いつでもウインド内の決まった位置に,サイト内やページ内のナビゲーション等を提供する。ウェブコンテンツは,特定の単一のデバイスによる操作に依存せず,少なくともキーボードによってすべての操作が可能でなければならない。
(JIS X8341-3: 5.3 a)
tablindex
, accesskey
, onclick
, ondblclick
, onmousedown
, onmouseup
, onmouseover
, onmouseout
, onmousemove
, onkeypress
, onkeydown
, onkeyup
, onload
, onunload
, onchange
, onfocus
, onblur
, onsubmit
, onreset
, onselect
5.2 a,5.3 f,5.4 a,5.4 b,5.4 e
通常は特別なタグを付記しなくてもフォーカスは移動するが,スクリプトを多用する場合や,テキストフィールドやラジオボックスなどが多いフォームでは,フォーカスが適切な順番で移動しない場合があるので,操作手順に対応して移動することを確認する。
tabindex
属性で,Tabキーによる移動順序を設定する。tabindex
で指定した数値の小さなもの順にフォーカスが移動する。accesskey
属性で,リンクへの移動,ボタンの押下,入力フォームへのフォーカス移動などを行う。Windowsの「ファイル(F)」のFのダイレクトショートカットキーと同じような働きをする。
<タグ名 accesskey="t">
この例ではリンクボタンにTのキーを割り当てている。詳細の動作はOSやブラウザによる。
なお,OSや様々なユーザエージェントのショートカットキーとぶつからないように配慮する必要がある。
(参考)ショートカットキーの例。
IE
Alt+D ロケーションバーを選択(Firefoxも)
Alt+F メニューバーのファイルメニュー
Alt+E メニューバーの編集メニュー
Alt+V メニューバーの表示メニュー
Alt+A メニューバーのお気に入りメニュー
Alt+T メニューバーのツールメニュー
Alt+H メニューバーのヘルプメニュー
Opera
Show entire forward history Alt + X
Show entire backward histo Alt + Z
HPR 3.02
[Alt]キーを押しながら[D]キー インターネットへのダイヤルアップ接続
[Alt]キーを押しながら[R]キー 「読み上げモード」メニュー
[Alt]キーを押しながら[L]キー リンク読み上げモード
[Alt]キーを押しながら[I]キー 行読みモード
[Alt]キーを押しながら[W]キー 句読点読みモード
[Alt]キーを押しながら[C]キー 文字読み・詳細読みモード
[Alt]キーを押しながら[1]キー 見出し読み上げモード
[Alt]キーを押しながら[O]キー データ入力領域読み上げモード
[Alt]キーを押しながら[J]キー テーブル・ジャンプ読み上げモード
[Alt]キーを押しながら[N]キー カーソル読み上げモード
[Alt]キーを押しながら[T]キー テーブル・ナビゲーション読み上げモード
[Alt]キーを押しながら[A]キー お気に入り・リストを表示
[Alt]キーを押しながら[F]キー 「ファイル」メニューを表示
[Alt]キーを押しながら[E]キー 「編集」メニューを表示
[Alt]キーを押しながら[R]キー 「読み上げ」メニューを表示
[Alt]キーを押しながら[V]キー 「表示」メニューを表示
[Alt]キーを押しながら[G]キー 「移動」メニューを表示
[Alt]キーを押しながら[A]キー 「お気に入り」のリストを表示
(参考)accesskey
の挙動
accesskey
の挙動は,ブラウザによって異なる。accesskey
を押すとすぐにページ移動をするブラウザもあれば,該当するリンクにフォーカスが移動するだけで,「Enter」キーを押すまで,ページ移動を実行しないブラウザもある。
次に示すJavaScriptはプルダウンメニューにも使用されることが多いが,マウスでの操作を前提にしているため,キーボードでの操作の可否に注意する。
onclick
,ondblclick
,onmousedown
,onmouseup
,onmouseover
,onmouseout
,onchange
例えば,onmouseover
だけで,メニューを表示する場合,キーボードの利用者は,メニュー内のリンクを選択できないことがある。
附属書1図14は,決定ボタン(<input type=“button">
)を加え,そのボタンのonclick
属性でページ変更のJavaScriptを指定している。ドロップダウンコントロールに限らず,ラジオボタンなど他のフォーム要素でも注意が必要である。
附属書1図14 マウスとキーボードで選択できるメニュー
附属書1図15は,実行ボタンの付いていない選択メニューであり,ドロップダウンコントロール(<select>
)のonchange
属性で,ページ変更のJavaScriptを指定しているため,キーボードでは使用できない。
附属書1図15 キーボードでは選択できないメニュー
ondblclick
とonmousemove
はマウスに限定したイベントハンドラであり,キーボードでは操作できない。マウス | キーボード |
---|---|
onclick | onkeypress |
ondblclick | なし |
onmousedown | onkeydown |
onmouseup | onkeyup |
onmouseover | onfocus |
onmousemove | なし |
onmouseout | onblur |
マクロメディアFlash,アドビPDFについては付録を参照すること。
なし
form
要素などで入力欄を使用するときは,何を入力すればよいかを理解しやすく示し,操作しやすいよう配慮しなければならない。
(JIS X8341-3: 5.3 b)
form
要素のinput
要素などのコントロールに説明がないと何を意味しているのかわからず,またコントロールが複数個ある場合,どれとどれを入力すべきかわかりにくい。図 7 情報を入力欄の後に記載した例
label
,fieldset
,legend
,id
,form
,input
,textarea
5.3 c
フォームとアクセシビリティに関しては,以下のサイトが参考になる。
The Web KANZAKI:http://www.kanzaki.com/docs/html/htminfo33.html
label
要素を使用し,ラベルとコントロールを関連づけるid
属性による明示的なラベル付けlabel
要素で囲むことによる暗黙的なラベル付け。この方法も文法的には正しいが対応していないブラウザがあるので,例1の方法をとることが望ましい。<fieldset>
要素を使ってグループ化し,<legend>
要素でグループのタイトルをつければよい。fieldset
要素を使って,グループ化し,legend
要素でグループのタイトルをつければよい。ソースプログラムは,JIS 28ページの2.3 b) の-記述例-を参照のこと。
(参考)人が一度に記憶できる数は7±2と言われており(認知心理学の分野では「マジカルナンバー」と言われる),これ以下の数にすると覚えやすい。 附属書1図16は,その範囲内に選択肢を抑えているが,附属書1図17は,すべての選択肢が羅列されていて見にくく,覚えにくい。
なし
入力に時間制限を設けないことが望ましい。制限時間があるときは事前に知らせなければならない。
(JIS X8341-3: 5.3 c)
加齢などによる認知・理解力の低下,視力低下による画面の見えにくさ,筋力低下,麻ひ(痺),手の震え,不随意運動などのために,応答の入力に時間がかかる場合がある。
5.3 d
ウェブコンテンツによっては,一定時間内にアクセスしないと,システム側で自動的にログアウトする機能を設けている場合がある。しかし,利用者によっては短時間で入力することができず,時間内に操作を完了できない場合がある。したがって原則的に入力に要する時間に制限を設けないことが必要である。
ただし, コンテンツ利用時の離席中の第三者によるなりすましや情報漏えいなどから利用者を保護するために時間制限を設けざるを得ない場合もある。その場合でも,事前に時間制限がある旨を告知すると,利用者が操作する際にあわてるような事態になることを少なくできる。
1) 可能な限り時間制限は設けない。
2) セキュリティなどの理由で,やむを得ない場合は,時間制限があることを表示する。その場合でも,操作をするために十分な時間設定にする。利用者側での設定時間延長については,5.3 dを参照。
なし
時間制限があるときは,利用者によって制限時間を延長又は解除できることが望ましい。これができないときは,代替手段を用意しなければならない。
(JIS X8341-3: 5.3 d)
加齢などによる認知・理解力の低下,視力低下による画面の見えにくさ,筋力低下,麻ひ(痺),手の震え,不随意運動などのために,応答の入力に時間がかかる場合がある。
なし
5.3 c
5.3 cでは“時間制限を設けない,設ける場合は事前に告知する”ことを求めたが,本項目では更に拡張し,利用者の保護のためなどで設けた制限時間を延長したり,解除できるようにすることを求めている。時間設定を行う場合でも,ウェブコンテンツ提供者側であらかじめ十分な時間を設けている場合が多いが,それでもすべての利用者が入力できるとは限らないからである。制限時間を延長したり,解除したりできれば,入力に多く時間を要する重度の肢体不自由者も確実にウェブコンテンツを利用できるようになる。
利用時間を延長できない場合は,インターネットを使用しないなどの他の代替手段を用意する。
なし
利用者の意図に反して,又は利用者が認識若しくは予期することが困難な形で,ページの全部若しくは一部を自動的に更新したり,別のページに移動したり,又は新しいウィンドウを開いたりしてはならない。
(JIS X8341-3: 5.3 e)
a
,area
, meta
なし
<a>
要素もしくは,<area>
要素のtarget
属性は,_blank
,_new
を指定しない。なし
ウェブサイト内においては,位置,表示スタイル及び表記に一貫性のある基本操作部を提供することが望ましい。
(JIS X8341-3: 5.3 f)
a
5.2 a
1) 基本操作部分の表現は,ウェブサイト内あるいは同一カテゴリ内で一貫性をもたせる。
2) [戻る]ボタンなどに使用する画像は,ウェブサイト内で統一し,画像の alt
属性も必ず統一する。
3) 基本操作部分の表現と反応の対応関係は,ウェブサイト内で統一する。例えば「サイトマップ」と書かれたリンクからは,常に同じウェブページにジャンプさせる。
なし
ハイパリンク及びボタンは,識別しやすく,操作しやすくすることが望ましい。
(JIS X8341-3: 5.3 g)
a
要素をリンクであることに気が付かない場合がある。すなわち,利用者は必要なリンクを選択することが困難になる。a
, img
, map
5.4 b
:link
などの擬似クラスによりtd
要素やdiv
要素などの背景の要素に対してスタイルを与えて,リンク範囲を広く出来る場合がある。なし
共通に使われるナビゲーションなどのためのハイパリンク及びメニューは,読み飛ばせるようにすることが望ましい。
(JIS X8341-3: 5.3 h)
ナビゲーションバーやメニューなどをページの最初につける場合は,音声ブラウザはページを表示するたびに,それらを必ず読み上げることになる。そのため,音声ブラウザの利用者は本文を読み上げるまでに時間がかかることになり効率が悪い。
a
5.3 f
.skipnavi a:link {
color: #FFFFFF;
background-color: #FFFFFF;
}
.hidden {
display: none;
}
.skipnavi {
font-size: 1%;
}
.skipnavi {
position: absolute;
top: -10000em;
left: -10000em;
}
(HTML部分) <p id="header"><img src="rogo.gif" width="300px" height="50px" alt="株式会社ABCDEFG"></p> <p class="content">(本文)<br>新製品のお知らせ</p> <ul id="shiri_navi"> <li>トップページ</li> <li>商品</li> <li>サービス</li> <li>会社概要</li> <li>サイトマップ</li> </ul>
(スタイルシート部分) p#header { top: 0px; left: 0px; margin: 0px; padding: 0px; background-color: #CC99CC; } p.content { position: absolute; top: 50px; left: 100px; margin: 0px; padding: 1em; border: solid 1px #AAAAAA; } ul#shiri_navi { position: absolute; top: 50px; left: 0px; width: 100px; margin: 0px; padding: 0px; list-style-type: none; } ul#shiri_navi li { margin: 0px; padding: 0.5em; border: solid 1px #AAAAAA; background-color: #FFCCFF; }
エージェントによっては,ページ内を移動するリンクをジャンプさせた時に,視覚的にはナビをスキップして移動したように見えて,その後,tabキーで移動しようとすると,ジャンプ元に戻って再び元の位置から移動し始める挙動を示すものがある。
ソリューションの1)の例4)から6)はブラウザの仕様によっては正しく表示されない場合がある。また,例2)から6)は一般の利用者には見えない形で情報を提供するので,検索エンジンによっては,SEOスパムと見なされる可能性がある。SEOスパムとは,ロボット検索エンジンに最適化すること(SEO: Search Engine Optimization)を,利己的な宣伝メッセージであるスパム(SPAM)により行おうという行為を指し,検索エンジンは不正行為と見なし,検索結果での順位が低くなる可能性がある。
利用者がウェブコンテンツにおいて誤った操作をしたときでも,元の状態に戻すことができる手段を提供しなければならない。
(JIS X8341-3: 5.3 g)
form
5.3e, 5.4b
なし
画像には,利用者が画像の内容を的確に理解できるようにテキストなどの代替情報を提供しなければならない。
(JIS X8341-3: 5.4 a)
視覚障害のため,音声ブラウザなどを用い音声によって情報を得ている場合がある。その場合,音声ブラウザなどは,画像を音声化できない代わりに,その画像の代替テキストを読み上げる。したがって,代替テキストがないと利用者は内容を理解することができない。
また,テキストブラウザの利用者など,画像を表示しないでウェブコンテンツを閲覧しているときも,代替テキストがないと利用者は内容を理解することができない。
img
(なし)
画像に代替テキストを提供することで,その画像が伝えている情報は,音声あるいは点字などに変換することが可能になる。また,画像を非表示にしているウェブブラウザあるいは画像を表示しないテキストブラウザなどでは,画像を表示できないかわりに代替テキストをその画面に表示することができる。
Web ページに画像を用いることで視覚的な訴求力を高めることができるが,同時にその画像を見ることができない利用者のために代替テキストを記述することで,その画像が伝えている情報をより多くの利用者に伝えることができるようになる。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
ポイントとなるのは以下の2点である。
(1) 必ずimg
要素にはalt
属性をつけること。
(2) 画像が用いられている意図や目的に応じて,代替テキストを簡潔に記述すること。ただし,その画像が情報を伝えていない場合は,alt属性を空(alt=""
)にすること。
その画像を使用する目的あるいはその画像がページで果たしている役割,前後および周囲との文脈により,以下から適切な方法を用いて,画像の代替テキストを記述する。なお,W3Cが公開している(X)HTMLの勧告(仕様)によれば代替テキストが不要な画像のimg
要素にもalt
属性は必須であり,代替テキストが不要であることを示すためにもalt
属性を空(alt=""
)にしなくてはならない。
img
要素のalt
属性値に代替テキストを記述する画像が伝えている情報を簡潔にテキストで記述する。
img
要素のalt
属性に記述する。<img src="image.gif" width="250" height="100" alt="日本工業規格">
alt
属性値を空(alt=""
)にする代替テキストが不要な場合は,alt
属性値を空(alt=""
)にする。また,その画像の周囲にあるテキストで説明している場合も同様である。
img
要素のalt
属性を空(alt=""
)にする。alt
属性を空(alt=""
)にする。<img src="picture.gif" width="300" height="150" alt="">
<p>(・・・画像の内容を説明しているテキスト・・・)</p>
数値データを円グラフあるいは棒グラフなどの画像にして提供する場合は,そのグラフが伝えている数値データの内容をアクセシブルなデータテーブルであわせて提供する。
img
要素のalt
属性には代替テキストとして,グラフがあることを記述する。<img src="graph.gif" width="250" height="200" alt="棒グラフ:過去10年間における利用者人口の推移"> <table> <caption>表1. 過去10年間の利用者人口推移</caption> <tr> <th></th> ……………
alt
属性値に記述する代替テキストが長くなってしまう場合には,別に説明ページを設けてlongdesc
属性でリンクを提供する。また,longdesc
属性をサポートしていないユーザーエージェントのために,画像のすぐ近くに同じ説明ページへのリンクをあわせて提供する必要がある。なお,この別ページには,元のページへの戻りのリンクを用意する。
img
要素のlongdesc
属性で説明ページのURLを指定する。あわせて,longdesc
属性が使えないブラウザのための代替手段として,同じリンク先を指定したテキストリンクを画像のすぐそばに置く。<img src="diagram.gif" width="250" height="200" alt="図:日本規格協会の組織図" longdesc="detail.html"> <a href="detail.html">組織図の詳細</a>
画像の代替テキストは,その画像の用途あるいは目的,役割などにより,ある程度パターン化できるが,実際には前後の文脈や周囲にあるテキストなどにより,ケースバイケースであることが少なくない。重要なのは,その画像を画面で見ることのできない利用者にも同等の情報が伝わることであり,ここで挙げているソリューション以外にもその方法は考えられる。何のために代替テキストを提供するのかをふまえて,適宜その提供の方法を検討する必要がある。
ハイパリンク画像には,ハイパリンク先の内容が予測できるテキストなどの代替情報を提供しなければならない。
(JIS X8341-3: 5.4 b)
視覚障害のため音声ブラウザなどを用い音声によって情報を得ている場合がある。その場合,音声ブラウザなどは,ハイパリンク画像(リンクを設定している画像)を音声化できないので,代わりに代替テキストを読み上げる。したがって,代替テキストがないと利用者はリンク先を識別・理解することができない。
img
, area
, input
(なし)
ハイパリンク画像のimg
要素にalt
属性がないと,音声ブラウザなどではそのリンク先に指定しているURI(a
要素のhref
属性値)がそのまま読み上げられてしまう。また,画像を表示できないブラウザでは何も表示されないため,利用者はリンクであることは認識できてもそのリンク先は全く分からない。
また,イメージマップを使用する際には,マップ内のリンク領域を定義できない場合を除いて,クライアントサイド・イメージマップを用いる。その際,イメージマップそのものを説明する代替テキストと,マップ内の各リンク領域の代替テキストとをあわせて記述する必要がある。
どうしてもサーバサイド・イメージマップを使用するしかない場合には,サーバサイド・イメージマップを利用者がマウス操作することが前提となる。マウスを操作できない利用者のために,マップ内に設定されている全てのリンクの代替手段となるテキストリンクをマップ画像の近くに置かなければならない。
次の方法を選択して,あるいは組み合わせて用いる。
どの方法を用いるにしても,リンク画像の代替テキストは,テキストリンクと同様に,その部分だけでリンク先の内容が分かるように記述する必要がある。
img
要素のalt
属性値に代替テキストを記述するその部分だけでリンク先の内容が分かるように記述する。
img
要素のalt
属性に記述する。<a href="about.html"><img src="image.gif" width="150" height="25" alt="会社概要"></a>
alt
属性値を空(alt=""
)にするリンク画像のすぐそばに同じリンク先へのテキストリンクがある場合は,繰り返しを避けるために,リンク画像のalt
属性値を空(alt=""
)にするか,画像とテキストを一体にして,ハイパーリンクをタグ付けする。
img
要素のalt
属性を空(alt=""
)にする。<a href="about.html"><img src="image.gif" width="200" height="50" alt=""></a><br> <a href="about.html>会社概要</a>
img
要素のalt
属性を空(alt=""
)にする。<a href="about.html"><img src="image.gif" width="200" height="50" alt="">会社概要</a>
area
要素のalt
属性に代替テキストを記述するarea
要素のalt
属性に記述する。<map name="menu"> <area shape=rect coords="0,0,60,90" alt="食品" href="../syokuhin.html"> <area shape=rect coords="60,0,120,90" alt="雑貨" href="../zakka.html"> <area shape=rect coords="120,0,180,90" alt="ギフト" href="../gift.html"> </map>
img
要素のalt
属性に記述する。<img src="map.gif" usemap="#menu" alt="メニュー一覧">
サーバサイド・イメージマップに設定してある全てのリンクと同じリンク先へのテキストリンクをマップ画像のすぐそばに置く。
alt
属性に代替テキストを記述し,あわせて代替手段となるテキストリンクをすぐそばに置く。<a href="cgi-bin/worldmap/database"> <img src="map.gif" alt="世界地図" ismap> </a> <br> <a href="asia.html">アジア</a>|<a href="europe.html">ヨーロッパ</a> |……………
input
要素のalt
属性に代替テキストを記述するフォームのボタンを画像にする際には,そのinput
要素にalt
属性をつけて,ボタンの操作結果をあらわす代替テキストを記述する。
img
要素のalt
属性に記述する。<input type="image" value="送信" src="images/submit.gif" name="submit" alt="送信">
リンク画像の代替テキストは,そのリンク画像の用途あるいは目的,役割などにより,ある程度パターン化できるが,実際には前後の文脈や周囲にあるテキストなどにより,ケースバイケースであることが少なくない。重要なのは,その画像を画面で見ることのできない利用者にもそのリンク先の内容が分かるようなラベル(文言)を代替テキストとして記述することである。
ウェブコンテンツの内容を理解・操作するのに必要な音声情報には,聴覚を用いなくても理解できるテキストなどの代替情報を提供しなければならない。
(JIS X8341-3: 5.4 c)
聴覚障害があるとき,音だけで情報を提供していると提供されていることが認識できず,その内容も理解できない。音声情報は,利用者が聴覚を用いることでその情報を得ることができる。しかし,聴覚に障害があったり,コンピュータの音声出力をオフにしていたり,周囲が騒がしい環境で利用していたりすると,その情報を全くあるいはほとんど得ることができない。
object
(なし)
音声で提供する情報には代替テキストを提供して,利用者が聴覚を用いなくてもその内容を理解できるようにする必要がある。
警告音などを用いる際は,その音が聞こえなくても分かるように,代替テキストなどにより画面で視覚的にもその情報を伝える。
次の方法を選択して,あるいは組み合わせて用いる。
音声情報が聞こえなくても,同じ情報が視覚的に伝わるようにする。
動画など時間によって変化する非テキスト情報には,字幕又は状況解説などの手段によって,同期した代替情報を提供することが望ましい。同期して代替情報が提供できない場合には,内容についての説明を何らかの形で提供しなければならない。
(JIS X8341-3: 5.4 d)
聴覚障害がある場合,音によって情報を提供していると提供されていることが認識できず,その内容も理解できない。
また視覚障害がある場合,どのような映像が表示されているのか理解できない場合に,内容を理解できない。
認知又は記憶に障害がある場合,字幕,状況説明などがあると内容を理解しやすくなる場合がある。
object
(なし)
音声付きの動画には,画面で視覚的に伝えている情報と音声で聴覚的に伝えている情報とがあり,それぞれに代替情報を提供する必要がある。
まず,画面で視覚的に伝えている情報については,音声による補足説明を副音声で提供し,主音声と重ならないように同期させるのが良い方法だが,実際には困難なケースが多い場合もある。そこで,これが困難な場合は,音声や点字に変換できるように,主音声を書き起こしたテキストおよび補足説明となる代替テキスト(副音声の原稿にもなるテキスト)を何らかの手段で提供する。テキスト情報になっていれば,音声あるいは点字に変換することができるので,視覚に障害があっても画面で伝えられている情報を得ることができる。
次に,音声で聴覚的に伝えている情報については,キャプション(字幕)を提供し,画面上で同期させるのが良い方法だが,これもやはり困難な場合がある。そこで,これが困難な場合は,キャプションと同じ要領で代替テキストを書き起こして別ページで提供するなど,音声を聞くことができない利用者にも同等の情報が伝わるようにする。テキスト情報になっていれば,それを点字に変換することができるので,例えば視覚と聴覚の両方に障害があっても,利用者はその情報を得ることができる。
次の方法を選択して,あるいは組み合わせて用いる。
副音声で,登場人物の表情および動作,背景,画面上の文字などを,SMILを用いて主音声と重ならないように提供する。
シンバ「それっ!」
[シンバは外へ駆け出して行き,両親が後に続きます。サラビはやさしく微笑みながら,シンバを父の方へ行くようにと促します。2頭は並んで座りながら,黄金に輝く日の出を見つめています。]
ムファサ「見なさい,シンバ。太陽が輝かせているのは,私たちの王国だ。」
シンバ「ほんとだ!」
登場人物の表情および動作,背景,画面上の文字などを,副音声ではなく,代替テキストとして提供する。
シンバ「それっ!」
[シンバは外へ駆け出して行き,両親が後に続きます。サラビはやさしく微笑みながら,シンバを父の方へ行くようにと促します。2頭は並んで座りながら,黄金に輝く日の出を見つめています。]
ムファサ「見なさい,シンバ。太陽が輝かせているのは,私たちの王国だ。」
シンバ「ほんとだ!」
登場人物のセリフ,効果音などをテキストに書き起こして,同期したキャプションとして画面上で提供する。
*「E.T.」のあるシーンに対する字幕。電話のベルが3回鳴った後,声が聞こえる場面。
[電話の呼出音が鳴る]
[呼出音]
[呼出音]
「もしもし?」
登場人物のセリフ,効果音などをテキストに書き起こして,代替テキストとして提供する。これをトランスクリプトとよぶが,このトランスクリプトへのリンクは目立つところに配置すべきである。
*「E.T.」のあるシーンに対する字幕。電話のベルが3回鳴った後,声が聞こえる場面。
[電話の呼出音が鳴る]
[呼出音]
[呼出音]
「もしもし?」
アクセス可能ではないオブジェクト,プログラムなどには,利用者がその内容を的確に理解し操作できるようにテキストなどの代替情報を提供しなければならない。また,アクセス可能なオブジェクト又はプログラムに対しても,内容を説明するテキストなどを提供することが望ましい。
(JIS X8341-3: 5.4 e)
オブジェクトあるいはプログラムがアクセシブルでないと,そのオブジェクトあるいはプログラムが提供している情報および機能を利用できない。また,特定のプラグインを用いる場合には,そのプラグインをサポートしていない環境では,やはりユーザーは情報および機能を利用することができない。
object
, script
, a
(なし)
5.1 b) の「アクセシブルなオブジェクトの使用」にあるように,オブジェクトあるいはプログラムを使用する際は,それ自体をアクセシブルにするよう最大限につとめなくてはならない。しかし,どうしてもこれらをアクセシブルにできない場合には,利用者が同等の内容を理解してその情報およびサービスを利用できるように代替情報を提供する必要がある。
また,オブジェクト,プログラム,あるいはプラグインがアクセシブルであっても,あわせてテキストなどの代替情報を提供することで,利用者は好きなほうを選択することができるようになり,その利便性が向上する。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
object
要素の代替テキストobject
要素には代替テキストを提供する。代替テキストは,オブジェクトのもつ情報と同等の内容を提供するか,もしくはそのオブジェクトを用いることができない場合の代替手段に関する情報を提供する。
<object classid="java:Press.class" width="500" height="500"> <object data="Pressure.mpeg" type="video/mpeg"> <object data="Pressure.gif" type="image/gif"> 温度が上がるにつれて,風船の中の分子は・・・ </object> </object> </object>
script
要素があるとき,noscript
要素を使ってスクリプトが使えないときにも,アクセスできること<script type="text/javascript"> メニューのためのスクリプトが書いてある </script> <noscript><a href="altmenu.html">メニューのページを開く</a></noscript>
プラグインを使用する際は,その最新バージョンをダウンロードできるページへのリンクを提供する。
<a href=http://www.adobe.co.jp/products/acrobat/readstep2.html" ><img src="images/get_adobe_reader.gif" width="88" height="31" alt="Adobe Readerのダウンロード"></a>
<a href=http://www.macromedia.com/jp/go/getflashplayer_jp/" ><img src=" images/get_flash_player.gif" width="88" height="31" alt=" Macromedia Flash Playerのダウンロード"></a>
<a href="http://www.microsoft.com/japan/windows/windowsmedia/download/"><img src="http://www.microsoft.com/windows/windowsmedia/images/Download_88x31_static.gif" width="88" height="31" alt="Windows Media Playerのダウンロード"></a>
<a href="http://www.apple.com/jp/quicktime/download/" >QuickTimeのダウンロード</a>
ウェブコンテンツの内容を理解・操作するのに必要な情報は,色だけに依存して提供してはならない。
(JIS X8341-3: 5.5 a)
ある情報を強調したり,他との差異を明確にしたりするために,文字色を変えるなどして色を用いることは視覚的により分かりやすく情報を伝えることができるという点ではとても有用である(例:必須項目のみ赤字で示す,新商品名のみ赤字で示す,など)。また,グラフなどでは複数の色を用いてデータを示す場合がある。
しかし,色を用いて情報を提供する場合,それらの色が識別できない場合でも情報が伝わるようにしなければならない。たとえば,音声読み上げソフトでは文字の色までは読み上げないため,利用者は文字の色だけで伝えられている情報が理解できない。また,色覚に障害のある利用者がその文字やグラフの色を識別できずに理解できないこともある。さらに,モノクロで印刷した場合には色は全て破棄されるため,特定の色で情報が表現されていると利用者はその色が識別できずに理解できない。
img
, color
, bgcolor
技術解説 テキストの文字色で情報を示す場合は,あわせてテキストでも情報を提供する(例:「赤字の項目名(必須)」,「赤字の商品名(新商品)」,など)。そうすることで,音声読み上げソフトでも情報が伝わり,その色が識別できない場合でも情報が伝わるようになる。
また,グラフで複数の色を用いる際には,凡例だけではなく,引込み線を用いるなどして色が識別できなくても情報が伝わるようにする。
以下の手段を用いて,色が識別できなくても情報が伝わるかどうかを確認するとよい。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
たとえば,文字色で情報を示す場合は,あわせてテキストでも情報を提供する。
<p class="required">名前<em>(必須)</em></p> p.required { color : red }
ウェブコンテンツの内容を理解・操作するのに必要な情報は,形又は位置だけに依存して提供してはならない。
(JIS X8341-3: 5.5 b)
表組みなどで用いられる「○」「△」「×」といった記号文字は,視覚的により分かりやすく情報を伝えることができるという点ではとても有用である。
しかし,これらの記号文字は音声ブラウザやスクリーンリーダーでは意図したとおりに読み上げられないことがあるため,音声読み上げでは情報が伝わらないことがある。
また,「左のボタン」「右のボタン」というように,位置だけで示した情報も音声読み上げでは伝わらないため,利用者は画面上の位置が把握できず,操作することができない。
(なし)
(なし)
「○」「△」「×」などの記号文字で情報を提供する場合は,音声読み上げでもその情報が正しく読み上げられるように,テキストによる補足情報を提供する,あるいは記号文字を画像にしてその意味を代替テキストで提供する。
また,「左のボタン」「右のボタン」だけではなく,「左の送信ボタン」,「右のキャンセルボタン」というように,位置が把握できなくてもどのボタンかが伝わるようにしなければならない。その際,ボタン自体にも「送信」「キャンセル」といったラベルをつけておく必要がある。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
「○」「△」「×」「-」などの記号文字の直後に,テキストでその記号文字が伝えている意味を補足する。
「○(あり)」,「×(なし)」
「○(対応)」,「-(非対応)」
「○(開館日)」,「△(午前のみ開館)」,「×(休館日)」
「○」「△」「×」「-」などの記号文字を画像にして,それぞれの代替テキストにその記号文字が伝えている意味を記述する。
<img src="maru.gif" width="20" height="20" alt="あり">
<img src="batsu.gif" width="20" height="20" alt="なし">
ボタン自体に「送信」「キャンセル」といったそのボタンの機能を示すラベルをつけ,「左のボタン」「右のボタン」ではなく,「左の送信ボタン」「右のキャンセルボタン」あるいは「送信ボタン」「キャンセルボタン」と表現する。
画像などの背景色と前景色とには,十分なコントラストを取り,識別しやすい配色にすることが望ましい。
(JIS X8341-3: 5.5 c)
文字の色とその背景の色,画像で表現された文字や記号,アイコンなどは背景色と文字などの前景色の間に十分なコントラストと配色における配慮がないと,見づらい,見えない利用者がいる。たとえば,弱視の人の場合,色のコントラストが十分でないと,色の差を識別することが困難で,表示された情報を確認できないことがある。また,色覚障害のある人には,特定の色の識別が困難な場合がある。人間の色覚には,3色(赤,緑,青)の感覚受容体があり,それらの個々の色感覚が弱い場合と,まったく感覚がない場合がある。最も代表的なものは,第1色覚(赤)と第2色覚(緑)の障害である。
img
,object
,font
スタイルシートの色に関するプロパティすべて
5.2.b 5.5.a 5.6c
この要件が求めているのは「コントラストに対する配慮」と「色の組み合わせに対する配慮」の2点である。コントラストへの配慮は,高齢者や弱視の人に必要であると共に,色覚障害のある人でもコントラストが取れている色の組み合わせならば,識別可能になる。また,色の組み合わせに関する配慮は,一般には色覚障害の人のための配慮であるが,同時に色の効果的な使用によって識別性を高めることは一般の利用者のユーザビリティを高めるためにも有効である。具体的には,文字と背景色あるいは背景画像の関係,アイコンや図記号などと背景との関係,画像やオブジェクトなどの内部における表現したい文字や記号などと背景との関係に配慮が必要である。
次の方法を選択して,あるいは組み合わせて用いる。
文字やアイコン,その他の図記号などを含む画像では,5.6c のソリューション1,2, 3と同様にコントラストと色差に配慮する必要がある。
画像などで,コントラストや色差を確保できないときは,縁取りを利用することによって擬似的に背景色とのコントラストと色差を確保すると見やすくなる。
文字のサイズ及びフォントは,必要に応じ利用者が変更できるようにしなくてはならない。
(JIS X8341-3: 5.6 a)
画面上の文字は,視力に問題が無くても読みづらいものである。特に,小さなサイズの文字や,読みづらい種類のフォントが用いられていると,弱視のユーザや,加齢に伴い視力低下と遠視(老眼)が同時に進行して視力の衰えたユーザには読みづらい。低下した視力を補うために画面に顔を近づけると遠視のために焦点の調節が出来ず文字がぼやけてしまう。焦点を合わせるために画面から顔を遠ざけると今度は文字が小さすぎて読めなくなってしまう。そのような場合に,ウェブページ内で提供されている機能で,または,ウェブブラウザの表示文字の拡大,縮小機能などを使って文字を大きく設定できる必要がある。この時,ウェブブラウザによる変更ができるように作成されていないと,この拡大,縮小機能を利用できないという問題が発生する。なお,この要件では,フォントサイズや種類の指定について述べているが,指定することを推奨しておらず,あくまでも,指定する場合に配慮すべき事項について述べている。
図 マイクロソフト社インターネットエクスプローラの文字サイズ変更メニュー
また,この文字の拡大機能を使っても一定程度しか文字を大きくできないため,それでも文字を読むことができない利用者は,拡大鏡(WindowsがOSで提供するユーザー補助機能)等の支援技術を用いている。画面を拡大するソフトウェアでは,画面を数倍から十数倍に拡大して表示することが可能であるが,画面をビットマップとして拡大するため,元の文字サイズが小さすぎると拡大した後も文字がつぶれて読みづらい。なお拡大時の横スクロールは,ユーザに次の行がどこかを見失わせることがあるため,なるべく横スクロールが発生しないように注意が必要である。
また,デフォルトのスタイルシートを利用せず,利用者が自ら作成したユーザスタイルシートを用いて表示を見やすくすることも可能だが,スタイルシートの切り替えは操作が煩雑でウェブページの仕組みにある程度精通していないと使えないため,ユーザスタイルシートの使用を前提にしたデザインを行うべきではない。
font
, font-size
, font-weight
5.1.a 5.2.b
この要件を実現する際には,5.1 a) 仕様に関する準拠,5.2 b) 構造と表示スタイルの分離,にも注意を払う必要がある。すなわち,HTMLだけで文字のサイズやフォントを変更する場合と,CSSを用いる場合とで実現方法と,利用者に対する影響が異なる点に注意を払う必要がある。一般論として,フォントを指定する要素,あるいはCSSのプロパティでは相対値である“em”,“%”を用いる。
ソリューション 次の方法を選択して,あるいは組み合わせて用いる。
font
要素でサイズを指定したい場合には,相対値を使用するfont
要素は,非推奨の要素であり本来使用しないほうがよい。しかし,font
要素を使わざるを得ない場合には,絶対値指定せず,basefont
からの相対値で指定するとよい。またこの場合には,basefont
要素で基準となるフォントサイズを指定しないほうがよい。なお,basefont
の初期値は3であり,サイズ指定できるのは1~7の範囲であることに注意する。
文字のサイズを「中」にした状態
文字のサイズを「最大」にした状態
ソース
<ul> <li><font size="-2">一番小さな文字(<font size="-2")> </font></li> <li><font size="-1">少し小さな文字(<font size="-1")> </font></li> <li>通常の文字</li> <li><font size="+1">少し大きな文字(<font size="+1")> </font></li> <li><font size="+2">大きな文字(<font size="+2")> </font></li> <li><font size="+3">もっと大きな文字(<font size="+3")> </font></li> <li><font size="+4">いちばん大きな文字(<font size="+4")> </font></li> </ul>
スタイルシートを用いて文字のサイズを指定する場合には,font-size
またはfont
プロパティで相対値で指定する。絶対値で指定する場合には,文字サイズを指定する次のキーワードを用いる。
xx-small
,x-small
,small
,medium
,large
,x-large
,xx-large
これらのキーワードはCSSの絶対指定として位置づけられているが,ウェブブラウザで文字を拡大縮小することが可能である。medium
を基準として,一般的にはCSS1では順に約1.5倍で変化し,CSS2では,約1.2倍で変化するが,この変化の倍率はウェブブラウザによって異なる。ただし,xx-small
,x-small
は非常に小さいフォントで表示されることがあるので,使用する際には注意が必要である。
small
などのキーワードは,ブラウザにより標準の大きさが異なるため,個別のCSSを作るなどの配慮が必要な場合がある。
絶対値指定では,12pt,20pxなどの形式で数値+単位での記述も許されているが,この方式でサイズを指定すると,利用者はフォントサイズを変更できないウェブブラウザがあり,問題の原因となる。
一方,相対値指定では,以下の方法で基準となるフォントから大きさを指定することが可能である。
font-size: 150%;
親要素のフォントサイズを基準として,150%(高さ,及び幅を1.5倍)にする。
font-size: 2em;
親要素のフォントサイズを基準として,2倍(面積は4倍)にする。ウェブブラウザにより,ウェブブラウザで文字サイズを変えた時に,em
で指定した時は,パーセントで指定した時よりも変化の割合が大きい場合がある。
また,ex(文字“x”を基準としたサイズ指定)も相対地指定であるが,ウェブブラウザによる対応が一様でないため使わないほうがよい。
なお,pt(ポイント),mm(ミリメートル),cm(センチメートル),pc(パイカ),in(インチ),px(ピクセル)は絶対指定となるため使用しない。
larger
,smaller
で指定するfont-size: smaller;
親要素がmedium
になっているときには,larger
を指定するとlarge
に,smaller
を指定するとsmall
を指定したのと同じになる。
以下の表が,この要件を満たすために用いることができるプロパティの記述法である。
プロパティ値 | 使用する際の注意点 | |
---|---|---|
用いてもよいもの | x-small ,small ,medium ,large ,x-large ,xx-large |
xx-small は文字が小さくなりすぎ利可能性があるので避けたほうがよい。 |
smaller ,larger |
smaller を用いる場合には,フォントが小さくなり過ぎないように注意する。 |
|
“%”,“em”による指定 | 指定した文字が小さくなり過ぎないように注意する。 | |
用いないほうがよいもの | “pt”,“mm”,“cm”,“pc”,“in”,“px”による指定 |
xx-small
やx-small
などの指定
medium
などの指定
xx-large
やx-large
などの指定
input.text { font-size: 100%; } input.textimeon { font-size: 100%; } input.textimeoff { font-size: 100%; } input.textimeauto { font-size: 100%; } input.password { font-size: 100%; } input.checkbox { width: 1em; height: 1em; font-size: 1em; } input.radio { width: 1em; height: 1em; font-size: 1em; } input.submit { font-size: 100%; } input.reset { font-size: 100%; } input.button { font-size: 100%; } textarea.accss { font-size: 100%; } textarea.accssimeon { font-size: 100%; } textarea.accssimeoff { font-size: 100%; } textarea.accssimeauto { font-size: 100%; } button.accss { font-size: 100%; } select.accss { font-size: 100%; }
ブラウザやコントロールパネル等での文字サイズの調節機能を知らないユーザのために,Webページの中に文字サイズを調節できるような機能を文字リンクやボタンなどで提供する。初心者等のユーザを想定した場合,いかに操作が容易で分かりやすくアクセシブルな機能を提供するか自体も重要である。
文字を画像化すると,文字サイズを利用者が変更できなくなる。文字を画像化する変わりに,スタイルシートを使って表示したほうがよい。なお,ロゴマークなどその形に意味があるものに関しては画像化することはやむをえないが,その場合にも,文字サイズを出来るだけ大きめにする,書体を読みやすい書体を用いる,そして背景色とのコントラストを十分に確保するなどして,見やすさ読みやすさに十分配慮する必要がある。
フォントのサイズを絶対値で指定していても表示サイズを変更可能なウェブブラウザや,表示最小フォントサイズを指定できるブラウザもある。今後,絶対値でフォントサイズが指定されていても利用者が自由なサイズで表示できる機能が一般になってくると,この要件はそのような機能を有しないウェブブラウザの互換性のためだけのものになると思われる。
スタイルシートで,文字サイズの指定を継承によって重ねると,コントロールパネルのユーザ補助でハイコントラスト設定してブラウザで表示した時に,拡大率が大きくなる事がある。例えばテキストサイズ100%の要素をテキストサイズ100%の要素に入れると200%になることがある。
フォントを指定するとき,サイズ及び書体を考慮し読みやすいフォントを指定することが望ましい。
(JIS X8341-3: 5.6 b)
5.6 a) の要件により利用者がフォントを変更できるようになっていても,すべての利用者がその変更操作できるとは限らない。たとえば,ウェブブラウザの操作が不慣れな高齢者は,画面がよく見えない上に,文字を大きくする操作もできないということが考えられる。したがって,最初から読みやすいフォントのサイズと種類が使われているほうがよい。しかし,この要件はフォントを指定するときに配慮すべき事項を定めているだけなので,積極的にフォントを指定することを求めているわけではない点に注意が必要である。
font
, font-family
, font-style
(なし)
次の方法を選択して,あるいは組み合わせて用いる。
スタイルシートのfont-size
,font
プロパティでxx-small
,x-small
を用いない。また,0.8emあるいは80%以下のサイズを指定しない。
フォントは,ユーザが自分でウェブブラウザなどの設定を使って指定できるように,なるべく指定はしない。フォントの種類を指定する場合には,スタイルシートで指定し,font
要素で指定しない。font
要素で指定すると,利用者はユーザスタイルシートを用いてフォントを変えることができなくなる。なお,スクリーンの画面表示には,ゴシック体が見やすいという意見がある。ゴシック系の日本語フォントには,マイクロソフトウィンドウズに搭載された「MS ゴシック」「MS Pゴシック」,マッキントッシュに搭載された「Osaka」などがある。欧文では,「sans-serif」がよく用いられる。一方,印刷用のためのフォントは,明朝体が見やすいという意見があるので,スタイルをメディアによって変える方法も有効である。
font-family: "MS Pゴシック", Osaka, sans-serif;
スタイルシートのfont-style
,font-stretch
,font-size-adjust
,font-weight
,line-height
,text-decoration
,letter-spacing
,word-spacing
,text-shadow
プロパティなどを用いてフォントのスタイルを調整したり,文字間や行間を制御したりする場合には,見易さへの配慮が必要である。
フォントの大きさ,種類,書体に関する読みやすさは,色や利用者の使用しているコンピュータのモニタや照明環境などに左右されるため,明確な数値で評価することは難しい。したがって,この要件を満たすための最もよい方法は,ユーザーのブラウザでの設定を最優先するためにフォントに関する指定をしないことである。しかし,一般論として小さな文字は読みづらく,太い文字,大きな字は読みやすい。また,明朝体よりもゴシック体のほうが読みやすいことが知られている。何らかの指定をする際には,これらの点を念頭に入れる必要がある。
フォントの色には,背景色などを考慮し見やすい色を指定することが望ましい。
(JIS X8341-3: 5.6 b)
フォントの色と背景色の組み合わせによっては,文字が読みづらくなることがある。たとえば,ある種の色覚障害のある人には,赤と緑の区別が難しい。また,一般的に白内障や加齢による視力の低下のある人,弱視の人は,コントラストの低い文字は読みづらい。
color
, background-color
, background
, background-image
5.5c
これらの問題に対処するには,色の組み合わせについての配慮が必要である。文字色と背景色の間に十分なコントラストをとることで,見やすくすることができる。なお,この問題に対応する最もよい方法は,フォントの色を指定せず,背景色も指定しないことである。当然ながら,画像化したテキストがない場合,フォントの色,背景色を指定していない場合には,この要件を配慮する必要がない。
次の方法を選択して,あるいは組み合わせて用いる。
コントラストを十分にとるということは,グレースケールで表示あるいは印刷しても識別可能になっているということを意味する。RGBで表現された色をYIQ色空間に変換したY値(輝度)を基準としてその差を求めるとことで,ディスプレイに表示される色の組み合わせの近似的な輝度コントラスト比を求めることができる。RBGとYIQの変換は,一般に次式で可能である。
RGBの値からYIQ表色系を求める式
Y= 0.299 R +0.587 G +0.114 B (輝度(光度))
I = 0.596 R -0.274 G -0.322 B (肌色を含むオレンジからシアンにかけての色調)
Q = 0.211 R -0.522 G +0.311 B (それ以外の色)
注意:W3Cでは,コントラストについて125以上と定めているが,変更される可能性がある。
http://www.w3.org/TR/AERT#color-contrast
色差とは,次式で表される値で,色差を十分に確保することによって,より見やすい色の組み合わせが実現できる。
(maximum (R値1, R値2) - minimum (R値1, R値2)) + (maximum (G値1, G値2) - minimum (G値1, G値2)) + (maximum (B値1, B値2) - minimum (B値1, B値2))
注意:W3Cでは,色差について500以上と定めているが,変更されるかもしれない。
http://www.w3.org/TR/AERT#color-contrast
html
要素やその他の要素の背景に画像を用いると,そこに表示される他の画像や文字の色とのコントラストや色差をすべて検討しなければならなくなるため,背景画像を使用しないほうがより見やすいページを容易に作成できる。また,利用者がユーザスタイルシートを使用したり,スタイルシートを利用せずに表示した場合,あるいはOSのハイコントラスト表示を利用した場合に,利用者の色の指定と背景画像の関係が似通っていると,コントラストを確保できない。したがって,背景画像は,なるべく使用しないほうがよい。
自動的に音を再生しないことが望ましい。自動的に再生する場合には,再生していることを明示しなければならない。
(JIS X8341-3: 5.7 a)
ページを開いたときに自動的に音(音楽等)が流れると,意図しない出来事にユーザーが驚いてしまうことがある。たとえば,音声ブラウザを利用している場合,読み上げの音声が音(音楽など)と重なって聞き取りづらくなる可能性がある。音量を下げようとすれば,本文の読み上げの音量も下がってしまい,そのページの閲覧が事実上できなくなってしまう。あるいは,静かなオフィスや図書館などでページを利用しなければいけないことも考えられる。また,聴覚障害の利用者の場合,音が出ていることに気づかず,音が再生され続けてしまい,周囲に迷惑をかけていることに気づかないかもしれない。このように,音声読み上げソフトを利用している場合や,静かな場所や静かにしないといけない場所でWeb閲覧をしている場合などに,ページを開くのと同時に自動的に音が再生が開始されると使いづらい。
bgsound
, object
, embed
5.4 c 音声の代替
ページを開いたときに自動的に音声を再生するような設定は基本的にしないことが大切である。自動再生ではなく,再生ボタンを押すなど,ユーザーの操作で再生を開始すべきである。
どうしても,ページを開いたときに自動再生する必要がある場合は,そのページのわかりやすいところに,現在音が再生されていることを表示しなければならない。仮に,自動再生されているページを開く1つ前のページに,自動再生されるページであることを明示されていたとしても,他の場所から直接その自動再生されるページにリンクされていたり,ブックマークに登録されていたりする場合のことも考慮し,現在音が再生されていることを表示しなければならない。
次の方法を選択して,あるいは組み合わせて用いる。
音声読み上げソフトの読み上げがページで自動再生される音声と重なってしまうという問題以外に,音の自動再生が許容されるか否かは,利用者の特性やページの利用する時間帯,利用する場所によって異なると考えられる。音声出力を利用できない利用者もいるかもしれない,あるいは,静かなオフィスや図書館などでページを利用しなければいけないことも考えられる。そのようなことも考慮に入れて,それでもなお,音の自動再生が必要なのかどうか,再度検討する。
音を自動再生する場合は,そのページのわかりやすいところ,ページ先頭やタイトル部分に,現在音が再生されていることを表示する。または,音楽を再生するプラグインのコントローラーを表示することで,音の再生を伝えることも可能と思われる。
「このページは音楽が自動的に再生されます」
「音楽自動再生中」
「このページは音楽が自動的に再生されます」
「音楽自動再生中」
画像やアイコンで示す場合:
<img src="aotosound.gif" alt="このページは音楽が自動的に再生されます">
<img src="aotosound.gif" alt="音楽自動再生中">
bgsound
は利用者が音の制御をできない。そもそもbgsound
は,Internet Explorerの独自の拡張属性であり,規格外の要素であるため使用しないこと。そのため,音を再生する場合はobject
要素を利用する。ただしobject
要素の未対応のブラウザ,あるいは不完全なブラウザが多いことに配慮しobject
要素と同時にembed
要素も記述するほうがよい。
<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"> <param name="filename" value="sound.mid"> <embed src="sound.mid"> <noembed> Windows Media Playerでは音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.mid)</a><br> </noembed> </object>
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="300" width="300"> <param name="src" value="sound.rm"> <embed src="sound.rm" height="300" width="300"> <noembed> Real Playerでは音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.mid)</a><br> </noembed> </object>
環境によっては自動的に再生が開始されてしまう場合があるので,明示的に自動再生をしないように設定する。
<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"> <param name="autoStart" value="false"> <param name="filename" value="sound.mid"> <param name="loop" value="false"> <embed src="sound.mid" autostart="false" hidden="false" loop="false"> <noembed> Windows Media Playerでは音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.mid)</a><br> </noembed> </object>
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="300" width="300"> <param name="src" value="sound.rm"> <param name="autostart" value="flase"> <param name="loop" value="false"> <embed src="sound.rm" autostart="false" loop="false" height="300" width="300"> <noembed> Real Playerでは音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.rm">音声ファイル (sound.rm)</a><br> </noembed> </object>
音は,利用者が出力を制御できることが望ましい。
(JIS X8341-3: 5.7 b)
音声を再生する場合,利用者の特性や利用している場所によって,音量を制御したい場合がある。音声が聞こえづらいので大きくしたいとか,逆に音声が大きすぎる場合には小さくしたいとか,周囲が静かな場所では音は小さめにしたい,会議中なので音声を消したい・・など。そのようなといった場合に,再生,停止(可能なら一時停止),音量調整をユーザーが,操作できるようにしたいと思われる。
object
, embed
5.1 b アクセシブルなオブジェクトの使用
5.4 c 音声の代替
5.4 e オブジェクトの代替形式
音を鳴らす場合,object
要素またはembed
要素を利用して記述する。そのとき,再生の停止や一時停止,音量調節などためのコントロールパネルが表示できるプラグインを選択するべきである。また,意図的にコントロールパネル隠すようなことをしないことが重要である。
次の方法を選択して,あるいは組み合わせて用いる。
bgsound
要素は利用せずobject
要素およびembed
要素を利用する。bgsound
は,Internet Explorerの独自の拡張属性のため,Internet Explorer 以外のブラウザでは音が再生できない。さらにbgsound
は利用者が音の制御をできなくする恐れがあるため,音を再生する場合はobject
要素を利用する。ただしobject
要素の未対応のブラウザ,あるいは,不完全なブラウザが多いことに配慮しobject
要素と同時に embed
要素も記述するほうがよい。
再生の停止や一時停止,音量調節などのためのコントロールパネルが表示できるプラグインを選択する。
<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"> <param name="autoStart" value="false"> <param name="filename" value="sound.mid"> <param name="loop" value="false"> <param name=" " value="false"> <param name="hidden" value="false"> <embed src="sound.mid" autostart="false" hidden="false" loop="false"> <noembed> Windows Media Playerでの音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.mid)</a><br> </noembed> </object>
<script type="text/javascript"> function Play(){ MediaPlayer.play(); } function Stop(){ MediaPlayer.stop(); } </script> <object id="MediaPlayer" classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"> <param name="autoStart" value="true"> <param name="filename" value="sound.mid"> <param name="loop" value="false"> <param name="hidden" value="false"> <embed src="kid1.mid" autostart="false" hidden="true" loop="false"> <noembed> Windows Media Playerでの音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.mid)</a><br> </noembed> </object> <a href="javascript:Play()">音楽再生</A><br> <a href="javascript:Stop()">音楽停止</A><br>
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" height="300" width="300"> <param name="src" value="sound rm"> <param name="autostart" value="flase"> <param name="loop" value="false"> <embed src="sound.rm" autostart="false" loop="false" height="300" width="300"> <param name ="controls" value="all"> <noembed> Real Playerでの音声が再生できませんでした。<br> 下のリンクで音声ファイルを直接開くことができます。<br> <a href="sound.mid">音声ファイル (sound.rm)</a><br> </noembed> </object>
変化又は移動する画像又はテキストは,その速度,色彩・輝度の変化などに注意して作成することが望ましい。
(JIS X8341-3: 5.8 a)
スクリプトやアニメーションなどを用いて画像や文字を変化させたり,スクロールする表示を行うと,それを十分に理解できない人,変化が早すぎて戸惑ってしまう高齢者など,認知に障害のある利用者が理解できない可能性がある。弱視などで画面を拡大して利用する場合にも,スクロールする文字を読むことができないといった問題が発生する。背景色および文字色が変化する際には,背景と文字との輝度の変化が大きいほど目への負担が大きくなり,また点滅速度が早いと内容を認識できないことがある。
また,永続的に繰り返される変化,点滅,移動といった動きは,利用者の注意を向けさせる効果があるため,利用者のコンテンツへの集中力を損なうことがある点に注意する必要がある。
img
, object
, script
5.8 b 5.3 e 5.9 f
バナー広告などのアニメーション画像では,背景の変化はなるべく緩やかにして,極端な色の変化を避ける。複数の画像をアニメーションで表示する場合,明度,彩度および色相が大きく異なる画像を交互に繰り返し表示しないほうがよい。文字を変化または移動させる場合は,利用者が認識しやすいようにそのコントラスト輝度の変化および速度を緩やかにするとよい。また,点滅させる際は,認識しやすいようにその速度を遅くするなどの配慮も必要である。
また,スクロールや点滅といった動きのある表現は,利用者のコンテンツの他の部分への集中力をそぐため,できるかぎり避けるべきである。どうしてもこういった表現を用いる際には,点滅の場合には一定時間経過後には静止させるか利用者が停止できるようにする。スクロールは避けるなどの配慮が望まれる。
なお,文字をスクロールさせるmarquee
要素,文字を点滅させるblink
要素は,いずれもW3Cの勧告(仕様)にはない規格外要素であり,これらを用いるべきではない。
一般に人の読みの能力に関しては,適切な条件下で1回の視線の停留で読めるのは漢字かな混じり文で3.5文字程度である。停留は平均して300m秒程度必要でなおかつ眼球の移動(跳躍運動)に数10m秒必要なことから,静止した文章でも1秒間に読める文字数は10文字程度となる。実際には,変化したり移動したりする文字では,読みの速度がさらに低下すると考えられるので,1秒間で5文字程度と考えることができる。したがって,10文字程度の表示が変化する場合には,最低でも2秒間同じ内容を表示している必要がある。また,読みや注意能力の低下した高齢者の場合には,これよりもさらに長い時間が必要と考えられる。文字を移動する場合には,この読みの速度の問題に加え,次に視線を移動する位置が見えていないと読みずらい。したがって,少なくとも一度に10文字以上表示している必要があると考えられる。また,弱視者の場合には,これよりもさらに十分な時間を必要とするためスクロールしたり点滅したりする文字は使用しないようにしたほうがよいと考えられる。
以上の点から,時間的に変化する表現は可能なら避けたほうがよい。しかし,一方でイラストを用いたアニメーションはコンテンツの理解しやすさを向上させたり,大事な箇所に注意を向けさせるのに有効であり,ここで指摘した点に注意を払いつつ控えめに使用するのがよい。
次の方法を選択して,あるいは組み合わせて用いる。
早い周期での画面の点滅を避けなければならない。
(JIS X8341-3: 5.8 b)
光の明滅によって光感受性発作(光源性てんかん)を誘発することがある。20Hzの時間周波数(1秒間に20回)にピークがあり,特に赤と青とを交互に点滅させると,光感受性発作を誘発しやすい。利用者の安全性に関することなので最大限の配慮が必要である。
img
,object
(なし)
画面全体を明滅させると,光感受性発作を誘発することがあるので使用しない。どうしても明滅させたい場合は,画面全体を1秒間に2回以上明滅させないようにして,特に,彩度の高い赤の明滅およびコントラストの強い画面の反転を避けなければならない。
また,画面内で明滅する部分の領域は,できるだけ小さい範囲に留めるよう配慮するのがよい。しかし,たとえ画面の一部だとしても,中には弱視の利用者のように画面を拡大していることもあるので,できるかぎり画面の明滅は避けるべきである。
また,画面全体を占めるような,しま,渦巻き,同心円といった規則的なパターン模様も画面の明滅の場合と同様の危険があるため,そういったページデザインも避けるべきである。
なお,W3Cでは,この明滅に関する具体的な基準値に関して,「ITC Guidance Note for Licensees on Flashing Images and Regular Patterns in Television (http://www.ofcom.org.uk/codes_guidelines/broadcasting/tv/vrs_code_notes/flsh_imgs/?a=87101)」 で定められている基準をWCAG 2.0で採用することを検討している。
次の方法を選択して,あるいは組み合わせて用いる。
W3CのWCAG 1.0では,チェックポイント7.1で「1秒間に20回の点滅をピークとして,1秒間に4~59回(Hz)の点滅」,米国のリハビリテーション法508条では,「2~55ヘルツの周波数」(1秒間に2~55回)の点滅,を避けるようにとそれぞれ定めている。
画面の明滅と同様の危険性があるため,このような表現は避ける。
言語が指定できるときは,自然言語に対応した言語コードを記述しなければならない。
(JIS X8341-3: 5.9 a)
自然言語の指定は,音声ブラウザが正しい言語辞書を用いて読み上げるために必要である。現在日本国内で使われている主な音声ブラウザやスクリーンリーダーは日本語にしか対応しないものが主流であるが,複数の言語を正しく識別できる環境が整備された際には,言語コードの指定によって複数の言語を用いて作成されたページを正しく読み上げることができるようになる。また,一般のウェブブラウザでも言語コードの指定が正しくされていないと,適切なフォントを用いて正しく表示できないことがある点に注意する。
html
,span
ウェブブラウザが表示する際に使用する言語は,次の順序で解釈され表示される。
1) 要素でlang
属性で指定された言語コード
2) その要素の親になる要素において,lang
属性で指定された言語コード
3) HTTPのContent-Languageヘッダで指定された言語コード
4) ウェブブラウザのデフォルトの言語コード
したがって,HTMLでは html
要素で言語コードを指定しておくのが最もよい方法である。
html
要素にはlang
属性でデフォルトの言語を指定する。XHTMLでは,lang
属性に加えてxml:lang
属性を用いてデフォルトの言語を指定する。<html lang="ja">
<html xmlns="http://www.w3.org/1999/xhtml"
lang="ja" xml:lang="ja">
lang
属性を使って指定する。言語属性を指定できる要素がすでにある場合は,それを使用し,それ以外では,span
, div
要素を用いる。<span lang="en">English section of the document</span>
なし
日本語のページでは,想定する利用者にとって理解しづらいと考えられる外国語は,多用しないことが望ましい。使用するときは,初めて記載する時に,解説しなければならない。
(JIS X8341-3: 5.9 b)
高齢者や認知障害のある人を含め外国語を理解できない,または日本語の外来語や外国語に習熟していない人にとって,外国語が文中などに多用されると理解が困難になる。
なし
日本語のコンテンツの場合で,外国語を用いなくても情報が伝えられる場合には,日本語で記述すれば必要な情報を伝えることができるようになる。また,外国語を使わざるを得ない場合でも,その解説を提供することで内容の理解を促進することができる。規格本文の「想定する利用者にとって理解しづらいと考えられる外国語」のくだりは,あらゆるコンテンツで外国語の禁止を求めているわけではない。たとえば,学術研究に関する文書や外国語教育に関するもの,またあらかじめ外国語を十分に理解できると思われる利用者を対象として想定したコンテンツでは,外国語の使用を妨げない。
(なし)
省略語,専門用語,流行語,俗語などの想定する利用者にとって理解しにくいと考えられる用語は,多用しないことが望ましい。使用するときは,初めて記載されるときに定義しなければならない。
(JIS X8341-3: 5.9 c)
省略語や専門用語などはそれを理解できない人がいるだけでなく,音声ブラウザなどでも正しく読み上げることができず理解できないことがある。
abbr
,acronym
,th
,td
省略語,専門用語,流行語,俗語などを多用すると,利用者の記憶に負担をかけ文書を理解しづらくなる。また,これらの言葉はスクリーンリーダーで正しく読み上げられない可能性がある。
規格本文の「想定する利用者にとって理解しづらいと考えられる用語」のくだりは,あらゆるコンテンツでこれらの用語の使用を禁止しているわけではないことを意図している。たとえば,学術研究に関する文書や,あらかじめその用語を十分に理解できると思われる利用者を対象として想定したコンテンツでは,それらの用語の使用を妨げない。
abbr
要素またはacronym
要素によって正式な名称等を明示する。table
のセルで省略語を定義する場合には,abbr
属性で指定する。abbr
属性を指定できる要素は,th
,td
のみである点に注意する。
<p>彼は<a name="return_netjunky" href="#netjunky">ネットジャンキー</a>だ。</p> : : <a name="netjunky">ネットジャンキーは,インターネットに熱中している人を指す言葉です<a> <a href="#return_netjunky">本文に戻る</a>
覚えやすく忘れにくいように,ユーザに馴染みのある言葉を使います。特に英語の使用は,アルファベットにしろカタカナにしろ,極力避ける。「back to top」は「トップページへ戻る」とし,「cart」や「ショッピングカート」は「買い物かご」などと記述する。
(なし)
想定する利用者にとって,読みの難しいと考えられる言葉(固有名詞など)は,多用しないことが望ましい。使用するときは,初めて記載されるときに読みを明示しなければならない。
(JIS X8341-3: 5.8 d)
読みの難しい言葉には,姓名,社名,地名などの固有名詞,難読語などがある。これらの言葉を用いていると,読み方がわからず内容が正確に理解できないことがある。また,スクリーンリーダーで正しく読み上げられず意味が伝わらないことが考えられる。
ruby
読み方が難しい言葉に読み方に関する情報を付記すると,文書が読みやすくなり,スクリーンリーダーでの読み上げも改善される可能性がある。
ruby
を用いて読みを示すRuby Annotation W3C Recommendation 31 May 2001 http://www.w3.org/TR/ruby を参照する。
<ruby xml:lang="ja"> <rbc> <rb>斎</rb> <rb>藤</rb> <rb>信</rb> <rb>男</rb> </rbc> <rtc class="reading"> <rt>さい</rt> <rt>とう</rt> <rt>のぶ</rt> <rt>お</rt> </rtc> <rtc class="annotation"> <rt rbspan="4" xml:lang="en">W3C Associate Chairman</rt> </rtc> </ruby>
ただし,ruby
はHTMLでは利用できない。また,主な日本の音声ブラウザではruby
要素を正しく扱うことができず,2度読み上げてしまう等の問題があるため,今後の音声ブラウザの対応状況を見極めてこのソリューションを使うべきである。
なし
表現のために単語の途中にスペース又は改行を入れてはならない。
(JIS X8341-3: 5.9 e)
単語の途中にホワイトスペース(Unicode 0x0020,0x3000)や改行などの文字等を挿入してしまうと,音声ブラウザはひとまとまりの単語と理解できずに,文字ごとに読み上げてしまう場合がある。たとえば,次のようなソースでは,(a)では「じんるい」と読み上げるが,(b)以降では「ひとるい」と読み上げてしまう。
a) 人類
b) 人 類 (半角スペース)
c) 人 類 (全角スペース)
d) 人<br>類
br
レイアウトのためにホワイトスペースを使って文字間隔を調整したり,改行を用いて縦書き表示を模して表示したりしたい場合があるが,そのような方法は音声ブラウザではうまく読み上げられない。表示スタイルの変更には,スタイルシートを用いるべきである。なお,スタイルシートを用いた縦書き(writing-mode
プロパティ)については未対応のブラウザが多いので現時点では利用しないほうがよい。
br
要素を単語の途中に挿入しないtd
要素でpre
,br
要素を使うといった方法で縦書きを実現した場合には,正しく読み上げが行われない。pre
のかわりにスタイルシートでwidth
プロパティを使う。なし
ウェブコンテンツは,文章だけでなく,分かりやすい図記号,イラストレーション,音声などを合わせて用いることが望ましい。
(JIS X8341-3: 5.9 f)
機器の操作方法,数値データといったものは文章で表現されただけではわかりにくいことがある。これらに適切なイラストレーションやグラフなどを加えると,理解しやすくなる。また認知に障害のある場合などは,文章の説明を理解するのが難しいが,アイコンやイラストレーション,音声によるガイドがあると使いやすくなる。
なし
ボタンやアイコンなどのデザインがわかりやすく,識別が容易なら,文章を理解できなくてもリンクをたどることが出来る。また,書かれている文章を忘れてしまっても,視覚的なイメージ記憶を活用することが可能になる。
知的障害のある人のためのウェブページでは,平易でやさしい文章をできるだけ最小限に使用し,アイコンやイラストレーションなどで理解できるようにする。また,標準化されたシンボルを利用する。
なし
ウェブサイトのアクセシビリティを向上させるためには,企画,設計,政策および運用までの幅広い工程での配慮が重要である。各工程での配慮事項の一部を以下に説明する。
(1)企画工程では,特定のプラグイン(JavaScript,Javaアプレット,Flash,PDFほか)などの利用が情報を表現する上で必要かどうかを検討し,使う場合には,それが使えない利用者に対して同等の情報を提示できるよう検討する必要がある。また,要素技術レベルの流れ作業的なアクセシビリティ対応に陥らないよう,利用者の心身特性や利用環境を理解することが重要である。
(2)設計工程では,ウェブサイト全体が分かりやすい構造になっているか,利用者の記憶に頼らず操作ができるか,認知面での配慮が必要である。また,サイト全体で共通に使用するテンプレートなどもアクセシビリティを考慮して設計する必要がある。
(3)制作工程では,制作者のスキルに依存せず,またチェック漏れを少なくするために,ウェブガイドラインを元にしたチェックリストを作成する。また,チェックツールを用いると文法チェックが効果的に行える。
(4)運用工程では,利用者から寄せられるウェブサイトへの要望や改善提案などは定期的に収集し,ページレベルで対応できるものは反映を行うことが必要である。
ウェブコンテンツの情報アクセシビリティが容易に維持できるよう企画・制作しなければならない。
ウェブコンテンツを自動的に生成するプログラムには,アクセス可能なウェブコンテンツを生成する機能を装備する。
(JIS X8341-3: 6.1)
ウェブコンテンツの制作段階で,各ページ単位でアクセシビリティの対策を考えても,サイト全体のアクセシビリティを均一に保つことは困難である。また,効率的にすべてのアクセシビリティの要件を満たすことが難しくなる。また,後工程にいくほど個々のページをアクセシビリティ対応することになるので,コストもかかる。
効率的かつ効果的に実施するには,企画・制作工程などウェブサイト構築の早い段階で,アクセシビリティの配慮を検討する。企画工程では,サイト全体で共通とするアクセシビリティの方針を定め,できるだけ早いうちに具体的に反映する。
これにより,個々の工程ごとの単発的な対応でなく,サイト全体で共通のナビゲーションやフォーマットをアクセシブルにできる。
利用者情報などをデータベースで管理する場合には,データが集積すればするほどアクセシビリティ対応を後付するのは難しくなる。
電子商取引のような利用者の入力に対応して,ウェブページを自動的に生成するようなウェブプログラムを有するウェブサイトの場合は,生成されたコンテンツもアクセシビリティの用件を満たすように,自動生成を行うプログラムにアクセシビリティ機能を装備することが重要である。
こうした取組みを実現するために,ウェブサイトの関係者全員がアクセシビリティについて正しく理解することにより,効率的かつ効果的に対処できる。
サイト制作を外注する場合,最初のサイト構築は外注先が行っても,情報更新など運用は発注元が行う場合がある。その際,サイト全体を運用しやすいように企画段階から考慮しておかないと,アクセシビリティを維持することが難しくなる。
なし
ウェブコンテンツを保守及び運用するときは,情報アクセシビリティの品質を確保し,向上させなければならない。
(JIS X8341-3: 6.2)
ウェブコンテンツの保守及び運用工程で,アクセシビリティを考慮せずに情報を追加・削除・更新してしまうと,サイト構築時にはアクセシビリティに配慮されていても,次第にサイト全体がアクセシブルでなくなってしまう。これは,(1)アクセシビリティを維持しにくいサイト構造・ページ構成である,(2)保守,運用担当者のアクセシビリティに対する理解やスキルが不足している(人事異動などで手法やノウハウが継承されないことも含む),(3)アクセシビリティ維持のための予算や工数などが確保できていない,などさまざまな原因がある。
なし
ウェブコンテンツの企画・制作を行う者は,ウェブコンテンツがこの規格の要件を満たしていることを検証しなければならない。
(JIS X8341-3: 6.3)
サイト全体で共通に使用するフォーマット (画面デザイン・HTMLテンプレートなど) を制作する場合,そのフォーマットでアクセシビリティを確保する。そうでないと,各ページの制作段階で,個別に対応する必要が生じ,場合によっては,大きな修正作業が発生してしまうことになる。
企画・制作・保守・運用のすべての工程で,アクセシビリティの評価,検証を行うことで,効率的にアクセシビリティを実現できる。
なし
評価できるウェブコンテンツがないので「質問法」が中心になる。質問法(ヒヤリング)には,1.質問紙調査(アンケート調査),2.インタビュー/グループインタビュー,3.個人面接 などがある。
機能仕様書,ユーザインタフェース仕様書などを「洞察法」で評価できる。洞察法には,1.ヒューリスティック評価,2.認知的ウォークスルー などがある。
評価用のプロトタイプ,β版,公開版ができれば,「洞察法」に加え,「観察法」,「実験的方法」が可能になる。観察法には,1.行動観察,2.ユーザタスク分析 などがある。実験的方法には,1.パフォーマンステスト,2.プロトコール解析 などがある。
チェックツールと人手による評価・検証手法を併用し,効率良く確実にアクセシビリティを向上させる。
(1)アクセシビリティ専用チェックツールとして,以下のものがある。
alt
属性の有無など,HTMLファイルの記述を機械的に確認するときに効果的である。参考:HTML文法チェックツール (「Another HTML-lint」など) でもチェック可能な項目がある。
(2)人手による簡便な評価・検証手法として,以下のようなものがある。
解説:ウェブの画面を画像データとして保存し,画像編集ソフトなどでグレースケールに変換する。これにより,明度の違いだけで内容が把握できることを確認する。
解説:alt
属性の内容の適切さなど,チェッカーツールで判定できない問題を確認するとき,効果的である。
参考:Microsoft Windowsの場合,[コントロールパネル] の[ユーザー補助]の[画面]で[ハイコントラスト]を選択する。
ウェブコンテンツの企画・制作を行う者は,利用者の意見を収集する窓口を用意し,利用者からの意見をウェブコンテンツの情報アクセシビリティの確保・向上に活かさなければならない。
(JIS X8341-3: 6.4)
ウェブサイトは,情報を追加,削除,更新しながら常に変化していくものである。
更新時のウェブサイトの情報が見やすく,わかりやすく,操作しやすいかウェブサイト提供者側でチェックするとともに,利用者からの意見や要望などを広く収集する必要がある。
さらに企画・制作の工程でそれらに的確に対応できる体制・手法などを確保しておく必要がある。
なし
利用者とコミュニケーションが取れるよう,問い合わせ先をウェブコンテンツ上の分かりやすい位置に明示しなくてはならない。
(JIS X8341-3: 6.2)
ウェブサイトは,情報を追加,削除,更新しながら常に変化していくものである。
更新時のウェブサイトの情報が見やすく,わかりやすく,操作しやすいかウェブサイト提供者側でチェックするとともに,利用者からの意見や要望などを広く収集する必要がある。
それには,利用者が容易に問い合わせできるようその方法をウェブサイトに明示にすることは重要である。
なし
Name | Description |
---|---|
A | anchor |
ABBR | abbreviated form (e.g., WWW, HTTP, etc.) |
ACRONYM | |
ADDRESS | information on author |
APPLET | Java applet |
AREA | client-side image map area |
B | bold text style |
BASE | document base URI |
BASEFONT | base font size |
BDO | I18N BiDi over-ride |
BIG | large text style |
BLOCKQUOTE | long quotation |
BODY | document body |
BR | forced line break |
BUTTON | push button |
CAPTION | table caption |
CENTER | shorthand for DIV align=center |
CITE | citation |
CODE | computer code fragment |
COL | table column |
COLGROUP | table column group |
DD | definition description |
DEL | deleted text |
DFN | instance definition |
DIR | directory list |
DIV | generic language/style container |
DL | definition list |
DT | definition term |
EM | emphasis |
FIELDSET | form control group |
FONT | local change to font |
FORM | interactive form |
FRAME | subwindow |
FRAMESET | window subdivision |
H1 | heading |
H2 | heading |
H3 | heading |
H4 | heading |
H5 | heading |
H6 | heading |
HEAD | document head |
HR | horizontal rule |
HTML | document root element |
I | italic text style |
IFRAME | inline subwindow |
IMG | Embedded image |
INPUT | form control |
INS | inserted text |
ISINDEX | single line prompt |
KBD | text to be entered by the user |
LABEL | form field label text |
LEGEND | fieldset legend |
LI | list item |
LINK | a media-independent link |
MAP | client-side image map |
MENU | menu list |
META | generic metainformation |
NOFRAMES | alternate content container for non frame-based rendering |
NOSCRIPT | alternate content container for non script-based rendering |
OBJECT | generic embedded object |
OL | ordered list |
OPTGROUP | option group |
OPTION | selectable choice |
P | paragraph |
PARAM | named property value |
PRE | preformatted text |
Q | short inline quotation |
S | strike-through text style |
SAMP | sample program output, scripts, etc. |
SCRIPT | script statements |
SELECT | option selector |
SMALL | small text style |
SPAN | generic language/style container |
STRIKE | strike-through text |
STRONG | strong emphasis |
STYLE | style info |
SUB | subscript |
SUP | superscript |
TABLE | |
TBODY | table body |
TD | table data cell |
TEXTAREA | multi-line text field |
TFOOT | table footer |
TH | table header cell |
THEAD | table header |
TITLE | document title |
TR | table row |
TT | teletype or monospaced text style |
U | underlined text style |
UL | unordered list |
VAR | instance of a variable or program argument |