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), puede 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")")