diff --git a/Tests/LibWeb/Text/expected/HTML/HTMLProgressElement-set-attributes.txt b/Tests/LibWeb/Text/expected/HTML/HTMLProgressElement-set-attributes.txt
index a693297379e..6af4a53740e 100644
--- a/Tests/LibWeb/Text/expected/HTML/HTMLProgressElement-set-attributes.txt
+++ b/Tests/LibWeb/Text/expected/HTML/HTMLProgressElement-set-attributes.txt
@@ -6,3 +6,6 @@ value attribute after setting value attribute to 50: 1
value attribute after setting max attribute to 100: 50
max attribute after setting max attribute to 100: 100
value attribute after setting max attribute to 101: 100
+value attribute after setting value attribute to -1: 0
+value attribute after setting max attribute to 0: 0
+max attribute after setting max attribute to 0: 1
diff --git a/Tests/LibWeb/Text/input/HTML/HTMLProgressElement-set-attributes.html b/Tests/LibWeb/Text/input/HTML/HTMLProgressElement-set-attributes.html
index 8a7be1d6dd7..98905b0d2f0 100644
--- a/Tests/LibWeb/Text/input/HTML/HTMLProgressElement-set-attributes.html
+++ b/Tests/LibWeb/Text/input/HTML/HTMLProgressElement-set-attributes.html
@@ -16,5 +16,10 @@
println(`max attribute after setting max attribute to 100: ${progressElement.max}`);
progressElement.value = 101;
println(`value attribute after setting max attribute to 101: ${progressElement.value}`);
+ progressElement.value = -1;
+ println(`value attribute after setting value attribute to -1: ${progressElement.value}`);
+ progressElement.max = 0;
+ println(`value attribute after setting max attribute to 0: ${progressElement.value}`);
+ println(`max attribute after setting max attribute to 0: ${progressElement.max}`);
});
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.cpp
index a205c55d132..648e1674170 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.cpp
@@ -49,7 +49,7 @@ double HTMLProgressElement::value() const
WebIDL::ExceptionOr HTMLProgressElement::set_value(double value)
{
if (value < 0)
- return {};
+ value = 0;
TRY(set_attribute(HTML::AttributeNames::value, MUST(String::number(value))));
update_progress_value_element();
@@ -69,7 +69,7 @@ double HTMLProgressElement::max() const
WebIDL::ExceptionOr HTMLProgressElement::set_max(double value)
{
if (value <= 0)
- return {};
+ value = 1;
TRY(set_attribute(HTML::AttributeNames::max, MUST(String::number(value))));
update_progress_value_element();