2006-08-15 アーカイブ

http://hxxk.jp/2006/08/15/

txqz への先読みと質問

記事データ

投稿者

望月真琴

投稿日時

2006-08-15T22:01+09:00

タグ
概要

::after 擬似要素によって表示された URI がコピーできないというのは Firefox の仕様なのですが、できないならできないで直接コメント欄などで尋ねればいいのになあ、という感想と、仮に直接尋ねたらこういう回答をするだろうなという予想と、ついでに自分の疑問をトラックバックで質問。

リプライ

4 件のリプライがあります。

記事本文

Re: はてなブックマーク - AAぶろぐ_仏苦魔悪 - 最新のものしかブックマークしてはいけないの?

これ...引用元のURIがコピペできないのはどういうわけなのか(そーす開いて探したぞ)あと対象のリンクぐらい入れて欲しい というコメントを見る限り、 Firefox を使っているのでしょうか ? txqzCSS を完全に解析したわけではないので正確ではないかもしれませんが、 :before 擬似要素 / :after 擬似要素の活用例 - blockquote 要素で引用元の明示のような手法で書き出しているのでしょう。 IE 6.0 で最新のものしかブックマークしてはいけないの? を見ると、引用元のタイトルや URI は書き出されませんし。 ( その代わり、引用部分にマウスをホバーさせるとあれこれポップアップによる、引用元のタイトルと引用元へのリンクアンカーがブラウザ上に表示されます。 )

で、 ::before/::after 擬似要素などにおいて content プロパティで内容を追加した場合、 Opera ではその内容をコピーすることが可能です。 これは cite 属性を使う場合ついでに content プロパティ関連の各ブラウザの実装の簡易まとめで触れました。 それと SeaMonkey ( 旧称 : Mozilla Application Suite ) では cite 属性の URI を「引用部分を補助クリック」→「 Properties 」で表示することができます。 また、以前 Safari は attr(X) に未対応 ? と書きましたが、読者の方から最近の Safari の場合は attr(X) の表示に対応していますというメールをスクリーンショット付きでいただきましたので、もしかしたらコピーできるようになっているかもしれません。 ( 表示できることは確認しましたが、コピーできるかどうかまでは確認していません。 )

ということで、 Opera や SeaMonkey では URI をコピーできますし、 IE では ( txqz に限って言えば ) あれこれポップアップでリンクアンカーのクリックができるように配慮されています。 また Firefox でも cite 属性からリンクアンカーを手軽に生成という方法でリンクアンカーを生成することができますので、はてなブックマーク - AAぶろぐ_仏苦魔悪の高橋雅奇さんがどんな環境なのかは分かりませんが、最近のグラフィカルブラウザをお使いなら問題は無いんじゃないかなあと思いました。

ちなみに、 hxxk.jp の場合はあれこれポップアップは導入していませんが、引用を行った場合は「 Re: ほげほげ」といった見出しを付けて引用元へのリンクを行ったり、あるいは本文中に自然な形でリンクアンカーが登場するような文章を書くようにしたりするという自分ルールを設けています。 blockquote 要素や q 要素の外に引用元へのリンクアンカーを配置しても、それは引用部分との明確な結び付きがあるとは限りませんし、かといって blockquote 要素や q 要素の中にリンクアンカーを配置するのは、引用元のテキストに無いものを勝手に引用者が加えることになります。 そこで、私の場合は cite 属性によって引用部分と引用元の明確な結び付きを示しつつ、明確な結び付きは無いかもしれないけれども a 要素によるリンクも置いておきますねということにしています。 あれ、 txqz の話のつもりが何故か hxxk.jp の身の上話に !

これこそコメント欄に書いた方が良いんじゃないかなあと思う

最近ははてなブックマークのコメント欄の使い方について言うことも少なくなりましたが、やはり記事作成者本人に伝えるべきことはその記事のコメント欄などに書いた方が良いと思いました。 はてなブックマーク - AAぶろぐ_仏苦魔悪 - 最新のものしかブックマークしてはいけないの? 対象のリンクぐらい入れて欲しい と言うのなら、最新のものしかブックマークしてはいけないの? のページにはコメント欄があるのだから、はっきりと言えば良いじゃないですか ? という。

ちょうど本日付けで、はてなブックマーク - AAぶろぐ_仏苦魔悪 - Discommunicative - Effective はてなブックマーク:ブクマのコメント欄は相手へコメントするためについているわけではないことを理解しようにて そもそも相手に伝えたいことばかりとは限らない というコメントを残していますが、相手に伝えるべきものまではてなブックマークのコメントに留めているのはどうかなあ、と思いました。

まあ、最新のものしかブックマークしてはいけないの? のコメント欄に「表示されている引用元の URI がコピペできないのですが何故でしょう ? ブラウザは○○を使っています。それとできればリンクアンカーも添えて欲しいです」と書いても、 txqz の陽坂智佐真さん ( またの名を id:denken) はきっと前項の私の解説と同じような回答を出すとは思いますが。

それと、この際だから txqz にも質問

これは今回気付いたのではなくて以前から疑問に思っていたのですが、ちょうど良い機会なので便乗して質問をしてみます。

txqz の記事中の引用部分にマウスをホバーさせると、 "「" attr(title) "」からの引用です。" の部分が、 「」からの引用です と、 attr(title) が無かったことにされてしまっているのですが、何故でしょう ? n101.csssubdefault.cssdefault.css の ::hover 擬似クラスや content プロパティ周りの指定をざっと眺めてみましたが、目立つようなおかしな記述はありませんでした。 (.whisper:after の content プロパティの後に ; が抜けているくらい )

スクリーンショットを置いておきますので、お暇な時に調べていただけると助かります。 ( 陽坂智佐真さんは私よりも早くに CSS を使っていましたし、実は私が知らないだけのバグなどがあるのかもしれません。 )

ちなみに、スクリーンショットは Firefox 1.5.0.6 で取得しましたが、 Opera 9.01 でも SeaMonkey 1.0 でも同様の現象が再現されました。 ( IE 6.0 はそもそも ::before/::after 擬似要素に未対応なので再現しようにもできません。 )

iMa さんのコメントおよびいわゆる「闇黒式引用」あれこれポップアップとCSS生成内容 - 徒書からのトラックバック、あれこれポップアップとprototype.jsを同時に使うには - 徒書というフォローで分かるように、あれこれポップアップが title 属性の値を ap:ec-title 属性の値に移してしまうことが原因だったようです。 また、コメントやトラックバックよりもいち早く、同じような内容をメールでご教示いただきました。 そのメールによると、 Linkage Note! でも併用されているため、同様の現象を確認したともかかれてありました。 ( 例えば、青歯付き京ぽんという記事をご覧ください。 )

トラックバック送信先

最新のものしかブックマークしてはいけないの?

http://b.hatena.ne.jp/TakahashiMasaki/20060814#bookmark-2506445 という質問と要望が来ていますが、たぶんこんな感じの回答をされるんじゃないかなあという先読みと、あと txqz の CSS では、マウスホバーと同時に attr(title) が消し去られてしまうのは何で何で ? という質問。

リプライ

4 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2006-08-16T11:57+09:00 - いわゆる「闇黒式引用」 < txqz

昨日の23時ごろにここまで書き上げて、あといわゆる闇黒式引用について思うところを書こうと思ったけど眠いのでやめた。起きたら真琴さんがかわりに答えてくれてた。

2006-08-16T13:20+09:00 - iMa

>attr(title) が無かったことにされてしまっているのですが、何故でしょう ? JavaScriptオフにしたら表示されるみたいです。てことは。

2006-08-16T14:07+09:00 - あれこれポップアップとCSS生成内容 < 徒書

CSS生成内容による属性値の表示とあれこれポップアップを組み合わせて使っている場合の問題点と、解決方法について述べてみました。

2006-08-18T01:51+09:00 - 真琴

トラックバックやメールでも教えていただきましたが、その読みは当たっているようです。

URI に非 ASCII 文字列を直接記述するのは illegal

記事データ

投稿者

望月真琴

投稿日時

2006-08-15T20:35+09:00

タグ
概要

Firefox とマルチバイト文字列を含む URI で、同じ文字コードのリソース間のリンクであれば一応該当リソースに到達できると書きましたが、エンコードやエスケープを行わずに、 URI に非 ASCII 文字列を直接記述することは不正であると仕様では示されています。

リプライ

リプライはまだありません。

記事本文

大事なことを書き忘れていました

昨日書いた Firefox とマルチバイト文字列を含む URI という記事ですが、肝心なことを書いていないのでした。

例えば hxxk.jp 内のタグ "ビール" が設定された記事のように、 URI にマルチバイト文字列を含むリソースへのリンクを指し示したい場合、 hxxk.jp 内では <a href="http://hxxk.jp/tag/ビール">hoge</a> と記述してもリンク元もリンク先も UTF-8 であるので Firefox では無事に該当リソースに到達できます と書いていますが、そもそもマルチバイト文字列が URI に含まれるような場合、直接記述するのではなく UTF-8 エンコードあるいはエスケープを行う必要があります。

仕様書に明記されています

Basic HTML data types - 6.4 URIsURI についての定義が書かれていますが、 Please consult the appendix for information about non-ASCII characters in URI attribute values. と、非 ASCII 文字列を URI の属性値に含める場合は Non-ASCII characters in URI attribute values を参照するように示されています。

Non-ASCII characters in URI attribute values では、

Although URIs do not contain non-ASCII values (see [URI], section 2.1) authors sometimes specify them in attribute values expecting URIs (i.e., defined with %URI; in the DTD). For instance, the following href value is illegal:

<A href="http://foo.org/Håkon">...</A>

We recommend that user agents adopt the following convention for handling non-ASCII characters in such cases:

  1. Represent each character in UTF-8 (see [RFC2279]) as one or more bytes.
  2. Escape these bytes with the URI escaping mechanism (i.e., by converting each byte to %HH, where HH is the hexadecimal notation of the byte value).

This procedure results in a syntactically legal URI (as defined in [RFC1738], section 2.2 or [RFC2141], section 2) that is independent of the character encoding to which the HTML document carrying the URI may have been transcoded.

と、非 ASCII 文字列をそのまま記述することは不正であると強調して示されています。 ちなみに、 Note. The same conversion based on UTF-8 should be applied to values of the name attribute for the A element. のように、 UTF-8 によるエンコードは a 要素における name 属性も同様であると示されています。

よって、もし Firefox とマルチバイト文字列を含む URI を読んで、「同じ文字コードのリソース間のリンクであれば、 URI に日本語を直接含めてもちゃんとリンクできるんだ」という理解をされた方がもしいらっしゃれば、文字コードが同じであろうがリソースに到達できようが、その URI は不正であるのだということを理解していただきますようお願いします。

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

補足情報

著作、講演、制作実績など