跳至中央內容區塊 :::
:::

如何正確設定可及名稱?讓按鈕、連結與表單欄位被理解

可及名稱讓螢幕讀取器等輔助科技知道按鈕、連結與表單欄位的用途。這份指南說明如何優先使用原生 HTML 與可見文字,再視情況補上 aria-labelaria-labelledby


重點摘要

  • 可及名稱回答「這個控制項叫什麼」或「它要做什麼」。
  • 多數情況下,最穩定的做法是使用可見文字、labelalt 與語意 HTML
  • aria-labelaria-labelledby 是補充工具,不應拿來掩蓋不清楚的畫面文字或錯誤結構。

可及名稱解決的是理解問題

可及名稱是瀏覽器提供給輔助科技的名稱。當使用者遇到一個按鈕、連結、表單欄位或自訂控制項時,螢幕讀取器通常會把它的角色與名稱一起讀出來,例如「搜尋,按鈕」或「電子郵件,文字欄位」。

它不是額外的行銷文字,也不是把畫面上的所有內容重複一次。它的任務很單純:讓使用者知道目前這個元件是什麼、能做什麼、是否值得操作。

先使用原生 HTML 與可見文字

最穩定的可及名稱通常不是 ARIA 寫出來的,而是來自原生 HTML。可見的按鈕文字、清楚的連結文字、表單的 label、資訊圖片的 alt,都比隱藏在屬性裡的補救文字更容易被團隊理解與維護。

如果畫面文字本身清楚,輔助科技、語音控制、翻譯工具與一般使用者通常都能得到比較一致的資訊。

  • 按鈕:優先讓按鈕內有清楚文字,例如「儲存草稿」比只有圖示更容易理解。
  • 連結:避免只寫「更多」或「點這裡」,改成能說明目的地的文字。
  • 表單欄位:使用 label 關聯欄位;placeholder 不能取代標籤。
  • 圖片:有意義的圖片用 alt 傳達必要資訊;裝飾圖片則避免製造多餘朗讀。
  • 群組:一組相關欄位可用 fieldsetlegend 補上群組脈絡。

什麼時候才需要 ARIA

ARIA 適合補足原生 HTML 不容易表達的情況,但它不是第一選擇。如果畫面上已經有可見文字,通常優先用 aria-labelledby 指向那段文字;只有在沒有可見文字可用時,才考慮 aria-label

常見情境包括只有圖示的按鈕、需要把標題當成複雜元件名稱、或同一頁有多個外觀相近但目的不同的控制項。

常見錯誤

可及名稱的問題常常不是「完全沒有」,而是名稱和實際用途不一致。自動化工具可以找出一部分缺漏,但最後仍需要人確認名稱是否真的符合使用情境。

  • 只有圖示的按鈕沒有名稱,使用者只聽到「按鈕」。
  • 同一頁多個連結都叫「更多」,但目的地不同。
  • placeholder 當作表單標籤,輸入後提示就消失。
  • aria-label 和畫面文字不一致,讓不同使用者得到不同資訊。
  • 把補充說明放在 aria-describedby,卻誤以為它會變成控制項名稱。
  • 狀態改變後名稱沒有更新,例如展開、收合、加入、移除。

怎麼檢查可及名稱

瀏覽器開發者工具通常可以檢查無障礙資訊樹,查看目前元素的角色、名稱與描述。這是理解輔助科技實際取得什麼資訊的好起點。

DevCheck 可以協助找出缺少可及名稱、ARIA 使用錯誤與部分表單標籤問題。不過,機器掃描只能指出可疑位置;名稱是否符合任務、是否夠清楚,仍然需要人工判斷。

  • 用鍵盤移動到控制項,確認焦點順序與畫面位置合理。
  • 在開發者工具檢查無障礙資訊樹中的 nameroledescription
  • 用自動化工具找缺少名稱、空白名稱或 ARIA 關係錯誤。
  • 抽查螢幕讀取器或語音控制工具,確認名稱在實際操作時能被理解。

把它放進團隊流程

可及名稱不只屬於工程師。設計師可以在圖示按鈕旁標示用途,內容維護者可以寫清楚連結文字,QA 可以在主要流程中確認焦點與名稱,產品負責人也可以要求重要操作不要只靠圖示或視覺位置理解。

這類檢查不需要等到正式檢測才開始。越早把名稱說清楚,後面要補救的成本通常越低,也越容易讓團隊討論同一個具體問題。

相關頁面