搜尋找不到結果時寫什麼:讓訪客能改字再找

搜尋沒有結果,訪客接下來要做什麼?只留一行「找不到資料」,他得重新回想剛才輸入的字,再猜網站有沒有別的內容。空結果頁至少要留下這次查詢、讓他能改字重搜,並提供一個仍然可用的瀏覽入口。

這篇處理的是空結果頁的文字和操作。先確認搜尋功能已回傳零筆結果,再設計訪客的下一步;查詢失敗、伺服器錯誤和沒有符合的內容,需要不同的提示,不能全部寫成「沒有結果」。

把剛才搜的字留在頁面和輸入框

先用一句話說清楚:「沒有找到『導覽選單』的結果。」訪客立刻知道這是對哪次搜尋的回應。不要只顯示「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" 區域更新,而不是把整個結果列表都設為反覆朗讀的區域。不要一輸入每個字就播報一大段內容;通常在查詢完成時更新一次狀態即可。這仍需在實際網站的操作方式下確認。

交付前做三次查詢

先搜一個一定能找到的詞,再搜一個確定沒有的詞,最後清空輸入。三種畫面應有不同的文字,且輸入框與網址、結果狀態一致。空結果時能直接改字重搜,也能透過分類入口離開,不必靠重新打開首頁。

如果重新搜尋仍停在上一筆結果,應先修狀態更新;如果結果真的為零,才調整提示。空結果頁的完成標準很具體:訪客知道搜了什麼、知道這次沒找到,並且有一條能繼續找的路。

參考資料

原文鏈接:https://wntheme.com/search-empty-state-recovery/,轉載請註明出處。
0

評論0

顯示驗證碼
沒有帳號?註冊  忘記密碼?