The terms “activation” and “focus” are often used in the chromium code base with different semantics depending on platform [windows, macOS, etc.] or component [e.g. views, blink]. For legacy reasons, sometimes even in a given component [e.g. views] the semantics are unclear.

The goal of this document is to outline the intended definition of these terms. This is not a one-size fits all solution. It fails to capture some platform-specific nuances -- e.g. key vs main windows on macOS -- but it provides a common lexicon for discussion.

Activation: Only applies to windows - boundary that applies to focusable elements.

Focus: Only applies to leaf controls - Keyboard focus is sent and generally processed by the targeted leaf element.

Activation and focus are not interchangeable. Windows are required to managed focus within themselves (adjusting as necessary, even when not activated!). Likewise, each tab/web-contents remembers its focused leaf control, even when the tab is not showing because it's backgrounded.

Focusing a window is not a valid concept -- usually the intention is activation.

Focusing a control within a window is fine, and will also activate the window.

Activating a window brings it to the front, and gives the window priority [but not exclusivity] for handling input events.