LibWeb: Handle radio/checkbox default-or-on value attribute state

If the value attribute is missing, these input elements should be
returning 'on' as their value in their IDL.
This commit is contained in:
Shannon Booth 2023-08-26 13:28:58 +12:00 committed by Andreas Kling
parent fc4fd6cb02
commit 0f374afc8f
Notes: sideshowbarker 2024-07-17 08:43:11 +09:00

View file

@ -2,6 +2,7 @@
* Copyright (c) 2018-2023, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2022, Adam Hodgen <ant1441@gmail.com>
* Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
* Copyright (c) 2023, Shannon Booth <shannon@serenityos.org>
*
* 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;