diff --git a/packages/parse5/lib/common/html.ts b/packages/parse5/lib/common/html.ts
index 48e27317f..190af7087 100644
--- a/packages/parse5/lib/common/html.ts
+++ b/packages/parse5/lib/common/html.ts
@@ -139,6 +139,7 @@ export enum TAG_NAMES {
S = 's',
SCRIPT = 'script',
+ SEARCH = 'search',
SECTION = 'section',
SELECT = 'select',
SOURCE = 'source',
@@ -292,6 +293,7 @@ export enum TAG_ID {
S,
SCRIPT,
+ SEARCH,
SECTION,
SELECT,
SOURCE,
@@ -423,6 +425,7 @@ const TAG_NAME_TO_ID = new Map([
[TAG_NAMES.RUBY, TAG_ID.RUBY],
[TAG_NAMES.S, TAG_ID.S],
[TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],
+ [TAG_NAMES.SEARCH, TAG_ID.SEARCH],
[TAG_NAMES.SECTION, TAG_ID.SECTION],
[TAG_NAMES.SELECT, TAG_ID.SELECT],
[TAG_NAMES.SOURCE, TAG_ID.SOURCE],
diff --git a/packages/parse5/lib/parser/index.test.ts b/packages/parse5/lib/parser/index.test.ts
index fefb9cc2e..9c66592f4 100644
--- a/packages/parse5/lib/parser/index.test.ts
+++ b/packages/parse5/lib/parser/index.test.ts
@@ -30,7 +30,6 @@ generateParsingTests(
{
withoutErrors: true,
suitePath: new URL('../../../../test/data/html5lib-tests/tree-construction', import.meta.url),
- expectErrors: ['0.search-element', '1.search-element'],
},
(test, opts) => ({
node: test.fragmentContext ? parseFragment(test.fragmentContext, test.input, opts) : parse(test.input, opts),
diff --git a/packages/parse5/lib/parser/index.ts b/packages/parse5/lib/parser/index.ts
index 5624c4a7c..34a4c98e3 100644
--- a/packages/parse5/lib/parser/index.ts
+++ b/packages/parse5/lib/parser/index.ts
@@ -2253,6 +2253,7 @@ function startTagInBody(p: Parser, token: TagTo
case $.DETAILS:
case $.ADDRESS:
case $.ARTICLE:
+ case $.SEARCH:
case $.SECTION:
case $.SUMMARY:
case $.FIELDSET:
@@ -2583,6 +2584,7 @@ function endTagInBody(p: Parser, token: TagToke
case $.ADDRESS:
case $.ARTICLE:
case $.DETAILS:
+ case $.SEARCH:
case $.SECTION:
case $.SUMMARY:
case $.LISTING: