<search>
An HTML element for the region that holds your search box. It maps to the same search landmark the role attribute gave you, so screen reader users can jump straight to it without you writing any ARIA.
Delete: the role="search" attribute, and usually the <div> it sits on.
<!-- a div doing an element's job -->
<div role="search">
<form action="/search">…</form>
</div>
<search>
<form action="/search">…</form>
</search>One styling seam. Browsers that know the tag give it display: block in the user agent stylesheet. A browser too old to know it gives it nothing, and the initial value of display is inline. If old browsers matter to you, declare search { display: block } yourself: one line, inert wherever the browser already does it. Beyond that, failure is graceful. The contents render everywhere, and an old browser loses the landmark, not the page.
A note on the numbers: the summary scoreboard currently shows Safari at zero on this feature. That zero comes down to one missing line in Safari’s stylesheet. Only two tests are scored here, both checking the element’s default styles, and Safari fails one check in each: it does not give <search> the unicode-bidi: isolate the spec asks for. The role-mapping suite passes whole. So the landmark works and the layout is fine. What you lose is bidi isolation, which matters if you put text of mixed direction inside the element.