このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

“CSS Color Adjustment Module”

記事Jul. 19th,2021
CSS3で色の調整に関する仕様を定義した“CSS Color Adjustment Module”について。

仕様書の概要

概要

CSS Color Adjustment Module”はユーザー・エージェントによる自動的な色の調整について定義している仕様書です。

“ダーク・テーマ”などのユーザーの好みによるカラー・スキームの設定や、色の見え方が一般と異なるユーザーのための配色の調整、プリンタなどのデバイスの制約による色の調整の扱い方などが含まれています。

仕様書

定義されているプロパティ

用語など

カラー・スキーム

“カラー・スキーム”とは?

多くのデバイスやユーザー・エージェントではユーザーがユーザー・インターフェースなどの色遣いである“カラー・スキーム(Color scheme)”を設定することができます。カラー・スキームはユーザー・エージェントのアドレスバーやタブなどのナビゲーション・インターフェースなどに反映されます。

もっとも一般的なカラー・スキームは以下の2つです。

明るいカラー・スキーム
明るい色の背景に暗い色のテキストで表現
暗いカラー・スキーム
暗い色の背景に明るい色のテキストで表現

ユーザーは閲覧するウェブページが望んでいるカラー・スキームに適応することを求めることもできます。ウェブページが求められたカラー・スキームに適応できるようにユーザー・エージェントはメディア・クエリprefers-color-scheme”メディア・フィーチャーを検査します。そのうえで、color-scheme”プロパティによって示された適切なカラー・スキームでユーザー・エージェントによるインターフェースが描画されます。

カラー・スキームは以下の個所に使用される色に影響します。

また、ルート要素ではカラー・スキームは文書が描画される領域の色(背景色)やcolor”プロパティの初期値やビューポートのスクロールバーの色に影響します。

iframe”要素で埋め込まれる文書は通常は透明な描画領域に表示されますが、可読性を確保するため、埋め込む要素と埋め込まれる文書のルート要素のカラー・スキームが異なる場合には描画領域の色は埋め込まれる文書のカラー・スキームにおけるシステムカラーの“canvas”で表現される色になります。

使用されるカラー・スキームの決定

要素を描画するのに使用されるカラー・スキームは以下の手順で決定されます。

  1. メディア・クエリprefers-color-scheme”メディア・フィーチャーによって示されたユーザーが望むカラー・スキームがcolor-scheme”プロパティの値の中にあり、ユーザー・エージェントもそのカラー・スキームに対応していればそれが使用されるカラー・スキームです。
  2. そうでなければ、ユーザーがカラー・スキームの上書を求めていて、それがcolor-scheme”プロパティの“only”キーワードによって禁止されていなければ、ユーザーが求めるカラー・スキームを強制的に使用します。
  3. そうでなければ、ユーザー・エージェントがcolor-scheme”プロパティで示されたカラー・スキームのうち少なくとも1個に対応していれば最初に記述されているものが使用されるカラー・スキームです。
  4. そうでなければ、使用されるカラー・スキームはブラウザのデフォルトのものです。

カラー・スキームの上書き

ユーザーが特定のカラー・スキームを上書きするように求めていて、color-scheme”プロパティの“only”キーワードによって禁止されていない場合にはユーザー・エージェントはカラー・スキームを上書きすることができ、使用されるカラー・スキームをユーザーが求めているカラー・スキームに強制的に変更できます。

要素が選択されたカラー・スキームに対応していない場合にはユーザー・エージェントは要素の明度を反転させるなどして自動的にカラー・スキームを調整します。ユーザー・エージェントは置換要素や背景画像、その他の外部リソースも色を調整する場合がありますが、どのような調整を行うかはユーザー・エージェントに依ります。

color-scheme”プロパティmeta”要素で該当するカラー・スキームに対応していることが示されている場合にはそのままそのカラー・スキームで要素が描画され、メディア・クエリprefers-color-scheme”メディア・フィーチャーによって適用条件が指定されたスタイルが適用されます。

強制カラー・モード

強制カラー・モード(Forced colors mode)”はアクセシビリティのための機能で、色の見え方が一般と異なるユーザーのウェブページの可読性を向上させるために配色を調整します。

強制カラー・モードが設定されているユーザー・エージェントは特定のプロパティによる色の設定を上書きし、ユーザーが望む配色によって文書が表示されることを強制します。ユーザー・エージェントは文書を強制カラー・モードに適応させるために、メディア・クエリforced-colors”メディア・フィーチャーを検査し、CSSのシステムカラーとして使用する色を割り当てます。

強制カラー・モードが設定されていて、要素のforced-color-adjust”プロパティの値が“auto”であれば、以下のプロパティによる色の設定は強制的にシステムカラーに上書きされます。

  1. color”プロパティ
  2. fill”プロパティ
  3. stroke”プロパティ
  4. text-decoration-color”プロパティ
  5. text-emphasis-color”プロパティ
  6. border-color”プロパティ
  7. outline-color”プロパティ
  8. column-rule-color”プロパティ
  9. scrollbar-color”プロパティ
  10. background-color”プロパティ
  11. caret-color”プロパティ
  12. flood-color”プロパティ
  13. lighting-color”プロパティ
  14. stop-color”プロパティ

もともと色の設定がシステムカラーによってなされているか、何らかの方法によって代替の色が設定されていてその色がシステムカラーであればその色が使用されますが、そうでなければユーザー・エージェントが適切なシステムカラーを選択して使用します。

また、以下のプロパティも強制カラー・モードが設定されている場合に影響を受けます。

  1. box-shadow”プロパティの値は“none”に設定されます。
  2. background-image”プロパティの値はurl()”関数を含む場合以外は“none”に設定されます。
  3. color-scheme”プロパティの値は“light dark”に設定されます。
  4. scrollbar-color”プロパティの値は“auto”に設定されます。
  5. accent-color”プロパティの値は“auto”に設定されます。

なお、これらのプロパティ以外にもユーザー・エージェントはユーザーの可読性に寄与するのであれば調整を行う可能性があります。

また、システムカラーの“canvas”に割り当てられた色の明度によってメディア・クエリprefers-color-scheme”メディア・フィーチャーの“light”もしくは“dark”のどちらかに一致します。

定義されているCSSルール

プロパティ

プロパティ 説明
color-scheme: 対応するカラー・スキームを示す
forced-color-adjust:
print-color-adjust:
adjust:
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク