23/23 Не проходит проверку. Помогите, плз!

По картинке результат полностью соответствует. Валидатор одобряет.

var renderCards = function (cardInfo) {
  var listItem = document.querySelector('.goods');
  
  var bildElement = function (tagName, className, text, imgUrl) {
    var element = document.createElement(tagName);
    element.classList.add(className);
    
    if (text) {
    element.textContent = text;
    }
    
    if (imgUrl) {
    element.src = imgUrl;
    element.alt = text;
    }
    return element;
  };
  
  var createCard = function (cardInfo) {
    var card = bildElement('li', 'good');
    var title = bildElement('h2', 'good__description', cardInfo.text);
    var image = bildElement('img', 'good__image', cardInfo.text, cardInfo.imgUrl);
    var price = bildElement('p', 'good__price', cardInfo.price);
    price.textContent = cardInfo.price + '₽/кг';
    card.appendChild(title);
    card.appendChild(image);
    card.appendChild(price);
    
    var available = 'good--available';
    if (!cardInfo.inStock) {
    available = 'good--unavailable';
    }
    card.classList.add(available);
    
    if (cardInfo.isHit) {
    card.classList.add('good--hit');
    var specialOffer = bildElement('p', 'good__special-offer', cardInfo.specialOffer);
    card.appendChild(specialOffer);
    }
    listItem.appendChild(card);
  };

  for (var i = 0; i < cardInfo.length; i++) {
  createCard(cardInfo[i]);
  }
};

renderCards(cardsData);

у вас информация какая-то написана лишняя в контейнер img. её там быть не должно, img одиночный непарный тег, а в разметке у вас это не так.
также подтяните нейминг переменных, bildElement - это на каком наречии китайского?

var image = bildElement('img', 'good__image', null, cardInfo.imgUrl);
image.alt = cardInfo.text;

Вот это сами знаете куда подставить, вы сможете :sunglasses:
Подсказка конечно костыль, лучше функцию bildElement переписать целиком, начиная с названия.

Благодарю!)