Ich arbeite daran, meine Website zugänglicher zu machen. Eines der Probleme, auf die ich stoße, ist der Kontrast zwischen Text und Hintergrund. Entsprechend der Spezifikation ist es in Ordnung, einen kontrastreichen Schalter zu platzieren, der einen kontrastreichen Modus ermöglicht. Um diese Anforderung zu erfüllen, möchte ich eine Schaltfläche oder einen Schalter auf meiner Site platzieren, die bei Aktivierung eine Funktion auslöst, die das Dokument nach Instanzen von background:low-contrast
scannt und dieses Attribut durch background:high-contrast
ersetzt.Laden Sie css bedingt vom Winkelregler
Ich habe den Job mit ng-class="{'high-contrast':highContrast}"
und
<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>
mit
function HighContrastController($rootScope) {
$rootScope.highContrast = false;
}
getan, aber ich glaube, ich würde es vorziehen, diese in der Steuerung, alles zu tun, was mir ermöglichen würde, global für alle Ansichten einen hohen Kontrast anwenden, ohne meine Partials mit Logik zu überladen.
Ein Weg, ich es tun könnte, wäre die high-contrast
Klasse zu vergessen und light
und dark
Klassen. highcontrast.css würde diese Klassen mit kontrastreichen Farben versehen, wenn sie über den Controller geladen werden. Gibt es einen eckigen Weg dies zu tun oder sollte ich mich auf reguläres Javascript verlassen, um highcontrast.css zu laden?
Ich erhalte verschachtelten Controller Seltsamkeit, wenn meine Schalter in einem navbar Controller von NavBarController befindet: –
nicht sicher, was du meinst genau, aber es kann notwendig sein, $ parent.highContrast zu verwenden Zugriff auf den AccessibilityController über die von NavBarController gesteuerte Navbar. Ansonsten erkläre bitte, was für eine "Seltsamkeit" du hast :-) – fikkatra
Das hat es geschafft, danke! –