private static boolean hasAttribute(XmlTag tag, String attrName) {
    if (JBIterable.from(HtmlAttributeValueProvider.EP_NAME.getExtensionList())
          .filterMap(it -> it.getCustomAttributeValue(tag, attrName)).first() != null) {
      return true;
    }
    final XmlAttribute attribute = tag.getAttribute(attrName);
    if (attribute == null) return false;
    if (attribute.getValueElement() != null) return true;
    if (!(tag instanceof HtmlTag)) return false;
    final XmlAttributeDescriptor descriptor = attribute.getDescriptor();
    return descriptor != null && HtmlUtil.isBooleanAttribute(descriptor, tag);
  }
private static boolean hasAttribute(XmlTag tag, String attrName)