What does EventSystem.currentSelectedGameObject consider the current object to be?

What does EventSystem.currentSelectedGameObject consider the current object to be?

I've been working with UI in my project as of late and I can't figure out what Unity's event system is supposed to return for currentSelectedGameObject. 
if (EventSystem.current.currentSelectedGameObject != null)
{
    Debug.Log(EventSystem.current.currentSelectedGameObject.name);
}

With the code above I figured that it should return something when I'm moving the mouse across the various UI elements. Unity's documentation appears to be poor on this function stating:

The GameObject currently considered active by the EventSystem.

maybe I'm just being stupid but does anyone know what triggers currentSelectedGameObject?

Solutions/Answers:

Answer 1:

The currentSelectedGameObject is not updated by simple mouse-over, as far as I’m aware.

Instead, it’s more analogous to moving through an interface with tab. In the Unity UI system, you can move around between buttons with the keyboard. I think you’ll find that behaves as expected.

If you want to know what UI object the mouse is over, I believe you’ll need to implement that manually.

Quoting from: (4.6 UI) How to detect mouse over on button on answers.unity3d.com.

  • Add an event trigger component to your button game object.
  • Click on Add New button and select PointerEnter.
  • Now click on + button to add a new item to the list of event of type PointerEnter(BaseEventData).
  • Select the object containing your script.
  • Now select the function to be called from the list of functions.

References