@Override
  protected void checkAttribute(@NotNull final XmlAttribute attribute, @NotNull final ProblemsHolder holder, final boolean isOnTheFly) {
    final XmlTag tag = attribute.getParent();

    if (tag instanceof HtmlTag) {
      XmlElementDescriptor elementDescriptor = tag.getDescriptor();
      if (elementDescriptor == null || elementDescriptor instanceof AnyXmlElementDescriptor) {
        return;
      }
      ArrayList<LocalQuickFix> quickfixes = new ArrayList<>(6);
      final String name = attribute.getName();
      boolean isFixRequired = false;
      XmlAttributeDescriptor attributeDescriptor = attribute.getDescriptor();
      if (attributeDescriptor == null && !attribute.isNamespaceDeclaration()) {
        if (!XmlUtil.attributeFromTemplateFramework(name, tag) && (!isCustomValuesEnabled() || !isCustomValue(name))) {
          isFixRequired = true;
          boolean maySwitchToHtml5 = HtmlUtil.isCustomHtml5Attribute(name) && !HtmlUtil.hasNonHtml5Doctype(tag);
          quickfixes.add(new AddCustomHtmlElementIntentionAction(ATTRIBUTE_KEY, name, XmlAnalysisBundle.message("html.quickfix.add.custom.html.attribute", name)));
          quickfixes.add(new RemoveAttributeIntentionFix(name));
          if (maySwitchToHtml5) {
            quickfixes.add(new SwitchToHtml5WithHighPriorityAction());
          }
          addSimilarAttributesQuickFixes(tag, name, quickfixes);
        }
      }
      else if (attributeDescriptor instanceof XmlAttributeDescriptorEx) {
        ((XmlAttributeDescriptorEx)attributeDescriptor).validateAttributeName(attribute, holder, isOnTheFly);
      }

      var highlightType = addUnknownXmlAttributeQuickFixes(tag, name, quickfixes, holder, isFixRequired);

      if (!quickfixes.isEmpty()) {
        registerProblemOnAttributeName(
          attribute,
          XmlAnalysisBundle.message("xml.inspections.attribute.is.not.allowed.here", name),
          holder,
          highlightType,
          quickfixes.toArray(LocalQuickFix.EMPTY_ARRAY)
        );
      }
    }
  }
@Override
  protected void checkAttribute(@NotNull final XmlAttribute attribute, @NotNull final ProblemsHolder holder, final boolean isOnTheFly)