accesskey/tabindexについて

Sunday, Aug 14, 2005 - 08:03 +09:00

accesskeyは要素にショートカット・キーを設定する属性で、tabindexはTabキーによるフォーカス移動に順番を定める属性。どちらもHTML4で定められ、アクセシビリティの目的で付けることが多い。しかしユーザーのアクセス性を高める効果が、本当にあるのだろうか?

結論から言えば、accesskey/tabindexにアクセシビリティはない。これは個人的な意見だけど、高齢者や障害者へのアクセシビリティと確保、というよりは健常者の作業性向上に良いように思います。それもaccesskeyに関しては設定しないほうが良く、tabindexはそこそこ有用性があるものの、設定の順番とリスクの把握は十二分に考える必要があるだろう、と。

機能の解説

まずaccesskeyについて。WinだとAlt、MacだとCtrlキーとともに任意のキーを押すことで使用できます。ただしOperaの場合は、「Shift + Esc → accesskey」となります。特殊なので使えないと思っている人は多いでしょう。またaccesskey実行による挙動も、ブラウザによって大きく異なります。詳しくは以下。

※1 Focus:選択されるだけ
※2 Activate:実行される(リンク先に飛ぶ or ボタンを押す)

どれが間違っているかというと、実はどれも正しい。HTML4の仕様書におけるaccesskeyの言及は曖昧で解釈が分かれるところ。

Pressing an access key assigned to an element gives focus to the element. The action that occurs when an element receives focus depends on the element. For example, when a user activates a link defined by the A element, the user agent generally follows the link. (HTML4 17.11.2)

(エレメントに割り当てたアクセスキーを押すと、エレメントにフォーカスされる。エレメントがフォーカスされたときの動作は、エレメントによる。たとえばユーザーがa要素によって定義されたリンクを動作させたとき、そのUAは一般的にリンクを辿る。)

a要素のaccesskeyをリンクを辿るブラウザは、この部分をストレートに解釈していると思われます。とはいえ、「User Agent Accessibility Guidelines 1.0」において定義されているように、フォーカスと機能を動作させるということは(基本的には)別モノであり、IE-winなどはこの考えに則ってaccesskeyによる動作をfocusに留めているのだと思われます。

tabindexについて。Tabキーによるフォーカス移動は、デフォルトでは左から右/上から下(ソースの順番?)。tabindex属性は、この移動順序を指定する属性です。tabindexはLynx(テキストブラウザ)では使用できないし、そもそもTabキーのない携帯端末でも使用できない。視覚系ブラウザではほぼ問題なく機能するが、指定範囲外の挙動(例えば1~6のtabindexを指定したとして、Tab7回目以後の動作)はブラウザによって異なる。

現状の問題

一番の問題は、デフォルトのキーバインドと競合してしまうこと。これは特にaccesskeyにおいて深刻で、具体的にはファイル(F)、ツール(T)といったUAのショートカットが使えなくなってしまう問題です(基本的にブラウザはHTMLの記述を優先するので、accesskey自体は使える)。

操作をキーボードでまかなう音声ブラウザは基本操作にキーバインドを割り振ってしまっているために、逆にaccesskeyを利用できない。Lynx(テキストブラウザ)でも利用できない。できない、できない... いくつかの携帯端末には対応しているが、やはりブラウザ側でキーバインドが設定されていると問題が生じる可能性がある。怖いのは、携帯端末での機能障害はPCのそれと比較にならないくらい致命的だということ。なんといってもキーしかないわけだから。

PC視覚系Webブラウザに限っても、現実問題としてaccesskeyを実行するだけでsubmitしてしまうため、送信ボタンには使うべきではなく... かといって送信ボタンだけ除外していても、他のフォーム要素にaccesskeyを設定していると送信ボタンでも使えると錯覚してしまいます。感覚的にも使いやすいとは言いがたく、誤解や誤動作を抑えるためにも、フォームにアクセスキーを使うべきではないでしょう。

そして第二に、設定の難しさがある。これといった規格や業界標準的な取り決めもなく、設定されるキーは作成者によってバラバラ。アクセスキーの説明を明示しているサイトも少なく、一般的なユーザーにとって、そもそもキー操作を覚えることが困難です。さらに前述の理由から、デフォルトのキーバインドとの互換性を考えると使用可能なキーも少ない( = 機能が連想できるキーを考えることが難しい)。

特にtabindexの場合、順番の規定が大きな課題となります。tabindexの指定は(適切に振られていれば)作業性の向上に大きな役割を果たすのですが、「左上→右下」というデフォルトの移動法に慣れている人は意外に多く、彼らからすれば移動が飛び飛びになってしまうtabindexは非常に扱いにくいものになってしまいます。

結論:accesskeyは指定すべきではない

残念ながら、現状では「使えない」と判断せざるを得ません。accesskeyを設定する理由として、多くの人は「障害者のアクセシビリティのため」と考えます。でも実際は彼らが使い慣れた操作法を阻害してしまう場面が多い。

なによりUA自体の操作性やUIに関わる問題は、一個人がどうにかすべき問題ではないと考えます。専門の知識を積み重ねた訳でもない人間が、想像と小手先のHTMLによって実現できるアクセシビリティは高が知れているということです。少なくともaccesskeyに拘るよりはStrictなHTMLを目指したほうが建設的かつ効果的でもあるでしょうし、ブラウザベンダーによる統一的なインターフェイス実装を待たねばどうにもならないと感じます。

現状のaccesskey/tabindexは、そもそもがPCの視覚系UAを前提とした機能である感が強く、健常者の操作性向上と割り切ってしまうのが正解のように思えます。その場合は、主要なナビゲーション・リンクにaccesskey、フォーム部品にtabindexとするのが適切かと考えます。

posted in HTML/CSS, Usability | Comment (3) | Trackback (0)

3 Comments

1. Nein / August 14, 2005 at 21:11

目から鱗が落ちた気分です。StrictなHTML/XHTMLを作成して機械的なチェッカ等に頼ってしまい、思考停止のままメッセージに従ってaccesskeyを設定していました。

確かにaccesskey/tabindexには障害者へのアクセシビリティはない、と思えます。手元にある(古い)資料によると、音声ブラウザ(HPR)ではaccesskey/tabindexを利用できない、となっています。同様にCSSの一部属性(desplay,visibilityなど)も利用できないそうです。

(今はどうなのか分かりませんが…)おそらく、これからも視覚系UAと非視覚系UAの(表示)規格統一化は難しいでしょう。あるいは携帯電話向けページのように、視覚系UAと非視覚系UA(音声ブラウザしか知りませんが…)でソースそのものを分離するのが、アクセシビリティという観点からは近道かもしれません。accesskey/tabindexのように、特定のUI(キーボード、マウス等)に依存する属性/機能は使い方をしっかり考える必要がありそうです。

いろいろ考えさせられて良い勉強になりました。頑張ってStrictなHTML/XHTMLサイトを目指します。長々と失礼しました。

2. Sig. / August 15, 2005 at 00:21

Neinさん、こんばんわっ。

accesskeyがアクセシビリティに良いって、いったい何処で聞いたのだったか。よくよく考えると手元にある「WebコンテンツJIS」解説書にはaccesskeyもtabindexもまったく出てこなかったりします。しかし、どこかで覚えた記憶はあるんだよな~。いけませんね、歳をとると記憶が(ぁ

読み物系サイトは控えたほうが良さそうだけど、画像紹介系サイトとかの場合は、そもそも視覚系UAじゃないと情報が伝わらないので、そこまでガチガチに拘る必要はないでしょう。それでなくてもtabindex=1で検索ボックスにフォーカスが当たると普通の人でもぐっと楽です。

要はcase by case. 結局のところaccesskey/tabindexっていうのはアクセシビリティというよりユーザビリティなわけで、そこさえ認識してれば使い道もある、ということかな。ま~accesskey/tabindexを知っているということは、将来きっと役に立つと思うから、いまはW3Cとブラウザベンダーに期待しましょう。

3. Nein / August 15, 2005 at 13:36

挨拶を忘れてました…。Sig.さん、こんばんは。お返事ありがとうございます。

accesskey/tabindexについては、私もアクセシビリティに良いというような内容を目にしたような気がします。きっちり調べようと思ったのですが、実家に残していたHTML関連書物のほとんどが消失(廃棄)されていたので残念ながらどこで覚えたかはわかりませんでした…。どうやら私も歳のようです。

残っていたHTMLタグ辞典第5版(翔泳社)を参照したところ、tabindexについては載っていなかったものの、accesskeyについてはiモード対応HTMLにおけるリンク(タグ)のダイレクトキーであり、「0~9」、「*」、「#」が利用でき、ボタンを押すと指定したURLへリンクするというような記述があります。確かに携帯電話のような画面の小さい端末ではスクロールよりもダイレクトキーのほうが(慣れたページであれば)早いかも知れませんね。

IE7(正式版、及び以降の全てのUA)に期待です。では。

Trackback

このエントリーのトラックバックURL
http://rospear.info/other/mt-tb.cgi/54

« Previous Entry - Next Entry »