* isindex 要素型 (HTML, XHTML 1) [2] [[HTML]] の [DFN[[CODE(HTMLe)[isindex]] 要素型]]の要素は、 その[[文書]]の[[資源]]が検索可能な索引であることを示します。 [3] 仕様書: - [[HTML 2.0]]: [[RFC 1866]] 5.2.3. Keyword Index: ISINDEX - [[HTML 4]] -- [CITE[17.8 The [CODE(HTMLe)[ISINDEX]] element]] --[[移行用DTD]] -[[XHTML 1.0]] --[CSECTION[C.6. Isindex]] [4] :[[名前空間名]]:[CODE(URI)[[[http://www.w3.org/1999/xhtml]]]] :[[局所名]]:[CODE(HTMLe)[[[isindex]]]] :[[開始タグ]]:必須 :[[終了タグ]]:禁止 (HTML 4), 必須 (XHTML 1) :出現できる文脈:[CODE(HTMLe)[[[head]]]], [CODE(SGML)[%[[block]]]] な文脈 :[[内容模型]]:空 ([[強制空要素]]) :[[属性]]: ,属性名 ,属性値 ,既定値 ,説明 ,状態,出典 ,[CODE(HTMLa)[[[action]]]] ,[CODE(SGML)[%[[URI]]]] , ,提出先 , ,[CODE(HTMLa)[[[class]]]] , ,(なし) ,[[級]] ,[HTML 4] %[[coreattrs]] ,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,[HTML 4] %[[i18n]] ,[CODE(HTMLa)[[[href]]]] ,[CODE(SGML)[%[[URI]]]] , ,提出先 ,[CODE(HTMLa)[[[id]]]] ,[CODE(SGML)[[[ID]]]] ,(なし) ,[[固有識別子]] ,[HTML 4] %coreattrs ,[CODE(HTMLa)[[[lang]]]] ,[CODE(SGML)[%[[LanguageCode]]]] ,(継承) ,[[自然言語]] ,[HTML 4] %i18n ,[CODE(HTMLa)[[[xml]]:[[lang]]]] ,[CODE(SGML)[%[[LanguageCode]]]] ,(継承) ,[[自然言語]] ,W3C 勧告,[XHTML 1] ,[CODE(HTMLa)[[[prompt]]]] ,[CODE(SGML)[%[[Text]]]] , , ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[style]]]] ,[CODE(SGML)[%[[StyleSheet]]]] ,(なし) ,スタイル指定 ,[HTML 4] %coreattrs ,[CODE(HTMLa)[[[title]]]] ,[CODE(SGML)[%[[Text]]]] ,(なし) ,注釈的題 ,[HTML 4] %coreattrs [10] HTML 4 DTD の[[注釈]] (参考) には [Q[single line prompt]] とあります。 [[#comment]] ** 代替 [5] この要素型は非推奨です [SRC[HTML 4]]。 代わりに、 [CODE(HTMLe)[[[form]]]] 要素と [CODE(HTMLe)[[[input]]]] 要素を使って同じようなことが実現できます。 [[#comment]] ** 出現できる文脈 [12] [CODE(HTMLe)[isindex]] 要素型は元々の意味からすると [CODE(HTMLe)[[[head]]]] 内でのみ認められるべきでしたし、 何個あっても意味が変わらないので高々1個だけ認められるべきでした。 しかし、 [CODE(HTMLe)[isindex]] 要素の場所に入力欄を設けるという実装が行われるようになり、 [[文書]]のあらゆる場所に何個でも置けるように[Q[拡張]]されてしまいました。 [13] [[HTML 4]] ではこの要素型を [CODE(SGML)[%[[block]]]] に分類しています。従って、 [CODE(HTMLe)[[[body]]]] 内の[[行内要素]]しか認められない場所''以外''ほとんどどこにでも書けます。 また、 [[DTD]] 内の[[引数実体]] [CODE(SGML)[%head.content]] で高々1回記述できると規定しています。つまり、 [CODE(HTMLe)[[[head]]]] の子供としてどこにでも1回だけ指定できます。 [11] [[XHTML 1.0]] 互換性指針は、 [CODE(HTMLe)[[[head]]]] 内に複数の [CODE(HTMLe)[isindex]] を入れるのは互換性のため好ましくないとしています [SRC[XHTML 1.0 C.6]]。 [[XHTML 1.0]] の [[DTD]] をよく見ると [CODE(HTMLe)[isindex]] が [CODE(XML)[%block;]] に含まれるのはそのままですが、 [CODE(HTMLe)[head]] については [CODE(XML)[%[[head.misc]];]] に移動していることがわかります。 [[XML]] の[[内容模型]]の記述能力の限界により、 簡単のため定義の仕方が変わったようです。 これにより、 [CODE(HTMLe)[isindex]] は [CODE(HTMLe)[head]] 内であっても任意の回数使用できるようになりました。 互換性指針が言っているのはこの変更のことのようです。 [[#comment]] ** 不思議解釈 [1] [[WebTV]] では「属性なし」で、次のような例が載っています。 [PRE(HTML)[ ]PRE] [WEAK[(出典: [CODE(HTMLe)[isindex]] )]] こんなのは [[SGML]] ではないと思うんですがねぇ。 [[#comment]] ** 歴史 [6] 本来この要素は索引があって検索可能なことを表すだけで、 検索フォームは UA の機能に過ぎなかった [WEAK[(本文領域には表示せず、メニューから検索機能を呼出せるだけの]] UA もあった)]] のに、 いつの間にか文章の適当なところに配置できる簡易フォーム機能となってしまいました。 フォーム提出先 URI まで指定できるようになっています [WEAK[(HTML 4 にはその機能は入りませんでしたが)]]。 HTML 4 に至っては、 > This element creates a single-line text input control. [SRC[HTML 4 17.8]] などと定義しています。 [7] しかも、 [CODE(HTMLe)[[[head]]]] 要素が創設された時にそちらに収納されるはずのものであったにもかかわらず、 いつの間にか本文のどこにあっても良いことになっています。 ここまでして高機能化するほど使い道があるものではありませんし、 [CODE(HTMLe)[[[form]]]] が使いづらいというわけでもないのですが、 どうしてこうも拡張されてしまったのでしょうと思わずにはいられません。 [[#comment]] ** 例 [8] メッセージつきの例 [SRC[HTML 4 17.8]] [PRE(HTML)[ ]PRE] [CODE(HTMLe)[[[input]]]] を使って書き換えた例 [SRC[HTML 4 17.8、改]] [PRE(HTML)[

]PRE] 但し、フォームと索引では[[提出]]方法が異なるので、 この2つの例は交換可能ではありません。 [[#comment]] ** memo [9] [CODE(HTMLe)[isindex]] の意味がよく規定されているのは[[基底URI]] が [[HTTP]] である場合のみです。また、入力する文字列は [[Latin-1]] に制限されます。 [SRC[HTML 4 17.8]] [[#comment]] * メモ