Compartir a través de


Facilidad del registro de tecnología de asistencia de acceso

En este artículo se explica cómo registrar una aplicación de accesibilidad con el Centro de accesibilidad. También se explica cómo adaptar la aplicación de accesibilidad para que funcione bien con el escritorio seguro.

El Centro de acceso sencillo es una aplicación de Panel de control para Microsoft Windows que reúne la funcionalidad de accesibilidad y facilidad de uso. Mediante el uso del Centro de acceso fácil, los usuarios pueden configurar sus equipos para que se adapten a sus necesidades físicas y cognitivas.

Una función del Centro de accesibilidad es ayudar a los usuarios a iniciar aplicaciones de accesibilidad, como Narrador, Teclado en pantalla y Lupa. Las aplicaciones de terceros registradas también aparecen en el Centro de accesibilidad y se pueden iniciar directamente desde allí.

Las aplicaciones de accesibilidad deben funcionar sin problemas con el escritorio seguro. El escritorio seguro es la interfaz de usuario que aparece cuando el equipo está bloqueado (en el inicio de sesión o cuando el usuario ha bloqueado el escritorio) y cuando se le pide al usuario que permita una acción potencialmente no segura. Por motivos de seguridad, Windows coloca límites en software de terceros que se ejecuta en el escritorio seguro. Si desea que la aplicación de accesibilidad se ejecute en el escritorio seguro, debe registrar la aplicación con el Centro de acceso sencillo.

Registro con el Centro de accesibilidad

Las aplicaciones de accesibilidad se registran con el Centro de accesibilidad mediante la creación de una o varias claves del Registro cuando se instala la aplicación. En la tabla siguiente se muestra la información contenida en las claves del Registro.

Nombre Descripción Obligatorio/Opcional Idioma
Nombre de la aplicación Nombre de la aplicación, que se encuentra en un archivo de recursos. Este valor del Registro contiene una cadena en un formato especificado. Esta podría ser una versión localizada del nombre de la aplicación, si la aplicación se localiza en idiomas distintos del inglés. El nombre aparece en el Centro de accesibilidad.
Obligatorio Localizada
ATExe Nombre del archivo ejecutable de la aplicación o la imagen. Windows usa este valor para determinar si la aplicación de accesibilidad se está ejecutando.
Obligatorio No localizado
CopySettingsToLockedDesktop Valor DWORD que indica si se debe copiar la configuración de la aplicación de accesibilidad en el escritorio bloqueado.
Si este valor es 1, la aplicación puede escribir la configuración en una ubicación del registro de usuario y Windows copia la configuración en la misma ubicación del registro de usuario para el escritorio bloqueado. Esto permite que la aplicación conserve su estado desde el escritorio "normal" al escritorio bloqueado.
Opcional No localizado
Descripción Una breve descripción de la aplicación, desde un archivo de recursos. Este valor del Registro contiene una cadena en un formato especificado. Esta podría ser una versión localizada de la descripción, si la aplicación se localiza en idiomas distintos del inglés. La longitud de esta cadena debe tener menos de 512 caracteres.
La descripción aparece en el Centro de accesibilidad para proporcionar información adicional sobre la aplicación de accesibilidad al usuario.
Este valor también se puede usar para notificar al usuario que la aplicación no se usa en el escritorio seguro.
Obligatorio Localizada
Perfil Fragmento corto de XML que especifica los alojamientos que proporciona la aplicación. Garantiza que la aplicación aparezca en la categoría correcta en el Centro de acceso sencillo.
Obligatorio No localizado
PassiveAutoStartBehavior

Valor de DWORD que indica si el comportamiento de inicio automático heredado está habilitado.

El valor predeterminado es 0, lo que indica que un AT requiere un comportamiento de inicio automático heredado. Esto hace que la configuración "Iniciar después del inicio de sesión" para que AT esté activada en la configuración rápida (OOBE) y el Panel de control (vea Panel de control -> Facilidad de acceso -> Facilidad de acceso -> Cambiar configuración de inicio de sesión) e inicia automáticamente at después de UAC y pantalla de bloqueo.

Un valor de 1 indica que at debe usar el nuevo comportamiento de inicio automático en el que la configuración "Iniciar después del inicio de sesión" para que AT no esté activada en la experiencia lista para usar (OOBE) y el Panel de control, y la at se inicia automáticamente una vez por sesión de usuario (al iniciar sesión) solo si se activa la configuración "iniciar después del inicio de sesión".

Opcional No localizado
SecureDesktopAccommodation Nombre de una aplicación de accesibilidad alternativa que se va a ejecutar en el escritorio seguro en lugar de esta aplicación. La alternativa puede ser una aplicación diferente, una versión diferente de la misma aplicación, una de las aplicaciones de accesibilidad que se incluye en Windows o "ninguna" si no desea ejecutar ninguna aplicación de accesibilidad en el escritorio seguro.
Opcional No localizado
Perfil simple Valor que describe cómo clasificar la aplicación en una palabra o dos: Lector de pantalla, Lupa o Teclado en pantalla, por ejemplo.
Obligatorio No localizado
StartExe Ruta de acceso completa del archivo ejecutable. Este valor se usa para iniciar la aplicación de accesibilidad.
Obligatorio No localizado
StartParams Argumentos de la línea de comandos. Estos valores se usan junto con StartExe para iniciar la aplicación.
Opcional No localizado
TerminateOnDesktopSwitch Valor DWORD que especifica cómo responde la aplicación de accesibilidad a las transiciones hacia o desde el escritorio seguro.
Si este valor no existe o es 1, Windows finaliza y reinicia la aplicación en cada transición a o desde el escritorio seguro. Este es el comportamiento predeterminado.
Si este valor es 0, Windows no finaliza la aplicación de accesibilidad en una transición de escritorio. La aplicación continúa ejecutándose en el escritorio anterior y Windows inicia una nueva instancia en el nuevo escritorio si una instancia aún no se está ejecutando allí.
Opcional No localizado

Localización

Los valores del Registro de Nombre de aplicación y Descripción deben ser localizables para admitir la interfaz de usuario multilingüe (MUI).

Estas cadenas están en el siguiente formato, donde los corchetes angulares indican los elementos necesarios y los corchetes indican un elemento opcional.

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

<ResDllPath\ResDLLFilename> es la ruta de acceso al archivo DLL de recursos. La ruta de acceso puede contener variables de entorno.

< > resID es el identificador de recurso de la cadena.

[comentario] contiene los comentarios opcionales.

Este es un ejemplo:

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

Para obtener más información sobre MUI, consulte Centro de conocimiento de Windows MUI.

Perfil de HCI

El perfil interacción de equipo humano (HCI) es una manera de determinar qué alojamientos proporcionar en función de las necesidades del usuario. Las aplicaciones de accesibilidad deben registrar información sobre el tipo de discapacidad que la aplicación ayuda a adaptarse.

El valor del Registro de perfiles contiene XML que describe el tipo de discapacidad dirigida por la aplicación de accesibilidad. Este XML tiene el siguiente formato:

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

Los valores válidos para el tipo Accommodation atributo son los siguientes:

  • visión leve
  • visión grave
  • cognitive leve
  • cognición grave
  • dexteridad leve
  • dexteridad grave
  • audición leve
  • audición grave
  • voz leve
  • voz grave

Nota

Estos valores distinguen mayúsculas de minúsculas.

Si una aplicación de accesibilidad admite varios alojamientos, el valor del Registro de perfiles debe incluir un atributo Tipo de alojamiento para cada alojamiento.

Facilidad de acceso a los detalles del registro

Para registrar la aplicación de accesibilidad, debe crear una clave para la aplicación en la siguiente ubicación del Registro y rellenarla con pares nombre-valor.

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

Asigne un nombre a la clave del Registro de la aplicación con el formato siguiente:

CompanyName_ProductName_v#"

Por ejemplo, "Contoso_Magnifier_v2.0".

Para agregar valores del Registro, el programa de instalación debe ejecutarse con privilegios elevados.

Alojamiento seguro de escritorio

La clave del Registro SecureDesktopAccommodation le permite especificar cómo responde la aplicación de accesibilidad al escritorio seguro. De forma predeterminada, el Centro de acceso sencillo inicia la aplicación en el escritorio seguro si ya se estaba ejecutando en el escritorio normal o si está configurado para ejecutarse en el escritorio de inicio de sesión. Con la clave de SecureDesktopAccommodation, puede hacer lo siguiente:

  • Especifique una versión alternativa de la aplicación para su uso en el escritorio seguro. Por ejemplo, es posible que tenga una versión alternativa que deshabilite las características no seguros o esté optimizada para usar menos memoria e iniciarse más rápido.

    Para especificar la versión alternativa, establezca la clave SecureDesktopAccommodation en el nombre de la versión alternativa. Por ejemplo, si registró la aplicación en la clave Contoso_Screen Reader_v1.0, podría registrar la versión alternativa en Contoso_Screen ReaderSecure_v1.0. A continuación, establezca la clave de SecureDesktopAccommodation de Contoso_Screen Reader_v1.0 en "Contoso_Screen ReaderSecure_v1.0".

  • Especifique una aplicación de accesibilidad de Microsoft para usarla en el escritorio seguro en lugar de la aplicación. Para esta opción, establezca SecureDesktopAccommodation en el nombre de la aplicación de accesibilidad de Microsoft concreta: "osk", "magnifierpane" o "Narrador".

  • Especifique que la aplicación no se debe ejecutar en el escritorio seguro y tampoco debe haber ninguna aplicación alternativa. Para esta opción, establezca SecureDesktopAccommodation en "none" (recommend) o el nombre de una aplicación inexistente.

Si el SecureDesktopAccommodation clave del Registro para la aplicación de accesibilidad especifica una aplicación de accesibilidad de Microsoft que se ejecutará en el escritorio seguro en lugar de la aplicación, Windows notifica al usuario de esto al realizar la transición al escritorio seguro. Para notificar al usuario, Windows muestra la cadena especificada en la clave del Registro descripción de la aplicación. Por ejemplo, si la aplicación ScreenReader Deluxe 1.0 usa Microsoft Narrator en el escritorio seguro, incluiría una cadena Description como "Microsoft Narrator se usará en el escritorio seguro, inicio de sesión y otros escritorios seguros en lugar de ScreenReader Deluxe 1.0".

Si la secureDesktopAccommodation de la aplicación clave está establecida en "none", use la clave Description para indicar al usuario que la aplicación no está disponible en el escritorio seguro y no se proporciona ninguna alternativa.

Windows muestra el texto Descripción en las ubicaciones pertinentes del Centro de acceso.

Ejecución en la instalación y en el escritorio de inicio de sesión

Si anexa el nombre de clave registrado de la aplicación de accesibilidad a la cadena en la siguiente ubicación del Registro, Windows iniciará la aplicación inmediatamente después de instalarla. Además, Windows ejecutará automáticamente la aplicación siempre que el escritorio de inicio de sesión esté activo.

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

La clave de configuración es una cadena delimitada por comas. Para agregar la aplicación, anexe una cadena que sea la misma que la clave del Registro de la aplicación en HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\.

Ejecución en un trabajo

Si el TerminateOnDesktopSwitch clave del Registro no está presente o está establecido en distinto de cero, Windows ejecuta la aplicación en el contexto de un trabajo, finalizando y reiniciando la aplicación con cada transición de escritorio. La ejecución en un trabajo garantiza que solo se ejecuta una sola instancia de la aplicación en un momento determinado y libera a la aplicación de tener que supervisar el estado del escritorio. Las desventajas de ejecutarse en un trabajo incluyen:

  • La aplicación incurre en un costo de inicio con cada transición de escritorio.
  • La aplicación solo se puede iniciar a través del Centro de acceso fácil.
  • La aplicación debe guardar continuamente su configuración porque una transición de escritorio puede finalizarla en cualquier momento.

Si existe la clave TerminateOnDesktopSw itch y está establecida en 0, Windows no ejecuta la aplicación de accesibilidad en un trabajo. Esto tiene las siguientes ventajas:

  • No hay costos de inicio asociados a las transiciones de escritorio.
  • La aplicación se puede iniciar fuera del Centro de acceso.

Las desventajas de no ejecutarse en un trabajo incluyen:

  • Dado que la aplicación no se reinicia en las transiciones de escritorio, debe detectar cuándo el escritorio actual está inactivo y responder adecuadamente. Por ejemplo, la aplicación debe renunciar al control de hardware para que la versión de escritorio segura de la aplicación pueda usarla y la aplicación debe entrar en modo de suspensión para evitar el uso de recursos del procesador.
  • Si la aplicación se puede iniciar a través del menú Inicio, el Explorador de Windows o la línea de comandos, es preciso informar al Centro de accesibilidad. Para obtener más información, vea tecla de logotipo de Windows + U.
  • Dado que varias copias de la aplicación se pueden ejecutar simultáneamente en diferentes escritorios, la aplicación debe escribirse para admitir varias copias en ejecución.

Tecla del logotipo de Windows + U

Si la aplicación de accesibilidad está configurada para ejecutarse en un trabajo, el código de inicio de la aplicación debe incluir una llamada a la función IsProcessInJob para determinar si la aplicación se está iniciando en un trabajo. Si es así, la aplicación debe iniciar el Centro de acceso y, a continuación, salir. En el ejemplo siguiente se muestra cómo llamar a IsProcessInJob.

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

Si la aplicación de accesibilidad está configurada para ejecutarse fuera de un trabajo, debe notificar al Centro de acceso sencillo que la aplicación se está iniciando y continúa como normal.

Independientemente de cómo se configure la aplicación, si proporciona una manera de salir desde dentro de la aplicación, como un botón Cerrar, la aplicación debe notificar a la Facilidad de acceso del Centro de acceso que sale.

Una aplicación notifica a la Facilidad de acceso al Centro de acceso estableciendo una clave del Registro temporal e insertando la combinación de teclas Logo + U de Windows en el flujo de entrada.

La aplicación debe crear la clave temporal en la siguiente ubicación.

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

La clave temporal debe tener el mismo nombre que el nombre de aplicación registrado, como "Contoso_Screen Reader_v1.0". El valor de la clave es un DWORD establecido en 0x0003 cuando se inicia o 0x0002 cuando se cierra la aplicación.

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]));

Tecla del logotipo de Windows + Subir volumen

Cuando el usuario inicia la aplicación de accesibilidad presionando la combinación de teclas logotipo de Windows + Tecla subir volumen (por ejemplo, en un dispositivo de tableta), el Centro de acceso pasa el siguiente argumento de línea de comandos a la aplicación:

/hardwarebuttonlaunch

La aplicación puede usar este argumento para determinar si se debe iniciar normalmente o ajustar el comportamiento en consecuencia.

Transferencia de la configuración de escritorio segura

Si la aplicación de accesibilidad admite el escritorio seguro, puede usar el Registro para copiar la configuración cuando la aplicación pase al escritorio seguro. La copia de la configuración ayuda a que la transición al escritorio seguro sea más fluida para el usuario.

Para copiar la configuración, establezca la clave del Registro CopySettingsToLockedDesktop de la aplicación en 1 y almacene la configuración en la siguiente ubicación del Registro.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\<>

El Centro de acceso supervisa esta ubicación del Registro mientras se ejecuta la aplicación. Cuando se produce una transición al escritorio seguro, el Centro de acceso sencillo copia la configuración en la misma ubicación en el subárbol HKCU del escritorio seguro. Después, la aplicación puede leer la configuración y reanudar su estado.

La aplicación de accesibilidad debe escribir su configuración a intervalos regulares o cada vez que cambien los valores. La escritura de la configuración en la salida de la aplicación no funcionará. Si la aplicación se ejecuta en un trabajo, se termina en la transición fuera del escritorio seguro, antes de que el código de salida tenga la oportunidad de ejecutarse. Si la aplicación no se está ejecutando en un trabajo, la aplicación no finaliza en la transición fuera del escritorio seguro.

Cautela

Dado que las claves del Registro que se describen aquí están escritas en modo de usuario, no son seguras. Si la aplicación de accesibilidad lee el contenido de estas claves, debe comprobar cuidadosamente los datos y usarlos con precaución. En concreto, la aplicación debe realizar una comprobación de límites en valores DWORD, tener cuidado con las longitudes de cadena, no debe leer nombres dll de complemento y no debe ejecutar ningún comando encontrado en cadenas.

Ejemplos del Registro

En el ejemplo siguiente se muestran los posibles valores del Registro para un producto ficticio denominado Contoso ScreenReader versión 2.0, cuyo nombre localizado se almacena como un recurso.

Los valores de la tabla están bajo la clave siguiente:

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

Nombre Tipo Datos
ApplicationName REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5020
Descripción REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5040
Perfil 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 Narrador

Si la aplicación proporciona un lector de pantalla y una lupa de pantalla en un único ejecutable, los valores del componente lector de pantalla pueden tener este aspecto:

Nombre Tipo Datos
ApplicationName REG_SZ @C:\Program Files\Contoso\Contosores.dll,-30
Descripción REG_SZ @C:\Program Files\Contoso\Contosores.dll,-32
Perfil 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

Los valores del componente de lupa estarían en la siguiente clave:

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

Nombre Tipo Datos
ApplicationName REG_SZ @c:\Program Files\Contoso\Contosores.dll,-31
Descripción REG_SZ @c:\Program Files\Contoso\Contosores.dll,-42
Perfil REG_SZ
XML
<HCIModel>
   <Accommodation type="mild vision">
</HCIModel>
SimpleProfile REG_SZ Magnificación
StartExe REG_SZ c:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /m