Allow for self-labelling widgets

Such as `button`