← エラー辞典に戻る

HTML

lang属性の未設定

html要素にlang属性がない

こんな症状

Lighthouseで「html element does not have a [lang] attribute」と出る。アクセシビリティ対応で見落としやすいポイントだよ。

まず試す

<html lang="ja"> のように html タグに言語コードを付ける(日本語は ja、英語は en)。

html
<html lang="ja">
  <head>...</head>
</html>

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • 日本語のページ
    → <html lang="ja"> にする。
  • 英語のページ
    → <html lang="en"> にする。
  • ページの一部だけ別言語
    → その部分に lang を付ける(<span lang="en">Hello</span>)。

なぜ起きる?

htmlタグにlang属性が設定されていないよ。スクリーンリーダーはlang属性を見てページの言語を判定し、適切な音声エンジンで読み上げるんだ。lang属性がないと、英語の音声エンジンで日本語を読み上げようとして正しく発音できないよ。

✕ エラーが起きるコード
<html><head>...</head></html>
<!-- lang なし -->
✓ 直したコード
<html lang="ja"><head>...</head></html>

✅ 直ったか確認

Lighthouseを再実行して [lang] の警告が消えればOK。

🆘 まだ直らないときは

テンプレートやフレームワークが html タグを生成している場合は、その設定で lang を指定しよう。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

📖 この問題を学べるレッスン

HTMLコース(基礎から)で根本から理解する →

✏️ 手を動かして練習

練習ドリル一覧で実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 HTMLコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

HTMLコースを始める →

❓ 関連するQ&A