diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp index 27066a9544..333cde11d6 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp @@ -159,7 +159,19 @@ void HTMLInputElement::create_shadow_tree_if_needed() if (shadow_root()) return; - // FIXME: This assumes that we want a text box. Is that always true? + // FIXME: This could be better factored. Everything except the below types becomes a text input. + switch (type_state()) { + case TypeAttributeState::RadioButton: + case TypeAttributeState::Checkbox: + case TypeAttributeState::Button: + case TypeAttributeState::SubmitButton: + case TypeAttributeState::ResetButton: + case TypeAttributeState::ImageButton: + return; + default: + break; + } + auto shadow_root = adopt_ref(*new DOM::ShadowRoot(document(), *this)); auto initial_value = attribute(HTML::AttributeNames::value); if (initial_value.is_null())