HTMLを書いているときに、シングルクォート(’)をどう使えばいいのか迷ったことってありますよね。
タグの中で使うのか、テキストの中で使うのか、エスケープって何なのか、ちょっとややこしく感じるかもしれません。
この記事では、HTMLでのシングルクォートの正しい使い方や注意点、そしてエスケープ方法についてわかりやすく解説します。
シングルクォートの使い方がしっかり分かれば、エラーを防げたり、安全で読みやすいHTMLが書けるようになったりしますので、ぜひ最後まで参考にしてみてくださいね。
HTMLでシングルクォートを使う場面とその基本

HTML属性値におけるシングルクォートとダブルクォートの違い
HTMLでは、属性値を囲むときに「シングルクォート(’)」と「ダブルクォート(”)」のどちらも使えます。
どちらを使っても基本的には動きますが、状況によっては使い分けが必要です。
例えば、HTMLの中でJavaScriptを使う場合や、文字列の中にクォートが含まれているときなどは注意が必要です。
以下に、使い分けるときのポイントをまとめます。
- 属性値の中にダブルクォートがあるときはシングルクォートを使う
- 属性値の中にシングルクォートがあるときはダブルクォートを使う
- HTMLではどちらを使っても正しく動作する
- 一貫性のため、どちらかに統一するのが望ましい
- W3Cの仕様ではダブルクォートが一般的に使われている
正しく使い分けることで、HTMLの構造が分かりやすくなり、バグも減ります。
タグ内テキストと属性値での使い分け方
HTMLでは、テキストとして表示したい部分と属性値として使う部分があります。
どちらにもシングルクォートは使えますが、使い方は少し違います。
属性値の中に文字を入れるとき、シングルクォートで囲むか、ダブルクォートで囲むかを選びます。
一方、タグ内に表示する文字はそのまま書くことが多いです。
以下に、使い分けの例を紹介します。
- 属性値 →
<input type='text' value='こんにちは'> - タグ内テキスト →
<p>こんにちは</p> - 属性値の中に「’」がある →
<input value="It's OK"> - タグ内に「’」を書くときはそのままでOK
- 属性値に変数を使うときはクォートの重なりに注意
使い方をしっかり分けて覚えておくことで、HTMLがぐっと理解しやすくなります。
JavaScriptとの連携時におけるクォートの注意点
HTMLとJavaScriptを一緒に使うとき、シングルクォートの扱いには注意が必要です。
クォートの入れ子になることがあるからです。
たとえば、HTMLの中にJavaScriptを書くとき、属性値の中にJavaScriptコードを入れることがあります。
そのときにクォートの種類がかぶってしまうと、うまく動きません。
- HTML属性にJavaScriptを書くときはクォートの組み合わせに注意
- JavaScriptの文字列が「’」ならHTML属性は「”」にする
- 逆も可能 → JavaScriptが「”」ならHTML属性は「’」にする
- 文字列の中でクォートを使いたいときはエスケープも必要
- 読みやすさと安全性を考えると、外側をダブルクォートに統一するのが無難
正しくクォートを使えば、JavaScriptとHTMLがうまく連携し、エラーを防げます。
シングルクォートが必要になる特別なケース
普段はダブルクォートで問題なく使えるHTMLですが、どうしてもシングルクォートでなければ困る場面もあります。
その理由をしっかり理解しておきましょう。
まず、HTML属性の中にダブルクォートがすでに使われている場合、外側をシングルクォートで囲むことで構文エラーを防げます。
また、テンプレートエンジンやサーバーサイドのスクリプトとの連携時にも、シングルクォートの使用が求められることがあります。
- HTML属性にダブルクォートが含まれる場合
- テンプレート内でダブルクォートが自動的に挿入される場合
- JavaScriptと連携しやすくするため
- 構文解析エラーを防ぐため
- CMSやライブラリでの動作を安定させるため
このように、場面によってはシングルクォートの使用がとても役立ちます。
HTMLのバージョンによるシングルクォートの扱いの違い
HTMLにはいくつかのバージョンがありますが、それによってシングルクォートの扱いが変わることがあります。
特にHTML4とHTML5では、許容される記述に違いがあります。
HTML4では属性値をクォートで囲むのが必須とされていました。
一方、HTML5では状況によってはクォートを省略することもできます。
ただし、省略できるからといって、必ずしもそうするべきではありません。
- HTML4ではクォートが必須
- HTML5では一部の属性でクォート省略可能
- クォートを省略すると、記述ミスの元になる
- W3Cではクォートの使用を推奨
- HTML5でも習慣的にクォートを使うと安全
どのバージョンを使っていても、シングルクォートやダブルクォートを適切に使うことで、HTMLがより安定して動くようになります。
HTMLでシングルクォートをエスケープする方法

シングルクォートのエスケープが必要な理由
HTMLの中でシングルクォートを使うとき、場合によっては「エスケープ処理」が必要になります。
エスケープとは、特別な意味を持つ記号を、ただの文字として扱うための方法です。
たとえば、HTMLの属性の中にシングルクォートが含まれると、正しく表示されなかったり、HTMLが途中で壊れてしまったりすることがあります。
このようなトラブルを避けるために、シングルクォートを「そのまま文字」として扱う工夫が必要になります。
以下に、エスケープが必要になる主な理由をまとめました。
- HTMLの構文を壊さないようにするため
- JavaScriptとの組み合わせで構文エラーを防ぐため
- セキュリティリスク(XSSなど)を下げるため
- 属性値の中にシングルクォートがある場合に正しく表示させるため
- HTMLバリデーターでエラーを出さないため
エスケープは見た目を整えるだけでなく、安全性を守るためにもとても重要です。
文字実体参照(’)の使い方
HTMLでは、シングルクォートを安全に表示するために「文字実体参照(エンティティ)」という方法を使います。
シングルクォートの場合は、' または ' を使いますが、一番確実なのは ' を使うことです。
以下に、エンティティを使うときの例を紹介します。
- シングルクォートを表示 →
' - 属性値に使う →
<input value='It's OK'> - 表示用の文字列として使う →
<span>It's a pen</span> - JavaScriptコード中に含めるときも安全
- 古いブラウザでも問題なく表示できる
エンティティを使えば、見た目が変わらずに、正しく安全にHTMLを書けるようになります。
JavaScriptと併用する際のエスケープ手法
HTMLの中にJavaScriptコードを書くとき、クォートの使い方にはとても注意が必要です。
特に、シングルクォートを含む文字列を属性値に書くときには、JavaScriptとHTMLの両方で正しくエスケープすることが大切です。
たとえば、HTMLの中に onclick イベントを書いて JavaScript を動かすときは、文字列の中にクォートが混ざるとエラーになります。
以下に、安全に書く方法を紹介します。
- HTML属性をダブルクォートで囲む
- JavaScriptの文字列はシングルクォートにする
- JavaScript内のシングルクォートは
\'でエスケープする - または HTMLエンティティの
'を使う - 文字列を動的に扱う場合はテンプレートリテラル(
`)を検討する
これらの方法を使えば、JavaScriptとの連携もスムーズにでき、エラーも起きにくくなります。
フォーム入力値など動的コンテンツでの注意点
ユーザーがフォームに入力した文字をそのままHTMLに表示する場合、シングルクォートを含む文字がトラブルの元になることがあります。
入力された内容を直接HTMLの属性に入れると、構文が壊れてしまうことがあるからです。
このような場面では、サーバーサイドやJavaScriptでエスケープ処理を行う必要があります。
以下は注意点です。
- 入力内容に「’」が含まれる場合はエスケープ
- HTML属性に使う前にサニタイズ処理を行う
- JavaScriptでHTMLを生成する場合も同様に注意
- 安全性を高めるため、出力前に
'に変換する - ライブラリを使う場合は、出力の仕組みを確認する
動的コンテンツを扱うときは、「表示されればOK」ではなく「安全に表示されるか」を意識することが大切です。
サーバーサイドテンプレートとの連携時の対策
サーバーサイドでHTMLを生成するテンプレートエンジン(たとえばPHPやPython、Rubyなど)を使っているときにも、シングルクォートの扱いには注意が必要です。
出力時に自動でエスケープされない場合があるからです。
テンプレートの中で文字列を出力するときは、常に「HTMLエスケープ」が必要です。
以下のような対策が効果的です。
- テンプレートエンジンのエスケープ機能を使う
- 出力前に
'に変換する - 可能なら、属性値を囲むクォートを統一して使う
- 出力結果をブラウザで確認し、構文エラーがないかチェックする
- 外部ライブラリの出力方法も確認しておく
テンプレートを使うときも、表示と同時にセキュリティを意識して処理することで、安全なHTMLを保てます。
セキュリティ対策としてのエスケープ処理
HTMLでのエスケープは、見た目の整形だけでなくセキュリティ対策としてとても重要です。
とくに、シングルクォートを使うことで発生する「XSS(クロスサイトスクリプティング)」という攻撃を防ぐためには、正しいエスケープ処理が必要です。
XSSは、悪意あるコードがHTMLの中に入り込むことで、サイトが不正に操作される危険な攻撃です。
以下のポイントを守ることで防ぐことができます。
- ユーザー入力はすべてサニタイズ処理を行う
- 属性値に使う文字列は必ずエスケープ
- JavaScriptコードへの出力は特に慎重に行う
- WAFなどセキュリティツールの導入も検討
- 正しいHTMLの構造を保つことで脆弱性を減らせる
セキュリティのためのエスケープは、Webサイト全体の信頼性を高めるためにも欠かせません。
HTMLエスケープとURLエンコードの違い
エスケープという言葉には似たものがいくつかありますが、「HTMLエスケープ」と「URLエンコード」は別のものです。
どちらも特定の文字を安全に扱うための方法ですが、使う場面が違います。
簡単に言うと、HTMLエスケープはHTMLの中で使うための変換、URLエンコードはリンクや通信の中で使うための変換です。
以下に違いをまとめます。
- HTMLエスケープ →
<や'に変換 - URLエンコード →
'を%27に変換 - HTMLではHTMLエスケープを使う
- リンクやAPIなどにはURLエンコードを使う
- 場面に応じて正しく使い分けることが大切
エスケープの意味と役割を正しく理解しておけば、どんな場面でも迷わず使えるようになります。
HTMLでのシングルクォート使用時に起こりやすいトラブル

クォートの閉じ忘れによるレンダリングエラー
HTMLでは、シングルクォートやダブルクォートをきちんと閉じることがとても大切です。
どちらか一方のクォートを忘れてしまうと、ブラウザがそのタグの終わりを正しく判断できず、画面が崩れたり、動作しなくなったりします。
このようなトラブルは、特にHTMLを手書きしているときや、JavaScriptやテンプレートエンジンを使ってHTMLを生成しているときに起こりやすいです。
以下のポイントを意識して確認すると、エラーを減らすことができます。
- シングルクォートで始めたら、必ずシングルクォートで閉じる
- ダブルクォートで始めたら、必ずダブルクォートで閉じる
- 開きクォートと閉じクォートが混ざらないようにする
- クォートの中にクォートを書くときはエスケープを使う
- エディタの構文チェック機能を活用する
正しくクォートを閉じていないと、ほんの小さなミスでも大きなバグにつながりますので注意が必要です。
タグの誤認識による表示崩れ
HTMLタグの中に不適切なシングルクォートがあると、ブラウザがそのタグを正しく読み取れず、デザインが崩れたり、一部の要素が表示されなかったりすることがあります。
とくに、複雑なHTMLやJavaScriptコードの中でシングルクォートを使うときは、クォートの重なりやエスケープ不足に注意が必要です。
以下のようなポイントを見直しておくと、誤認識を防ぎやすくなります。
- クォートで囲まれていない属性値を使わない
- クォートの中にHTMLタグを書かない
- ダブルクォートとシングルクォートを混ぜない
- クォートのエスケープ処理を忘れない
- 表示が崩れたときは、まずクォート周りを確認する
タグの表示ミスは見た目に直結するため、正しい構文の意識がとても大切です。
JavaScript埋め込み時の構文エラー
HTMLの中にJavaScriptを直接書く場合、シングルクォートが原因でエラーが出ることがあります。
これは、JavaScriptの中にも文字列を囲むためのクォートがあり、それとHTMLの属性のクォートが重なってしまうためです。
たとえば、以下のような書き方はエラーになりやすいです。
<button onclick="alert('It’s OK')">Click</button>
このようなケースでは、クォートの種類をきちんと分けるか、エスケープを使う必要があります。
以下に、よくあるエラーとその対策をまとめます。
- HTML属性にダブルクォートを使う場合、JavaScriptの文字列はシングルクォートにする
- 逆に、HTML属性にシングルクォートを使う場合はJavaScriptの文字列にダブルクォートを使う
- JavaScript内のクォートは
\'または'を使ってエスケープ - 複雑なスクリプトは
<script>タグ内に分離して書く - イベントリスナーでJavaScriptを分けると安全性が高い
JavaScriptとHTMLを一緒に書くときは、クォートの重なりに特に注意が必要です。
HTML内でのSQLインジェクションリスク
HTMLだけでSQLインジェクションが発生することは少ないですが、HTMLフォームとサーバー側の処理が連動する場合は注意が必要です。
たとえば、HTMLのフォームから送られたデータを、そのままSQLに入れてしまうと、攻撃の入口になります。
フォームに入力された値の中にシングルクォートが含まれていた場合、それがSQL文の中で特別な意味を持つことがあり、意図しないデータ操作や情報漏洩が起こる危険があります。
以下の対策を行うことで、リスクを減らすことができます。
- サーバー側で入力データを必ずエスケープする
- SQLはプリペアドステートメントで実行する
- フォーム入力値をそのままSQLに渡さない
- 信頼できないデータをHTMLに埋め込まない
- 検証・バリデーションを徹底する
HTMLとサーバーの処理はつながっているため、見えない部分でもしっかり安全対策をしておきましょう。
SEOにおける影響とGoogleの評価
HTMLのクォートの使い方ひとつで、検索エンジンに与える影響が出ることがあります。
たとえば、HTML構文が壊れていると、Googleがページを正しく読み取れず、SEO評価が下がってしまう場合があります。
特に、metaタグやリンクタグ、スクリプトタグなどにクォートのエラーがあると、Googlebotが正しく動作しないことがあります。
以下のような点を意識すると、SEOにも良い影響を与えます。
- HTMLの構文は正確に記述する
- 属性値は常にクォートで囲む
- クォートの中身に不要なコードを入れない
- W3Cバリデーターで構文エラーをチェックする
- ページ表示崩れがあると評価が下がる
HTMLがきれいで正確であればあるほど、Googleからの評価も上がりやすくなります。
WordPressなどCMSでの自動変換の注意点
WordPressなどのCMS(コンテンツ管理システム)では、投稿した内容が自動的にHTMLに変換される仕組みがあります。
そのとき、シングルクォートが自動的に変換されたり、削除されたりすることがあるため注意が必要です。
たとえば、「’」が「’」という別の記号に置き換わってしまい、コードが正しく動かなくなることがあります。
以下はその対策です。
- コードを貼るときは「テキストモード」で投稿する
- 自動整形を無効にするプラグインを使う
- クォートの置換設定を確認する
- 投稿前に表示確認を行う
- JavaScriptやHTMLは別ファイルに分けるのが安全
CMSは便利ですが、自動変換による思わぬトラブルを防ぐために、クォートの扱いには細心の注意が必要です。
ブラウザによる解釈の違いと対策
シングルクォートの扱いは、基本的にはどのブラウザでも同じですが、古いブラウザや一部の特殊な環境では違う動作をすることもあります。
特にJavaScriptや属性値での記述で違いが出やすいです。
たとえば、Internet Explorerなどでは特殊文字の扱い方が違っていたり、HTML5に対応していなかったりするため、表示や動作に差が出ることがあります。
以下に対策をまとめます。
- HTMLとJavaScriptは標準仕様に沿って書く
- 文字実体参照を使うことで互換性を高める
- クォートの使用はできるだけ統一する
- 主要ブラウザでの動作確認を必ず行う
- 必要ならPolyfillやライブラリを使って補う
どんな環境でも正しく動くように、クォートも含めたコードの書き方に気を配ることが大切です。
HTMLのシングルクォートを正しく扱うベストプラクティス

属性値のクォート統一による可読性向上
HTMLを書くとき、シングルクォートとダブルクォートをバラバラに使ってしまうと、あとで見直すときにとても読みづらくなります。
コードを誰が見てもわかりやすくするには、どちらか一方に統一するのがポイントです。
一般的には、ダブルクォートを使うのが標準的ですが、プロジェクトやチームのルールによってはシングルクォートを使うこともあります。
以下に、統一することで得られるメリットをまとめます。
- コードが見やすくなる
- ミスが減る
- 他の人が修正しやすくなる
- コードレビューがしやすくなる
- 自動整形ツールでも正しく対応しやすくなる
クォートを統一するだけで、作業の効率が上がり、トラブルも減らせます。
W3Cの推奨する記述スタイルとは
HTMLの仕様を決めているW3Cでは、属性値にはダブルクォートを使うことを推奨しています。
これは、昔のブラウザでも問題が起きないようにするためや、クォートのバランスを取りやすくするためです。
もちろん、HTMLのルール上はシングルクォートでも構いません。
ただし、次のような理由で、W3Cに従うほうが安心です。
- 公式ドキュメントや例がすべてダブルクォートで統一されている
- ブラウザが標準的に対応している
- ほとんどのHTMLテンプレートやエディタもダブルクォートを採用している
- 読みやすさと整合性が高まる
- 初心者でも混乱しにくい
特別な理由がなければ、ダブルクォートに統一しておくと安心です。
HTMLリントツールでのチェック方法
HTMLには、書き方のミスや構文エラーをチェックしてくれる「リントツール」があります。
このツールを使えば、クォートの閉じ忘れやエスケープ忘れなどを自動で見つけられます。
特に、クォートに関するエラーは見落としやすいため、リントツールはとても頼りになります。
使い方も簡単で、次のようなポイントで活用できます。
- 構文チェックでクォートの不一致を発見できる
- 属性値の囲み忘れを指摘してくれる
- プロジェクトのコーディングルールに合わせて設定できる
- エディタのプラグインとして簡単に導入可能
- CI(継続的インテグレーション)に組み込むと自動チェックできる
リントツールを使えば、目では見落としがちな細かいミスも確実に見つけられます。
多言語対応・国際化における考慮点
HTMLで多言語対応のページを作るとき、シングルクォートが入っている文章も多く見かけます。
たとえば英語では It's や You're のように、省略表現にシングルクォートがよく使われるため、属性値や表示文字に含まれることがあります。
このようなケースでは、正しいクォートの扱いがとても大切になります。
以下のようなポイントに気をつけると、多言語でも安心して使えます。
- 属性値に英語を使うときは
'などでエスケープする - テキストとして表示するだけならエスケープは不要
- 文字コードは
UTF-8に統一する - HTMLタグの
lang属性を正しく設定する - 翻訳管理ツールを使うと文字の扱いミスを防ぎやすい
言語が変わっても、HTMLのルールを守っていれば表示トラブルを防ぐことができます。
アクセシビリティを損なわないクォート使用
Webサイトでは、見た目だけでなく、誰でも正しく情報を読めること(アクセシビリティ)も大切です。
たとえば、読み上げソフト(スクリーンリーダー)を使っている人にとって、クォートの位置や使い方が不適切だと、意味が伝わらないことがあります。
クォートの使い方ひとつで、アクセシビリティにも影響を与えることがあるため、以下のように意識することが重要です。
- 正しいクォートで意味が変わらないようにする
- 読み上げられることを意識した文章構造にする
- コード内の文字列とテキストの表現を明確に分ける
- 属性値には不必要なクォートを含めない
- ARIA属性の中にも正しいクォートが必要
アクセシビリティを大切にすると、もっと多くの人に使いやすいWebになります。
HTMLテンプレート作成時のルール化例
大きなプロジェクトやチームでHTMLテンプレートを作るときは、クォートの使い方をルール化しておくことが重要です。
そうすることで、みんなが同じ書き方をするようになり、コードの品質が保たれます。
以下に、テンプレートでのルール化例を紹介します。
- 属性値はすべてダブルクォートで囲む
- JavaScriptコード内の文字列にはシングルクォートを使う
- クォート内にクォートを書く場合は
\'でエスケープ - テンプレートエンジン内ではクォートの使い分けを厳守
- エディタに自動整形(Prettierなど)を導入する
あらかじめルールを決めておくことで、チーム全体での作業がスムーズになり、ミスも大幅に減らせます。
HTMLメールなど特殊用途での注意点
HTMLメールを作るときは、通常のWebページとは違う注意が必要です。
メールクライアントの多くは古いHTML仕様にしか対応していないため、クォートの扱いもより慎重に行う必要があります。
とくに、属性値のクォートの有無や種類によって、メールの表示が崩れてしまうことがあるため、以下のような対策を行いましょう。
- すべての属性値にクォートをつける
- 基本的にはダブルクォートを使う
- HTMLのバージョンは古いものに合わせる
- インラインCSS内の文字列にもクォートを統一
- 各メールソフトでの表示確認を行う
HTMLメールは制限が多いため、安定した表示のためにも、クォートの扱いはとても大切なポイントになります。
まとめ

HTMLでシングルクォートを使うときは、正しい知識と使い方がとても大切です。
これまで紹介してきた内容の中で、特に重要なポイントをまとめました。
- 属性値のクォートは必ず統一
- HTMLではダブルクォートが推奨
- シングルクォートは‘でエスケープ
- クォートの閉じ忘れは表示崩れの原因
- CMSやJavaScriptではクォートの重なりに注意
- リントツールでクォートミスを自動チェック
- アクセシビリティやSEOにも影響がある
正しくクォートを使うことで、安全で見やすく、読みやすいHTMLになります。
今日学んだことを使って、あなたのHTMLコードをもっときれいに、安全に仕上げてみましょう。



