Ifact instead of having just the parent widget define the selection behavior for it's children would mean the children can't set themselves as un selectable no?
It would be better to just  have each widget that wants to be selectable define itself as so by inheriting from SelectionBehavior.