More robust property handling.

Issue #2028
- Changes due to feedback from @jgable.
- Use removeProp instead of setting the property to false when enabling.
- Use the `disabled` as value when disabling.