/
615.txt
437 lines (342 loc) · 17.5 KB
/
615.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
* [CODE(HTMLe)[ins]] 要素型 (HTML, XHTML 1)
[1] [[HTML]] の [DFN[[CODE(HTMLe)[ins]] 要素]]は、
[[文書]]のある版で挿入された部分を表します。
例えば、仕様書第三次案で第二次案と比べて変更された部分を明記した時には、
追加された部分を [CODE(HTMLe)[[[ins]]]] [[タグ]]で括ります。
[24]
仕様書:
- [[HTML 4]]
-- <IW:HTML4:"struct/text.html#edef-ins">
[2]
:[[名前空間URI]]:[CODE(URI)[[[http://www.w3.org/1999/xhtml]]]]
:[[局所名]]:[CODE(HTMLe)[ins]] ([Q@en[insert]] ([Q[挿入]]) より)
:[[開始タグ]]:必須
:[[終了タグ]]:必須
:[[内容模型]]:[CODE(SGML)[(%[[flow]];)*]] >>4
:出現できる文脈:[CODE(HTMLe)[[[body]]]] 内ほぼどこでも >>4
:[[属性]]:
,属性名 ,属性値 ,既定値 ,説明 ,状態 ,出典
,[CODE(HTMLe)[[[cite]]]] ,[[URI参照]] ,(なし) ,修正事由 ,[HTML4]
,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[datetime]]]] ,[CODE(SGML)[%[[Datetime]]]] ,(なし) ,修正日時 ,[HTML4]
,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,[HTML4] %[[i18n]]
,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,[HTML4] %i18n
,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmousemove]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,[HTML4] %coreattr
[[#comment]]
** 出現できる文脈と内容模型
[4] [CODE(HTMLe)[ins]] 要素や [CODE(HTMLe)[del]] 要素は [[HTML]] では特殊で、[[ブロック水準要素]]としても[[行内要素]]としても使用できます。
(両方同時にはできません。)
[5]
[CODE(HTMLe)[ins]] 要素や [CODE(HTMLe)[del]] 要素が行内要素として使用されているときには、
ブロック水準要素を[[内容]]とすることはできません。
逆にブロック水準要素として使われているときに行内要素や[[文字データ]]を子供にしてはいけないとは
HTML 4 仕様書には書いてないみたいです。
ただ、仮に [CODE(HTMLe)[ins]] タグや [CODE(HTMLe)[del]] タグを取り去ったときに行内要素や文字データが
[CODE(HTMLe)[body]] 要素の子供になってしまうような場合は問題でしょう。
[6] HTML 4 仕様書にたぶん明確に書かれていないと思いますが、
[CODE(SGML)[%[[flow]]]] な文脈 (ブロック水準要素も行内要素も来得る文脈)
では [CODE(HTMLe)[ins]] 要素や [CODE(HTMLe)[del]]
要素はどのように振る舞うべきかという問題があります。
理想的には、
[PRE(HTML)[
<li>
<p>
<ins>
<p/>
</ins>
</li>
]PRE]
はブロック水準要素として、
[PRE(HTML)[
<li>
あいうえお<ins>かきくけこ</ins>さしすせそ
</li>
]PRE]
は行内要素として働いて欲しいですが、これを機械的に区別するなら兄弟や子供をチェックしないと決定できません。
[14]
HTML 4 は [CODE(HTMLe)[ins]] と [CODE(HTMLe)[del]] を [CODE(HTMLe)[[[body]]]] 要素型の[[添加要素]]指定に入れています。
このように添加要素を使った [[DTD]] では、
[[空白]]の [[SGML]] 的処理が他の要素とは違ってきます。詳しくは [[SGML//空白]]を参照。
[15]
HTML 4 DTD では [CODE(HTMLe)[body]] で添加されていながらどの要素型でも除外されていないので、 DTD 的には本当にどこにでも
[WEAK[(例えば [CODE(HTMLe)[[[ul]]]] 要素の直下や [CODE(HTMLe)[[[table]]]] 要素の直下や [CODE(HTMLe)[[[legend]]]] 要素の前など。ただし [CODE(HTMLe)[[[img]]]] のような[[強制空要素]]内は不可。)]] にも [CODE(HTMLe)[ins]] や [CODE(HTMLe)[del]] が入って良いことになってしまいます。
仕様書でも特にそれに言及していません。
それでよいのでしょうか。
(添加要素指定を使っていない DTD、例えば XHTML 1 ではこの問題はありません。)
[CODE(HTMLe)[ul]] の直下などは使えて嬉しいこともありそうですが、 [CODE(HTMLe)[ins]] や [CODE(HTMLe)[del]]
の子供に [CODE(HTMLe)[[[li]]]] が来れないので意味がありません。
[16]
>>6 [CODE[%flow]] の問題は [CODE(HTMLe)[li]] などだけかと思っていましたが、それは [[Strict DTD]] での話、
[[Transitional]] 系 DTD では [CODE(HTMLe)[[[body]]]] 要素など色々なところで問題が起こりますね。
[[CSS]] で [CODE(CSS)[[[display]]]] を決定するような処理は不可能。
[[#comment]]
** レンダリング
[10] HTML 4 によれば、 [[UA]] は変更が明らかであるように挿入をレンダリングするべきです。
たとえば、特別な[[フォント]]で表示する方法があると述べられています。
[11] 多くの視覚的 UA では、 [SAMP(CSS)[[[text-decoration]]: [[underline]]]]
な[[既定スタイル]]を持っています。
その他に著者のスタイルシートで広く行われている表現としては、
枠で囲ったり、背景色を変えてみたりされています。
[12] [[テキストブラウザ]]の類では、
引用部の最初と最後に目印となる文字列を入れるものもあります。
[13] [CODE(HTMLe)[ins]] 要素型に対応していない古い[[ブラウザ]]では
[CODE(HTMLe)[ins]] 部分と周りの部分の見分けがつかない表示になってしまうのが普通です。
(ただ、 [CODE(HTMLe)[ins]] 要素はその性質上、
変更点を見たい場合以外は問題にならないでしょう。)
[17]
変更後の文書を見たいときのモード (あるいは代替スタイル) では [CODE(HTMLe)[ins]] は普通に表示し、 [CODE(HTMLe)[del]] はまったく表示しないというのもありでしょう。
逆に、変更前を見たいモードでは
[CODE(HTMLe)[ins]] は非表示で [CODE(HTMLe)[del]] は普通に表示、てな具合。
[18]
[CODE(HTMLa)[datetime]] 属性を使っていれば、何月何日の時点での文書の状態を表示、なんてのもできそうです。
;; もっとも、それだけの版管理を HTML でやってる人がいるかどうか...
[31]
[CITE@ja[ins要素のスタイルの場合分け:メモランダム]] ([CODE[2007-04-28 20:47:46 +09:00]] 版) <http://mynotes.jp/blog/2007/04/ins_style2>
([[名無しさん]] [WEAK[2007-04-29 02:31:57 +00:00]])
[[#comment]]
* 関連
[3]
逆に削除された部分をマークする [CODE(HTMLe)[[[del]]]]
要素型も用意されています。
[[XHTML 2]] では[[汎用属性]] [CODE(XHTMLa)[[[edit]]]]
として一般化される見込みです。
[26]
'''[[リスト]], [[表]]の項目の追加''':
[CODE(HTMLe)@en[[[ul]]]], [CODE(HTMLe)@en[[[ol]]]],
[CODE(HTMLe)@en[[[dl]]]], [CODE(HTMLe)@en[[[table]]]]
などの[[子供]]として、 [CODE(HTMLe)@en[[[li]]]],
[CODE(HTMLe)@en[[[dd]]]], [CODE(HTMLe)@en[[[tr]]]],
[CODE(HTMLe)@en[[[td]]]] の[[親]]になるような
[CODE(HTMLe)@en[[[ins]]]] 要素を[Q[挟む]]ことはできません。
([[HTML 4]] や [[XHTML 1.0]] の仕様上の限界です。
[WEAK[[[HTML 4]] [[DTD]] では [CODE(HTMLe)@en[[[ul]]]] などの[[子供]]として [CODE(HTMLe)@en[[[ins]]]] を使うことも可能ですが、 [CODE(HTMLe)@en[[[ins]]]] の[[子供]]として [CODE(HTMLe)@en[[[li]]]] などを使うことが出来ないので、意味がありません。]])
([[名無しさん]] [sage])
[[#comment]]
** 例
[8] (HTML 4 仕様書より):
[PRE(HTML)[
<INS datetime="1994-11-05T08:15:30-05:00"
cite="http://www.foo.org/mydoc/comments.html">
Furthermore, the latest figures from the marketing department
suggest that such practice is on the rise.
</INS>
]PRE]
[CODE(HTMLa)[datetime]] 属性は修正日時、
[CODE(HTMLa)[cite]] 属性は修正理由の書かれた資源を記述できます。
[9] (HTML 4 仕様書より):
[PRE(HTML)[
<INS datetime="1994-11-05T08:15:30-05:00"
title="Changed as a result of Steve B's comments in meeting.">
Furthermore, the latest figures from the marketing department
suggest that such practice is on the rise.
</INS>
]PRE]
[CODE(HTMLa)[title]] 属性は修正理由の簡単な説明のために使うことができます。
[7] 不正な例 (HTML 4 仕様書より):
[PRE(HTML)[
<P>
<INS><DIV>...block-level content...</DIV></INS>
</P>
]PRE]
[19]
複数の修正の重なった例:
> <p>
利用者<ins class="r3">エージェント</ins>は、ここをこう<del class="r3"><del class="r2">しなければなりません</del><ins class="r2">するべきです</ins></del><ins class="r3">するように利用者を促さなければなりません</ins>。
この例では、第2版における修正を
[CODE[r2]], 第3版における修正を
[CODE[r3]] として分類しています。
この文書のスタイル・シートは次のような感じにするとよさげです。
[CODE(HTMLe)[[[head]]]] 要素内で:
[PRE(HTML)[
<[CODE(HTMLe)[[[link]]]] [CODE(HTMLa)[[[rel]]]]="[CODE(HTML)[[[stylesheet]]]]" [CODE(HTMLa)[[[href]]]]="document-style">
<[CODE(HTMLe)[link]] [CODE(HTMLa)[rel]]="[CODE(HTML)[[[alternate]]]] [CODE(HTML)[stylesheet]]" [CODE(HTMLa)[href]]="rev1-style" [CODE(HTMLa)[[[title]]]]="初版">
<[CODE(HTMLe)[link]] [CODE(HTMLa)[rel]]="[CODE(HTML)[alternate]] [CODE(HTML)[stylesheet]]" [CODE(HTMLa)[href]]="rev2-style" title="第2版">
<[CODE(HTMLe)[link]] [CODE(HTMLa)[rel]]="[CODE(HTML)[stylesheet]]" [CODE(HTMLa)[href]]="rev3-style" title="第3版">
]PRE]
4種類のスタイル・シートのうち、文書全般に関するものを[[持続スタイル]]に、
残りを[[代替スタイル]]にします。
そのうち、最新の版は[[優先スタイル]]にしておきます。
[[CSS]] スタイル・シート [CODE(URI)[rev1-style]] の例:
[PRE(CSS)[
ins {
display: none;
}
del {
display: inline;
}
body > del {
display: block;
}
]PRE]
CSS スタイル・シート [CODE(URI)[rev2-style]] の例:
[PRE(CSS)[
ins {
display: none;
}
ins.r2 {
display: inline;
}
body > ins.r2 {
display: block;
}
del {
display: inline;
}
body > del {
display: block;
}
del.r2, body > del.r2 {
display: none;
}
]PRE]
CSS スタイル・シート [CODE(URI)[rev3-style]] の例:
[PRE(CSS)[
ins {
display: none;
}
ins.r2, ins.r3 {
display: inline;
}
body > ins.r2, body > ins.r3 {
display: block;
}
del {
display: inline;
}
body > del {
display: block;
}
del.r2, body > del.r2,
del.r3, body > del.r3 {
display: none;
}
]PRE]
;; 改訂が多ければ多いほど面倒になっていく・・・ように思えますけど、実際には改訂毎にコピペして新しい方のスタイル・シートに少し付け足すだけで済みます。
;; むしろ面倒なのは、ブロック要素の子供かどうかで [CODE(CSS)[block]] か [CODE(CSS)[inline]] か分けないといけないところ。
[27]
'''引用者注''':
[PRE(HTML example code)[
<blockquote>
<p>昔々、あるところに、おじいさんとおばあさんが住んでいました。</p>
<ins class="引用者注">
<p>原文ではここに挿絵があります。</p>
</ins>
<p>おじいさんは山へ芝刈りに、おばあさんは川へ洗濯へ向かいました。</p>
<ins class="snip"><p>(中略)</p></ins>
<p>おじいさんとおばあさんはいつまでも幸せにくらしましたとさ。</p>
</blockquote>
]PRE]
この例では、[[引用]]部内で ([[引用文献]]の[[著者]]ではなく)
[[引用者]]が記述した部分を明確にするために[CODE(HTMLe)@en[[[ins]]]][[要素型]]を用いています。
([[名無しさん]] [sage])
[28]
>>27 のような使い方は本来のsemanticsからはずれていますが、
まったく別のものともいいがたく、どうするべきか本当に悩ましい。
([[名無しさん]] [sage])
[29]
> “The decree, voted by the priests of
Egypt at Memphis [WSDL WG] , is
repeated in two languages—
Egyptian [prose] (in both
hieroglyphic and demotic scripts)
and Greek [Z] —— and records the
good deeds of Ptolemy and the
honours proposed for the twelve
year old King.
> Through the Rosetta Stone and
other similar bilingual inscriptions
scholars [developers] were able to
decipher the hieroglyphs [specs] of
ancient Egypt [W3C] .”
> — British Museum
;; 出典: [CITE@en[Z in WSDL]]
<http://www.w3.org/2006/Talks/0301-z-notation.pdf#page=10>
;; [括弧] は引用者による挿入部で、原文では太字。
これも >>27 同様[CODE(HTMLe)@en[[[ins]]]]でマークできそうです。
* 歴史
[25] 元々の [[WinIE]] の実装では ([[HTML 3]] でも??)、
[CODE(HTMLe)[ins]] と [CODE(HTMLe)[[[del]]]] は
[CODE(HTMLe)[[[em]]]] や [CODE(HTMLe)[[[code]]]]
などと同じような[[行内要素]]でした。
[[ブロック水準要素]]としても使える特殊な扱いになったのは [[HTML 4]]
からです。
** XHTML2
[36] [[XHTML2]] の最初の[[作業原案]]には [CODE(HTMLe)@en[[[ins]]]] [[要素]]、
[CODE(HTMLe)@en[[[del]]]] [[要素]]も含まれていましたが、
2つ目の[[作業原案]]で削除され、代わりに [CODE(HTMLa)@en[[[edit]]]] [[属性]]が導入されました。
** HTML5
[38] [CODE(HTMLe)@en[ins]] [[要素]]は、[TIME[2005年4月16日][2005-04-16]]版
(現存せず) [[WA1]] で追加されました。
[REFS[
- [39] [CITE@en-GB-hixie[Web Applications 1.0]]
[TIME[2005年4月17日][2005-04-17]]版
<https://web.archive.org/web/20050418080151/http://www.whatwg.org/specs/web-apps/current-work/#the-ins>
]REFS]
* メモ
[20] '''どんな時に [CODE(HTMLe)[[[ins]]]] や [CODE(HTMLe)[[[del]]]] を使うのか''':
[CODE(HTMLe)[[[ins]]]] 要素や [CODE(HTMLe)[[[del]]]]
要素を使うと [[HTML]] [[文書]]内の編集履歴を残すことができます。
しかし、 [[HTML]] [[文書]]を編集する時に必ずこれらの要素を使って[[マーク]]しなければならないのでは''ありません''。
例えば[Q[正式]]な仕様書や規則の案であるとか、
書籍の原稿を[[校正]]するとか、
あるいは一旦日付入りで公表した文書に長い時間が経過した後に状況の変化を反映した補足を付けるとか、
変更履歴をわざわざ残すことに価値があると判断できる場合にこれらの要素を使います。
[21]
''不適切な例'': 特に重要な文書の変更案などを除き、
単なる [[typo]] をわざわざ [CODE(HTMLe)[[[del]]]] で
[CODE(HTMLe)[[[ins]]]] で[[マーク]]することは意味がありません。
文書が読みづらくなるだけです。
[22]
''不適切な例'': [[日記]]で、毎日[Q[追記]]していくからといって、
日毎に [CODE(HTMLe)[[[ins]]]] で[[マーク]]するのは間違いです。
[WEAK[(以前の記事に後から新しい情報を補うために使うのは適当です。)]]
[23]
長い文書の一部が修正されている時に
[Q[次の編集箇所へ]]のような機能が利用者エージェントについているとうれしいなあ。
([[名無しさん]])
[30]
[CITE@en[[w3m-dev 04202] Re: <del>, <s>, <ins>, and so on]]
<http://permalink.gmane.org/gmane.comp.web.w3m.devel/869>
([[名無しさん]] [WEAK[2006-12-29 12:18:47 +00:00]])
[32]
[CITE[ins要素のよいスタイルはないものだろうか:メモランダム]] ([CODE[2007-04-30 14:18:54 +09:00]] 版) <http://mynotes.jp/blog/2007/04/ins_style>
([[名無しさん]] [WEAK[2007-06-02 14:05:36 +00:00]])
[33]
[CITE[音声ブラウザと相性の良いHTMLを作る(4)。 (Junnama Online (Mirror))]] ([CODE[2007-06-09 22:46:02 +09:00]] 版) <http://junnama.alfasado.net/online/2007/05/media_ins_del.html#entry-1430>
([[名無しさん]] [WEAK[2007-06-09 14:38:18 +00:00]])
[34]
[CITE[音声ブラウザと相性の良いHTMLを作る(4)。 (Junnama Online (Mirror))]] ([CODE[2007-06-09 22:46:02 +09:00]] 版) <http://junnama.alfasado.net/online/2007/05/media_ins_del.html#entry-1430>
([[名無しさん]] [WEAK[2007-06-09 14:38:52 +00:00]])
[35]
[CITE[The ins and del elements and comments thereon]] ([[Ian Hickson <ian@...>]] 著, [TIME[2008-04-17 08:26:31 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13745>
([[名無しさん]])
[[#comment]]
* メモ
[FIG(quote)[
[FIGCAPTION[
[37] [CITE[今年も来年もアニメはMX! 今年もアニメ攻勢がすごいTOKYO MXの年末年始特番、そして2016年について聞いてみた!!|おたぽる]]
([TIME[2015-12-31 15:01:10 +09:00]] 版)
<http://otapol.jp/2015/12/post-5150.html>
]FIGCAPTION]
>
> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
> <!-- otp_pc_630x280 -->
> <ins class="adsbygoogle"
> style="display:inline-block;width:630px;height:280px"
> data-ad-client="ca-pub-8955310992046334"
> data-ad-slot="9431689327"></ins>
>
]FIG]