Web sitemi daha erişilebilir hale getirmek için çalışıyorum. Karşılaştığım konulardan biri metin/arka plan kontrastı. Spesifikasyona göre, yüksek kontrastlı bir mod sağlayan yüksek kontrastlı bir anahtar yerleştirmek iyidir. Bu gereksinimi karşılamak için, bir buton yerleştirmek veya sitemi etkinleştirmek istediğimde, etkinleştirildiğinde, belgeyi background:low-contrast
örneklerini tarayan ve bu özniteliğin background:high-contrast
ile değiştirdiği bir işlevi gezer.Css'yi açısal denetleyiciden koşullu olarak yükleme
Ben
function HighContrastController($rootScope) {
$rootScope.highContrast = false;
}
ile ng-class="{'high-contrast':highContrast}"
ve
<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>
ile iş yaptık Ama beni sağlayacak olan, bütün denetleyicisi bunu tercih ediyorum düşünüyorum Kısmenleri mantıkla karıştırmadan tüm görüşlere global olarak yüksek kontrast uygulamak.
Bunu yapmanın bir yolu, high-contrast
sınıfını unutmak ve light
ve dark
sınıflarını uygulamak olacaktır. highcontrast.css, denetleyiciye yüklendiğinde bu sınıflara yüksek kontrastlı renkler uygular. Bunu yapmak için açısal bir yol var mı yoksa highcontrast.css yüklemek için düzenli javascript güvenmeli miyim?
Ben iç içe kontrolör garabeti alıyorum: Tam olarak demek, ama $ parent.highContrast kullanmak için gerekli olabilecek –
emin NavBarController tarafından kontrol edilen navbarınızın içinden accessibilityController erişmek için. Aksi takdirde, lütfen 'gariplik' deneyimini deneyimleyin :-) – fikkatra
Bunu yaptı, teşekkürler! –