搜尋沒有結果,訪客接下來要做什麼?只留一行「找不到資料」,他得重新回想剛才輸入的字,再猜網站有沒有別的內容。空結果頁至少要留下這次查詢、讓他能改字重搜,並提供一個仍然可用的瀏覽入口。
這篇處理的是空結果頁的文字和操作。先確認搜尋功能已回傳零筆結果,再設計訪客的下一步;查詢失敗、伺服器錯誤和沒有符合的內容,需要不同的提示,不能全部寫成「沒有結果」。
把剛才搜的字留在頁面和輸入框
先用一句話說清楚:「沒有找到『導覽選單』的結果。」訪客立刻知道這是對哪次搜尋的回應。不要只顯示「0」,也不要把搜尋框清空。很多時候他只想刪掉其中一個字,重打一遍會增加不必要的工作。
輸入框仍然需要清楚的標籤,例如「關鍵字」,旁邊放可辨認的「搜尋」按鈕。佔位文字可以示例,但不能取代標籤;一旦輸入內容,佔位文字就消失,讀者仍應知道這個欄位的用途。
這個示範頁以網址中的 q 參數記住關鍵字。重新整理後,輸入框和結果文字仍用同一個查詢。實際網站可能採用別的參數名稱,或由後端模板輸出;重點是查詢狀態能對得上,不是一定要使用這段 JavaScript。
建議下一個動作,但不要猜成唯一答案
好的空結果提示通常很短:「試試較短的關鍵字,例如『選單』;也可以從分類找相關教程。」這裡的示例要符合你網站真的有的內容。若網站用的是另一個術語,就用自己的內容名稱,不要複製一個搜了仍然找不到的範例。
可以建議檢查拼字、減少限制字,或使用較常見的稱呼;不要責怪訪客「輸入錯誤」。查不到不一定是他打錯,也可能是網站尚未提供那類內容。用「試試」比「正確輸入」更符合這個情境。
也別為了湊滿畫面,把大量熱門內容放在「搜尋結果」下面。若要提供其他內容,清楚命名為「其他教程」或「你也可以瀏覽」,讓訪客知道它們不是剛才關鍵字的命中結果。入口少而明確,比堆滿十張卡片更容易選。
看一次真的改字重搜
自建示範頁只放一筆合成教程,名稱是「換主題前的選單記錄」,並設定示範查詢「選單」可找到它。輸入「導覽選單」時,頁面顯示空結果,原文字仍在搜尋框,同時提供「瀏覽精品教程」連結。

我們把欄位改成「選單」再按搜尋。網址的查詢改成同一個字,頁面顯示「找到 1 篇教程」並提供文章連結。這個操作示範的是空結果後的恢復路徑,不代表某套 CMS 對所有關鍵字都會採用相同匹配方式。

這種示範也能用來和維護者對話:先約定空結果畫面要保留什麼,再把它接到網站真正的搜尋。不要拿前端顯示的一筆示例,當成後端搜尋條件已經修好。
顯示關鍵字時,要當成文字處理
訪客輸入的內容不是可信任的 HTML。若用 JavaScript 顯示查詢,應把它寫進文字內容或輸入框的值,不要把原始查詢直接拼入 innerHTML。由後端輸出時,也要使用框架或 CMS 對應的跳脫方式。
const query = new URLSearchParams(location.search).get('q') || '';
document.querySelector('#q').value = query;
document.querySelector('#empty-title').textContent =
`沒有找到「${query}」的結果`;
這段只示範如何讀取及顯示查詢,不包含搜尋資料的實作。空字串也要另外處理:訪客第一次進搜尋頁,還沒輸入任何內容時,可顯示「先輸入關鍵字」,不應假裝網站已執行搜尋又沒有結果。
分類入口比「回上一頁」更穩定
訪客可能直接從收藏或外部連結進入空結果頁,瀏覽器上一頁未必是你的網站。所以提供一個明確的站內入口,例如教程分類或全部文章,並寫出落點名稱。只寫「返回」,他無法預先知道會回到哪裡。
如果查詢有分類篩選,重新搜尋時要決定是否保留這個範圍,並在畫面上說清楚。訪客可能只是換字,也可能想改搜全站。這是搜尋流程的設計選擇,不能用隱藏欄位偷偷保留一個他看不到的限制。
涉及會員或其他受保護的內容時,空結果頁應依既有規則呈現。改善提示不需要放寬內容權限,也不需要揭露訪客不能查看的文章名稱。若懷疑查詢條件不對,另交維護者核對資料與權限,別用「顯示全部」繞過保護。
頁面不跳轉時,讓結果狀態可被讀到
本例按搜尋後會載入帶新查詢的頁面。若你的網站在原頁面更新結果,則要考慮使用者是否能得知「搜尋完成,沒有結果」。WAI 的狀態訊息說明把這類不移動焦點、也不重新整理頁面的搜尋狀態列為需要向輔助工具表達的情境。
可以讓簡短狀態文字在適當的 role="status" 區域更新,而不是把整個結果列表都設為反覆朗讀的區域。不要一輸入每個字就播報一大段內容;通常在查詢完成時更新一次狀態即可。這仍需在實際網站的操作方式下確認。
交付前做三次查詢
先搜一個一定能找到的詞,再搜一個確定沒有的詞,最後清空輸入。三種畫面應有不同的文字,且輸入框與網址、結果狀態一致。空結果時能直接改字重搜,也能透過分類入口離開,不必靠重新打開首頁。
如果重新搜尋仍停在上一筆結果,應先修狀態更新;如果結果真的為零,才調整提示。空結果頁的完成標準很具體:訪客知道搜了什麼、知道這次沒找到,並且有一條能繼續找的路。

評論0