Condividi tramite


Registrazione di Accessibilità assistive Technology

Questo articolo illustra come registrare un'applicazione di accessibilità con Il Centro accessibilità. Spiega anche come personalizzare l'applicazione di accessibilità in modo che funzioni correttamente con il desktop sicuro.

Il Centro accessibilità è un'applicazione pannello di controllo per Microsoft Windows che riunisce le funzionalità per l'accessibilità e la facilità d'uso. Usando il Centro accessibilità, gli utenti possono configurare i propri computer in base alle esigenze fisiche e cognitive.

Una funzione del Centro accessibilità consiste nell'aiutare gli utenti a avviare applicazioni di accessibilità, tra cui Assistente vocale, Tastiera su schermo e Lente di ingrandimento. Le applicazioni di terze parti registrate vengono visualizzate anche nel Centro accessibilità e possono essere avviate direttamente da questa posizione.

Le applicazioni di accessibilità devono funzionare senza problemi con il desktop sicuro. Il desktop protetto è l'interfaccia utente visualizzata quando il computer è bloccato (all'accesso o quando l'utente ha bloccato il desktop) e quando viene richiesto all'utente di consentire un'azione potenzialmente non sicura. Per motivi di sicurezza, Windows pone limiti al software di terze parti in esecuzione sul desktop protetto. Se si vuole che l'applicazione di accessibilità venga eseguita sul desktop protetto, è necessario registrare l'applicazione con Il Centro accessibilità.

Registrazione con il Centro accessibilità

Le applicazioni di accessibilità si registrano con Il Centro accessibilità creando una o più chiavi del Registro di sistema quando l'applicazione viene installata. Nella tabella seguente sono elencate le informazioni contenute nelle chiavi del Registro di sistema.

Nome Descrizione Obbligatorio/Facoltativo Lingua
Nome applicazione Nome dell'applicazione, che si trova in un file di risorse. Questo valore del Registro di sistema contiene una stringa in un formato specificato. Potrebbe trattarsi di una versione localizzata del nome dell'applicazione, se l'applicazione viene localizzata in lingue diverse dall'inglese. Il nome viene visualizzato nel Centro accessibilità.
Obbligatorio Localizzato
ATExe Nome del file eseguibile o dell'immagine dell'applicazione. Windows usa questo valore per determinare se l'applicazione di accessibilità è in esecuzione.
Obbligatorio Non localizzato
CopySettingsToLockedDesktop Valore DWORD che indica se copiare le impostazioni dell'applicazione di accessibilità nel desktop bloccato.
Se questo valore è 1, l'applicazione può scrivere le impostazioni in un percorso nel Registro di sistema utenti e Windows copia le impostazioni nello stesso percorso nel Registro di sistema utenti per il desktop bloccato. In questo modo l'applicazione può rendere persistente lo stato dal desktop "normale" al desktop bloccato.
Opzionale Non localizzato
Descrizione Breve descrizione dell'applicazione, da un file di risorse. Questo valore del Registro di sistema contiene una stringa in un formato specificato. Potrebbe trattarsi di una versione localizzata della descrizione, se l'applicazione è localizzata in lingue diverse dall'inglese. La lunghezza di questa stringa deve essere inferiore a 512 caratteri.
La descrizione viene visualizzata nel Centro accessibilità per fornire informazioni aggiuntive sull'applicazione di accessibilità all'utente.
Questo valore può essere usato anche per notificare all'utente che l'applicazione non viene usata sul desktop protetto.
Obbligatorio Localizzato
Profilo Elemento XML breve che specifica le sistemazioni fornite dall'applicazione. Garantisce che l'applicazione venga visualizzata sotto la categoria corretta nel Centro accessibilità.
Obbligatorio Non localizzato
PassiveAutoStartBehavior

Valore DWORD che indica se il comportamento di avvio automatico legacy è abilitato.

Il valore predefinito è 0, che indica che at richiede un comportamento di avvio automatico legacy. In questo modo, l'impostazione "Avvia dopo l'accesso" per l'opzione AT deve essere archiviata nella Configurazione guidata e nel Pannello di controllo (vedere pannello di controllo -> Accessibilità -> Accessibilità -> Modificare le impostazioni di accesso) e avvia automaticamente AT dopo controllo dell'account utente e schermata di blocco.

Il valore 1 indica che AT deve usare il nuovo comportamento di avvio automatico in cui l'impostazione "Avvia dopo l'accesso" per tale at non è archiviata nella Configurazione guidata e nel Pannello di controllo e l'at viene avviata automaticamente una volta per ogni sessione utente (all'accesso) solo se viene selezionata l'impostazione "Start after sign-in".

Opzionale Non localizzato
SecureDesktopAccommodation Nome di un'applicazione di accessibilità alternativa da eseguire sul desktop protetto al posto di questa applicazione. L'alternativa può essere un'applicazione diversa, una versione diversa della stessa applicazione, una delle applicazioni di accessibilità incluse in Windows o "nessuno" se non si vuole eseguire alcuna applicazione di accessibilità sul desktop protetto.
Opzionale Non localizzato
Profilo semplice Valore che descrive come classificare l'applicazione in una parola o due: utilità per la lettura dello schermo, lente di ingrandimento o tastiera su schermo, ad esempio.
Obbligatorio Non localizzato
StartExe Percorso completo dell'eseguibile. Questo valore viene usato per avviare l'applicazione di accessibilità.
Obbligatorio Non localizzato
StartParams Argomenti della riga di comando. Questi valori vengono usati insieme a StartExe per avviare l'applicazione.
Opzionale Non localizzato
TerminateOnDesktopSwitch Valore DWORD che specifica il modo in cui l'applicazione di accessibilità risponde alle transizioni da o verso il desktop protetto.
Se questo valore non esiste o è 1, Windows termina e riavvia l'applicazione in ogni transizione da o verso il desktop protetto. Si tratta del comportamento predefinito.
Se questo valore è 0, Windows non termina l'applicazione di accessibilità in una transizione desktop. L'applicazione continua a essere eseguita sul desktop precedente e Windows avvia una nuova istanza sul nuovo desktop se un'istanza non è già in esecuzione.
Opzionale Non localizzato

Localizzazione

I valori del Registro di sistema di Nome applicazione e Descrizione devono essere localizzabili per supportare l'interfaccia utente multilingue (MUI).

Queste stringhe sono nel formato seguente, dove le parentesi angolari indicano gli elementi obbligatori e le parentesi quadre indicano un elemento facoltativo.

@<ResDllPath\ResDLLFilename>,-<resID>[;<commento>]

<ResDllPath\ResDLLFilename> è il percorso della DLL della risorsa. Il percorso può contenere variabili di ambiente.

< > resID è l'ID risorsa per la stringa.

[commento] contiene eventuali commenti facoltativi.

Ecco un esempio:

@%SystemRoot%\system32\anyAT.dll,-5020

Per altre informazioni su MUI, vedere Knowledge Center MUI di Windows.

Profilo HCI

Il profilo HCI (Human Computer Interaction) è un modo per determinare quali alloggi fornire in base alle esigenze dell'utente. Le applicazioni di accessibilità devono registrare informazioni sul tipo di disabilità che l'applicazione aiuta a soddisfare.

Il valore del Registro di sistema profilo contiene codice XML che descrive il tipo di disabilità di destinazione dell'applicazione di accessibilità. Questo codice XML ha il formato seguente:

<HCIModel>
<Accommodation type="disability"/>
</HCIModel>

I valori validi per l'attributo Tipo di alloggio sono i seguenti:

  • visione lieve
  • visione grave
  • cognitivo lieve
  • cognitivo grave
  • lieve dexterity
  • dexterity grave
  • udito lieve
  • udito grave
  • discorso delicato
  • discorso grave

Nota

Questi valori fanno distinzione tra maiuscole e minuscole.

Se un'applicazione di accessibilità supporta più alloggi, il valore del Registro di sistema profilo deve includere un tipo di alloggio attributo per ogni alloggio.

Dettagli del Registro di sistema di Access

Per registrare l'applicazione di accessibilità, è necessario creare una chiave per l'applicazione nel percorso del Registro di sistema seguente e popolarla con coppie nome-valore.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\

Assegnare un nome alla chiave del Registro di sistema dell'applicazione usando il formato seguente:

"CompanyName_ProductName_v#"

Ad esempio, "Contoso_Magnifier_v2.0".

Per aggiungere valori del Registro di sistema, il programma di installazione deve essere in esecuzione con privilegi elevati.

Alloggio desktop sicuro

La chiave SecureDesktopAccommodation del Registro di sistema consente di specificare come l'applicazione di accessibilità risponde al desktop protetto. Per impostazione predefinita, Il Centro accessibilità avvia l'applicazione sul desktop protetto se è già in esecuzione sul desktop normale o se è configurata per l'esecuzione sul desktop di accesso. Usando la chiave SecureDesktopAccommodation, è possibile:

  • Specificare una versione alternativa dell'applicazione da usare sul desktop protetto. Ad esempio, si potrebbe avere una versione alternativa che disabilita le funzionalità non protette o è ottimizzata per usare meno memoria e avviare più velocemente.

    Per specificare la versione alternativa, impostare la chiave SecureDesktopAccommodation sul nome della versione alternativa. Ad esempio, se l'applicazione è stata registrata nella chiave Contoso_Screen Reader_v1.0, è possibile registrare la versione alternativa in Contoso_Screen ReaderSecure_v1.0. Impostare quindi chiave SecureDesktopAccommodation di Contoso_Screen Reader_v1.0 su "Contoso_Screen ReaderSecure_v1.0".

  • Specificare un'applicazione di accessibilità Microsoft da usare sul desktop protetto al posto dell'applicazione. Per questa opzione, impostare SecureDesktopAccommodation sul nome dell'applicazione di accessibilità Microsoft specifica: "osk", "magnifierpane" o "Assistente vocale".

  • Specificare che l'applicazione non deve essere eseguita sul desktop protetto e nessuna delle due applicazioni alternative. Per questa opzione, impostare SecureDesktopAccommodation su "none" (recommend) o sul nome di un'applicazione inesistente.

Se l'SecureDesktopAccommodation chiave del Registro di sistema per l'applicazione di accessibilità specifica un'applicazione di accessibilità Microsoft da eseguire sul desktop sicuro al posto dell'applicazione, Windows invia una notifica all'utente quando effettua la transizione al desktop protetto. Per notificare all'utente, Windows visualizza la stringa specificata nella chiave del Registro di sistema Descrizione per l'applicazione. Ad esempio, se l'applicazione ScreenReader Deluxe 1.0 usa l'Assistente vocale Microsoft sul desktop protetto, includerà una stringa Descrizione, ad esempio "l'Assistente vocale Microsoft verrà usato nel blocco, nell'accesso e in altri desktop protetti al posto di ScreenReader Deluxe 1.0".

Se la chiave SecureDesktopAccommodation dell'applicazione è impostata su "none", usare la Descrizione chiave per indicare all'utente che l'applicazione non è disponibile nel desktop protetto e non viene fornita alcuna alternativa.

Windows visualizza il testo Descrizione nelle posizioni pertinenti nel Centro accessibilità.

Esecuzione all'installazione e sul desktop di accesso

Se aggiungi il nome della chiave registrata dell'applicazione di accessibilità alla stringa nel percorso del Registro di sistema seguente, Windows avvierà l'applicazione immediatamente dopo l'installazione. Inoltre, Windows eseguirà automaticamente l'applicazione ogni volta che il desktop di accesso è attivo.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration

La chiave di configurazione è una stringa delimitata da virgole. Per aggiungere l'applicazione, aggiungere una stringa uguale alla chiave del Registro di sistema dell'applicazione in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\.

Esecuzione in un processo

Se il TerminateOnDesktopSwitch chiave del Registro di sistema non è presente o è impostato su diverso da zero, Windows esegue l'applicazione nel contesto di un processo, terminando e riavviando l'applicazione con ogni transizione desktop. L'esecuzione in un processo garantisce che solo una singola istanza dell'applicazione sia in esecuzione in un determinato momento e libera l'applicazione dalla necessità di monitorare lo stato del desktop. Gli svantaggi dell'esecuzione in un processo includono:

  • L'applicazione comporta un costo di avvio con ogni transizione desktop.
  • L'applicazione può essere avviata solo tramite il Centro accessibilità.
  • L'applicazione deve salvare continuamente le impostazioni perché può essere terminata in qualsiasi momento da una transizione desktop.

Se la chiave TerminateOnDesktopSwitch esiste e è impostata su 0, Windows non esegue l'applicazione di accessibilità in un processo. Questo presenta i vantaggi seguenti:

  • Nessun costo di avvio è associato alle transizioni desktop.
  • L'applicazione può essere avviata all'esterno del Centro accessibilità.

Gli svantaggi di non esecuzione in un processo includono:

  • Poiché l'applicazione non viene riavviata nelle transizioni desktop, deve rilevare quando il desktop corrente è inattivo e rispondere in modo appropriato. Ad esempio, l'applicazione deve rinunciare al controllo dell'hardware in modo che la versione desktop sicura dell'applicazione possa usarla e l'applicazione deve attivare la modalità sospensione per evitare di usare le risorse del processore.
  • Se l'applicazione può essere avviata tramite il menu Start, Esplora risorse o la riga di comando, è necessario informare il Centro accessibilità. Per altre informazioni, vedere tasto logo Windows + U.
  • Poiché più copie dell'applicazione possono essere eseguite contemporaneamente in desktop diversi, l'applicazione deve essere scritta per supportare più copie in esecuzione.

Tasto Logo Windows + U

Se l'applicazione di accessibilità è configurata per l'esecuzione in un processo, il codice di avvio dell'applicazione deve includere una chiamata alla funzione IsProcessInJob per determinare se l'applicazione viene avviata in un processo. In caso affermativo, l'applicazione deve avviare il Centro accessibilità e quindi uscire. Nell'esempio seguente viene illustrato come chiamare IsProcessInJob.

BOOL fAlreadyInJob;
BOOL fSuccess = IsProcessInJob(GetCurrentProcess(), NULL, &fAlreadyInJob); 

Se l'applicazione di accessibilità è configurata per l'esecuzione all'esterno di un processo, deve notificare a Ease of Access Center che l'applicazione viene avviata e continua come di consueto.

Indipendentemente dalla modalità di configurazione dell'applicazione, se fornisce un modo per uscire dall'interno dell'applicazione, ad esempio un pulsante Chiudi, l'applicazione deve notificare a Ease of Access Center che sta per uscire.

Un'applicazione invia una notifica a Ease of Access Center impostando una chiave del Registro di sistema temporanea e quindi inserendo la combinazione di tasti Windows Logo + U nel flusso di input.

L'applicazione deve creare la chiave temporanea nel percorso seguente.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AccessibilityTemp

La chiave temporanea deve avere lo stesso nome del nome dell'applicazione registrata, ad esempio "Contoso_Screen Reader_v1.0". Il valore della chiave è un DWORD impostato su 0x0003 all'avvio o 0x0002 quando l'applicazione viene chiusa.

INPUT input[4] = {0};

input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = VK_LWIN;
input[0].ki.dwFlags = 0;

input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = 0x55; // U key
input[1].ki.dwFlags = 0;

input[2].type = INPUT_KEYBOARD;
input[2].ki.wVk = 0x55; // U key
input[2].ki.dwFlags = KEYEVENTF_KEYUP;

input[3].type = INPUT_KEYBOARD;
input[3].ki.wVk = VK_LWIN;
input[3].ki.dwFlags = KEYEVENTF_KEYUP;

SendInput(ARRAYSIZE(input), input, sizeof(input[0]));

Tasto Logo Windows + Volume Up

Quando l'utente avvia l'applicazione di accessibilità premendo la combinazione di tasti Windows Logo + Volume Up (ad esempio in un dispositivo tablet), l'argomento della riga di comando seguente passa l'argomento della riga di comando seguente all'applicazione:

/hardwarebuttonlaunch

L'applicazione può usare questo argomento per determinare se iniziare normalmente o regolare il comportamento di conseguenza.

Trasferimento di impostazioni desktop sicure

Se l'applicazione di accessibilità supporta il desktop protetto, è possibile usare il Registro di sistema per copiare le impostazioni quando l'applicazione passa al desktop protetto. La copia delle impostazioni consente di passare al desktop sicuro più facile per l'utente.

Per copiare le impostazioni, impostare la chiave del Registro di sistema CopySettingsToLockedDesktop dell'applicazione su 1 e archiviare le impostazioni nel percorso del Registro di sistema seguente.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\<NOME chiave AT>

Il Centro accessibilità monitora questo percorso del Registro di sistema mentre l'applicazione è in esecuzione. Quando si verifica una transizione al desktop protetto, il Centro accessibilità copia le impostazioni nella stessa posizione nell'hive HKCU del desktop protetto. L'applicazione può quindi leggere le impostazioni e riprenderne lo stato.

L'applicazione di accessibilità deve scrivere le impostazioni a intervalli regolari o ogni volta che i valori cambiano. La scrittura delle impostazioni all'uscita dell'applicazione non funzionerà. Se l'applicazione è in esecuzione in un processo, viene terminata alla transizione dal desktop protetto, prima che il codice di uscita abbia la possibilità di eseguire. Se l'applicazione non è in esecuzione in un processo, l'applicazione non viene terminata alla transizione dal desktop protetto.

Cautela

Poiché le chiavi del Registro di sistema descritte di seguito sono scritte in modalità utente, non sono sicure. Se l'applicazione di accessibilità legge il contenuto di queste chiavi, deve controllare attentamente i dati e usarli con cautela. In particolare, l'applicazione deve eseguire un controllo dei limiti sui valori DWORD, prestare attenzione alle lunghezze delle stringhe, non deve leggere i nomi delle DLL del plug-in e non deve eseguire comandi trovati nelle stringhe.

Esempi del Registro di sistema

L'esempio seguente mostra i possibili valori del Registro di sistema per un prodotto fittizio denominato Contoso ScreenReader versione 2.0, il cui nome localizzato viene archiviato come risorsa.

I valori nella tabella sono sotto la chiave seguente:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\Contoso_Screen Reader_v2.0

Nome Digitare Dati
ApplicationName REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5020
Descrizione REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5040
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\ContosoTools\Bin\ContosoSR.exe
StartParams REG_SZ
SecureDesktopAccommodation REG_SZ Narratore

Se l'applicazione fornisce sia un'utilità per la lettura dello schermo che un lente di ingrandimento dello schermo in un singolo eseguibile, i valori per il componente dell'utilità per la lettura dello schermo potrebbero essere simili al seguente:

Nome Digitare Dati
ApplicationName REG_SZ @C:\Program Files\Contoso\Contosores.dll,-30
Descrizione REG_SZ @C:\Program Files\Contoso\Contosores.dll,-32
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /r

I valori per il componente lente di ingrandimento sono nella chiave seguente:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Contosoibility\ATs\Contoso_Magnifier_v2.0

Nome Digitare Dati
ApplicationName REG_SZ @c:\Program Files\Contoso\Contosores.dll,-31
Descrizione REG_SZ @c:\Program Files\Contoso\Contosores.dll,-42
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="mild vision">
</HCIModel>
SimpleProfile REG_SZ Ingrandimento
StartExe REG_SZ c:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /m