I think it could make sense to introduce more inheritance here by creating abstract `aria.html.InputElement` and moving some of the shared things between `TextInput`, `CheckBox` and `RadioButton`. E.g. the statics could be moved there, `writeMarkupBegin`, `writeMarkupEnd` and those lines from the constructor which are the same everywhere:

            cfg.tagName = "input";
            cfg.attributes = cfg.attributes || {};
            cfg.on = cfg.on || {}; 

This could be done as a separate refactor commit on top of this commit.