En informática , el robo de foco es un error de modo que ocurre cuando un programa que no está en foco (por ejemplo, minimizado o funcionando en segundo plano) coloca una ventana en primer plano y redirige toda la entrada del teclado a esa ventana. Esto se considera una molestia o un peligro para algunos usuarios porque el programa puede robar el foco mientras el usuario está escribiendo, haciendo que las pulsaciones de teclas vayan a la ventana recién enfocada, posiblemente perdiéndose o causando un efecto no deseado en la misma. Esto puede ser unas pocas pulsaciones de teclas debido al tiempo de reacción , o puede ser más si la atención del usuario no está en la pantalla de la computadora, por ejemplo, escribiendo mientras mira el teclado o mientras lee una copia a un lado, o si el retraso del procesador causa una demora (a veces de varios segundos) entre el evento de robo de foco y la ventana recién enfocada que se muestra en la pantalla.
El robo de foco puede causar daños, ya que los usuarios pueden, mientras escriben cuando su atención no está en la pantalla, aceptar inadvertidamente que un programa haga algo que cause daños. Por ejemplo, cuando Microsoft Windows abre el asistente de Liberador de espacio en disco, el usuario puede "aceptar" eliminar archivos sin darse cuenta de que el asistente estaba esperando una entrada. El robo de foco también puede causar en ocasiones brechas de seguridad, por ejemplo, cuando un usuario ingresa una contraseña y la contraseña ingresada aparece en una nueva ventana de mensajería instantánea en un campo de entrada sin máscara.
Hay varios métodos alternativos para captar la atención del usuario que se pueden utilizar en lugar de robar el foco: [1]
Los siguientes sistemas de gestión de ventanas permiten el robo de foco:
Los sistemas basados en Microsoft Windows utilizan cuadros de diálogo emergentes que pueden robar el foco de la aplicación actual. En las versiones de Microsoft Windows anteriores a Windows 7, existe una configuración de usuario que, de manera predeterminada, evitará que una aplicación cooperativa robe el foco al iniciar otro programa o al abrir una nueva ventana o cuadro de diálogo. [2] Este mismo método no funciona en Windows 7 o posterior. [3]
Los sistemas MacOS X de Apple también cambian las aplicaciones del segundo plano al primer plano cuando las aplicaciones en segundo plano utilizan cuadros de diálogo modales emergentes. Un ejemplo de este comportamiento es el uso del cuadro de diálogo de alerta por parte de Google Chrome, como se documenta en [4].
Los siguientes navegadores web permiten el robo de foco a través de la función this.focus() de JavaScript :
Se han escrito programas para identificar qué está robando el foco .