_updateFeedbackComponent() {
      const { _feedbackNode } = this;
      if (!_feedbackNode) {
        return;
      }

      if (!this.__feedbackQueue) {
        this.__feedbackQueue = new AsyncQueue();
      }

      if (this.showsFeedbackFor.length > 0) {
        this.__feedbackQueue.add(async () => {
          /** @type {Validator[]} */
          const prioritizedValidators = this._prioritizeAndFilterFeedback({
            validationResult: this.__validationResult.map(entry => entry.validator),
          });

          this.__prioritizedResult = prioritizedValidators
            .map(v => {
              const found = /** @type {ValidationResultEntry} */ (
                this.__validationResult.find(r => v === r.validator)
              );
              return found;
            })
            .filter(Boolean);

          if (this.__prioritizedResult.length > 0) {
            this.__prevShownValidationResult = this.__prioritizedResult;
          }

          const messageMap = await this.__getFeedbackMessages(this.__prioritizedResult);
          _feedbackNode.feedbackData = messageMap || [];
        });
      } else {
        this.__feedbackQueue.add(async () => {
          _feedbackNode.feedbackData = [];
        });
      }
      this.feedbackComplete = this.__feedbackQueue.complete;
    }
Responsible for retrieving messages from Validators and
(delegation of) rendering them.

For `._feedbackNode` (extension of LionValidationFeedback):
- retrieve messages from highest prio Validators
- provide the result to custom feedback node and let the
custom node decide on their renderings

In both cases:
- we compute the 'show' flag (like 'hasErrorVisible') for all types
- we set the customValidity message of the highest prio Validator
- we set aria-invalid="true" in case hasErrorVisible is true
@protected