XUL Accesskey FAQ and Policies
出典: MDC
目次 |
[編集] アクセスキーとは
アクセスキーとは、Web ページや (アプリケーションの) メニュー、ダイアログに含まれる、アンダーラインの引かれた文字で、その要素をクリックしたときと同じことをキーボードですばやく実現する方法を示したものです。例えば Apply ボタンを見ると A の文字にアンダーラインが引かれています。Windows や UNIX では、Alt+A を押せば、そのボタンをクリックしたのと同じ結果になります。Mac OS では、アクセスキーが有効なのは HTML 内のみで、XUL 上では使えません。また、Alt キーの代わりに Control キーを使用します。
【訳注: 日本語版の OS やアプリケーションの場合は、ボタンなどのラベルの後にアクセスキーに相当する文字が書かれているはずです。例えば [Apply] は [適用 (A)] という表記になります】
[編集] フォームコントロールにアクセスキーを追加するには
アクセスキーを HTML や XUL のフォームコントロールやラベルに追加するには、accesskey 属性を使います。例えば、XUL のボタンにアクセスキーを追加する方法は次のようになります。
<button label="Apply instantly" accesskey="A" />
| Apply instantly |
| - または - | |
<button label="Apply instantly" accesskey="a" />
| Apply instantly |
Mozilla では、国際化のため、もうひとつ別に抽象化レイヤーを用意し、DTD を使います。上の例は次のようになります。
<button label="Apply instantly" accesskey="&applyInstantly.accesskey" />
(accesskey instead of akey ではなく accesskey と書きます)
【訳注: 日本語版では通常、英語のものと同じアクセスキーを割り当てるので、この部分に DTD を使う恩恵はほとんどありませんが、主に英語と同じアルファベットを使用する言語 (フランス語、スペイン語など) を考慮し、必要に応じて変えられる仕様になっています。また、実際には label 属性についても "&applyInstantly.label;" と記述することで、DTD を通じてラベルの表記を [Apply instantly] から [今すぐ適用 (A)] などに置き換えられます】
ダイアログの表示に confirm()、confirmEx()、prompt() といったメソッドを使う場合は、ボタンやチェックボックスのテキスト内で、アクセスキーに設定したい文字の前に & を加えます。例えば "Do it &now" だと、n がアンダーラインの引かれたアクセスキーになります。ダイアログに実際のアンパサンドを表示させるには && と書きます。
[編集] アクセスキーとなる文字の選び方
- accesskey 属性は大文字・小文字を区別します
- 上に例として示した 2 つのボタンの違いは、指定されたアクセスキーの文字種 (大文字・小文字) であるという点に注意してください。Mozilla のアクセスキーの実装は、まず (指定されたアクセスキーと) 同じ文字種の文字にアンダーラインを引こうとし、もし見つからなかった場合はもう一方の文字種の文字にアンダーラインを引く、という仕組みになっています。普通は、ある単語の 1 文字目にアンダーラインを引きたいのですから、この気まぐれな実装には十分気を付けてください。
- 重複を避けて
- ひとつのウィンドウで同じアクセスキーの文字を 2 回使うことはできません。
- 同じウィンドウのドロップダウンメニューには特に注意が必要です。例えばブックマークマネージャでは、F、E、V、T、H (ファイル、編集、表示、タスク、ヘルプ) の 5 つは使えません。
- 協力者募集中: XUL ファイル内のアクセスキーの重複や欠落を自動的にチェックするツールがあれば便利ですね。
- 見やすく
- ラベルの最初または 2 番目の単語の 1 文字目を使ってください。
- そのラベル特有の子音や母音を使ってください。
- w、m、大文字など、横幅が広い文字を使ってください。
- p、g、q、y など、下に飛び出た部分 (ディセンダー) を含む文字は避けてください。
- ディセンダーを含む文字の隣の文字は避けてください。
- i、l など、幅が 1 ピクセルしかないような文字も避けてください。
- 覚えやすく
- まず、最も重要なプロンプトから手を加えてください。そうすれば、それらには最も適切なアクセスキーを割り当てることが可能です。
- Mozilla に同じようなプロンプトが他にあって、アクセスキーが割り当てられている場合は、それと同じアクセスキーを使ってください。また、Properties など、Windows で使われている標準的なアクセスキーもあります。
- もしなければ、プロンプトに含まれる最初の単語の 1 文字目を試してください。
- 次に、他の単語の 1 文字目を試してください。
- (ダイアログの残りのアクセスキーを選び終わって) 最後になったら、動作を示す単語から声に出して発音する文字を選んでください。
- アクセスキーを割り当てない一般的な要素
- OK ボタン
- Cancel (キャンセル) ボタン
- Close (閉じる) ボタン
- タブパネルのラベル
- ツールバーボタン
- ツリーアイテム
- リストアイテム
- カラムヘッダ
[編集] 知っておくべき重要なバグはありますか?
- bug 143065 - アクセスキーの範囲が現在開いているタブパネルに限定されない
[編集] アクセスキーを追加する必要があるのはどこですか?
bug 129179 (XUL アクセスキー関連のメタバグ) の依存関係をチェックするか、要約に「accesskey」あるいは「mnemonic」といった単語を含むバグを検索するか、アンダーラインの引かれた文字を含む要素が見つからないダイアログを探してください。
Keyboard Navigation コンポーネントにバグを登録し、そこにメタバグ bug 129179 の依存関係を設定してください。