diff --git a/packages/language-core/src/generators/template.ts b/packages/language-core/src/generators/template.ts
index 3be6c675d9..187cce04ca 100644
--- a/packages/language-core/src/generators/template.ts
+++ b/packages/language-core/src/generators/template.ts
@@ -1260,6 +1260,7 @@ export function generate(
if (
(!prop.arg || (prop.arg.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION && prop.arg.isStatic)) // isStatic
&& hyphenateAttr(attrNameText) === attrNameText
+ && !nativeTags.has(node.tag)
&& !vueCompilerOptions.htmlAttributes.some(pattern => minimatch(attrNameText!, pattern))
) {
attrNameText = camelize(attrNameText);
@@ -1366,6 +1367,7 @@ export function generate(
if (
hyphenateAttr(prop.name) === prop.name
+ && !nativeTags.has(node.tag)
&& !vueCompilerOptions.htmlAttributes.some(pattern => minimatch(attrNameText!, pattern))
) {
attrNameText = camelize(prop.name);
diff --git a/test-workspace/tsc/vue3_strictTemplate/dataAttributes/main.vue b/test-workspace/tsc/vue3_strictTemplate/dataAttributes/main.vue
new file mode 100644
index 0000000000..d0e07ec94a
--- /dev/null
+++ b/test-workspace/tsc/vue3_strictTemplate/dataAttributes/main.vue
@@ -0,0 +1,19 @@
+
+
+
+
+