k8o

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

公開: 2025年6月28日(土)
更新: 2025年6月28日(土)
閲覧数28 views

はじめに

Firefox 140で::spelling-error::grammar-errorのCSS擬似要素がサポートされました。これにより、全てのコアブラウザでこれらの擬似要素が利用可能になりました。 これらの擬似要素は、スペルミスや文法エラーとしてフラグ付けされたテキストに対するスタイルを定義するために使用されます。

::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です。これもまた、Baseline 2025の機能ですね(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文字以内でご記入ください

ブログの購読

k8oのブログを購読する

k8oのブログを購読することで、最新の情報を受け取ることができます。

登録いただいたメールアドレスは、購読のためにのみ使用されます。