diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
index b55236dd83..a936e7c027 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.h
@@ -23,6 +23,8 @@ public:
String target() const { return attribute(HTML::AttributeNames::target); }
String download() const { return attribute(HTML::AttributeNames::download); }
+ // ^EventTarget
+ // https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute:the-a-element
virtual bool is_focusable() const override { return has_attribute(HTML::AttributeNames::href); }
virtual bool is_html_anchor_element() const override { return true; }
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.h b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.h
index eba1aacda8..3c08419856 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.h
@@ -37,6 +37,10 @@ public:
TypeAttributeState type_state() const;
void set_type(String const&);
+ // ^EventTarget
+ // https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute:the-button-element
+ virtual bool is_focusable() const override { return true; }
+
// ^FormAssociatedElement
// https://html.spec.whatwg.org/multipage/forms.html#category-listed
virtual bool is_listed() const override { return true; }
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.h b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.h
index 4408531b1d..cbb19ec9ba 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.h
@@ -34,6 +34,10 @@ public:
NonnullRefPtrVector list_of_options() const;
+ // ^EventTarget
+ // https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute:the-select-element
+ virtual bool is_focusable() const override { return true; }
+
// ^FormAssociatedElement
// https://html.spec.whatwg.org/multipage/forms.html#category-listed
virtual bool is_listed() const override { return true; }
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.h b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.h
index 4ea7124dab..23c3148b7e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.h
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.h
@@ -29,6 +29,10 @@ public:
return textarea;
}
+ // ^EventTarget
+ // https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute:the-textarea-element
+ virtual bool is_focusable() const override { return true; }
+
// ^FormAssociatedElement
// https://html.spec.whatwg.org/multipage/forms.html#category-listed
virtual bool is_listed() const override { return true; }