diff --git a/src/browser/html/elements.zig b/src/browser/html/elements.zig
index 5be01a1e..57d2fa29 100644
--- a/src/browser/html/elements.zig
+++ b/src/browser/html/elements.zig
@@ -61,7 +61,6 @@ pub const Interfaces = .{
HTMLHeadElement,
HTMLHeadingElement,
HTMLHtmlElement,
- HTMLIFrameElement,
HTMLImageElement,
HTMLImageElement.Factory,
HTMLInputElement,
@@ -102,6 +101,7 @@ pub const Interfaces = .{
HTMLVideoElement,
@import("form.zig").HTMLFormElement,
+ @import("iframe.zig").HTMLIFrameElement,
@import("select.zig").Interfaces,
};
@@ -584,12 +584,6 @@ pub const HTMLHtmlElement = struct {
pub const subtype = .node;
};
-pub const HTMLIFrameElement = struct {
- pub const Self = parser.IFrame;
- pub const prototype = *HTMLElement;
- pub const subtype = .node;
-};
-
pub const HTMLImageElement = struct {
pub const Self = parser.Image;
pub const prototype = *HTMLElement;
diff --git a/src/browser/html/iframe.zig b/src/browser/html/iframe.zig
new file mode 100644
index 00000000..f8edf508
--- /dev/null
+++ b/src/browser/html/iframe.zig
@@ -0,0 +1,30 @@
+// Copyright (C) 2023-2025 Lightpanda (Selecy SAS)
+//
+// Francis Bouvier
+// Pierre Tachoire
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+const std = @import("std");
+const Allocator = std.mem.Allocator;
+
+const parser = @import("../netsurf.zig");
+const Page = @import("../page.zig").Page;
+const HTMLElement = @import("elements.zig").HTMLElement;
+
+// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmliframeelement
+pub const HTMLIFrameElement = struct {
+ pub const Self = parser.IFrame;
+ pub const prototype = *HTMLElement;
+ pub const subtype = .node;
+};