function checkAndFireFocusFail(vChildren, bSuppressInvalidate) {
		let oFocusedChild = null;
		let oSkipArea = null;

		if (Array.isArray(vChildren)) {
			for (let i = 0; i < vChildren.length; i++) {
				const oChild = vChildren[i];
				const oDomRef = oChild.getDomRef?.();

				if (oDomRef?.contains(document.activeElement)) {
					oFocusedChild = oChild;
				}
			}
			if (oFocusedChild) {
				oSkipArea = searchAggregationAreaToSkip(vChildren);
			}
		} else if (vChildren instanceof ManagedObject) {
			oFocusedChild = vChildren;
		}

		if (!oFocusedChild) {
			return;
		}

		const oDomRef = oFocusedChild.getDomRef?.();
		if (oDomRef?.contains?.(document.activeElement) && !bSuppressInvalidate) {
			// Determin if the DOM removal needs to happen sync or async
			const bSyncRemoval = needSyncDomRemoval.call(oFocusedChild, bSuppressInvalidate, !this);
			const sFocusMode = bSyncRemoval ? FocusMode.SYNC : FocusMode.RENDERING_PENDING;

			if (!this._bIsBeingDestroyed) {
				Element.fireFocusFail.call(oFocusedChild, sFocusMode, this, oSkipArea);
			}
		}
	}
Checks for a focused child within the provided children (array or single object)
and fired the focus fail event if necessary.

@param {sap.ui.base.ManagedObject[]|sap.ui.base.ManagedObject} vChildren The children to check. Can be an array or a single object.
@param {boolean} bSuppressInvalidate If true, this ManagedObject is not marked as changed