q

q 要素 (HTML)

[11] HTMLq 要素型は、短い、 段落区切りが要らないくらいの引用を表します。ここで 短いとは長い引用である blockquote 要素型との対比であり、 行内要素内容であることを意味します。

[4] 著者引用符を直接記述しなくても利用者エージェントが文脈に合わせて自動的に挿入するというものですが、 歴史的に実装状況が悪く、ほとんどメリットもないため、あまり普及しませんでした。 広く実装されるようになった現在でも、 q 要素を使う意味はほとんどありません。

代替

[8] 引用符 (など) を直接書いて何の問題もありません。

[9] 引用部に付けしたいなどの理由でマーク付けしたい時は、 span 要素を使うことができます。

[7] 仕様書:

[12]

開始タグ
必須
終了タグ
必須
内容模型
(%inline;)*
属性
citeURI参照(なし)出典[HTML4]
class[HTML4] %coreattr
dir書字方向[HTML4] %i18n
id一意識別子[HTML4] %coreattr
lang自然言語[HTML4] %i18n
xml:lang自然言語[XHTML1]
onclick[HTML4] %events
ondblclick[HTML4] %events
onkeydown[HTML4] %events
onkeypress[HTML4] %events
onkeyup[HTML4] %events
onmousedown[HTML4] %events
onmouseout[HTML4] %events
onmouseover[HTML4] %events
onmouseup[HTML4] %events
styleスタイル情報[HTML4] %coreattr
title注釈的題[HTML4] %coreattr

[24] HTML 4 DTD の注釈 (参考) には Inline Quotes, short inline quotation と説明されています。 (名無しさん [sage])

応用

レンダリング

[14] <IW:HTML4:"struct/text.html#idx-quoted_text-1"> によると:

  • 視覚UA は区切りの引用符で内容を囲んでレンダリングしなければなりません (must)。
  • 著者は、 q 要素の最初と最後に引用符を挿入するべきではありません (should not)。
  • UA は、言語依存の方法で引用符をレンダリングするべき (should)。
  • UA は、多くの言語で採用されている、入れ子度によった適切な引用符を使うべき (should)。

実装について

[5] WebExplorer では q 要素型は blockquote 要素型の別名で、既定スタイルdisplay: block です。

Mozilla (Gecko) で

[3] Mozilla 1.3b の既定スタイルは q 要素の両側が常に " になって寂しいので、文脈によって適切な引用符を使うようにしようと思ってみました。

重要なポイントは、引用符は一般に、引用の周り (地の文) の言語及びスクリプト (用字系) で決定されるということです。 例えばラテン語の英語で仮名漢字混じりの日本語文を引用するときは、

 For example, “こんな風になります.”

逆の場合は、

 例えば「like this example,」となります。
 (“comma style quotation mark”を使うこともありますが、
  話がややこしくなるので黙ってましょう。)

しかし、同じ英語と日本語の組み合わせでも、

 ふぉあ えくざんぷる、「こんな風になります」。
 Tatoe ba “like this example,” to narimasu.

のようになります。 ところが、 CSS2 では言語の選択子はありますが、用字系で処理を振り分ける手段がありません。

しかも、 Mozilla は現時点では :lang 擬似級にすら対応していません。 その上、 quotes 属性には1組しか値を指定できないようです。 (それ以上指定しても無視される。)

そういう現状を踏まえて、とりあえずのスタイル指定:

 @namespace xml 'http://www.w3.org/XML/1998/namespace';
 q, q q q,
 [lang=en] q, [lang=en] q q q {
   quotes: "“" "”" "‘" "’";
 }
 q q, q q q q,
 [lang=en] q q, [lang=en] q q q q {
   quotes: "‘" "’";
 }
 [xml|lang=ja] q, [xml|lang=ja] q q q, [lang=ja] q, [lang=ja] q q q {
   quotes: "「" "」" "『" "』";
 }
 [xml|lang=ja] q q, [xml|lang=ja] q q q q, [lang=ja] q q, [lang=ja] q q q q {
   quotes: "『" "』";
 }

テスト用 HTML 片:

 <span lang="en"><q>Quoted<q>Quoted <q>Quoted<q>Quoted text</q> text</q>text</q> text</q></span>
 <span lang="ja"><q>引用文<q>引用<q>引用<q>引用文字列</q>文字列</q>文字列</q>字列</q></span>
 <q>Quoted<q>Quoted <q>Quoted<q lang="ja">引用<q>引用<q>引用<q lang="en">Quoted<q>Quoted text</q> text</q>文字列</q>文字列</q>文字列</q>text</q>text</q> text</q>

問題点:

  • 文書で言語指定が無かった場合は、とりあえず英語と同じにしてあります。
  • 深い入れ子の引用では正しく動作しません。4つ目の引用まで対応しています。 (実際には十分以上でしょう。)
  • 日本語の引用文の中に英語の引用文があって、更に引用部がある場合に、正しく引用符がつきません (3つ目のテスト片)。選択子の詳細度の関係でしょう。うまい選択子を与えれば解決できそうですが、複雑になりそう。
  • 上述の通り、言語情報のみに頼っていて、スクリプトに応じた引用符を選択できません。 (日本語では問題になるのはローマ字書きくらいでしょう。)

歴史

[10] ASCII引用符"' (と `) しかなく、 英語引用符を「綺麗」にレンダリングすることは SGML に限らず高度な文書作成ツールに求められる基本機能でした。

HTML2

[39] q 要素RFC 2070 ではじめて公式に HTML で定義されました。

[15] q 要素引用であることを表すだけでなく、 言語に応じて自動的に適切な引用符を選択するものと規定されていました。 q 要素入れ子にすることで引用引用を表現でき、 引用符入れ子の深さに合わせて適切に選択されることになっていました。

XHTML2

[40] XHTML2 では q 要素の代わりに引用符の自動挿入をしない quote 要素が導入されましたが、後に自動挿入をしないまま q 要素に改名されています。詳しくは quote 要素の項をご覧ください。

HTML5

[41] HTML5 の開発に当たっても q 要素は度々議論のネタになってきました。

[42] 2008年には q 要素の廃止も視野に議論がなされました。 Status も「at risk」になっていました。 一時は XHTML2quote のように自動挿入をしない定義に改める案が採用されたこともありましたが、 結局自動挿入を行う元の定義のまま残されることになりました。

不思議解釈

[30] 引用符の明記

q 要素引用符の働きを意味的に含んでおり、 文字データとして直接引用符を含めてはなりません。 普通、利用者エージェントq 要素のはじめと終わりに引用符を補ってレンダリングすることになっています。

しかし、よく使われている利用者エージェントである WinIE は、引用符を補わないように実装されていました。 そのため、誤って、あるいは故意に、 q タグの前後に引用符を明記する人が出てきました。

[31] 引用符の消去

200x年代の後半になり、 q 要素の前後に引用符を補ってレンダリングする、 WinIE 以外の利用者エージェントがよく使われるようになってくると、 それらの標準に従った利用者エージェントWinIE の両方で著者の望むレンダリングを得るために、 引用符マーク付けと共に明記し、更に CSS により標準に従った利用者エージェント引用符を補わないように指定する人が出てきました。 中には、 q 要素内に引用符を明記する (>>28) のは不適合ながら、 q 要素の外側に引用符を明記 (>>29) しても問題ないなどと主張する人も登場しました (2006年)。

[13] HTML 4

John said, <Q lang="en-us">I saw Lucy at lunch, she told me
<Q lang="en-us">Mary wants you
to get some ice cream on your way home.</Q> I think I will get
some at Ben and Jerry's, on Gloucester Road.</Q>

レンダリング例:

  John said, "I saw Lucy at lunch, she told me 'Mary wants you
  to get some ice cream on your way home.' I think I will get some
  at Ben and Jerry's, on Gloucester Road."

HTML 4 は、どちらの引用も米語だから、と言っていますが、 実際には引用言語だけではなく、引用のまわりの言語もはっきりしないと (むしろそっちがないと) 引用符は決定できないはずです。

[22]

<p>In Australia, <q>personal information</q> is information about an individual <q>who can be identified, or whose identity could be reasonably ascertained.</q> In Canada <q>personal information</q> means information about an <q>identifiable</q> individual. In the United States, different sectors have different standards for identifiability of data. Similarly, in many other policy documents, terms such as <q>personally identifiable information (PII)</q> are often not defined or the cause for heated debate.</p>

出典: The Platform for Privacy Preferences 1.1 (P3P1.1) Specification <http://www.w3.org/TR/2005/WD-P3P11-20050104/#def_identity>

[23]

<div class="qa"> <div class="q"> <h2 id='uri'>Why is it <q>URI</q> and not <q>URL</q>?</h2> </div>

<div class='a'> <p>URI stands for <q>Uniform Resource Identifiers</q>, URLs are a subset of URIs, please see <a href='http://www.w3.org/Addressing/'>Naming and Addressing: URIs, URLs, ...</a> and <a href='http://www.w3.org/TR/uri-clarification/'>URIs, URLs, and URNs: Clarifications and Recommendations 1.0</a> for details.</p> </div> </div>

出典: W3C CSS Validator FAQ <http://www.websitedev.de/css/validator-faq#uri> (2003年11月付け)

[25] 文学作品における会話文の例

(マーク付け)

<p><q>恋は罪悪ですか</q>と私がその時突然聞いた。</p>
<p><q>罪悪です。たしかに</q>と答えた時の先生の語気は前と同じように強かった。</p>
<p><q>なぜですか</q></p>
<p><q>なぜだか今に解ります。今にじゃない、もう解っているはずです。
あなたの心はとっくの昔からすでに恋で動いているじゃありませんか</q></p>
<p>私は一応自分の胸の中を調べて見た。けれどもそこは案外に空虚であった。
思いあたるようなものは何にもなかった。</p>

(スタイル指定)

p 要素:
  [display: block,
   text-indent: 1em,
   margin-top: 0,
   margin-bottom: 0].
q 要素:
  [display: inline,
   open-quote: "「",
   close-quote: "」"].
p 要素のうち、第1子節点が q 要素のもの:
  [text-indent: 0].

文章の出典: 夏目漱石 こころ <http://www.aozora.gr.jp/cards/000148/files/773_14560.html>

原文では文の一部になっている会話部分は前後に改行なし、 前後の文と独立している会話部分は前後に改行があります。 また、改行がある部分の新しい行のはじめには1文字分の空白がありますが、 新しい行の最初が会話で鉤括弧になっている時は半角のアキと半角の鉤括弧になっています。

このマーク付け例では、改行は改段落であると考えて p の区切れ目としています。 鉤括弧は q 要素のタグに置き換えています。

会話だけで構成される段落p 要素の内容が q 要素だけになって不自然な感じがします。 blockquote 要素の中に p 要素というマークの付け方も可能ですが、やはり不自然です。 この不自然さは HTMLブロック水準要素行内要素の区別の仕方と元の文章があまり相性が良くないことを意味しています。

元の見栄えを実現するスタイル・シートの例も示しました。 q 要素だけが子供として存在する p 要素、というような選択子CSS 2.1 にも CSS 3 にも残念ながら存在しませんので、ここでは架空のスタイル言語でそれらしく記述しました。 実用上はマーク付けの方を多少修正して、 q 要素だけが含まれる p 要素に only-q など適当な class を与えることになるでしょう。

[28] 誤って引用符を含めた例

小泉自民党総裁 (当時) は、<q>「自民党をぶっ壊す」</q>と述べた。

q 要素引用符を含めてはなりません。 q 要素そのものが、 引用符の意味を含んでいます。

[29] 誤って引用符を含めた例

小泉自民党総裁 (当時) は、「<q>自民党をぶっ壊す</q>」と述べた。

q 要素引用符を含めてはなりません。 だからといって、 q 要素の外にあればよいということもありません。 q 要素引用符の意味を含んでいることには変わりないので、 引用符で二重に括ったのと同じことになってしまいます。

参考文献

  • [6] Q要素:インライン引用文のマークアップについて <http://natto.2ch.net/hp/kako/1002/10027/1002750163.html>: 2001年のスレで、現在の事情からするとちょっと時代遅れの感がありますが。 (但し引用符補完 WinIE がまだ release されていないのは変わっていませんね。)

[21] Correct usage of the q element from Nicolas Roeser on 2004-02-07 (www-html@w3.org from February 2004) <http://lists.w3.org/Archives/Public/www-html/2004Feb/0033.html>

qblockquotequote についてのあらゆる話題が芋蔓式に詰まった www-html のスレ。 (名無しさん)

[26] So, You Want Text Commands, Huh? (Joe Burns 著、2005年7月現在、内容から1990年代後半に書かれたと推測) <http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479581#q>

It will be a replacement for the blockquote command. Plus it will have the same properties available as the new Span command.

なんで違うものが代わりになるのでしょうね? そして span と同じ特性って一体何? span の説明になぜか title 属性が紹介されているけど、それのこと?

(名無しさん [sage])

メモ

[17] (この文のように)「いわゆる」を表すときに括弧を使うことがありますが、いわゆる (or so‐called) と言うくらいですから、誰かが言ったとみなして q を使うのはありでしょうかねぇ。拡大解釈だとか批判されてしまいそうですが。 (名無しさん 2004-03-16 03:15:26 +00:00)

[18] とりあえず日本語に限定して考えますと、 括弧 (一重または二重) を使うのは、主として

  • (狭義の)引用
  • 挿入
  • 「いわゆる」
  • 強調
  • 書名
  • 片仮名の固有名詞 (戦前の片仮名書き文での用法)

です。後の三つは明らかに引用とは距離があります。

引用と挿入は構造的には区別できないかもしれません。「いわゆる」は大抵一、二語程度なのが特徴といえましょうか。

で、どこまでを広義の「引用」としてみとめるか、すなわち q 要素の守備範囲と考えるかという話になるわけですが・・・。(そもそもこの文の「『引用』」というのは「『いわゆる』」に分類されるのか、それとも別のものなのか。別のものだとして、マークし分ける必要があるものなのか。) しかし、こういう議論は色々なところで既に何ループもしているわけでして、結論なんて出ないのかもしれません。 (名無しさん)

[19] ところでレンダリングの観点からすると、それがどんな性質のものであれ、どれか一種類括弧をマークに置き換えるなら、その周辺は全部マークにするべきです。 どういうことかというと、「Name_Not_Found さんは『たとえば「『いわゆる「いわゆる」と「so‐called」について』 (名無しさん著) への疑問」という論文があるとします。』と言っていますが、その論文はどこで入手できますか。」というのをマークするときに、たとえば「引用は q でマークするけど、『いわゆる』はマークしないで地の文に括弧を含める」という規準を設けたとすると、特定のスタイルに依存した地の文にするか、括弧の入れ子の深さと括弧の種類が一致しないことになってしまいます。

レンダリングするときに地の文の括弧も適当に置き換えればいいという考えもあるかもしれませんが、そんな面倒なことは誰がするのでしょう。 SGML なら「それはタグではないがマークだ。」というのもありですが、 XML ではそういうのは無しでしょう。 (名無しさん)

[20] 「『ファイル』→『名前をつけて保存』」の括弧は挿入なのだかなんなのだか。 (名無しさん)

[27] A List Apart: Articles: Long Live the Q Tag <http://alistapart.com/articles/qtag> (名無しさん 2006-09-30 23:40:38 +00:00)

[33] IRC logs: w3c / #html-wg / 20070403 (2007-04-04 20:29:48 +09:00 版) <http://krijnhoetmer.nl/irc-logs/html-wg/20070403#l-15>

qdfn, ins, del, var, kbd, VML よりもよく使われています。 ruby の10倍よく使われています。 (名無しさん)

[34] Re: ensuring the existence & enhancing the power of Q (Ian Hickson 著, 2007-04-03 06:52:48 +09:00 版) <http://lists.w3.org/Archives/Public/public-html/2007Apr/0108.html> (名無しさん 2007-04-14 05:32:52 +00:00)

[35] Re: Why the quote element doesn't add quotes by default (Bjoern Hoehrmann 著, 2004-08-04 04:26:29 +09:00 版) <http://lists.w3.org/Archives/Public/www-html/2004Aug/0011> (名無しさん)

[36] Re: several messages about quotations (Ian Hickson <ian@...> 著, 2008-04-12 00:57:41 +09:00 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13685> (名無しさん)

[37] Output of <q lang=??>aaa<q>bbb<q>ccc</q></q></q> from IE8b2 on an en-GB system (2008-10-31 21:47:26 +09:00 版) <http://philip.html5.org/data/ie8-quotes.txt> (名無しさん)

[38] Re: Final thoughts on <q> (Philip Taylor 著, 版) <http://lists.w3.org/Archives/Public/public-html/2008Oct/0255.html>

[43] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=2485&to=2486>

[44] Charinfo — "q" ( ( 版)) <http://chars.suikawiki.org/?s=q>

[45] Session Initiation Protocol (SIP) Parameters ( ( 版)) <http://www.iana.org/assignments/sip-parameters/sip-parameters.xhtml#sip-parameters-12>

[1] Mojolicious::Types - MIME types ( 版) <http://mojolicio.us/perldoc/Mojolicious/Types>

my $exts = $types->detect('application/json;q=9');

my $exts = $types->detect('text/html, application/json;q=9', 1);

Detect file extensions from Accept header value, prioritization of unspecific values that contain more than one MIME type is disabled by default.

[2] 13398 – i18n-ISSUE-80: Default rules for the quotes property ( 版) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=13398#c29>

[16] Default styling for multilingual quotes & quotation marks in HTML () <https://w3c.github.io/i18n-discuss/default-quote-styling>

[32] Minutes [was: Agenda for 971023 HTML WG meeting] (Dan Connolly著, ) <https://lists.w3.org/Archives/Public/w3c-wai-hc/1997OctDec/0160.html>

currently the spec suggests that a UA might the display

of the " characters in:

<span lang="fr">abc "def" ghi</span>

as french quotes.

RESOLVED: the spec should not suggest this possibility

RESOLVED: Q element behaves as per 2070, i.e. a UA should

display language-sensitive quote characters where

<q> and </q> appear. e.g.

<span lang="en-us">He said, <q>I'll be Back.</q></span>

should appear as

He said, "I'll be Back."

[46] qu以外の綴りでqを含む英単語の一覧 - Wikipedia () <https://ja.wikipedia.org/wiki/Qu%E4%BB%A5%E5%A4%96%E3%81%AE%E7%B6%B4%E3%82%8A%E3%81%A7q%E3%82%92%E5%90%AB%E3%82%80%E8%8B%B1%E5%8D%98%E8%AA%9E%E3%81%AE%E4%B8%80%E8%A6%A7>