docs: function (element, overlayId, options) {
          // ------------------------------------------ input arguments processing
  
          if (options == null) {
              options = {};
          }
  
          if (ariaUtilsType.isString(options)) {
              options = {message: options};
          }
  
          var waiAria = options.waiAria;
  
          var message = options.message;
          this.__text = message;
  
          var waiAriaReadInterval = options.waiAriaReadInterval;
          if (waiAriaReadInterval == null) {
              waiAriaReadInterval = 2000;
          }
          this._waiAriaReadInterval = waiAriaReadInterval;
  
          var waiAriaReadOnceFirst = options.waiAriaReadOnceFirst;
          if (waiAriaReadOnceFirst == null) {
              waiAriaReadOnceFirst = true;
          }
          this._waiAriaReadOnceFirst = waiAriaReadOnceFirst;
  
          // ---------------------------------------------------------- processing
  
          this.$Overlay.constructor.call(this, element, {
              id : overlayId,
              className : "xLDI"
          }, {
              waiAria: waiAria
          });
  
          var browser = aria.core.Browser;
          // fix 08364518 : if IE<9, the scroll event on an element does not bubble up and trigger the handler
          // attached to the window
          if (browser.isIE8 || browser.isIE7) {
              this._scrollRecListener = true;
              ariaUtilsEvent.addListenerRecursivelyUp(this.element, "scroll", {
                  fn : this.refreshPosition,
                  scope : this
              }, true, function (element) {
                  return element.style && element.style.overflow != "hidden";
              });
          }
      }