diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
index 30dfff9399..5a8e14013b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
@@ -447,10 +447,10 @@ static bool is_allowed_to_be_readonly(HTML::HTMLInputElement::TypeAttributeState
}
// https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly
-void HTMLInputElement::handle_readonly_attribute(DeprecatedFlyString const& value)
+void HTMLInputElement::handle_readonly_attribute(Optional const& maybe_value)
{
// The readonly attribute is a boolean attribute that controls whether or not the user can edit the form control. When specified, the element is not mutable.
- m_is_mutable = !(!value.is_null() && is_allowed_to_be_readonly(m_type));
+ m_is_mutable = !maybe_value.has_value() || !is_allowed_to_be_readonly(m_type);
if (m_text_node)
m_text_node->set_always_editable(m_is_mutable);
@@ -563,11 +563,7 @@ void HTMLInputElement::create_text_input_shadow_tree()
// NOTE: file upload state is mutable, but we don't allow the text node to be modifed
m_text_node->set_always_editable(false);
} else {
- auto readonly = attribute(HTML::AttributeNames::readonly);
- if (readonly.has_value())
- handle_readonly_attribute(readonly->to_deprecated_string());
- else
- handle_readonly_attribute({});
+ handle_readonly_attribute(attribute(HTML::AttributeNames::readonly));
}
m_text_node->set_editable_text_node_owner(Badge {}, *this);
@@ -671,7 +667,7 @@ void HTMLInputElement::attribute_changed(FlyString const& name, Optionalset_data(MUST(String::from_deprecated_string(value.value_or(""))));
} else if (name == HTML::AttributeNames::readonly) {
if (value.has_value())
- handle_readonly_attribute(*value);
+ handle_readonly_attribute(MUST(String::from_deprecated_string(*value)));
else
handle_readonly_attribute({});
}
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.h b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.h
index 29a9784bda..0970dd73f6 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.h
@@ -174,7 +174,7 @@ private:
WebIDL::ExceptionOr run_input_activation_behavior();
void set_checked_within_group();
- void handle_readonly_attribute(DeprecatedFlyString const& value);
+ void handle_readonly_attribute(Optional const& value);
// https://html.spec.whatwg.org/multipage/input.html#value-sanitization-algorithm
DeprecatedString value_sanitization_algorithm(DeprecatedString) const;