diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.cpp
index 311236b97e..adc04c6cc2 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.cpp
@@ -100,4 +100,18 @@ Optional HTMLAnchorElement::default_role() const
return ARIA::Role::generic;
}
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#dom-a-text
+DeprecatedString HTMLAnchorElement::text() const
+{
+ // The text attribute's getter must return this element's descendant text content.
+ return descendant_text_content();
+}
+
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#dom-a-text
+void HTMLAnchorElement::set_text(DeprecatedString const& text)
+{
+ // The text attribute's setter must string replace all with the given value within this element.
+ string_replace_all(text);
+}
+
}
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
index 64a90ca469..103ef7d284 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
@@ -23,6 +23,9 @@ public:
DeprecatedString target() const { return attribute(HTML::AttributeNames::target); }
DeprecatedString download() const { return attribute(HTML::AttributeNames::download); }
+ DeprecatedString text() const;
+ void set_text(DeprecatedString const&);
+
// ^EventTarget
// https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute:the-a-element
virtual bool is_focusable() const override { return has_attribute(HTML::AttributeNames::href); }
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
index 925db85842..49598f3aeb 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
@@ -15,6 +15,8 @@ interface HTMLAnchorElement : HTMLElement {
[CEReactions, Reflect] attribute DOMString hreflang;
[CEReactions, Reflect] attribute DOMString type;
+ [CEReactions] attribute DOMString text;
+
// Obsolete
[CEReactions, Reflect] attribute DOMString coords;
[CEReactions, Reflect] attribute DOMString charset;