rules for parsing a hash-name reference

rules for parsing a hash-name reference

img 要素・object 要素・input 要素 usemap 属性 (HTML, XHTML 1)

[10] HTMLimg 要素および object 要素および input 要素の usemap 属性は、 画像写像を要素に関連付けます。

[11] 仕様書:

属性値

[12] この属性の値は %URI (URI参照) です。

HTML 4 仕様書には値は map 要素の name 属性と一致しなければならないとか書かれていますが、 無理です。 実際には、 name 値を素片識別子とした URI 参照とします。

[13] この属性は省略可能です。 省略するとクライアント側画像写像と結び付けられていないことになります。

IDREF

[15] XHTML m12n では属性値の型が URI 参照から IDREF 改められました。 (ただし、 >>5 によれば修正することを検討中のようです。)

[1] XHTML1.1のusemap属性の仕様変更 http://www.faireal.net/articles/4/25/#d20219

[2] URIIDREF ですから、 とりあえず区別は出来ますけど、非互換変更は嬉しくないですねぇ。 同じ名前空間で非互換変更はねぇ。

[7] >>2 やっぱり区別できないや。相対 URI で foo みたいな場合。 もっともほとんどの場合は必ず素片識別子付きの URI 参照になるでしょうから、 現実的には問題ないのですが。

[16] ほとんどの場合はと書いていましたが、必ずです。 といいますのは、 usemap の参照先は map と定義されているからです。仮に map文書要素としたところで、それは文書全体ではなく文書要素に過ぎないので、 それを参照するためにはやはり素片識別子が必要です。 ですから、map を参照という制約の範囲内で素片識別子なしの URI で済ませられる可能性はありません。

ただし、独自拡張で例えば CERN 方式の鯖側画像写像定義ファイルを参照できるとか、 そういうのがある場合はこの限りではありません (が実際にはないと思います)。

[9] >>2 しまった! :ID に含まれていたら区別できない! と思いきや、 XHTML m12nXML名前空間無しで使うのは不可能ですから、無問題なのでした。

[4] XHTML 1.1 の 1.0 との差異リストにも載ってないし、気づいてない人も多そう。

[22] HTML Working Group Voyager Issue Tracking System - Modularization-abstractions/8502 http://hades.mn.aptest.com/cgi-bin/voyager-issues/Modularization-abstractions?id=8502 (名無しさん)

[24] >>22 によれば、一度はURIに修正することに決めたものの、 ずっと放置した挙句、やっぱりIDREFにしておいて、 XHTML 2.0ではまたURIに戻すそうですwwwwwwwww

[48] 確かにその後、 XHTML 2.0 の最初の作業原案では URI になっています。

ただし値は id 属性値と一致しなければならないとの矛盾した記述もありました。

[25] [XHTMLMod] usemap="" attribute should be URI, not IDREF from Anne van Kesteren on 2006-08-04 (www-html-editor@w3.org from July to September 2006) http://lists.w3.org/Archives/Public/www-html-editor/2006JulSep/0036

早く直せよねぇwww (名無しさん 2006-08-06 05:16:43 +00:00)

[26] XHTML m12nDTD 内には次のような説明があります。

<!-- 'usemap' points to the 'id' attribute of a <map> element,
     which must be in the same document; support for external
     document maps was not widely supported in HTML and is
     eliminated in XHTML.
     It is considered an error for the element pointed to by
     a usemap IDREF to occur in anything but a <map> element.
-->

実装されていないからといって、構文を変えてしまったら、 実装が零になってしまうわけですが・・・。 (名無しさん)

[27] >>25 Re: [XHTMLMod] usemap="" attribute should be URI, not IDREF (PR#9641) from Anne van Kesteren on 2006-10-17 (www-html-editor@w3.org from October to December 2006) http://lists.w3.org/Archives/Public/www-html-editor/2006OctDec/0005 (名無しさん 2006-10-17 23:26:11 +00:00)

[31] Hixie's Natural Log: Fixing the "usemap" attribute (2007-03-06 22:48:06 +09:00 版) http://ln.hixie.ch/?start=1172653243&count=1

W3C HTML WG は2000年 (勧告前) の時点で既に問題を承知していながら大した問題ではないと無視したり、 問題を指摘されて修正すると回答しながら放置したりを繰り返している。 (名無しさん)

[32] >>31 www-html-editor はずっと無視されてたのかと思ったら、個人宛 & w3c-html-wg に返信していたのか・・・。 (名無しさん)

[39] これは HTML 4The value of usemap must match the value of the name attribute of the associated MAP element. という説明から usemapIDREF にできると XHTML m12n の中の人が誤解してしまったのでしょうかね? (その真上に uri と書いてあるのに。) あるいは、 HTML 4 のこの部分の中の人も XHTML m12n の中の人も同じように勘違いしていたのでしょうかね?

[41] XHTML2 Working Group Teleconference -- 24 Oct 2008 ( 版) http://www.w3.org/2008/10/24-xhtml-minutes.html#item08

SP: long ago, we said to anne van kestren that we would change IDREF on imagemaps when re-issued 1.1 ... should make sure we should do that

SM: where 1.2 or 2?

RM: 1.2

SM: override def of module for m12n - not update m12n because then break all other languages

[46] >>41 この Anne との話ってのは >>27 ですよね、2006年の。。。 なんていうか・・・ WHATWG があってよかった。。。

[47] XHTML™ 1.2 ( 版) http://www.w3.org/MarkUp/2008/ED-xhtml12-20081223/

UA による利用

object の場合

[17] usemap 属性が object 要素に指定されている場合は、その object は画像とみなされます。

UA は、その object との利用者対話 (interaction) を単なるクライアント側画像写像だけで実装して構いません。 音声ブラウザやロボットは object を処理せずに対話できます。 UA は物体を取出したり (処理したり) さえしなくても構いません。 著者はすべての UA が物体を取出したり処理したりすることを期待するべきではありません。 HTML 4

[18] ということは、 object 自体もその内容もレンダリングせずに、 代わりに結び付けられた画像写像の map だけをレンダリングしておいてもよいということでしょうか。

歴史

大域属性としての使用

[49] XHTML2 では src大域属性化に伴い usemap 属性大域属性となりました。

input 要素での使用

[42] HTML 4 では usemap 属性input 要素でも定義されていました。

ちなみに ismap 属性も定義されていました。

[21] この属性は input 要素でも使えます。 説明がまったく無いのでなんともいえないのですが、おそらくは typeimage の時だけ使えるものだと思われます。

しかし、 image は提出ボタンであり、 それそのものが鯖側画像写像として機能します。 usemap 属性が指定されていると何が起こるのか規定がないのは困ったことです。

[43] HTML 4 仕様書の規定部分にはこの属性の存在以外に何ら説明がないのですが、 実は将来の予定 (参考) にこんな記述がありました。

Another possible extension would be to add the usemap attribute to INPUT for use as client-side image map when "type=image". The AREA element corresponding to the location clicked would contribute the value to be passed to the server. To avoid the need to modify server scripts, it may be appropriate to extend AREA to provide x and y values for use with the INPUT element. HTML4 B.6.2

[44] 既に属性が存在している本文の規定とは矛盾するのですが、将来的に input 要素でもクライアント側画像写像を使えるように拡張する案があったようです。 (だとしても ismap 属性があるのは謎ですがね。)

[40] HTML 5 でも当初画像写像に関する定義の一部として input 要素usemap 属性に言及がありましたが (r985 で追加)、すぐに r997 で削除されました。

[33] HTML5 IRC logs: freenode / #whatwg / 20070808 (2007-08-08 20:51:29 +09:00 版) http://krijnhoetmer.nl/irc-logs/whatwg/20070808#l-108

[07:19] <Hixie> in other news, <input type=image usemap="#..."> only seems to work in opera and firefox, not in safari and IE

[07:25] <Hixie> according to some old data I have, 17% of usemap="" attributes on <img> elements have the value "#Map"

[07:27] <Hixie> roughly 0.008% of <input type=image> elements have usemap="" attributes

[07:28] <Hixie> (it's less common than <input price="">, <input heigth="">, <input typ="">, <input enable="">, <input 1px="">, etc)

[35] HTML5 IRC logs: freenode / #whatwg / 20070809 (2007-08-10 09:50:30 +09:00 版) http://krijnhoetmer.nl/irc-logs/whatwg/20070809#l-120

[36] <input usemap> - Anne’s Weblog (2007-08-10 18:30:58 +09:00 版) http://annevankesteren.nl/2007/08/input-usemap

[37] Re: <input usemap> (was: Re: [html5] HTMLMapElement.images) (Ian Hickson <ian@...> 著, 2007-08-10 03:00:40 +09:00 版) http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/11648

[45] 削除されたのは実際 FirefoxOpera にしか実装されておらず (実装されていただけでも驚きですが)、 利用例を見ても不必要なものや間違っていて却って有害なものばかりなため、 仕様に含める (利用者エージェントが対応する) 意義がないと判断されたためです。 削除された際には一部反対する意見もありましたが、説得力のある主張はありませんでした。

実装

[14] usemap 属性と異なる文書にある map 要素を使うのに対応している WWWブラウザは多くありません。 IDREF による指定にも対応しているブラウザも少数あります。 (>>5 をみてください。)

[8] 素片識別子に # をつけない間違いはクライアント側画像マップができたころからあったみたいです。 てことは当時の実装はそういうエラー処理をしていたんですか。 一方で当時の実装はちゃんと URI として外部参照にも対応していたものがあったという話もあります。

[28] Bug 109445 &#8211; Referencing a client-side image map declared with id attribute doesn't work (2007-02-10 14:21:53 +09:00 版) https://bugzilla.mozilla.org/show_bug.cgi?id=109445 (名無しさん)

[29] WinIE 6 も Firefox 1.5 も、 百分率符号化は理解しません。 %% という文字として解釈します。 (as specced in Web Applications 1.0.)

(名無しさん)

[30] Firefox 1.5 は、 id との一致には大文字小文字を区別しますが、 name との一致には区別しません

WinIE 6 はどちらの属性とも区別しません。 (名無しさん)

他との関係

[13] 画像写像は map 要素で定義します。

[19] 簡単な画像写像の例 HTML 4、改

<P><IMG src="navbar1.png" usemap="#MAP1" alt="navigation bar">

[34] Mares Avanti Quattro Fins - Mares Adjustable Scuba Fins (2007-08-09 08:11:10 +09:00 版) http://shop.divebooty.com/78.html

<Input type="image" Src="https://shop.divebooty.com/images/search.gif" UseMap="#searchmap" border="0" valign="bottom">

(名無しさん)

メモ

[23] HTML 4 DTD の注釈 (参考) には USEMAP points to a MAP element which may be in this document or an external document, although the latter is not widely supported (usemap はこの文書または外部文書の map 要素を指します。ただし後者はあまり広く実装されていません。) と書かれています。

[38] クライアントサイド イメージマップ - Weblog (2007-08-14 21:00:00 +09:00 版) http://ryus.s21.xrea.com/w/item/942

メモ

[50] XHTML Modularization 1.1 Second Edition Disposition of Comments ( 版) http://www.w3.org/MarkUp/2009/xhtml-modularization-2e-doc-20090930.html#ssec4

[3] Make image maps work in shadow trees · whatwg/html@4cf3a82 ( 版) https://github.com/whatwg/html/commit/4cf3a825211a69791a2cdbd472ce13e7addb98fe

[20] Remove "compatibility caseless" matching (domenic著, ) https://github.com/whatwg/html/commit/6acdb2122298d2bb7bb839c0a61b4e1f9b0f9bc9

[51] Fix parsing hash-name reference to return null if it finds nothing (zcorpan著, ) https://github.com/whatwg/html/commit/e5fa765023f2b60520dd0435981a7a4bebd4d3ed

[52] API Deprecations and Removals in Chrome 57  |  Web  |  Google Developers () https://developers.google.com/web/updates/2017/02/chrome-57-deprecations?utm_source=feed&utm_medium=

[53] Deprecations and Removals in Chrome 58  |  Web  |  Google Developers ( ()) https://developers.google.com/web/updates/2017/03/chrome-58-deprecations

[54] XHTML1.1のusemap属性の仕様変更 () http://deztec.jp/x/10/faireal/d20219.xml