* accesskey 属性 (HTML, XHTML 1) [7] [[HTML]] の [DFN[[CODE(HTMLa)[accesskey]] 属性]]は、 要素にアクセス鍵を割当てます。 [CODE(HTMLa)[accesskey]] 属性がある要素型: [CODE(HTMLe)[[[a]]]], [CODE(HTMLe)[[[area]]]], [CODE(HTMLe)[[[button]]]], [CODE(HTMLe)[[[input]]]], [CODE(HTMLe)[[[label]]]], [CODE(HTMLe)[[[legend]]]], [CODE(HTMLe)[[[textarea]]]]。 [8] 仕様書: - [[HTML 4]] ([[Web Forms 1.0]]) -- [CITE[17.11.2 Access keys]] [[#comment]] ** 代替 [9] アクセス鍵は[[スタイル・シート]]で指定できます。 スタイル言語によっては、 HTML より遥かに柔軟に自由な打鍵列を指定できます。 [[#comment]] ** 属性値 [10] この属性の値は [CODE(SGML)[%[[Character]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 アクセス鍵は[[文書文字集合]]から何か1文字です。 大文字・小文字の区別に対しては中立です。 [SRC[HTML 4 17.11.2]] [11] 文字を入力するものでない鍵や複数の鍵の組合せを指定することはできません。 [Q[大文字・小文字の区別に中立]]というのも意味不明気味なのですが、 仕様書の記号の説明によれば、[Q[文書文字集合からの一文字]]は [Q[大文字・小文字変換の対象ではない]]という意味なのだそうです。 多くのシステムはアクセス鍵の大文字・小文字を区別しませんが、 そのようなシステムと整合的な実装が適当なのか不適当なのか実装依存なのか、 もう少し説明が欲しいところです。 [12] 著者は、読者がアクセス鍵を指定する際の入力方法を考慮するべきです。 [SRC[HTML 4]] この注意は、 例えば多くの日本語環境で漢字をアクセス鍵としても実質的に意味を成さないようなことを指摘しているのでしょう。 また、歴史的に日本語用計算機・ソフトウェアでは仮名鍵盤によるアクセス鍵を使ったものもありましたが、 [SAMP(HTML)[accesskey="イ"]] のように指定したところで相互運用上の問題が発生することでしょう。 なお、 [CODE(HTMLa)[accesskey]] 値は文書文字集合、すなわち [[UCS]] の1文字と定義されていますが、必ずしも UCS の[Q[[[文字]]]]と日常的、 あるいは1打鍵という意味での[Q[文字]]とは一致しません。 具体的には、[[結合文字]]などで望む1[Q[文字]]が1[Q[文字]]で指定できない虞があります。 これも >>11 とあわせて仕様の限界でしょう。 (といっても、実際にアクセス鍵として使われた実績がある文字ではおそらく問題はないと思われます。) [13] この属性は省略可能です。 [[#comment]] ** UA による利用 [14] 要素に割当てられたアクセス鍵を押すと、[[焦点]]がその要素に与えられます。 要素に焦点が移った時の動作は要素に依存します。 例えば、利用者が [CODE(HTMLe)[[[a]]]] 要素によって定義される[[リンク]]を[[活性化]]したら、 通常はリンクをたどります。利用者がラジオ・ボタンを活性化したら、 利用者エージェントはラジオ・ボタンの値を変更します。 利用者が文章入力欄を活性化したら、入力を認めます。 [SRC[HTML 4 17.11.2]] [18] アクセス鍵の呼出しはシステムに依存します。 例えば、 [[Windows]] では、通常アクセス鍵と一緒に [KEY[[[Alt]]]] 鍵を押します。 [[Apple]] のシステムでは、通常アクセス鍵と一緒に [KEY[[[Cmd]]]] 鍵を押します。 [SRC[HTML 4 17.11.2]] [[携帯電話]]のブラウザでは、アクセス鍵だけを押す実装が普通です。 [19] アクセス鍵のレンダリングは UA 依存です。 著者はアクセス鍵を名札文に含めることが推奨されています。 UA はアクセス鍵の値を、その役割を強調しつつ他の文字と区別するような方法 (例: 下線) でレンダリングするべきです。 [SRC[HTML 4 17.11.2]] [[Windows]] では例えば [SAMP[File]] でアクセス鍵が [SAMP(char)[F]] なら [SAMP[''F''ile]] の [SAMP(char)[''F'']] だけ下線を引くという界面が標準的です。 仕様書はそのようにレンダリングするのがよろしいと言っているのでしょう。 もっとも、この方法は名札にアクセス鍵文字が含まれていないときには問題が起こります。 特に、[[ラテン文字]]を使わない時には大問題で、日本語版 Windows では[SAMP[ファイル (''F'')]] のようなみっともない表記が採用されています。 このように、 HTML 文書のレンダリングに限った問題ではありませんが、 アクセス鍵を分かりやすく、見栄え良く伝える方法は整備されていません。 [20] アクセス鍵を打鍵した時の挙動は、 UA によって異なることがあります。詳しくは[[焦点]]の説明をご覧ください。 ([[名無しさん]]) [[#comment]] ** 例 [16] [CODE(HTMLe)[input]] 制御子にアクセス鍵を割当てる例 [SRC[HTML 4 17.11.2]] [PRE(HTML)[

]PRE] アクセス鍵 [CODE(char)[U]] を打鍵すると、名札に関連付けられた入力欄に焦点が移ります。 [SRC[HTML 4 17.11.2]] [17] リンクにアクセス鍵を割当てる例 [SRC[HTML 4 17.11.2]] [PRE(HTML)[

Table of Contents ]PRE] 打鍵すると目次に飛びます [SRC[HTML 4 17.11.2]]。 [[#comment]] ** メモ - [1] ''Implement of accesskey in Opera 7 beta'' - [3] ''みんな、accesskeyってどうしてる? tabindexは?(仮)'' : 2ch スレのまとめサイト - [4] >>3 は消滅しちゃったらしい。残念。 - [2] ''HTML:accesskey と tabindex [flow] RC3.01'' - [6] [WEAK[2004-01-31 04:20:10 +00:00]] ''>>2'': リンク切れ、移転先不詳。''HTML:accesskey と tabindex [flow] RC3.01'' - [5] ブラウザの方の話ですけど、同じ [CODE(HTMLa)[accesskey]] の要素が複数あって、そのうちのどれかが [CODE(HTMLe)[[[form]]]] control のときで、かつ現在その含まれる [CODE(HTMLe)[form]] 内の control が活性なら、その [CODE(HTMLe)[form]] 内の [CODE(HTMLa)[accesskey]] 要素が反応してくれると嬉しいと思いません? たとえば、一頁内に複数の [CODE(HTMLe)[form]] があって、どれも「提出」ボタンが [KBD[M-S]] で効いてくれると気持ちがいい。 [15] どうして [CODE(HTMLe)[[[fieldset]]]] ではなくて [CODE(HTMLe)[[[legend]]]] に [CODE(HTMLa)[accesskey]] 属性があるのでしょうね? [21] >>3-4 その本スレ [CITE[みんな、accesskeyってどうしてる? tabindexは?]] ([[名無しさん]]) [22] [CITE[フォームとアクセシビリティ -- ごく簡単なHTMLの説明]] ([[名無しさん]]) [23] [CITE[accesskey=key - アクセスキー]] ラベルを使う時はラベルに [CODE(HTMLa)[accesskey]] を指定するのが[Q[作法]]だとしていますが、根拠が不明です。 ([[名無しさん]]) [24] [Q[ラベルを持つ入力コントロールの場合は、