Zum Hauptteil springen

Barrierefreiheit

Electron-Apps und -Webseiten ähneln sich bezüglich ihrer Barrierefreiheit, da sie beide im Endeffekt HTML sind.

Barrierefreiheitsfunktionen manuell aktivieren

Electron-Apps aktivieren Funktionen für Barrierefreiheit automatisch im Beisein assistiver Technologien (z.B. JAWS auf Windows oder VoiceOver auf macOS). Schauen Sie in die Dokumentation für Barrierefreiheit für weitere Informationen.

You can also manually toggle these features either within your Electron application or by setting flags in third-party native software.

Benutzung der Electron-API

By using the app.setAccessibilitySupportEnabled(enabled) API, you can manually expose Chrome's accessibility tree to users in the application preferences. Note that the user's system assistive utilities have priority over this setting and will override it.

Innerhalb Drittanbieter-Software

macOS

On macOS, third-party assistive technology can toggle accessibility features inside Electron applications by setting the AXManualAccessibility attribute programmatically:

Mit Objective-C:

CFStringRef kAXManualAccessibility = CFSTR("AXManualAccessibility");

+ (void)enableAccessibility:(BOOL)enable inElectronApplication:(NSRunningApplication *)app
{
AXUIElementRef appRef = AXUIElementCreateApplication(app.processIdentifier);
if (appRef == nil)
return;

CFBooleanRef value = enable ? kCFBooleanTrue : kCFBooleanFalse;
AXUIElementSetAttributeValue(appRef, kAXManualAccessibility, value);
CFRelease(appRef);
}

Mit Swift:

import Cocoa
let name = CommandLine.arguments.count >= 2 ? CommandLine.arguments[1] : "Electron"
let pid = NSWorkspace.shared.runningApplications.first(where: {$0.localizedName == name})!.processIdentifier
let axApp = AXUIElementCreateApplication(pid)
let result = AXUIElementSetAttributeValue(axApp, "AXManualAccessibility" as CFString, true as CFTypeRef)
print("Setting 'AXManualAccessibility' \(error.rawValue == 0 ? "succeeded" : "failed")")