@Override
  protected void checkTag(@NotNull XmlTag tag, @NotNull ProblemsHolder holder, boolean isOnTheFly) {
    if (!HtmlUtil.isHtmlTagContainingFile(tag)) return;
    if (tag.getAttribute(ALT) != null) return;
    if (XmlExtension.getExtension(tag.getContainingFile()).isRequiredAttributeImplicitlyPresent(tag, ALT)) return;
    if (XmlCustomElementDescriptor.isCustomElement(tag)) return;
    if (!htmlTagsWithRequiredAltAttribute.contains(tag.getName())) return;
    //H36
    if (tag.getName().equalsIgnoreCase("input")) {
      final XmlAttribute buttonWithImageType = tag.getAttribute("type");
      if (buttonWithImageType != null && buttonWithImageType.getValue() != null) {
        if (!buttonWithImageType.getValue().equalsIgnoreCase("image")) return;
      }
      else {
        return;
      }
    }
    List<LocalQuickFix> fixes = new ArrayList<>();
    if (isOnTheFly) fixes.add(new InsertRequiredAttributeFix(tag, ALT));

    InspectionUtils.RegisterProblem(tag, holder, fixes, HtmlToolsBundle.message("html.inspections.check.required.alt"),
                                    ProblemHighlightType.GENERIC_ERROR_OR_WARNING);
  }
@Override
  protected void checkTag(@NotNull XmlTag tag, @NotNull ProblemsHolder holder, boolean isOnTheFly)