diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
index a8a707c7f3..f6c2e62438 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
@@ -1,31 +1,24 @@
#import
+#import
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmlanchorelement
interface HTMLAnchorElement : HTMLElement {
+ // FIXME: [HTMLConstructor] constructor();
[Reflect] attribute DOMString target;
[Reflect] attribute DOMString download;
[Reflect] attribute DOMString ping;
[Reflect] attribute DOMString rel;
+ // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
[Reflect] attribute DOMString hreflang;
[Reflect] attribute DOMString type;
+ // Obsolete
[Reflect] attribute DOMString coords;
[Reflect] attribute DOMString charset;
[Reflect] attribute DOMString name;
[Reflect] attribute DOMString rev;
[Reflect] attribute DOMString shape;
-
- // FIXME: This should come from a HTMLHyperlinkElementUtils mixin
- [CEReactions] stringifier attribute USVString href;
- readonly attribute USVString origin;
- [CEReactions] attribute USVString protocol;
- [CEReactions] attribute USVString username;
- [CEReactions] attribute USVString password;
- [CEReactions] attribute USVString host;
- [CEReactions] attribute USVString hostname;
- [CEReactions] attribute USVString port;
- [CEReactions] attribute USVString pathname;
- [CEReactions] attribute USVString search;
- [CEReactions] attribute USVString hash;
-
};
+
+HTMLAnchorElement includes HTMLHyperlinkElementUtils;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
index 91c388bdf2..9cf4c63aee 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
@@ -1,20 +1,22 @@
#import
+#import
+// https://html.spec.whatwg.org/multipage/image-maps.html#htmlareaelement
interface HTMLAreaElement : HTMLElement {
+ // FIXME: [HTMLConstructor] constructor();
+ // FIXME: [CEReactions] attribute DOMString alt;
+ // FIXME: [CEReactions] attribute DOMString coords;
+ // FIXME: [CEReactions] attribute DOMString shape;
+ // FIXME: [CEReactions] attribute DOMString target;
+ // FIXME: [CEReactions] attribute DOMString download;
+ // FIXME: [CEReactions] attribute USVString ping;
+ // FIXME: [CEReactions] attribute DOMString rel;
+ // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+ // FIXME: [CEReactions] attribute DOMString referrerPolicy;
+
+ // Obsolete
[Reflect=nohref] attribute boolean noHref;
-
- // FIXME: This should come from a HTMLHyperlinkElementUtils mixin
- [CEReactions] stringifier attribute USVString href;
- readonly attribute USVString origin;
- [CEReactions] attribute USVString protocol;
- [CEReactions] attribute USVString username;
- [CEReactions] attribute USVString password;
- [CEReactions] attribute USVString host;
- [CEReactions] attribute USVString hostname;
- [CEReactions] attribute USVString port;
- [CEReactions] attribute USVString pathname;
- [CEReactions] attribute USVString search;
- [CEReactions] attribute USVString hash;
-
};
+
+HTMLAreaElement includes HTMLHyperlinkElementUtils;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHyperlinkElementUtils.idl b/Userland/Libraries/LibWeb/HTML/HTMLHyperlinkElementUtils.idl
new file mode 100644
index 0000000000..873cdeb97d
--- /dev/null
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHyperlinkElementUtils.idl
@@ -0,0 +1,14 @@
+// https://html.spec.whatwg.org/multipage/links.html#htmlhyperlinkelementutils
+interface mixin HTMLHyperlinkElementUtils {
+ [CEReactions] stringifier attribute USVString href;
+ readonly attribute USVString origin;
+ [CEReactions] attribute USVString protocol;
+ [CEReactions] attribute USVString username;
+ [CEReactions] attribute USVString password;
+ [CEReactions] attribute USVString host;
+ [CEReactions] attribute USVString hostname;
+ [CEReactions] attribute USVString port;
+ [CEReactions] attribute USVString pathname;
+ [CEReactions] attribute USVString search;
+ [CEReactions] attribute USVString hash;
+};