[1] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素・[CODE(HTMLe)[[[link]]]] 要素・
[CODE(HTMLe)[[[script]]]] 要素の
[DFN[[CODE(HTMLa)[charset]] 属性]]は、
リンクで指定された[[資源]]の[[文字符号化]]の''ヒント''を指定します。
[13] [CODE(XML)@en[[[xml-stylesheet]]]] [[処理指令]]の [DFN[[CODE(XMLa)@en[charset]] [[擬似属性]]]]は、
参照されている[[スタイル・シート]]の[[文字符号化]]の''[RUBYB[[[ヒント]]]@en[advisory]]''を指定します
[SRC[>>14]]。
[12] この属性は追加された当時は有用であろうと考えられていましたが、
結局有意義に使われたことはほとんど無く、しかも Web
の技術的体系においては実際上''不要''な存在です。
* 仕様書
[8]
- [[HTML 4]]
-- [CODE(HTMLe)[a]] 要素 [CODE(HTMLa)[charset]] 属性
-- [CITE[12.1.5 Internationalization and links]]
-- [CITE[18.2.1 The [CODE(HTMLe)[SCRIPT]] element]]
- [14] [CITE@en[Associating Style Sheets with XML documents 1.0 (Second Edition)]] ([TIME[2010-10-28 23:13:17 +09:00]] 版)
* 属性値
** データ型
[4] この属性は [CODE(SGML)[%[[Charset]]]]
です。つまり、 [[IETF]] [[charset]] を指定します。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
[15] [CODE(XML)@en[[[xml-stylesheet]]]] [[処理指令]]では、[[属性値]]は[[妥当な文字符号化名]]でなければ[['''なりません''']]
[SRC[>>14]]。
** 既定値
[5] この属性は省略可能です。
[16] [CODE(XML)@en[[[xml-stylesheet]]]] [[処理指令]]の仕様では[[既定値]]は明示されていません。
* 歴史
** HTML5
[11] 一時期 [[HTML5]] の仕様書には[[コメント化]]された形で [CODE(HTMLe)@en[[[link]]]]
[[要素]]の [CODE(HTMLa)@en[[[charset]]]] [[属性]]の規定が含まれていましたが、
後に削除されています。
** [CODE(XML)@en[xml-stylesheet]] 処理指令
[17] 第1版では [[HTML4]] を参照する形で定義されていましたが、第2版では独自に定義しています
[SRC[>>14]]。
* 関連
[2] この属性は [CODE(HTMLa)[[[href]]]] 属性
([CODE(HTMLe)[script]] 要素では [CODE(HTMLa)[[[src]]]] 属性)
が指定されているときのみ使って構わないはずですが、
HTML 4 仕様書にはそう明記されていません。
[7] [CODE(HTMLe)[script]] 要素では、要素の[[内容]]には関係しません
[SRC[HTML 4 18.2.1]]。逆に言えば指定してもいいけど無視されるということでしょうか。
[3] ウェブでは、リンク先資源自体が charset 情報を持っているのが普通です。
UA は [CODE(HTMLa)[charset]]
属性の情報を使って[Q[ごみ]]を表示してしまわないように注意するべき、
最低警告するべきだと HTML 4 仕様書は言ってはいますが、
あくまでも [CODE(HTMLa)[charset]] 属性はリンク先に飛ぶ前に利用者や UA
が判断するための材料として用意されているようで、
リンク先資源の charset 情報を上書きできるようなものではありません。
とはいうものの、 [CODE(HTMLa)[charset]] の値から [[HTTP]]
の [CODE(HTTP)[[[Accept-Charset]]]]
を生成するような使い方をしても面白いかもしれません。
[[#comment]]
** 例
[6] [CODE(HTMLe)[a]] によるリンクの例 [SRC[HTML 4 12.2]]
[PRE(HTML)[
For more information about W3C, please consult the
W3C Web site
]PRE]
皮肉なことに [[W3C]] のウェブ頁はその後 [CODE(charset)[[[ISO-8859-1]]]]
ではなくなっています。
[[#comment]]
** メモ
[9]
[CITE[Bug 4864 - ステータスバーにURLを表示する仕様の改善]]
[[状態棒]]に[[URI]]を表示するときに[[百分率符号化]]を[[復号]]するにあたり、[CODE(HTMLa)@en[[[charset]]]][[属性]]があれば、その[[文字コード]]と考えて[[復号]]したらよいのではという話。
([[名無しさん]] [sage] [WEAK[2005-12-25 13:05:37 +00:00]])
[10]
あるいは、[CODE(HTMLa)@en[[[href]]]]に[[非URI文字]]が含まれているときに[CODE(HTMLa)@en[[[charset]]]][[属性]]の[[文字コード]]で[[百分率符号化]]して[[URI]]を作るのがよいとか。
([[名無しさん]] [sage])
[[#comment]]
* メモ