Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
結論から言えば、accesskey/tabindexにアクセシビリティはない。これは個人的な意見だけど、「高齢者や障害者へのアクセシビリティと確保」というよりは健常者のユーザビリティ(作業性向上)に良いように思います。
というか使わないほうが良いんでない? ...という話。
現状の問題
- デフォルトのキーバインド(ショートカットキー)と競合してしまう
- 視覚系Webブラウザは、accesskeyを実行するとsubmitしてしまう
- これといった規格や業界標準的な取り決めも無い
一番の問題は、デフォルトのキーバインド(ショートカットキー)と競合してしまうこと。特にaccesskeyだと、ブラウザ本来のショートカットが使えなくなってしまう。(基本的にはHTMLの記述を優先するため、accesskey自体は使える)
音声ブラウザやテキストブラウザは、基本操作にキーバインドを割り振ってしまっている。。そしてキーしかない携帯端末での機能障害は、PCのそれと比較にならないくらい致命的。
次に、設定の難しさがある。設定されるキーは作成者によってバラバラ。有効なアクセスキーを明示しているサイトも少ない。デフォルトのキーバインドとの互換性を考えると、使用可能なキーも少ない。
(よく考えられた)tabindexの指定は、作業性向上に大きな役割を果たす ...が、「左上→右下」というデフォルトの移動法に慣れている人は意外に多く、下手に指定すると非常に扱いにくいものとなる。
memo: ま~そもそも、1サイトの独自仕様えさせるのか、てな話な訳ですヨ。
memo: というか、WebコンテンツJISでは触れられてもいない話題だ。
memo: あ、Webサービスならアリかも?
機能の解説(accesskey)
accesskeyはWindowsではAlt、MacではCtrlキーとともに任意のキーを押すことで使用できます。ただしOperaの場合は、「Shift + Esc」。特殊なので使えないと思っている人は多いでしょう。また実行時の挙動にも、ブラウザによって違いが見られます。詳しくは以下。
- IE-Win → Focus
- IE-Mac → Activate
- Opera → Activate
- Gecko → Activate
- iCab → Activate
※1 Focus: 選択されるだけ
※2 Activate: 実行される(リンク先に飛ぶ or ボタンを押す)
どれが間違っているかというと、実はどれも正しい。仕様書におけるaccesskeyの言及が曖昧なので、解釈が分かれてる感じ。
Pressing an access key assigned to an element gives focus t 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は一般的にリンクを辿る。
accesskey実行で直接リンク先に飛ぶ(動作がActivate)ブラウザは、この部分をストレートに解釈していると思われます。とはいえ、「UAAG 1.0」において定義されているように、フォーカスと機能を動作させるということは(基本的には)別モノであり、IE-winはこの考えに則ってaccesskeyによる動作をfocusに留めているのだと思われます。
機能の解説(tabindex)
tabindexは、Tabキーの押下げによって現在の選択領域(フォーカス)を移動する。移動の順序は、初期設定では「左から右」あるいは「上から下」(ソースの記述順?)。tabindex属性は、この移動順番を変更する。
tabindexは視覚系ブラウザではほぼ問題なく機能する。しかしLynx(テキストブラウザ)では使用できない。そもそもTabキーのない携帯端末でも使用できない。
また、指定範囲外の挙動(例えば1~6のtabindexを指定したとして、Tab7回目以後の動作)はブラウザによって異なる。
Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。