私は自分のウェブサイトをより使いやすくするために取り組んでいます。私が直面している問題の1つは、テキスト/背景のコントラストです。スペックによれば、高コントラストモードを可能にする高コントラストスイッチを配置するのは良いことです。この要件を満たすために、ボタンを置いたり、サイトを有効にしたりすると、background:low-contrast
のインスタンスをスキャンし、その属性をbackground:high-contrast
に置き換える機能を実行します。角度コントローラから条件付きでCSSをロード
私はng-class="{'high-contrast':highContrast}"
と
function HighContrastController($rootScope) {
$rootScope.highContrast = false;
}
と
<button
ng-controller="HighContrastController"
ng-click="$root.highContrast=!$root.highContrast"
class="high-contrast-switch">
<i class="fa text-white fa-adjust">
<span class="sr-only">High Contrast Mode</span>
</i>
</button>
で仕事をしてきた。しかし、私は私が私を可能にされ、すべてのコントローラでこれを行うことを好むと思いますすべてのビューにグローバルに高コントラストを適用するために、ロジックで自分のパーツを乱雑にしないでください。
私ができることの1つは、high-contrast
クラスを忘れて、light
とdark
クラスを適用することです。 highcontrast.cssは、コントローラーを介して読み込まれたときに、これらのクラスに高コントラストの色を適用します。これを行う方法がありますか、またはhighcontrast.cssを読み込むために通常のjavascriptを使用する必要がありますか?
私のスイッチはNavBarControllerでナビゲーションバーコントローラの内部に位置しているとき、私は、ネストされたコントローラのおかしなを取得しています: –
あなたが正確に何を意味するかわからないが、$ parent.highContrastを使用する必要があるかもしれませんNavBarControllerによって制御されるnavbar内からaccessibilityControllerにアクセスします。そうでなければ、あなたが経験する奇妙なことを説明してください:-) – fikkatra
それは、ありがとう! –