void (@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); }