<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. The tests underneath disagree. In Safari’s current stable run, every test with the element’s name in its path passes, and the role-mapping suite passes whole. The zero is the scoreboard’s, not Safari’s.