SlotRoleHandlers should provide a way to show a placeholder when a certain slot is desired on a given page, but missing. This could be done in the following ways
- provide HTML (or a ParserOutput object) to represent the missing slot
- provide a dummy Content object to be show (and maybe even saved with the next revision)
- provide a message key that identifies a message to be shown when the slot is missing but desired.
The placeholder would be shown for all roles returned by getDesiredRoles() for a given title. However, the baseline implementation of getDesiredRoles() just returns [ 'main' ]. SlotRoleHandler could get an isDesiredOn( $title ) method, but this would require all slot handlers to be instantiated before getDesiredRoles() can return a value.
Using some kind of PageTypeHandler to define which roles are desired on a given page seems to make more sense.