docs: function (out) {
              var cfg = this._cfg, hts = this._helpTextSet, htc = this._skinObj.helpText, color = this._getTextFieldColor();
              var stringUtils = ariaUtilsString;
  
              // check value to set appropriate state and text
              var text = this._getText();
              var className = "xTextInputInput x" + this._skinnableClass + "_" + cfg.sclass + "_input";
              if (hts) {
                  // FIXME : re-activate helpText in password field in IE
                  if (this._isIE7OrLess && this._isPassword) {
                      this._helpTextSet = hts = false;
                      cfg.helptext = null;
                  } else {
                      color = htc.color;
                  }
                  className += " x" + this._skinnableClass + "_" + cfg.sclass + "_helpText";
              }
              var type = this._isPassword && !hts ? "password" : "text";
  
              var inputWidth = this._computeInputWidth();
              if (inputWidth < 0) {
                  inputWidth = 0;
              }
              var spellCheck = "";
              if (cfg.spellCheck != null) {
                  // if spellCheck is specified in the config, include the
                  // corresponding attribute in the HTML
                  spellCheck = ' spellcheck="' + (cfg.spellCheck ? "true" : "false") + '"';
              }
              var autocomplete = "";
              if (cfg.autocomplete) {
                  autocomplete = ' autocomplete="' + stringUtils.escapeHTML(cfg.autocomplete) + '"';
              }
              var name = "";
              if (cfg.name) {
                  name = ' name="' + stringUtils.escapeHTML(cfg.name) + '"';
              }
  
              var ariaRequired = (cfg.waiAria && cfg.mandatory) ? ' aria-required="true"' : '';
  
              if (this._isTextarea) {
                  out.write(['<textarea class="', className, '"', Aria.testMode ? ' id="' + this._domId + '_textarea"' : '',
                          cfg.disabled ? ' disabled="disabled"' : this.isTextInputReadOnly() ? ' readonly="readonly"' : '',
                          ariaRequired, ' type="', type, '" style="color:', color,
                          ';overflow:auto;resize:none;height: ' + this._frame.innerHeight + 'px; width:', inputWidth,
                          'px;"', 'value=""', (cfg.maxlength > -1 ? 'maxlength="' + cfg.maxlength + '" ' : ' '),
                          (cfg.tabIndex != null ? 'tabindex="' + this._calculateTabIndex() + '" ' : ' '), spellCheck,
                          autocomplete, name, this._getAriaLabelMarkup(), this._extraInputAttributes, '>',
                          stringUtils.escapeHTML(((this._helpTextSet) ? cfg.helptext : text) || ""), '</textarea>'
  
                  ].join(''));
              } else {
                  out.write(['<input class="', className, '"', Aria.testMode ? ' id="' + this._domId + '_input"' : '',
                          cfg.disabled ? ' disabled="disabled"' : this.isTextInputReadOnly() ? ' readonly="readonly"' : '',
                          ariaRequired, ' type="', type, '" style="color:', color, ';width:',
                          inputWidth, 'px;"', 'value="',
                          stringUtils.encodeForQuotedHTMLAttribute((this._helpTextSet) ? cfg.helptext : text), '" ',
                          (cfg.maxlength > -1 ? 'maxlength="' + cfg.maxlength + '" ' : ' '),
                          (cfg.tabIndex != null ? 'tabindex="' + this._calculateTabIndex() + '" ' : ' '), spellCheck,
                          autocomplete, name, this._getAriaLabelMarkup(), this._extraInputAttributes, ' _ariaInput="1"/>'
                  // the _ariaInput attribute is present so that pressing
                  // ENTER on this widget raises the onSubmit event of
                  // the fieldset:
                  ].join(''));
              }
  
          }