The JavaScript behavior is learned by invoking AbstractEventSignal.LearningListener.trigger() and monitoring its effect
on the widget tree. In this way, the visual effect of the event listener
happens immediately in response to an event, without requiring a server round-trip.
Yet, the listener is still run on the server as well, whenever the listener is triggered.