Web サイトをハイ コントラスト モードでアクセスできるようにしようとしています。ハイ コントラスト モードが有効になっていることを検出するために、背景画像が無効になっているかどうかを検出する JavaScript メソッドを作成しました。これは、ハイ コントラスト モードでは背景画像が無効になるためです。次に、ブラウザーがハイ コントラスト モードの場合は、CSS ファイルを追加して、ハイ コントラストで表示するための修正を行います。これは Firefox、Edge、および IE では正常に機能しますが、Chrome は独自の拡張機能を使用してハイ コントラストを作成し、背景画像を無効にしないため、Chrome ではハイ コントラスト用の CSS が追加されません。
検索の結果、ウェブサイトの色や画像自体を有効/無効/変更するのではなく、Chrome がウェブサイトにフィルターを追加することがわかりました。検索して検索しましたが、Chrome がハイ コントラスト モードを使用しているかどうかを確認するためにテストするものが見つかりません。どの拡張機能が使用されているかを検出する方法があれば、問題も解決しますが、それを行う方法を見つけることもできませんでした.
私のコードは実際には問題なく動作します。必要なのは、Chrome でハイ コントラスト モードを検出できることだけです。ハイコントラストモードをチェックするために私が使用する方法は次のとおりです。
let highContrast = (options) => {
let hcDetect = jQuery(`<div id="jQHighContrastDetect"></div>`).css('background', 'url(../uploads/c-wht-small.png)');
hcDetect.appendTo(document.body);
if (hcDetect.css('background-image') === 'none') {
$('head').append('<link rel="stylesheet" href="../css/highcontrast.min.css" type="text/css" media="all">');
}
}