ばけらの HTML リファレンス(未完成)

bakera.jp > 鳩丸リファレンス > ばけらの HTML リファレンス(未完成) > 属性一覧 > accesskey属性

accesskey属性

属性名バージョン属性値既定値備考
accesskey4.0, X1.0, X1.1%Character;#IMPLIEDaccessibility key character

この属性を持つ要素 …… a, area, legend, label, input, textarea, button

accesskeyの解説

アンカーやフォームコントロールなど、フォーカスを持つことのできる要素に対してアクセスキーを指定する属性です。たとえば accesskey="N" としておくと、Windows 環境なら Alt+N キーでその要素にフォーカスが移ります。ただし label要素だけは例外で、そのラベルに対応するコントロールにフォーカスが移ります。

※しかし Mac IE では何故か label 自身がフォーカスを持ったりして訳が分かりません。

アクセスキーの指定があると、キーボードでの操作がしやすくなります。携帯電話やテレビのリモコンのようなもので操作する場合には特に重要になるでしょう。

ただし、Alt + キーはアプリケーションの操作でも使用される場合がありますので、考えなしに指定するとアプリケーションの操作に支障が出てしまう場合もあります。たとえば、Windows の IE では Alt + F で「ファイル」メニューが開くようになっていますが、accesskey="f" を指定するとそちらが優先され、Alt + F で「ファイル」メニューを開くことができなくなってしまいます。

同じアクセスキーが複数箇所に設定されている場合の動作は規定されていません。実装としては、アクセスキーを押すたびに順々にフォーカスが移るという動作になる場合が多いようです。

アクセスキーが指定されていても、そのことがユーザに伝わらなければ意味がありません。どのキーで何が動作するのかをユーザに伝える必要があるのですが、その表現はユーザエージェントに依存します。HTML4 には以下のような記述がありますが……。

The rendering of access keys depends on the user agent. We recommend that authors include the access key in label text or wherever the access key is to apply. User agents should render the value of an access key in such a way as to emphasize its role and to distinguish it from other characters (e.g., by underlining it).

以上、HTML4.01 17.11.2 Access keys より

ラベルの中にアクセスキーと同じ文字を入れておくと勝手に強調してもらえる、というような処理を想定しているようです。たとえば、

<label for="radioA" accesskey="a">altba.com</label>
<label for="radioB" accesskey="b">foobar.invalid</label>

のようにしてある場合、altba の "a" と foobar の "b" が何らかの形で強調表示されるようなイメージです。しかし、これは英語ならともかく日本語などでは困ります。括弧書きで (A) などと追加すれば良いのですが、それはそれでアクセスキーが有効でない環境で訳の分からないことになりそうです。

そもそも、現実にはこのように「勝手に強調」するような処理をするユーザエージェントは見たことがありません。自分で強調するなり、アクセスキーの説明を書くなりする必要があるでしょう。

最近の日記

関わった本など