/[pub]/suikawiki/sw4data/ids/8/755.txt
Suika

Contents of /suikawiki/sw4data/ids/8/755.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Sat Aug 20 02:21:44 2011 UTC (13 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +5 -1 lines
File MIME type: text/plain
updated by (anon)

1 wakaba 1.1
2    
3     * [CODE(HTMLe)@en[input]] [CODE(HTMLa)@en[type]] [CODE(HTML)@en[url]] (HTML)
4    
5     [4]
6     [[HTML]] の [CODE(HTMLe)@en[[[input]]]]
7     [[要素]]の [CODE(HTMLa)@en[[[type]]]] [[属性]]を
8     [DFN@en[[CODE(HTML)[[[url]]]]]] とすると、
9     [[IRI]] を指定する[[フォーム制御子]]となります。
10    
11     ;; [[URL]] という言葉を[[名前]]に使っていますが、
12     実際には任意の [[IRI]] を扱うことができます。
13    
14     [5] 仕様書:
15     - [[Web Forms 2.0]]
16     -- [CSECTION@en[2.4. Extensions to the [CODE(HTMLe)@en[[[input]]]] element]]
17     <IW:WF2:"#extensions">
18    
19     [[#comment]]
20    
21    
22     ** 値の構文
23    
24     [6]
25     [[RFC 3987]] の [[IRI]] ([[生成規則]]
26     [CODE(ABNF)@en[[[IRI]]]]) です。
27     従って、[[相対IRI参照]]は認められません。
28     [SRC@en[WF2 2.4]]
29    
30     [3]
31     [[IDN]] を使用[['''して構いません''']]。
32     [[利用者エージェント]]は [[IDNA]] [[符号化]]せずに、
33     元々入力された通りの[[ドメイン名]]で[[提出]][['''するべきです''']]。
34     [SRC@en[WF2 2.4]]
35    
36     [9]
37     [[利用者エージェント]]は、
38     [[利用者]]が[[相対IRI参照]]やその他の [[IRI]]
39     としては不完全な値を入力することを認めても構いません。
40     しかし、 [CODE(DOMa)@en[[[isTypeMismatch]]]]
41     の判定や[[フォーム提出]]に用いる値は[[絶対IRI]]でなければなりません。
42     [SRC@en[WF2 2.4]]
43    
44     [10]
45     [[利用者エージェント]]は、 [CODE(ABNF)@en[[[IRI]]]]
46     [[生成規則]]に[[一致]]する任意の[[文字列]]を受け付け[['''しなければなりません''']]。
47     [[文字]]の並びが[[論理順]]であることなどの [[IRI]]
48     の仕様上の非構文的制約を[[利用者エージェント]]が検査する必要はありません。
49     [SRC@en[WF2 2.4]]
50    
51     [[#comment]]
52    
53    
54     ** 互換性
55    
56     [13] '''未対応利用者エージェントとの互換性'''
57    
58     [CODE(HTML)@en[[[month]]]] に対応していない[[利用者エージェント]]は、
59     [CODE(HTML)@en[[[text]]]] (単一行[[文章入力制御子]])
60     として扱います。従って、[[利用者]]は任意の文字列を入力することができます。
61    
62     ですから、[[著者]]は、対応している[[利用者エージェント]]が一般的になるまでの間、
63     [[フォーム制御子]]の近くで記入方法を説明しておくのがよいでしょう。
64     [[フォーム処理エージェント]]は記入された値が適当か検査するべきです
65     (これは[[安全性]]の観点からも重要です)。
66    
67     [[#comment]]
68    
69    
70     ** 歴史
71    
72     [10]
73     この [CODE(HTMLe)@en[[[input]]]] [CODE(HTMLa)@en[[[type]]]]
74     は [[Web Forms 2.0]] で導入されました。
75    
76     [19] 当初は [CODE(HTML)@en[[[uri]]]] という名前で提案されていましたが、
77     [[CSS]] の [CODE(CSS)@en[[[url]]()]] [[関数]]をはじめ、
78     [[Web]] では [[URL]] という名前が伝統的によく用いられてきたことから、
79     [[Web Forms 2.0]] でも [CODE(HTML)@en[[[url]]]]
80     という名前に改称されました。
81    
82     [20] [CODE(HTMLe)@en[[[input]]]] [CODE(HTMLa)@en[[[type]]]]
83     [CODE(HTML)@en[[[url]]]] は [[Opera]] 9 がはじめて実装しました。
84    
85     [[#comment]]
86    
87    
88     ** 実装
89    
90     [11]
91     [[Opera 9]] が実装しています。
92    
93     [[#comment]]
94    
95    
96     ** メモ
97    
98     [[#comment]]
99    
100    
101     * [CODE(HTTP)@en[Refresh:]] 欄 [CODE(HTTP)@en[url]] 引数 (HTTP)
102    
103     [2] 飛び先の [[URL]] を指定します。省略した場合は当該[[実体]]の [[URI]]
104     と仮定します。つまり再読み込みとなります。
105    
106     詳しくは [CODE(HTTP)@en[[[Refersh]]:]] 欄の項を参照。
107    
108    
109     * META 要素 URL 属性 (HTML)
110    
111     [1] [[WebTV]] のリファレンスにそれっぽく登場しますが、実在が強く疑われます。
112     <http://web.archive.org/web/20000523161756/developer.webtv.net/authoring/html/meta.html>
113    
114     説明を読むとどうも、 [[Refresh:]] を [[http-equiv]] で使った時の
115     [[content]] 属性の値の内部にある [CODE(HTTP)[URL]] パラメーターのことを指しているように思われます。
116    
117     [[HTML]] 2.0 に由来するなんて書いてありますが、 [[RFC1866]]
118     にはそんなものありません。
119    
120     [[#comment]]
121    
122    
123     * [CODE(CSS)@en[url()]] 関数 (CSS)
124    
125     [14]
126     [[CSS]] の[[関数]]の中で、 [CODE(CSS)@en[[[url]]]]
127     だけは[[字句解析]]の段階で特別扱いされています。
128     [[関数名]]は、他の[[関数]]は [CODE@en[[[ident]]]]
129     として定義されているので [CODE(char)[[[\]]]]
130     による [[escape]] が可能ですが、
131     [CODE(CSS)@en[[[url]]]] では使えません。
132    
133     ;; <IW:CSS2:"syndata.html">
134    
135     [15]
136     >>14 を [[Opera]] 9 は正しく実装していますが、
137     [[Firefox]] 1.5 と [[WinIE]] 6 は [[escape]]
138     されていてもおkです。
139    
140     ;; <http://suika.fam.cx/~wakaba/-temp/test/css/tokenize/>
141    
142     [16]
143     >>14-15 あ、でも、 [CODE@en[URI]] にならないかわりに、
144     [CODE@en[FUNCTION]], ... にはなるのか・・・。
145     [[字句]] [CODE@en[URI]] と [[CSS]] の構文定義にでてくる
146     [CODE@en[<uri>]] の関係が実は明記されていないから、
147     [CODE@en[FUNCTION]], ... だけど [CODE@en[<uri>]]
148     である、という解釈も可能?
149    
150     [Q@en[The format of a URI value is 'url(' followed by ...]]
151     だからやっぱだめ?
152    
153     [17] '''Firefox 2.0's implementation''':
154     = Let [VAR@en[u]] be an empty string.
155     = Let [VAR@en[invalid]] be false.
156     = Unless the string starts by an [CODE(CSS)@en[[[ident]]]] with value
157     [CODE(CSS)@en[[[url]]]] (case-insensitive,
158     [CODE(CSS)@en[[[escape]]]] is allowed,
159     [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
160     is ignored), immediately followed by a
161     [CODE(char)[[[(]]]], it is not a [CODE(CSS)@en[[[URI]]]].
162     Stop these steps.
163     = ([DFN@en[WS]]) Skip any white space characters.
164     = If the next two characters are [CODE(char)[[[/*]]]],
165     == Skip any character until [CODE(char)[[[*/]]]] is found.
166     == If the substring [CODE(char)[[[*/]]]] is found,
167     === If the following characters are not a white space
168     character or [CODE(CSS)@en[[[/*]]]],
169     set [VAR@en[invalid]] as true. Don't consume these
170     characters yet.
171     === Go to the previous step in the overall steps (i.e. WS).
172     == Otherwise, i.e. if the next character is [CODE(char)@en[[[EOF]]]],
173     the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
174     = If the next character is [CODE(char)[[["]]]],
175     == Appends any character until [CODE(char)[[["]]]]
176     to [VAR@en[u]], with any [CODE(CSS)@en[[[escape]]]] decoded and any
177     [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
178     ignored.
179     == ([DFN@en[DWS]]) If the next character is a white space,
180     set [VAR@en[u]] as that character (!).
181     == If next few characters are white spaces, skip them.
182     == If the next character is [CODE(CSS)@en[[[/*]]]],
183     === Skip any character until [CODE(CSS)@en[[[*/]]]].
184     === If the next character is [CODE(char)@en[[[EOF]]]],
185     the [CODE(CSS)@en[[[URI]]]] is inlvaid. Stop the entire steps.
186     === Otherwise, go to the step named as DWS.
187     == If the next character is [CODE(CSS)@en[[[)]]]],
188     go to the step named as CP.
189     == Otherwise, set [VAR@en[invalid]] as true.
190     == Skip any character until [CODE(char)[[[)]]]]
191     (including [CODE(char)[[[)]]]] following [CODE(char)[\]]
192     but excluding [CODE(char)[[[)]]]] after [CODE(char)[[["]]]]
193     or [CODE(char)[[[']]]] but before [CODE(char)[[["]]]]
194     or [CODE(char)[[[']]]] matching it).
195     == If the next character is [CODE(char)[[[EOF]]]],
196     the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
197     == Otherwise, go to step named as CP.
198     = If the next character is [CODE(char)[[[']]]],
199     == Appends any character until [CODE(char)[[[']]]]
200     to [VAR@en[u]], with any [CODE(CSS)@en[[[escape]]]] decoded and any
201     [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
202     ignored.
203     == Go to the step named as DWS.
204     = ([DFN@en[CP]]) If the next character is [CODE(char)[[[)]]]],
205     == If [VAR@en[invalid]] is true, then the
206     [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
207     == Otherwise, return a [CODE(CSS)@en[[[URI]]]] whose
208     value is [VAR@en[u]]]].
209     = If the next character is [CODE(char)["]] or [CODE(char)[']],
210     set [VAR@en[invalid]] as true.
211     = If the next character is a white space,
212     == Skip any white space characters.
213     == If the next character is [CODE(CSS)@en[[[)]]]],
214     go to the previous step in the overall steps (i.e. CP).
215     == Otherwise, set [VAR@en[invalid]] as true.
216     = If the next character is [CODE(char)[[[\]]]],
217     -- decode a few character as [CODE(CSS)@en[[[escape]]]]
218     and append it to [VAR@en[u]], or skip [CODE(CSS)@en[[[whitespace]]]]
219     if it immediately follows the [CODE(char)[[[\]]]].
220     = If the next character is [CODE(char)@en[[[EOF]]]],
221     the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the steps.
222     = Go to the step named as CP.
223    
224     [18] [[Opera]] 9.00 seems to parse [CODE(CSS)@en[[[URI]]]]
225     as specified in [[CSS 2.1]].
226    
227     ;; For example,
228     <http://suika.fam.cx/gate/2007/cssom/viewer?c=p%20%7B%0D%0A%20%20background-image%3A%20url(%20aa%3B%20font-size%3A%2012px%3B;h=;p=n;x=style-element>
229     results in a [CODE(CSS)@en[[[font-size]]]] property
230     specified as [CODE(CSS)@en[12[[px]]]].
231    
232     However, it post-process [CODE(CSS)@en[[[URI]]]] values as:
233     - Drop any [CODE(URI)@en[[[#form:'':'']]#]]]] and following characters.
234     - Drop any preceding and following white space characters.
235     - Resolve a relative reference as an absolute URI.
236    
237     [21] [[WinIE 6]] の実装は複雑怪奇です。
238     - [CODE(CSS)@en[[[url]]]] という[[関数名]]は、
239     -- [[大文字]]・[[小文字]]を区別しません。
240     -- [CODE(CSS)@en[[[escape]]]] を使うことができます。
241     --- しかし、 [CODE(CSS)@en[[[escape]]]] の最後の[[空白]]が[[改行]]であってはいけません。
242     --- 最後の[[空白]]の代わり、または直後に[[零]]個以上の[[注釈]]を挿入できます。
243     ([[CSSの字句化]>>7] を参照。)
244     - [[関数名]]と [CODE(CSS)@en[[[(]]]] の間に[[零]]個以上の[[注釈]]を挿入できます。
245     - [[括弧]]内では、
246     -- [Q[普通]]の[[文字列]]を使うことができます。
247     -- 評価した結果の[[文字列]]が[[空文字列]]なら、
248     [CODE(CSS)@en[[[URI]]]] ではなく、[[鍵語]]
249     [CODE(CSS)@en[[[none]]]] として扱われます。
250     -- [Q[普通]]の[[文字列]]の前後に[[零]]個以上の[[空白]]
251     ([[改行]]を含みます。) を挿入できます。
252     それらは無視されます。
253     -- 前後の[[空白]]の適当な位置に[[零]]個以上の[[注釈]]を挿入できます。
254     -- ただし、[Q[普通]]の[[文字列]]の直後の[[注釈]]のような[[文字列]]は、
255     [Q[普通]]の[[文字列]]の一部とみなされます。
256     -- [Q[普通]]の[[文字列]]の途中に適当に[[空白]]を挿入できます。
257     --- 最初''以外''の[Q[普通]]の[[文字列]]に
258     [CODE(CSS)@en[[[;]]]] や [CODE(CSS)@en[[[!]]]]
259     や [CODE(CSS)[[[{]]]] や [CODE(CSS)[[[}]]]] を挿入してはいけません。 ([CODE(CSS)@en[[[escape]]]]
260     しても駄目です。)
261     --- 最初''以外''の[Q[普通]]の[[文字列]]の直後の[[注釈]]のような[[文字列]]は、
262     [[注釈]]とみなされます。
263     -- [[注釈]]と [CODE(CSS)[[[\]]]] には複雑な規則があります:
264     --- OK なもの:
265     ---- <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
266     ----
267     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
268     ----
269     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
270     ----
271     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20u%5C72%2F**%2Fl%2F**%2F(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
272     ----
273     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20u%5C72%2F**%2Fl%2F**%2F(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
274     ----
275     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20%5Cb%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
276     --- NG なもの:
277     ----
278     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20%2F**%2Fb%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
279     ----
280     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
281     ----
282     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20b%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
283     -- 最初の[Q[普通]]の[[文字列]]では [CODE(CSS)@en[[[\]]]] は使えますが、
284     --- 直後が[[空白]]の時は、
285     [CODE(CSS)@en[[[\]]]] 自体も値の一部とみなされます。
286     --- 後の前後の[[空白]]の除去により、
287     [CODE(CSS example)@en[url(a\ )]] は [CODE[a\]]
288     とみなされます。ちなみに [CODE(CSS example)@en[url(a\20)]]
289     は [CODE[a]] とみなされます。
290     -- 最初''以外''の[Q[普通]]の[[文字列]]では [CODE(CSS)@en[[[\]]]]
291     はほぼ使えますが、値の一部とみなされます。
292     --- 値の一部とみなされない場合もあります。例えば:
293     <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(aa%5C%0D%0Ab%20%5C0041)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
294     - [[注釈]]を閉じる [CODE(CSS)@en[[[*/]]]] がなければ、
295     入力の最後まで[[注釈]]の一部とみなされます。
296     - [[関数]]を閉じる [CODE(CSS)@en[[[)]]]] がなければ、
297     入力の最後まで[[関数]]の一部とみなされます。
298     - [CODE(char)[[["]]]] や [CODE(char)[[[']]]] や
299     [CODE(char)[[[(]]]] や [CODE(char)[[[)]]]] を含む場合: 複雑です。
300    
301     [22]
302     [CITE@en[Re: '''['''css3-namespace''']''' url() syntax]] ([[fantasai]] 著, [CODE[2006-10-01 08:54:25 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2006Oct/0006.html>
303     ([[名無しさん]])
304    
305    
306     [23]
307     [CITE@en['''['''css3-namespace''']''' url() syntax]] ([[Anne van Kesteren]] 著, [TIME[2008-02-07 07:13:26 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2008Feb/0059.html>
308     ([[名無しさん]])
309    
310    
311     [[#comment]]
312    
313    
314 wakaba 1.2 * メモ
315    
316     [24] [CITE@en[HTML5 Revision Tracker]]
317     ([TIME[2010-04-27 22:19:38 +09:00]] 版)
318 wakaba 1.3 <http://html5.org/tools/web-apps-tracker?from=5064&to=5065>
319    
320     [25] [CITE[IRC logs: freenode / #whatwg / 20100502]]
321     ([TIME[2010-05-30 23:27:52 +09:00]] 版)
322 wakaba 1.4 <http://krijnhoetmer.nl/irc-logs/whatwg/20100502#l-105>
323    
324     [26] [CITE[Basic Data Types and Interfaces – SVG 1.1 (Second Edition)]]
325     ( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
326     <http://www.w3.org/TR/2011/REC-SVG11-20110816/types.html#DataTypeFuncIRI>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24