diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
index 4b7d23c6b8..1721e88da0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
@@ -371,6 +371,19 @@ String HTMLInputElement::value() const
return get_attribute(AttributeNames::value).value_or(String {});
}
+ // https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range):attr-input-value
+ if (type_state() == TypeAttributeState::Range) {
+ // https://html.spec.whatwg.org/multipage/input.html#concept-input-value-default-range
+ double minimum = *min();
+ double maximum = *max();
+ double default_value = minimum + (maximum - minimum) / 2;
+ if (maximum < minimum)
+ default_value = minimum;
+
+ if (!parse_floating_point_number(m_value).has_value())
+ return MUST(String::number(default_value));
+ }
+
// https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
// Return the current value of the element.
return m_value;