docs: function (create) {
                  var proxy = this.proxy;
  
                  if (proxy) {
                      return proxy.overlay;
                  }
  
                  var params = this.params, config = params.proxy;
                  if (config) {
                      var classpath = "aria.utils.overlay." + config.type;
                      Aria.load({
                          classes : [classpath],
                          oncomplete : create === false ? null : {
                              fn : this._createProxy,
                              scope : this,
                              args : {
                                  classpath : classpath,
                                  cfg : config.cfg
                              }
                          },
                          onerror : {
                              fn : function () {
                                  this.$logError(this.INVALID_ATTRIBUTE, ["proxy", "params"]);
                              },
                              scope : this,
                              override : true
                          }
                      });
                      // Aria.load might be synchronous and this.proxy could be already available here
                      if (create !== false && !this.proxy) {
                          // this won't cause another Aria.load on next move if the proxy is not ready
                          this.proxy = {};
                      }
                      if (this.proxy) {
                          return this.proxy.overlay;
                      } else {
                          return this.proxy;
                      }
                  } else {
                      return this.getElement();
                  }
              }