Acessibilidade
As questões de acessibilidade em aplicativos Electron são semelhantes às de sites na Web, já que ambos fazem uso do HTML.
Habilitando manualmente os recursos de acessibilidade
Aplicativos Electron ativarão automaticamente recursos de acessibilidade na presença de tecnologia assistiva (por exemplo, JAWS no Windows ou VoiceOver no macOS). Confira a documentação de acessibilidade do Chrome para mais detalhes.
Você também pode alterar manualmente esses recursos em seu aplicativo Electron ou definindo bandeiras em softwares nativos de terceiros.
Usando a API do Electron
Ao usar a API app.setAccessibilitySupportEnabled(enabled)
, você pode expor manualmente, a árvore de acessibilidade do Chrome aos usuários nas preferências do aplicativo. Observe que os utilitários de assistência do sistema do usuário têm prioridade sobre esta configuração e deverão substituí-la.
A partir de software de terceiros
macOS
No macOS, a tecnologia assistiva de terceiros pode alternar recursos de acessibilidade dentro de aplicativos Electron definindo o atributo AXManualAccessibility
programaticamente:
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")")