diff --git a/Libraries/LibWeb/DOM/HTMLInputElement.cpp b/Libraries/LibWeb/DOM/HTMLInputElement.cpp
index a35c4ab7bf..dd6bc15ae1 100644
--- a/Libraries/LibWeb/DOM/HTMLInputElement.cpp
+++ b/Libraries/LibWeb/DOM/HTMLInputElement.cpp
@@ -28,11 +28,12 @@
#include
#include
#include
+#include
#include
#include
#include
-#include
#include
+#include
namespace Web {
@@ -67,6 +68,14 @@ RefPtr HTMLInputElement::create_layout_node(const StyleProperties*)
}
};
widget = button;
+ } else if (type() == "button") {
+ auto& button = page_view.add(value());
+ int text_width = Gfx::Font::default_font().width(value());
+ button.set_relative_rect(0, 0, text_width + 20, 20);
+ button.on_click = [this](auto) {
+ const_cast(this)->dispatch_event(Event::create("click"));
+ };
+ widget = button;
} else {
auto& text_box = page_view.add();
text_box.set_text(value());