docs: function (propertyName, newValue, oldValue) {
              if (propertyName === "requireFocus") {
                  if (!newValue || !this.focus || this._cfg.disabled) {
                      // nothing to do if the focus is not required, if we have no
                      // focus method, or if
                      // the widget is disabled
                      return;
                  }
                  // The requireFocus binding is a special one as we change back
                  // the property
                  // to false as soon as a widget handles the property.
                  var binding = this._cfg.bind[propertyName];
                  var curValue = binding.inside[binding.to];
                  // We check the actual value in the data model because there can
                  // be several widgets
                  // linked to the same part of the data model.
                  // Only one will have the focus: the first non disabled widget
                  // whose _onBoundPropertyChange is called.
                  if (curValue) {
                      // the value is still true in the data model
                      // we set the focus on the input and immediately set the
                      // value back to false in the data model
                      this.focus();
                      ariaUtilsJson.setValue(binding.inside, binding.to, false);
                  }
              } else if (propertyName === "label") {
                  this._cfg[propertyName] = newValue;
                  var label = this.getLabel();
                  if (label) {
                      label.innerHTML = ariaUtilsString.escapeHTML(newValue);
                  }
              }
              return this.$Widget._onBoundPropertyChange.apply(this, arguments);
          }