-
Notifications
You must be signed in to change notification settings - Fork 4
/
719.txt
86 lines (59 loc) · 6.67 KB
/
719.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
[2] [CODE(HTMLe)@en[[[access]]]] [[要素]]の [DFN[[CODE(HTMLa)@en[[[key]]]] [[属性]]]]は、
当該 [CODE(HTMLe)@en[[[access]]]] [[要素]]に割り当てる[[キー]]を指定するものです。
[3] この[[属性]]は [[XHTML2 WG]] によって提案されていましたが、支持を集められず廃案となっています。
* 仕様書
- [1] [CITE[XHTML Access Module]] ([TIME[2010-12-17 01:48:31 +09:00]] 版) <http://www.w3.org/TR/2010/NOTE-xhtml-access-20101216/#A_key>
* 意味
[5] この[[属性]]は1つ[[以上]]の[RUBYB[[[キー]]]@en[key]]の[RUBYB[[[写像]]]@en[mapping]]をアクセス・ショートカットに割り当てます。
ここで「[[キー]]」と呼ぶのは歴史的な理由であって、実際にはより抽象的なものであり、
[[鍵盤]]上の[[キー]]に限りません。[[鍵盤]]上の[[キー]]を [[Alt]]
などと同時に押すことを表しても構いませんし、[[マウス]]による[[ジェスチャー]]でも[[音声]]による[[命令]]でも何でも構わないとあれています。
いずれにせよ、 [CODE(HTMLe)@en[[[access]]]] [[要素]]の処理においては[[キー]]入力が行われたものとして扱うことになっています。
[SRC[>>1]]
* 属性型
[4] この[[属性]]の値は [[Characters]] とされています [SRC[>>1]]。
つまり、[[属性値]]は、[[文書文字集合]]における単一の[[文字]]を1つ[[以上]]指定するものです [SRC[>>1]]。
[14] この[[属性]]は省略可能です。省略した場合は[[利用者エージェント]]が[[キー]]を割り当てるべきであるとされています
(>>13)。
[17] 複数の[RUBYB[[[活性]]]@en[active]]の[[要素]]に同じ[[キー]]の値を割り当ててはなりません。
[CODE(HTMLa)@en[[[media]]]] [[属性]]を使うと[RUBYB[[[不活性]]]@en[inactive]]にすることができます。
[SRC[>>1]]
[18] すべての[[文字]]が[[アクセス・キー]]として適切ではないことに注意する必要があります。
例えば[[声調符号]]付きの[[文字]]のように、[[鍵盤]]から直接入力できない[[文字]]もあります。
単体で表示されるときと他の[[文字]]と合わせて表示されるときで[[レンダリング]]が違う[[文字]]は[[利用者]]にどの[[文字]]を入力するべきか伝えるのが難しいので、注意が必要です。
[[鍵盤]]配置によっては利用できない[[キー]]もあり、やはり注意が必要です。
[SRC[>>1]]
[23] [[XML Schema実装]]と [[DTD実装]]は [[Character]] となっていて [SRC[>>1]]、本文と矛盾していました。
;; [24] [[XHTML2 WG]] ではよくあること。
* 処理モデル
[6] [[利用者]]が指定された[[キー]]を入力した時には、当該 [CODE(HTMLe)@en[[[access]]]]
[[要素]]が[[参照]]する [CODE(HTMLa)@en[[[role]]]] や [CODE(HTMLa)@en[[[id]]]] を持つ[[要素]]であって、
[[現在位置]]から見て[RUBYB[[[ナビゲーション順]]]@en[navigation order]]において次の[[要素]]へと[[焦点]]を移動します。
[SRC[>>1]]
ただし[[ナビゲーション順]]は[[ホスト言語]]により決まる [SRC[>>1]] とされています。
;; [22] 実際には[[ナビゲーション順]]は >>1 と [CODE(HTMLa)@en[[[order]]]] [[属性]]によって決定され、
[[ホスト言語]]に委ねられているのは移動対象として適切な[[要素]]であるかどうかの基準だけです。
[7] [[XML Events]] により代わりの[[事象]]を[RUBYB[配送]@en[delivery]]することも可能です [SRC[>>1]]。
;; [8] 意味がよくわかりませんが、[[キー]]入力を[[XML事象]]によりエミュレートできるとかそんなようなことでしょうか...
- [9] [[利用者エージェント]]は、[[焦点]]の移動が更なる動作を引き起こしてしまうことを防ぐため、[[利用者]]によって[[著者]]の設定を上書きする仕組みを提供しなければ[['''なりません''']]。 [SRC[>>1]]
- [10] [[キー]]に割り当てられた[[文字]]や、 [CODE(HTMLa)@en[[[role]]]] や [CODE(HTMLa)@en[[[id]]]] との関係は、[[著者]]による提案として扱う[['''べきです''']]。[[利用者エージェント]]は ([[OS]] や [[UA]] の [[UI]] と干渉する、[[キー]]が利用できないなどの理由で) 割当を上書きしても[['''構いません''']]。 [SRC[>>1]]
- [11] [[利用者エージェント]]は[[著者]]の割当を[[利用者]]が上書きできるようにしなければ[['''なりません''']]。[[利用者]]が[[キー]]の割当を変更することにした場合、その[[利用者]]による割当は[[セッション]]を超えて保持する[['''べきです''']]。 [SRC[>>1]]
- [13] [CODE(HTMLa)@en[[[key]]]] [[属性]]が指定されていない場合は、[[利用者エージェント]]が[[キー]]を割当、[[利用者]]に提示する[['''べきです''']]。この[[利用者エージェント]]による割当は[[セッション]]を超えて保持する[['''べきです''']]。 [SRC[>>1]]
- [16] [[利用者エージェント]]は現在の[[アクセス・キー]]の割当の一覧表示を提供する[['''べきです''']]。 [SRC[>>1]]
[12] ... ということが [[UAAG 1.0]] を引用しつつ規定されています。
* レンダリング
[15] [[キー]]の割当は、[[メニュー]]の項目の横に表示する、[[ラベル]]中の[[文字]]に[[下線]]を引くなどの方法で視覚的なヒントとして示すことが普通です。
これは[[利用者エージェント]]に依存します。
[[著者]]は[[アクセス・キー]]の[[文字]]を適用対象の[[ラベル]]に含めておく[['''べきです''']]。
[SRC[>>1]]
* 歴史
[20] この[[要素]]ははじめ [[XHTML2]] に追加され、後に単独の [[XHTMLモジュール]]として出版されています。
* 関連
[19] この[[属性]]は [CODE(HTMLa)@en[[[accesskey]]]] [[属性]]を拡張したものとなっています。
[[HTML4]] の [CODE(HTMLa)@en[[[accesskey]]]] [[属性]]は[[キー]]を1つしか指定できませんでしたが、
こちらでは複数指定できます。 ([[HTML5]] の [CODE(HTMLa)@en[[[accesskey]]]]
[[属性]]でも複数指定できるように拡張されています。)
* メモ
[21] [[DI]] 至上主義なのか[[鍵盤]]に依存しないなどと言ってはいるものの、
現実には[[マウス・ジェスチャー]]や[[音声]]の[[命令]]なんかを1[[文字]]に[[写像]]する慣習など存在していないので、
その辺をなにも規定しないで使えますと言ったところで誰も使わなかったでしょうな。