diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
index 474bcafc58..7bfc8d7aab 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
@@ -2,6 +2,7 @@
* Copyright (c) 2018-2023, Andreas Kling
* Copyright (c) 2022, Adam Hodgen
* Copyright (c) 2022, Andrew Kaster
+ * Copyright (c) 2023, Shannon Booth
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@@ -310,6 +311,12 @@ DeprecatedString HTMLInputElement::value() const
return DeprecatedString::empty();
}
+ // https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on
+ if (type_state() == TypeAttributeState::Checkbox || type_state() == TypeAttributeState::RadioButton) {
+ // On getting, if the element has a value content attribute, return that attribute's value; otherwise, return the string "on".
+ return has_attribute(AttributeNames::value) ? get_attribute(AttributeNames::value) : "on";
+ }
+
// https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value
// Return the current value of the element.
return m_value;