To recite RichFaces component reference on the subject (emphasis mine):
The <a4j:ajax>
behavior allows Ajax capability to be added to a non-Ajax component. The non-Ajax component must implement the ClientBehaviorHolder interface for all the event attributes that support behavior rendering.
To proceed one step further one should look into ClientBehaviorHolder
interface, especially the ClientBehaviorHolder#getEventNames()
method that
Returns a non-null, unmodifiable Collection containing the names of the logical events supported by the component implementing this interface
This way it would not be too tough to find out the list of events the component can fire.
Basically, as you suspected, all basic JavaScript events are supported and a set of custom ones that are (typically) mentioned in component's documentation (those with on
prefix), but with prefix omitted (like onlistshow
would turn into event="listshow"
).
Also, it is worth mentioning that there are two additional 'standard' event types in JSF that will render the necessary/right HTML DOM event, depending on the component in question. Those are action
for components that implement ActionSource
interface and valueChange
for components that implement EditableValueHolder
.