始点アンカに UA が link をどう処理するかまで記述してしまっているのは好ましくない。 仮に (~を) 表示、~へ移動、~へ戻る、(~を) download と言うように書いても、UA が終点アンカの resource をどう扱うかは解らない。
- リンクするとはリソースとリソースの関係を明示すること
リンク先にジャンプするのはブラウザが行っていることであって、この現象はリンクする行為と直接関係がありません。
この話題、既にそふぃあさんのハイパーリンクをより良い物にに一通りの考察と結論が書かれているのだが、一応 HTML 4.01 の仕様も確認してみる。
A link is a connection from one Web resource to another.
The default behavior associated with a link is the retrieval of another Web resource.
仕様でも link とは、Web resources を関連づける事であり、the retrieval of another Web resource
とは書かれているが、具体的に、検索して取得した resource をどの様に処理するかは言及されていない。移動したり、download したりするのは、UA 側の処理次第、interface 次第である。
また、a 要素の表示に関しては以下のように書かれている。
In the example that follows, the A element defines a link. The source anchor is the text "W3C Web site" and the destination anchor is "http://www.w3.org/":
For more information about W3C, please consult the <A href="http://www.w3.org/">W3C Web site</A>.
This link designates the home page of the World Wide Web Consortium. When a user activates this link in a user agent, the user agent will retrieve the resource, in this case, an HTML document.
やはり仕様書には the user agent will retrieve the resource
とあるだけで終点アンカにジャンプするなどの具体的な UA の具体的な挙動は定義されていない。
直感的に納得できない場合には、リンク先の resource が MP3 ファイルだった場合を考えてみて頂きたい。
<A href="http://example.com/kimigayo.mp3">君が代 (MP3 形式)</A>
UA は直接 http://example.com/kimigayo.mp3 を再生するかも知れないし、mp3 に関連付けられた application を起動して http://example.com/kimigayo.mp3 の再生を依頼するかも知れないし、download の為の準備を始めるかも知れない。そのどれもが仕様上は正しく、HTML 記述者にはそのどれになるとも予め限定する事はできない。
拙作 HTML 文書を含め、結構多くの HTML 文書に del 要素の内容は読者に伝わると言う誤認に基づいた markup が有るので、今更解説してみる (本 site の誤りは、2006年02月03日現在修正中)。
INS
andDEL
are used to markup sections of the document that have been inserted or deleted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).
HTML の del 要素の内容は UA に削除済みとして扱われる。削除済みなのだから、読者に伝わらないものとして考えねばならない。
User agents should render inserted and deleted text in ways that make the change obvious. For instance, inserted text may appear in a special font, deleted text may not be shown at all or be shown as struck-through or with special markings, etc.
仕様にも del 要素の内容を読者に伝えないという表示が UA の挙動としてありえる事が明言されている (強調はろばQによる)。
もし、記述者が、内容の一部を del
で markup しながら、その内容を読者に伝わるものとして文章を書いてしまうと、意味が通じなくなってしまう。
具体的には次のような HTML の場合問題が発生する。
私の血液型は<del>A</del><ins>ではなく、B</ins>です。
上記の通りUA は、この HTML の断片を次のように表示するかも知れない。
この様な場合、del
で markup した箇所を実際削除しても意味が通じる文章に書き直すか、あるいは、del
で markup するのを辞めれば読者に正しく記述者の意図が伝わるようになる。
私の血液型は<del>A</del><ins>B</ins>です。
私の血液型はA<ins>ではなく、B</ins>です。
p 要素は DTD に
<!ELEMENT p %Inline;>
と定義されており、ブロックレベル要素を含むことができません。(中略)これを p 要素問題と勝手に名づけました。
結論:p要素問題は言語構造の違いに起因する(本当かな?)
確たる証拠が有るわけではありませんが、HTML 4.01 の p 要素が所謂 block level 要素 (DTD で言う所の %block;
) を子要素として持てないのは、HTML 開発当時の技術的な都合の名残りではないか、とろばQは思っています。
Many text editing systems (Microsoft Word, The NeXT text object, the Mac text object, etc) handle text in a variety of styles but do not have any concept of nestable structure in the SGML sense.
The constraint here is therefore that HTML be able to be mapped into a sequence of paragraphs of styled text, and that if that text is edited that the editor should be able to map the sequence of styles back onto a sequence of elements in a well-defined way. This allows some limited trivial nesting (eg LI within UL) but no general nesting, as a finite and small set of styles is used. In particular, the styles are not parameterized by the nesting level.
勿論、それでも p 要素にリストが入らないと問題が頻発する、と言う事であれば、引用の為の要素が blockquote と q の 2 種類作られたように、リストも inline 用の要素が用意されたでしょうから、p要素問題は言語構造の違いに起因する
と言うのも間違いではないと思います。
削除済みテキストを全く表示しないというのは1つの例で、他にも取り消し線を引いたり特殊なマークを付けて表示する、という例も示されています。要は、削除済みであることを示すには幾つかの方法がある、ということではないかと思います。
なので、削除済みだからといって
読者に伝わらないものとして考えねばならないというのは限定が過ぎるのでは。言えるとすれば読者に伝わらないかもしれないものとして考えねばならないというところまでではないかと思います。
ろばQとしては読者に伝わらないものとして考えた結果でも文章全体の意味が通じる様にせねばならない、と言う意味で読者に伝わらないものとして考えねばならない
と述べているつもりです。
実際、北村さんの言う通り仕様からの引用は表示しないというのが UA の表示の 1 例である、と言うことが十分解る範囲を引用しておりますし、伝えないという表示が UA の挙動としてありえる
、UA は、この HTML の断片を次のように表示するかも知れない
と言うように伝わらないかも知れないが伝わるかも知れないと言うことが十分読み取れる文面になっており、ご指摘の通り部分的に条件を限定した表現になっていますが、全体としては誤読の心配もないので、今回は特に原文を修正しません。
以下、蛇足。
あるテキストが削除済みであることを示す際、そのテキストを全く表示しなかったら、削除されたのか、初めから無かったのかを区別することができません。
なので、そのテキスト内容を提示した上で、それが削除されたものであることを示すのが、より適切なのではないでしょうか。その意味で、IEやFirefox、Opera等の主要ブラウザが、del 要素の内容を取り消し線を引いて表示するのは、妥当であるように思います。
ろばQは、読者が削除されたのか、初めから無かったのか
を意識して文書を読む必要が有ることは希だと思うのですが、用途を限定せず広く使われる UA の場合、(仮に希だとしても) 改訂情報の明示が不要とは言えないので初期状態で削除箇所をそれと解るように表示するのは安全側の判断であり、ろばQも妥当な設定だと思います。
XHTML1.1 ファイルを
との事ですが、もし、XHTML Media Types よって仕様違反と言っているなら、XHTML Media Types は Specification では無く Note なので、XHTML1.1 を text/html
として送るのは仕様違反text/html
で配信することは仕様 (Specification) 違反でない。非推奨とか、application/xhtml+xml
の方が好ましい、程度の表現となるのでは無かろうか。
ちなみに、仕様違反であっても、仕様に沿った正しい UA なら問題も起こさない、と言う場合、ろばQも仕様違反も実害がなければ看過しても構はないのではないか
とは思う。
なお、アマテルさんと同様に、あくまで看過であって、だから構わない、とまでは思わないし、積極的にその様な文書を公開しようとも思わない。少なくともろばQ自身は、例え実害が無くとも可能な限り仕様に反しない方法を選択したい。
文書の仕様に合わせて文章を変更すべきでない場合、文章に合わせて使用する文書の仕様を変更するべきである。そのまま合わない文書の仕様を無理に使うべきではない。
ある文書の仕様で文章を書く場合、その文書の仕様では書けない表現、或いは書くべきではない表現がある。そしてそのような場合、しばしば文章をその文書の仕様で可能な表現 (問題ない表現) に変更すると言う解決策が用いられる。
しかし、この様な文書の仕様に合わせた文章の変更に対してその文書の仕様の為に文章を書いているのではないと主張する人がいるが、……もっともである。特に単に技術的な事情であったり、元は何がしかの理由があったものの既に形骸化していたり、或いは特段の理由も見当たらず単に文書の仕様の仕様に反するから、と言うような場合、それは文書の仕様の問題であって、書く側が内容をあわせる必要はないと反論するのは当たり前である。更に言うと accessibility 上など真っ当な理由がある場合でも、利点と欠点を量りに掛けてどうするかを決めるのかは作者の自由であり、その上でこの表現でなければ駄目だと言うのであればやはり文書の仕様に合わせて表現を変更する必要はないし、ろばQは寧ろすべきではないと思う。
ただ、文書の仕様に合わせて表現を変更しない場合、表現に合った仕様に変更せず、そのまま合わない仕様を使えば、今度は仕様の方が歪む事になる。そして、もし、歪んだ仕様が氾用されれば、本来その仕様に適合していた文書の内容までもが、歪んで用いられる仕様の内容と区別が付かなくなり、結果として、内容が意図したとおりに伝わらなくなってしまう。
バスに乗っていたら、二十歳前後の女性3人が、お互いの化粧品 (ファンデーションだか、リップクリームだか) を評価しあっていて、肌に馴染むとか、馴染まないとか、そんな事を言っていたい。で、その内の一人が あ、これ超自然
と言う様なこと (細部覚えておらず) を口にした。
羊の群れの番をしていたら主の御使いがくれた化粧品とか、宇宙人に攫われた時に体に埋め込まれた化粧品とか、超能力者が精神エネルギィを物質化した化粧品とか、そういうのを一瞬期待してしまったんですが、超自然
の超は very であって super じゃないんだろうなぁ、多分。
とか妄想していたら、こっち見て気持ち悪いおっさんが薄ら笑いをしている、見たいな反応をされました。
そっち見て薄ら笑いをしている気持ち悪いおっさんですが、何か。