diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp
index f0b5887786..e24564cf87 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp
@@ -58,8 +58,10 @@ void HTMLElement::visit_edges(Cell::Visitor& visitor)
}
// https://html.spec.whatwg.org/multipage/dom.html#dom-dir
-DeprecatedString HTMLElement::dir() const
+StringView HTMLElement::dir() const
{
+ // FIXME: This should probably be `Reflect` in the IDL.
+ // The dir IDL attribute on an element must reflect the dir content attribute of that element, limited to only known values.
auto dir = deprecated_attribute(HTML::AttributeNames::dir);
#define __ENUMERATE_HTML_ELEMENT_DIR_ATTRIBUTE(keyword) \
if (dir.equals_ignoring_ascii_case(#keyword##sv)) \
@@ -70,7 +72,7 @@ DeprecatedString HTMLElement::dir() const
return {};
}
-void HTMLElement::set_dir(DeprecatedString const& dir)
+void HTMLElement::set_dir(String const& dir)
{
MUST(set_attribute(HTML::AttributeNames::dir, dir));
}
@@ -89,22 +91,21 @@ bool HTMLElement::is_editable() const
}
}
-DeprecatedString HTMLElement::content_editable() const
+StringView HTMLElement::content_editable() const
{
switch (m_content_editable_state) {
case ContentEditableState::True:
- return "true";
+ return "true"sv;
case ContentEditableState::False:
- return "false";
+ return "false"sv;
case ContentEditableState::Inherit:
- return "inherit";
- default:
- VERIFY_NOT_REACHED();
+ return "inherit"sv;
}
+ VERIFY_NOT_REACHED();
}
// https://html.spec.whatwg.org/multipage/interaction.html#contenteditable
-WebIDL::ExceptionOr HTMLElement::set_content_editable(DeprecatedString const& content_editable)
+WebIDL::ExceptionOr HTMLElement::set_content_editable(StringView content_editable)
{
if (content_editable.equals_ignoring_ascii_case("inherit"sv)) {
remove_attribute(HTML::AttributeNames::contenteditable);
@@ -129,14 +130,14 @@ void HTMLElement::set_inner_text(StringView text)
set_needs_style_update(true);
}
-DeprecatedString HTMLElement::inner_text()
+String HTMLElement::inner_text()
{
StringBuilder builder;
// innerText for element being rendered takes visibility into account, so force a layout and then walk the layout tree.
document().update_layout();
if (!layout_node())
- return text_content();
+ return MUST(String::from_deprecated_string(text_content()));
Function recurse = [&](auto& node) {
for (auto* child = node.first_child(); child; child = child->next_sibling()) {
@@ -149,7 +150,7 @@ DeprecatedString HTMLElement::inner_text()
};
recurse(*layout_node());
- return builder.to_deprecated_string();
+ return MUST(builder.to_string());
}
// // https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsettop
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.h b/Userland/Libraries/LibWeb/HTML/HTMLElement.h
index 787a005227..037eb0caee 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.h
@@ -29,14 +29,14 @@ public:
DeprecatedString title() const { return deprecated_attribute(HTML::AttributeNames::title); }
- DeprecatedString dir() const;
- void set_dir(DeprecatedString const&);
+ StringView dir() const;
+ void set_dir(String const&);
virtual bool is_editable() const final;
- DeprecatedString content_editable() const;
- WebIDL::ExceptionOr set_content_editable(DeprecatedString const&);
+ StringView content_editable() const;
+ WebIDL::ExceptionOr set_content_editable(StringView);
- DeprecatedString inner_text();
+ String inner_text();
void set_inner_text(StringView);
int offset_top() const;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
index 2e2e1d141a..52fc46dd64 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
@@ -3,7 +3,7 @@
#import
// https://html.spec.whatwg.org/multipage/semantics.html#htmlelement
-[Exposed=Window, UseDeprecatedAKString]
+[Exposed=Window]
interface HTMLElement : Element {
[HTMLConstructor] constructor();