WidgetBase: Ensure :ID is a String and move code around so working with this is easier.
TextInput: Handle HTML attributes better; like WHC.