LLMS

スペルミス・文法エラーに対してスタイルを設定する::spelling-errorと::grammar-error

::spelling-errorと::grammar-error擬似要素は、ブラウザが検出したスペルミスや文法エラーにスタイルを適用できる機能です。デフォルトの下線表示をカスタマイズし、ユーザー体験を向上させられます

公開: 2025年6月29日(日)
更新: 2025年11月15日(土)

はじめに

擬似要素である::spelling-error::grammar-errorは、スペルミスや文法エラーとしてフラグ付けされたテキストに対するスタイルを定義するために使用されます。

::spelling-error

スペルミスとしてフラグ付けされたテキストに対するスタイルを定義します。

::spelling-error {
  background-color: #ffcccc;
  color: #d8000c;
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: red;
}

::spelling-errorの中では、colorbackground-colorcursorcaret-coloroutlineoutlint-*text-decorationtext-decoration-*text-emphasis-colortext-shadowのみが使用可能です。

::grammar-error

文法エラーとしてフラグ付けされたテキストに対するスタイルを定義します。

::grammar-error {
  color: #d8000c;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: red;
}

::grammar-error::spelling-errorと同様のプロパティしか定義できません。

contenteditable属性で編集可能なテキストエリアを準備しました。spellcheck属性がtrueに設定されているため、スペルミスや文法エラーが自動的に検出されます。

この例ではcontenteditable属性の値をplaintext-onlyにすることでテキストの入力しか行えないようにしています。plaintext-onlyについても記事を書いているので良ければ読んでください。

ここで検出されたエラーが::spelling-error::grammar-errorの擬似要素でスタイリングされます。

スペルミス・文法エラーのスタイル設定例

Check a speling error and an grammar error.

そのままではspellcheck属性の確認が行われず、見た目の変化がないことがあります。その場合は、テキストの一部を編集して再確認させることで、エラーが表示されるようになると思います。

また、ブラウザごとにspellcheckの挙動が異なるため、デフォルトの文章で両方のエラーを確認できない恐れがあります(Safariで確認しました)。期待としては、spelingがスペルミス、an grammaranが文法エラーとして検出されることです。

おわりに

Baseline 2025入りした::spelling-error::grammar-errorを紹介しました。

spellcheck自体が日本語対応していないので、日本語ユーザーにとってはあまり恩恵がないかもしれませんが、英語のコンテンツを扱うときのために覚えておきたいです。

この記事はどうでしたか?

500文字以内でご記入ください

0
もくじ

©︎ 2024〜2025 k8o. All Rights Reserved.