P-0034 アクセスキーの使いすぎは駄目?

多くしても駄目、削っても駄目!?

そもそもアクセスキーとは?

ZSPC の大藤氏の解説によれば、アクセスキーは、キーボードを併用してページの閲覧を効率化するためのものと言うよりは、本来目で見えているリンクをクリックしたいができない人などが、それを見てキーボードでリンク先へ移動するなどの目的で利用することを想定してのものです。よって、キーの指定が多ければキーボードによる閲覧性がそれだけ高まると言えます。(ちなみにアクセシビリティに関するガイドラインの中では、重要なリンク(トップページへ戻る、など)やフォーム中の各ラベルにキーを指定することが勧められています。ここで述べている事は、これよりもう少し踏み込んだ考えです。)

ところが、 InternetExplorer ・ NetscapeNavigator に代表される「一般的な」環境では、アクセスキーと OS ・ブラウザ自体のアクセラレータキーとの操作が類似しているため、キー指定が重複した場合に操作が混乱してしまう可能性があります。

IE ・ NN だけがブラウザの全てというわけではありませんが、利用者の割合が非常に多いのは事実です。「アクセシビリティ」に気を遣い始めると、本来の目的に添ってアクセスキーを指定すれば IE ・ NN での閲覧性が下がり、 IE ・ NN のことを──つまり多くの閲覧者のことを重視してアクセスキーを削れば本来の目的が達成されなくなる、と、ジレンマが生じてしまいます。

考えられる解決策

私がここで考える「解決策」は、 Cookie 等の利用によってユーザーごとに「アクセスキーのあるなし」を切り替えられるようにすることです。こうしておけば、アクセスキーを大量に指定していても、それが鬱陶しい人はキー指定をオフにすれば済みますし、必要な人はそのまま閲覧することができます。

DOM を使うと、 JavaScript などで文書中の HTML 要素の属性を動的に変化させることができます。これを利用すれば、特定のキーのみを残してアクセスキーを一斉にオフにする、ということも可能になるでしょう。

ということで、そういうスクリプトを誰か作ってくれませんか? (^^;)  あれば結構重宝すると思うのですが……。

「削る」場合の規準

以下は、前述の考えに基づいて「なるべく多くのリンクにアクセスキーを指定」した上で、 IE ・ NN などを対象として切り替え用に「削る」場合の考え方の紹介です。

「ショートカット」と考えるべきか

IE ・ NN などにおいてはマウスなどのポインティングデバイスを併用する場合が多く、アクセスキー自体ほとんど利用されません。しかし、 IE ・ NN をキーボードのみで操作する人も結構いらっしゃるようで、こういう人にとっては、ブラウザのアクセラレータキーとかぶるアクセスキーは「障害」となり得ます。利用される場合でも、メインのアクセス手段としてよりは、キーボードショートカットのような補助的なものという考え方・使い方をされることが多いです。

アクセスキーが本質的にどうしても必要な人にとってはアクセスキーは「必須」のものですが、必要としない人にとっては、あくまで「補助的」なものと捉えられます。ということは、削った後に残すものも最低限「補助的なキー」として意味のあるものにするのがベターでしょう。

必要最低限のキーに限定し、分かりやすくする

ショートカットとして実際に多用されるのは、大抵、上に挙げたものくらいだと考えられます。このように、アクセスキーの指定は全ページで使われる共通の「機能」を残して削るのが理にかなっていると考えられます。

また、この場合はキーに指定する文字もなるべくわかりやすいものを選ぶ必要があります。キーに指定する文字は W3C の仕様などにもこれといった規準は書かれていませんが、ショートカット的な利用法においては、「次へ」に H が割り振られていても「次へ」という語句からはそのキーが連想できませんし、一般的ではありません。キーには、そのリンクの機能の頭文字を指定するのがわかりやすいでしょう。

こういった観点から、当サイトでは現在以下のアクセスキーを指定してあります。

N, P, B については他のサイトでも比較的多用されているようです。サイトのトップページに戻るリンクは I の方がいいかもしれません。いずれにせよ、必要最小限のものを残し、且つ、分かりやすいキー指定を行うのがポイントでしょう。

アクセスキーは Web ページ(というか HTML 文書)における、 Windows などの「キーボードショートカット」、プログラミング用語の「アクセラレータキー」にあたるものです。

HTML 4 ではリンクなどに accesskey 属性が定義されていて、例えば <a href="index.html" accesskey="I"> と記述してあれば、対応ブラウザなら I キー一発で index.html に移動することができるようになります。( WinIE/N 6 では Alt+I 、 MacIE/N 6 では Control+I 、 iCab では I のみで動作します。尚、 WinIE の場合「 Alt とキーの同時押し」でアクセスキー、「 Alt を押してメニューにフォーカスを移してからキー」でブラウザ自身のアクセラレータキーが作動します。)

ちなみに、 XHTML 1.1 では accesskey 属性は削除されるらしい……と書いていましたが、実際の DTD(WD) には accesskey も tabindex もちゃんと残っているとのご指摘を頂きました。参照先のリソースに間違いがあるそうです。というわけで、 XHTML 1.1 でも accesskey 属性はばっちり使えるようです。

尚、 CSS 3 では key-equivalent などのプロパティが提案されていて、今後はどの要素に対してもアクセシビリティに関する指定を行えるようになる模様です。