summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/HTML
diff options
context:
space:
mode:
authorAndrew Kaster <akaster@serenityos.org>2022-10-07 16:45:09 -0600
committerAndreas Kling <kling@serenityos.org>2022-10-09 10:14:57 +0200
commit67ceba2e6a98c280eb685dfa7559beef09a35409 (patch)
tree78eb5e696ca22b9e5acbdf46f7d20068c7db206d /Userland/Libraries/LibWeb/HTML
parent0265041d44b313e18d097d30fb8e204fa367c5f9 (diff)
downloadserenity-67ceba2e6a98c280eb685dfa7559beef09a35409.zip
LibWeb: Add Exposed attribute and IDL spec links where missing
The intent is to use these to autogenerate prototype declarations for Window and WorkerGlobalScope classes. And the spec links are just nice to have :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/HTML')
-rw-r--r--Userland/Libraries/LibWeb/HTML/CloseEvent.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/DOMParser.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl5
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLModElement.idl4
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/ImageData.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessageChannel.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessageEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessagePort.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/SubmitEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/HTML/TextMetrics.idl2
80 files changed, 157 insertions, 7 deletions
diff --git a/Userland/Libraries/LibWeb/HTML/CloseEvent.idl b/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
index da2d588959..389486f3ab 100644
--- a/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
@@ -1,6 +1,6 @@
#import <DOM/Event.idl>
-[]
+[Exposed=*]
interface CloseEvent : Event {
constructor(DOMString type, optional CloseEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/DOMParser.idl b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
index 71e6a742e7..bfe112d109 100644
--- a/Userland/Libraries/LibWeb/HTML/DOMParser.idl
+++ b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
@@ -8,6 +8,8 @@ enum DOMParserSupportedType {
"image/svg+xml"
};
+// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparser
+[Exposed=Window]
interface DOMParser {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
index f6c2e62438..34c572bf3a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
@@ -2,6 +2,7 @@
#import <HTML/HTMLHyperlinkElementUtils.idl>
// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmlanchorelement
+[Exposed=Window]
interface HTMLAnchorElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
index 9cf4c63aee..148e7f2e2c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
@@ -2,6 +2,7 @@
#import <HTML/HTMLHyperlinkElementUtils.idl>
// https://html.spec.whatwg.org/multipage/image-maps.html#htmlareaelement
+[Exposed=Window]
interface HTMLAreaElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
index ab158202b7..eab8f5946b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
@@ -1,7 +1,6 @@
#import <HTML/HTMLMediaElement.idl>
+[Exposed=Window, LegacyFactoryFunction=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {
-
-
-
+ // FIXME: [HTMLConstructor] constructor();
};
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
index f939749018..870ef98bbe 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbrelement
+[Exposed=Window]
interface HTMLBRElement : HTMLElement {
[Reflect] attribute DOMString clear;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
index 43c4bc80d9..5cdf64f113 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbaseelement
+[Exposed=Window]
interface HTMLBaseElement : HTMLElement {
[CEReactions] attribute USVString href;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
index 758b9ded0e..483c59dc57 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
@@ -1,6 +1,8 @@
#import <DOM/EventHandler.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/sections.html#htmlbodyelement
+[Exposed=Window]
interface HTMLBodyElement : HTMLElement {
[LegacyNullToEmptyString, Reflect] attribute DOMString text;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
index 74bad1b1fa..76e7e13815 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbuttonelement
+[Exposed=Window]
interface HTMLButtonElement : HTMLElement {
[Reflect=formnovalidate] attribute boolean formNoValidate;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
index 28ad99a8c5..cdf9f2281c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
@@ -4,6 +4,8 @@
typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlcanvaselement
+[Exposed=Window]
interface HTMLCanvasElement : HTMLElement {
RenderingContext? getContext(DOMString contextId, optional any options = null);
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
index d925a36109..ebba839fdf 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldlistelement
+[Exposed=Window]
interface HTMLDListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
index 12844eef03..18ab60228e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldataelement
+[Exposed=Window]
interface HTMLDataElement : HTMLElement {
[Reflect] attribute DOMString value;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
index eb0e96babc..0396a370b8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldatalistelement
+[Exposed=Window]
interface HTMLDataListElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
index 078bc84d3c..3afb203246 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldetailselement
+[Exposed=Window]
interface HTMLDetailsElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
index 6e669c3193..e0c8b5fc7d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldialogelement
+[Exposed=Window]
interface HTMLDialogElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
index 999ecc41c3..30cada4463 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldirectoryelement
+[Exposed=Window]
interface HTMLDirectoryElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
index 7d3c5d3abe..7aa5e651a0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldivelement
+[Exposed=Window]
interface HTMLDivElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
index 81ac8c4597..6cb9bbcc85 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
@@ -1,6 +1,8 @@
#import <HTML/DOMStringMap.idl>
#import <DOM/EventHandler.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlelement
+[Exposed=Window]
interface HTMLElement : Element {
[Reflect] attribute DOMString title;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
index c6dd8618c7..45bc6a75f3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlembedelement
+[Exposed=Window]
interface HTMLEmbedElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
index 9ae9092002..6b40bf2daa 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlfieldsetelement
+[Exposed=Window]
interface HTMLFieldSetElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
index 63e37c511c..f2697772f7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlfontelement
+[Exposed=Window]
interface HTMLFontElement : HTMLElement {
[LegacyNullToEmptyString, Reflect] attribute DOMString color;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
index c2a443c534..9be32481e1 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
@@ -1,6 +1,8 @@
#import <DOM/HTMLCollection.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlformelement
+[Exposed=Window]
interface HTMLFormElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
index 92b2512a4c..76221edf04 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlframeelement
+[Exposed=Window]
interface HTMLFrameElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
index 650be3c737..d0ca96b1d3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
@@ -1,6 +1,8 @@
#import <DOM/EventHandler.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlframesetelement
+[Exposed=Window]
interface HTMLFrameSetElement : HTMLElement {
[Reflect] attribute DOMString cols;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
index c47d34fff7..4304dc2a9c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlhrelement
+[Exposed=Window]
interface HTMLHRElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
index 4a374458d0..740eff023e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlheadelement
+[Exposed=Window]
interface HTMLHeadElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
index 269834f97a..f43100569d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlheadingelement
+[Exposed=Window]
interface HTMLHeadingElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
index 97544a5879..9ade7f117d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlhtmlelement
+[Exposed=Window]
interface HTMLHtmlElement : HTMLElement {
[Reflect] attribute DOMString version;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
index 8c25b63df6..f0d9ae5aef 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
@@ -1,6 +1,8 @@
#import <HTML/HTMLElement.idl>
#import <DOM/Document.idl>
+// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmliframeelement
+[Exposed=Window]
interface HTMLIFrameElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
index 339c90fb13..e33167770e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlimageelement
+[Exposed=Window, LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
index 1c4dba1046..2db4de4496 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
@@ -2,6 +2,8 @@
#import <HTML/HTMLFormElement.idl>
#import <FileAPI/FileList.idl>
+// https://html.spec.whatwg.org/multipage/input.html#htmlinputelement
+[Exposed=Window]
interface HTMLInputElement : HTMLElement {
readonly attribute HTMLFormElement? form;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
index 54d7017b9e..6223d5ddb0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmllielement
+[Exposed=Window]
interface HTMLLIElement : HTMLElement {
[Reflect] attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
index 610a117daf..84f9a6e2c4 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/forms.html#htmllabelelement
+[Exposed=Window]
interface HTMLLabelElement : HTMLElement {
[Reflect=for] attribute DOMString htmlFor;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
index be8a331a0a..d6f6737262 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmllegendelement
+[Exposed=Window]
interface HTMLLegendElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
index 69f2fc5a88..cadbe6a9e6 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmllinkelement
+[Exposed=Window]
interface HTMLLinkElement : HTMLElement {
[Reflect] attribute DOMString href;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
index 4eea1b5fc3..6d77f934a2 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/image-maps.html#htmlmapelement
+[Exposed=Window]
interface HTMLMapElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
index b58dd0e52c..88b46b6748 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/obsolete.html#htmlmarqueeelement
+[Exposed=Window]
interface HTMLMarqueeElement : HTMLElement {
[Reflect] attribute DOMString behavior;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
index a97e1e29ba..b328bc8ac0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
@@ -6,6 +6,8 @@ enum CanPlayTypeResult {
"probably"
};
+// https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
+[Exposed=Window]
interface HTMLMediaElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
index cfed488680..77c167998e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlmenuelement
+[Exposed=Window]
interface HTMLMenuElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
index 34e4a8f586..90e9b8f654 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlmetaelement
+[Exposed=Window]
interface HTMLMetaElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
index 713f3690a5..1da3b094aa 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlmeterelement
+[Exposed=Window]
interface HTMLMeterElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
index 0edb621078..2f04f512ac 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
@@ -1,8 +1,10 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/edits.html#htmlmodelement
+[Exposed=Window]
interface HTMLModElement : HTMLElement {
- [Reflect] attribute DOMString cite;
+ [Reflect] attribute USVString cite;
[Reflect=datetime] attribute DOMString dateTime;
};
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
index 5e494b5723..7ba8ae4ca1 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlolistelement
+[Exposed=Window]
interface HTMLOListElement : HTMLElement {
[Reflect] attribute boolean reversed;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
index ce45d467f2..d5ce7799f6 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
@@ -1,6 +1,8 @@
#import <DOM/Document.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmlobjectelement
+[Exposed=Window]
interface HTMLObjectElement : HTMLElement {
[CEReactions] attribute DOMString data;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
index e88f553279..dd76d5822c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmloptgroupelement
+[Exposed=Window]
interface HTMLOptGroupElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
index 5a2a1f5395..d3fbc9f0fe 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmloptionelement
+[Exposed=Window, LegacyFactoryFunction=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
interface HTMLOptionElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
index f8f5dbb8e3..468da6cc09 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmloutputelement
+[Exposed=Window]
interface HTMLOutputElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
index cd3b3f221d..85b4499732 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlparagraphelement
+[Exposed=Window]
interface HTMLParagraphElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
index b4630af8ac..10f55556f8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/obsolete.html#htmlparamelement
+[Exposed=Window]
interface HTMLParamElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
index 5b6ecb335a..74120dadeb 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlpictureelement
+[Exposed=Window]
interface HTMLPictureElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
index cc7cc33d0d..e94e676070 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlpreelement
+[Exposed=Window]
interface HTMLPreElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
index 4064f278c9..18ad7d0b38 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlprogresselement
+[Exposed=Window]
interface HTMLProgressElement : HTMLElement {
[CEReactions] attribute double value;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
index 8133ce5892..522df0a544 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlquoteelement
+[Exposed=Window]
interface HTMLQuoteElement : HTMLElement {
[Reflect] attribute DOMString cite;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
index 6571a9f3c7..72648dfbff 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmlscriptelement
+[Exposed=Window]
interface HTMLScriptElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
index 3717993572..1aa0bcd9ac 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
@@ -1,6 +1,8 @@
#import <HTML/HTMLElement.idl>
#import <HTML/HTMLOptionsCollection.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlselectelement
+[Exposed=Window]
interface HTMLSelectElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
index fbe2aab5ce..2087cb1f6e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmlslotelement
+[Exposed=Window]
interface HTMLSlotElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
index 4d94c99eca..bb7d3d0891 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlsourceelement
+[Exposed=Window]
interface HTMLSourceElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
index c43f4c0df3..cefaa91d9b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmlspanelement
+[Exposed=Window]
interface HTMLSpanElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
index c33e8be66d..a3ade64587 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
@@ -3,6 +3,7 @@
#import <HTML/HTMLElement.idl>
// https://html.spec.whatwg.org/multipage/semantics.html#htmlstyleelement
+[Exposed=Window]
interface HTMLStyleElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
index 0c9983a836..9155740334 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecaptionelement
+[Exposed=Window]
interface HTMLTableCaptionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
index b6d42581ee..6bc4ad9338 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecellelement
+[Exposed=Window]
interface HTMLTableCellElement : HTMLElement {
attribute unsigned long colSpan;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
index 41533248a3..70680e4e65 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecolelement
+[Exposed=Window]
interface HTMLTableColElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
index 2e1adf1a40..c6ef9dcc78 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
@@ -4,6 +4,8 @@
#import <HTML/HTMLTableSectionElement.idl>
#import <DOM/HTMLCollection.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltableelement
+[Exposed=Window]
interface HTMLTableElement : HTMLElement {
attribute HTMLTableCaptionElement? caption;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
index 29d21d4f99..82c27c7ddf 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
@@ -1,6 +1,8 @@
#import <DOM/HTMLCollection.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablerowelement
+[Exposed=Window]
interface HTMLTableRowElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
index ee1025d819..ac9e1eeb8b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
@@ -2,6 +2,8 @@
#import <HTML/HTMLElement.idl>
#import <HTML/HTMLTableRowElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablesectionelement
+[Exposed=Window]
interface HTMLTableSectionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
index 02da460923..8783e48c2b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
@@ -1,6 +1,8 @@
#import <DOM/DocumentFragment.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmltemplateelement
+[Exposed=Window]
interface HTMLTemplateElement : HTMLElement {
readonly attribute DocumentFragment content;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
index 7f5978187b..2490d10aef 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmltextareaelement
+[Exposed=Window]
interface HTMLTextAreaElement : HTMLElement {
[Reflect] attribute DOMString placeholder;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
index 52334d5a1f..c09f508701 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmltimeelement
+[Exposed=Window]
interface HTMLTimeElement : HTMLElement {
[Reflect=datetime] attribute DOMString dateTime;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
index c8c74378a5..314cd0c571 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmltitleelement
+[Exposed=Window]
interface HTMLTitleElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
index 3e1a0296e3..bcaeb8a47a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/media.html#htmltrackelement
+[Exposed=Window]
interface HTMLTrackElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
index 26fe12d55f..cc8ddad5e8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlulistelement
+[Exposed=Window]
interface HTMLUListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
index 6b15e11700..217d78d566 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/dom.html#htmlunknownelement
+[Exposed=Window]
interface HTMLUnknownElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
index 9c3a52cce7..bf1229871d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLMediaElement.idl>
+// https://html.spec.whatwg.org/multipage/media.html#htmlvideoelement
+[Exposed=Window]
interface HTMLVideoElement : HTMLMediaElement {
[Reflect] attribute DOMString poster;
diff --git a/Userland/Libraries/LibWeb/HTML/ImageData.idl b/Userland/Libraries/LibWeb/HTML/ImageData.idl
index 29b683b547..cdb444b554 100644
--- a/Userland/Libraries/LibWeb/HTML/ImageData.idl
+++ b/Userland/Libraries/LibWeb/HTML/ImageData.idl
@@ -1,3 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#imagedata
+[Exposed=(Window,Worker), Serializable]
interface ImageData {
readonly attribute unsigned long width;
diff --git a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
index f1dfc346dc..b9d855f774 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
@@ -1,5 +1,7 @@
#import <HTML/MessagePort.idl>
+// https://html.spec.whatwg.org/multipage/web-messaging.html#messagechannel
+[Exposed=(Window,Worker)]
interface MessageChannel {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/MessageEvent.idl b/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
index 6f5f7fe866..f394f7b6d2 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
@@ -1,6 +1,7 @@
#import <DOM/Event.idl>
-[]
+// https://html.spec.whatwg.org/multipage/comms.html#messageevent
+[Exposed=(Window,Worker)]
interface MessageEvent : Event {
constructor(DOMString type, optional MessageEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.idl b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
index 3a8a92fc7b..38b436c2da 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
@@ -1,6 +1,8 @@
#import <DOM/EventTarget.idl>
#import <DOM/EventHandler.idl>
+// https://html.spec.whatwg.org/multipage/web-messaging.html#messageport
+[Exposed=(Window,Worker,AudioWorklet), Transferable]
interface MessagePort : EventTarget {
undefined postMessage(any message);
diff --git a/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl b/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
index 3a43880430..aba0f79320 100644
--- a/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
@@ -1,5 +1,7 @@
#import <DOM/Event.idl>
+// https://html.spec.whatwg.org/multipage/browsing-the-web.html#pagetransitionevent
+[Exposed=Window]
interface PageTransitionEvent : Event {
constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
index 24b1c5780f..e408c3d74f 100644
--- a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
@@ -1,7 +1,8 @@
#import <DOM/Event.idl>
#import <HTML/HTMLElement.idl>
-[]
+// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submitevent
+[Exposed=Window]
interface SubmitEvent : Event {
constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/TextMetrics.idl b/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
index a14300cbf1..fd7ac9d1d1 100644
--- a/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
+++ b/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
@@ -1,3 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#textmetrics
+[Exposed=Window]
interface TextMetrics {
// x-direction
readonly attribute double width; // advance width