Saltar al contenido principal

Accesibilidad

Los problemas de accesibilidad en las aplicaciones Electron son similares a los de los sitios web ya que ambos son básicamente HTML.

Habilitar de forma manual las características de accesibilidad​

Las aplicaciones Electron habilitarán automáticamente las características de accesibilidad en la presencia de tecnología de asistencia (p.ej. JAWS en Windows o VoiceOver en macOS). Consulte la documentación de accesibilidad de Chrome para obtener más detalles.

También puede cambiar manualmente estas características dentro de su aplicación Electron o configurando banderas en software nativo de terceros.

Ulizando la API de Electron​

Usando app.setAccessibilitySupportEnabled(enabled), permite exponer manualmente el árbol de accesibilidad de Chrome a los usuarios en las preferencias de la aplicación. Tenga en cuenta que las utilidades de asistencia del sistema tienen prioridad sobre este ajuste y reemplazarlo.

Usando software de terceros​

macOS​

En macOS, la tecnología de asistencia de terceros puede cambiar la accesibilidad dentro de las aplicaciones de Electron, configurando el atributo AXManualAccessibility de forma programada:

Usando 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);
}

Usando 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")")