ARIA: searchbox 角色

searchbox 角色表示一個元素是用於指定搜尋條件的 textbox 型別。

描述

當文字框位於具有 search 角色的元素內時,可以使用 searchbox 代替 textboxsearchbox 在語義上等同於 HTML 的 search 型別的 <input>,即 <input type="search">,如果可能,應優先使用後者。

searchbox 必須有一個可訪問名稱。如果 searchbox 角色應用於 HTML <input> 元素,則應使用關聯的 <label>。否則,如果存在可見標籤,則使用 aria-labelledby;如果不存在可見標籤,則使用 aria-label

螢幕閱讀器會朗讀“搜尋框”、“搜尋編輯”或“搜尋欄位”,再加上可訪問名稱。如果標籤中已包含“搜尋”一詞,這可能會造成冗餘。

示例

html
<div tabindex="0" aria-label="search" role="searchbox" contenteditable></div>

雖然上述說法有效,但對於螢幕閱讀器使用者來說,寫成以下形式會更簡單、更簡潔、冗餘更少:

html
<input type="search" />

以下是一個包含搜尋框和按鈕、ARIA live region 以及搜尋結果容器的搜尋表單。

html
<form role="search">
  <input
    type="search"
    role="searchbox"
    aria-description="search results will appear below"
    id="search"
    value="" />
  <label for="search">Search this site</label>
  <button>Submit search</button>
</form>
<div aria-live="polite" role="region" aria-atomic="true">
  <div class="sr-only"></div>
</div>
<div id="search-results"></div>

當表單是 search 並且標籤指示該元素是搜尋功能時,包含 role="searchbox" 可能會導致輔助技術朗讀出類似“搜尋 搜尋本網站 搜尋框”的內容,這是冗餘的。包含 role="searchbox" 不是必需的。

html
<input
  type="search"
  aria-description="search results will appear below"
  id="search"
  value="" />

規範

規範
無障礙富網際網路應用程式 (WAI-ARIA)
# searchbox

另見