docs: function (text) {
  
                  var dataModel = this._dataModel;
  
                  if (text !== '' && text !== dataModel.text) {
                      dataModel.text = text;
  
                      this._pendingRequestNb += 1;
                      this._resourcesHandler.getSuggestions(text, {
                          fn : this._suggestionsCallback,
                          scope : this,
                          args : {
                              nextValue : text,
                              triggerDropDown : false
                          }
                      });
  
                      // return null as there is asynchrone handling
                      return null;
                  }
  
                  // returned object
                  var report = new ariaWidgetsControllersReportsDropDownControllerReport();
  
                  // an empty field is usually not considered as an error
                  if (text === '') {
                      dataModel.value = null;
                      dataModel.text = '';
                      report.ok = true;
                      report.value = null;
                  } else {
                      if (this.freeText) {
                          report.ok = true;
                          if (this._pendingRequestNb > 0 && !dataModel.value) {
                              report.value = dataModel.text;
                          }
                      } else {
                          if (!dataModel.value) {
  
                              if (this.expandButton && dataModel.listContent && this._checkValueList()) {
                                  report.ok = true;
                              } else {
                                  report.ok = false;
                                  report.value = null;
                                  report.errorMessages.push(this.getErrorMessage("validation"));
                              }
                          }
  
                      }
                      // if there is no value in the dataModel, user was just browsing selections
                      if (dataModel.value) {
                          report.value = dataModel.value;
                      }
  
                  }
                  return report;
              }