diff --git a/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Libraries/LibWeb/HTML/HTMLInputElement.cpp index 0032d636804..337542a90c7 100644 --- a/Libraries/LibWeb/HTML/HTMLInputElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLInputElement.cpp @@ -1863,9 +1863,10 @@ WebIDL::ExceptionOr HTMLInputElement::set_min_length(WebIDL::Long value) // https://html.spec.whatwg.org/multipage/input.html#the-size-attribute unsigned HTMLInputElement::size() const { + // The size attribute, if specified, must have a value that is a valid non-negative integer greater than zero. // The size IDL attribute is limited to only positive numbers and has a default value of 20. if (auto size_string = get_attribute(HTML::AttributeNames::size); size_string.has_value()) { - if (auto size = parse_non_negative_integer(*size_string); size.has_value()) + if (auto size = parse_non_negative_integer(*size_string); size.has_value() && size.value() != 0) return *size; } return 20; diff --git a/Tests/LibWeb/Text/expected/wpt-import/html/rendering/widgets/input-text-size.txt b/Tests/LibWeb/Text/expected/wpt-import/html/rendering/widgets/input-text-size.txt new file mode 100644 index 00000000000..910538125a9 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/html/rendering/widgets/input-text-size.txt @@ -0,0 +1,16 @@ +Summary + +Harness status: OK + +Rerun + +Found 5 tests + +4 Pass +1 Fail +Details +Result Test Name MessagePass A misssing attribute is equivalent to size=20 +Pass An invalid attribute value is equivalent to size=20 +Pass The width depends on a size attribute +Pass Size attribute value affects layout-dependent computed style +Fail Size attribute value is not a presentational hint \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/html/rendering/widgets/input-text-size.html b/Tests/LibWeb/Text/input/wpt-import/html/rendering/widgets/input-text-size.html new file mode 100644 index 00000000000..8b7f42aaf03 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/html/rendering/widgets/input-text-size.html @@ -0,0 +1,45 @@ + + +Test `size` attribute behavior + + + + + + + + + + + + + + + +