The <q> element in HTML is an inline element used for indicating short quotations within text, and most browsers automatically add quotation marks when displaying it.
<q>
要素は、**短い引用(インライン引用)**を示すためのHTML要素です。文中で会話文や短めの引用を示したいときに使用します。例えば、本や記事から特定のフレーズのみを抜粋したり、会話のセリフを引用したりするようなケースです。
HTML
<p>彼はこう言いました: <q>明日は必ず成功させてみせるよ</q>。</p>
上記の例では、「明日は必ず成功させてみせるよ」という部分を <q>
要素で囲むことにより、短い引用であることを明示的に表現できます。ブラウザは通常、<q>
要素で囲まれたテキストを自動的にダブルクォーテーションなどで表示する実装になっています(ブラウザや言語設定により異なる)。
HTMLには<blockquote>
要素も存在し、こちらは**長めの引用(ブロックレベル引用)**を示す場合に使われます。<blockquote>
は段落(ブロック)として引用文を示すのが目的で、<q>
はインライン要素として文章の一部を引用するのが目的です。
HTML
<!-- blockquoteの例 -->
<blockquote>
<p>夢を叶える秘訣は、まず自分を信じること。</p>
</blockquote>
<!-- qの例 -->
<p>
彼女はこう述べました。<q>自分を信じられない人に成功は訪れない</q>と。
</p>
<q>要素はあくまで「短い引用」を表現するものです。文章の途中で引用箇所が発生する場合に利用します。
シンプルな例
HTML
<p>スティーブ・ジョブズは、<q>ハングリーであれ。愚かであれ</q>という言葉を残しました。</p>
このように、言葉の引用を短く示す際に利用します。
<q>
要素には、オプションで**cite
属性**を指定することができます。これにより、その引用の「出典(URLなど)」を示すことができます。例えば、引用元のWebページや記事へのリンクを付けておくことで、読者や検索エンジンにも情報の正確性を示すことができます。
HTML
<p>
スティーブ・ジョブズは、<q cite="https://example.com/speech">
ハングリーであれ。愚かであれ
</q> と言いました。
</p>
<q>
はインライン要素なので、周囲の文章と同じ行内に配置されます。改行して引用箇所を際立たせたい場合や長めの引用をしたい場合は、<blockquote>
の使用を検討してください。
<q>
要素は、ブラウザによっては自動的に引用符(ダブルクォーテーションやフランス語式引用「<< >>」など)が付与される場合があります。これはユーザーのシステムやブラウザの言語設定に依存します。
もしブラウザが自動で付けるクォーテーションを変更したい、または自動クォーテーションを無効にしたい場合は、CSSでコントロールできます。例えば、quotes
プロパティやcontent
プロパティを使用して指定できます。
CSS
q {
quotes: "「" "」" "『" "』";
}
q:before {
content: open-quote; /* 先頭に設定したquotesの「(もしくは『)」が入る */
}
q:after {
content: close-quote; /* 末尾に設定したquotesの」(もしくは』)が入る */
}
quotes
: 引用符の対を順番に指定できる。open-quote
/ close-quote
: quotes
で指定した記号を挿入。<q>
要素がネストされる(入れ子になる)場合は、CSSで追加のペアを定義して順次使われるように調整できます。
「引用のテキストが長い場合でも<q>
を使ってもいいのか?」という疑問が生じるかもしれません。一般的には、2行以上になる、あるいは段落レベルの引用は<blockquote>
を使う方がセマンティクス的にも適切です。あくまで短い引用である場合に<q>
を使用しましょう。
会話のやり取りなどで、引用の中にさらに引用が登場する(入れ子になる)ことがあります。その場合には、ネストして<q>
を使うことも可能です。ただし、ブラウザがデフォルトでネストされた引用に対してどのようにクォーテーションをつけるかは言語設定やCSSによって異なります。必要に応じてCSSでスタイルを調整するとよいでしょう。
HTML
<p>
彼女はこう言いました: <q>昨日彼から「<q>明日は晴れる</q>って言ってたけど本当かしらね?」と聞かれたの</q>。
</p>
音声読み上げソフトなどでは、<q>
要素だからと言って「引用符がある」ことを必ずしも音声で読み上げるわけではありません。支援技術によっては引用であることを伝える可能性もありますが、その動作は一定ではありません。引用であることをより明確に伝えたい場合は、前後の文章表現やaria-label
などを駆使することも検討してください。
アインシュタインは、
想像力は知識よりも重要だ
という言葉を残しています。
HTML
<p>
アインシュタインは、
<q cite="https://example.com/albert-einstein-quotes">
想像力は知識よりも重要だ
</q>
という言葉を残しています。
</p>
彼はこう言いました:
昨日、上司が「
。
このプロジェクトは来月までに完了させよう
」と強く言っていたよ
HTML
<p>
彼はこう言いました:
<q>
昨日、上司が「
<q>このプロジェクトは来月までに完了させよう</q>
」と強く言っていたよ
</q>
。
</p>
CSS
/* ネストされた引用符を日本語に合わせて調整する例 */
q {
quotes: "「" "」" "(" ")";
}
q:before {
content: open-quote;
}
q:after {
content: close-quote;
}
/* 可読性を高めるためにインライン要素に色をつける例 */
q {
color: #007acc;
font-weight: bold;
}
quotes
プロパティを使って日本語の括弧に置き換える例を示しています。外側が「」で、内側が()になる設定です。
先日の記者会見で、著名な研究者が
新しい研究成果は社会に大きな影響を与える可能性がある
と述べています。詳しくは
こちらのインタビュー記事
を参照してください。
HTML
<p>
先日の記者会見で、著名な研究者が
<q cite="https://example.com/research-interview" aria-label="科学分野での発言">
新しい研究成果は社会に大きな影響を与える可能性がある
</q>
と述べています。詳しくは
<a href="https://example.com/research-interview">こちらのインタビュー記事</a>
を参照してください。
</p>
aria-label
を使うことで、スクリーンリーダーなどに対して引用文に説明を付与することができます。cite
属性で出典のURLを明示しつつ、別途リンクも用意するとユーザーがよりアクセスしやすくなります。<q>
を使うことでHTMLのセマンティクスを正しく表現できる<blockquote>
を使うのが一般的cite
属性を使うことで出典を明示できるが、アクセシビリティの観点からはユーザーが必要な情報にアクセスしやすい形でリンクや注釈を入れることが望ましい多言語サイトを運営している場合、ユーザーの言語設定が異なると、自動引用符のスタイルが変化する可能性があります。意図しない引用符が表示されることを避けたい場合は、早い段階でCSSを使って明示的に指定しておくことが重要です。
<q>
はインライン要素なので、レスポンシブデザインにおいてレイアウトが崩れるようなことはあまりありません。ただし、文字サイズの拡大縮小やスタイリングでの変更に応じて引用符も適切に表示されるよう、em
やrem
など相対的な単位で設定するとより柔軟です。
引用タグ(<q>
や<blockquote>
)を正しく使うことで、コンテンツの構造をきちんと示せます。検索エンジンによっては引用文が正しくマークアップされていることを評価する場合もあります。過度なSEO効果は期待できないかもしれませんが、正しい構造化は可読性とアクセシビリティ向上につながり、結果として評価を高める可能性があります。
HTML5からセマンティクスがより重視されるようになり、<q>
や<blockquote>
のように役割が明確化された要素を正しく使うことは、Webページ全体の品質向上にもつながります。初心者の方はまず「短い引用は<q>
、長い引用は<blockquote>
」という基本ルールをおさえ、中級者以上の方はCSSでの引用符スタイリングやアクセシビリティ対応、出典を明示するcite
属性の活用なども検討するとよいでしょう。
<q>
要素は小さく地味な存在にも思えますが、「どこからどこまでが引用なのか」「その引用をどこから引用したか」という文書構造を明確に示す上では重要な役割を果たします。うまく活用して、セマンティクスに優れたWebページを作りましょう。