If you are going to follow DHTML way, just do it.
1. do not use 'enabled' attribute at all on the server side.
2. disable the input on the client side when page is loaded
3. Disable(and clean up)/enable it when the "Other" selected
What is a very important here from the JSF point of view, the inputText must be enabled on the server side right before the second JSF phase. Otherwise, the value will not be processed regardless the status of the input on the client side when it is submitted.
Got it. So I need to attach some JS to the selectOneRadio, to pick up "changed" events, check if the value is "other", if it is, do a client-side enable of the "other" text field. I guess I need to learn a bit of JS for this.