diff --git a/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java b/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java
index fc9fe289efed..1d9533eef727 100644
--- a/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java
+++ b/xml/impl/src/com/intellij/html/impl/Html5CustomAttributeDescriptorsProvider.java
@@ -91,7 +91,7 @@ public class Html5CustomAttributeDescriptorsProvider implements XmlAttributeDesc
@Override
public XmlAttributeDescriptor getAttributeDescriptor(String attributeName, XmlTag context) {
- if (context != null && HtmlUtil.isHtml5Context(context) && HtmlUtil.isCustomHtml5Attribute(attributeName)) {
+ if (context != null && HtmlUtil.isCustomHtml5Attribute(attributeName) && HtmlUtil.tagHasHtml5Schema(context)) {
return new AnyXmlAttributeDescriptor(attributeName);
}
return null;
diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java
index e7c9168d3e36..02ac9f070abf 100644
--- a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java
+++ b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java
@@ -26,6 +26,7 @@ import com.intellij.lang.xhtml.XHTMLLanguage;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.FileType;
+import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.registry.Registry;
@@ -497,6 +498,18 @@ public class HtmlUtil {
return "meta.rnc".equals(name);
}
+ public static boolean tagHasHtml5Schema(@NotNull XmlTag context) {
+ XmlElementDescriptor descriptor = context.getDescriptor();
+ if (descriptor != null) {
+ XmlNSDescriptor nsDescriptor = descriptor.getNSDescriptor();
+ XmlFile descriptorFile = nsDescriptor.getDescriptorFile();
+ String descriptorPath = descriptorFile != null ? descriptorFile.getVirtualFile().getPath() : null;
+ return Comparing.equal(Html5SchemaProvider.getHtml5SchemaLocation(), descriptorPath) ||
+ Comparing.equal(Html5SchemaProvider.getXhtml5SchemaLocation(), descriptorPath);
+ }
+ return false;
+ }
+
private static class TerminateException extends RuntimeException {
private static final TerminateException INSTANCE = new TerminateException();
}