多數設計師以為,只要用了游標懸停(hover)展開資訊,畫面就一定比較乾淨、比較高級,這個判斷只對了一半。懸停確實能讓版面少幾行字,但代價往往被忽略。這是一種只對某一種裝置、某一種訪客才存在的介面,換到另一種裝置或另一種訪客身上,它形同不存在。
具體來說是 2 件事。第一,手機和平板加起來占了台灣過半的網路流量,而觸控螢幕的操作邏輯裡,從頭到尾就沒有「懸停」這個中間狀態,不是體驗比較差,是這個裝置根本做不出這個動作。第二,就算用滑鼠的讀者看得到,搜尋引擎的爬蟲與 AI 助手背後的抓取程式,同樣沒有滑鼠可以移過去,內容只在互動之後才出現,對它們來說常常等於不存在。
這篇要拆的不是懸停顯示好不好看,而是一個更根本的問題。一段內容重不重要,決定了它能不能只靠懸停才被看到,這個判準要從「懸停顯示為什麼讓畫面看起來乾淨」這個最基本的機制講起。
懸停顯示讓畫面乾淨的代價是內容忽隱忽現
設計師選擇懸停顯示,理由通常很單純:滑鼠移到說明圖示上才跳出提示框(tooltip)、選單項目移入時才展開下一層子選單、商品圖卡移入時才浮現一行說明文字,畫面在預設狀態下看起來乾淨很多,不用一次把所有文字都攤開。這個出發點沒有錯,但它悄悄夾帶了一個沒被檢驗過的推論。畫面看起來清爽,不代表這段內容本身不重要,兩者被當成同一件事處理,正是這整個問題的起點。
要看清楚這個混淆,得先回到懸停(hover)這個機制本身。CSS 的 :hover 偽類別描述的是一種持續性的指標位置狀態,只要游標維持在某個元素上方,樣式就套用著,游標一離開就恢復。這跟 :focus、click 這類一次性事件不一樣,後者是「發生了」與「沒發生」的二分,前者是「正停留」與「沒停留」的連續狀態。這個機制差異看起來只是技術細節,其實正是後面兩個問題共同的根源:一個需要持續追蹤位置的互動,天生得靠一種能精準指向、又能被系統即時感知位置的輸入裝置才成立,也就是滑鼠。手指觸控做不到這件事,搜尋引擎與 AI 的抓取程式同樣做不到這件事。
觸控裝置的操作邏輯裡從來沒有懸停這個中間狀態
這不是「觸控裝置的懸停體驗比較差」這種程度問題,而是「觸控裝置的輸入方式裡根本不存在懸停這個狀態」的結構性問題。滑鼠移動時,系統隨時知道游標停在哪個元素上方,使用者可以先移過去看一眼、猶豫一下,再決定要不要點下去;手指點在螢幕上,這個先看一眼的中間動作完全不存在,碰到的瞬間本身就已經是一個決定。
這個落差不是少數用戶的邊緣情境,而是台灣過半流量的日常情境;部分瀏覽器為了勉強模擬懸停而出現的怪異行為,加上 CSS 標準早就為這個落差開了專門的判斷語法,說明這是業界公認、長期存在的已知問題。

手指點上螢幕的瞬間就是決定,沒有先靠近看一眼的空間
滑鼠使用者移動游標到某個元素上方,系統就能感知使用者正在關注這裡,這個訊號正是懸停顯示賴以存在的基礎,先有「正在看」這個中間狀態,才談得上看了才展開更多資訊。CSS 用 pointer: fine 描述滑鼠這類精準指標,代表輸入裝置能提供夠精細的位置資訊,讓系統分辨出移過去跟按下去是兩件不同的事。
觸控裝置沒有這個訊號來源。手指碰到螢幕的那一刻,對系統來說就是碰到了,沒有第三種狀態可以回報使用者只是把手指靠近看一下。CSS 把這類裝置歸類為 pointer: coarse,不只是指精準度比較差,更是指它整個輸入模型裡本來就少了懸停這個維度。這是為什麼懸停顯示無法簡單複製到觸控裝置,換一種手勢也做不到,因為要複製的那個維度,觸控裝置從頭到尾就沒有。
台灣有超過一半流量來自手機,懸停內容形同對半數讀者不存在
這不是少數用戶才會遇到的邊緣情境。Statcounter 統計 2026 年 8 月台灣的裝置流量占比,行動裝置占 51.54%,桌機占 45.08%,平板占 3.37%,行動裝置已經過半。換句話說,只要一段內容被設計成只在懸停才出現,等於預設把過半的台灣讀者直接排除在外。
這個代價要跟畫面看起來比較乾淨放在同一個天平上一起衡量,而不是各自獨立看待。少幾行字換來的版面清爽,對半數讀者來說根本換不到,他們拿到的畫面本來就沒有那段內容可以隱藏,只是單純看不到而已。
部分瀏覽器把第一次點擊留給懸停效果而非動作本身
少數設計師試圖用點擊去模擬懸停效果,讓觸控裝置也能看到懸停內容,但這條路本身就有陷阱。部分行動瀏覽器的預設行為,是把原本設有 :hover 樣式的元素,第一次點擊只拿來觸發懸停樣式(讓畫面呈現滑鼠移入的視覺效果),真正的動作(例如連結跳轉)要等第二次點擊才會執行。MDN 對 :hover 在觸控裝置上的行為就特別註記過這個問題,懸停樣式可能完全不套用,可能只在碰觸後短暫套用一下,也可能一直套用到使用者碰觸別的元素為止,行為並不一致。
對讀者來說,這是困惑而非解方。畫面明明看起來有反應,顏色變了、樣式亮了,內容卻沒有被真正點開,使用者往往得多點一次才能執行原本要做的動作,甚至會誤以為這個連結故障,乾脆放棄離開。
CSS 標準很早就有懸停與指標裝置的判斷語法
如果觸控裝置沒有懸停只是少數人的抱怨,CSS 標準就不會特地為它開一組語法。CSS Media Queries Level 4 定義了 hover/any-hover(裝置的主要輸入方式能不能懸停)與 pointer/any-pointer(裝置的指標精準度是手指這類 coarse,還是滑鼠這類 fine)共 4 種媒體特性,讓開發者可以針對沒有懸停能力的裝置寫出不同的樣式規則。
標準會為這個情境開一組專門的判斷語法,本身就是證據,業界很早就承認不是所有裝置都能懸停是結構性事實,不是個別使用者的個案。只是就算讀者用的是滑鼠,懸停內容還有另一群訪客碰不到,搜尋引擎的爬蟲與 AI 助手背後的抓取程式從來不會把游標移過去看一眼。
只在懸停才浮現的內容連搜尋引擎與 AI 都碰不到
即使是用滑鼠的讀者,懸停內容對另一群訪客依然是道障礙,搜尋引擎的爬蟲、AI 助手背後的抓取程式都不會做出滑鼠移動或點擊這類互動。這件事本身已經夠麻煩,但懸停顯示還藏著一個比摺疊、彈窗都更根本的問題。很多懸停內容根本不是預先寫在 HTML 裡,只是被 CSS 藏起來,而是靠 JavaScript 監聽 mouseenter 事件,等使用者真的懸停了才把內容動態插進網頁。這種情況下,內容在被觸發之前根本不存在於爬蟲讀到的那份網頁裡,連藏起來但存在都稱不上。
Google 的爬蟲不會做出滑鼠移動或點擊這類互動
Google Search Central 的官方文件說明,Googlebot 會下載並解析 HTML、執行渲染、建立文件物件模型(DOM),但這整個流程裡沒有一步是移動游標或點擊。連結必須是帶 href 屬性的 <a> 標籤,Googlebot 才能可靠地把它找出來;只在點擊或懸停之後才出現的內容,不在它的渲染流程涵蓋範圍內。
換句話說,Googlebot 看得到的網頁,永遠是它進站那一刻的預設狀態。任何只在使用者互動之後才會現身的內容,只要沒有其他管道讓同一段資訊在別處也用純文字寫出來,就不保證會被索引到,更不用談在搜尋結果裡被摘要出來。
AI 助手的爬蟲更進一步,連網頁的 JavaScript 都不執行
Google 至少會渲染 JavaScript,只是不做互動;AI 助手背後的抓取程式,連 JavaScript 都不執行。Vercel 與 MERJ 針對超過 5 億次 GPTBot 抓取紀錄做的公開分析指出,沒有發現任何 JavaScript 被執行的證據,即使 GPTBot 有時會下載 JavaScript 檔案,約 11.5% 的請求如此,也不會實際執行它,只讀取伺服器回傳的原始 HTML。分析同時指出,ClaudeBot、PerplexityBot、Meta 的外部抓取程式等主要 AI 爬蟲都是同樣的行為,少數例外是 Google 的 Gemini(Google-Extended),因為它沿用 Googlebot 的渲染基礎設施,能完整執行 JavaScript。
這代表如果懸停內容是用前面說的 JavaScript 動態插入 DOM 寫法做的,這些 AI 爬蟲就連渲染後的版本都看不到,等於這段內容對它們完全不存在。對追求被 AI 引用、被 AI 摘要進答案的網站來說,這是比排名掉幾名更直接的損失,它從一開始就不在候選名單裡。
懸停後才寫進網頁的內容,跟預先藏好的內容不是同一回事
常見的懸停顯示有 2 種寫法。一種是內容本來就寫在 HTML 裡,只是預設用 CSS(display: none 或透明度)藏著,:hover 時才用 CSS 讓它現形;另一種是內容原本不存在,靠 JavaScript 監聽 mouseenter 事件,等使用者真的懸停了才動態把內容插入 DOM。
前者的內容至少在網頁的原始碼裡,爬蟲讀取 HTML 時理論上讀得到;後者在沒被觸發之前,根本不存在於爬蟲拿到的網頁裡。這個差異對懸停顯示比摺疊、分頁籤更嚴重,因為懸停常見於各種現成的 tooltip 元件庫,採用動態插入 DOM 這種寫法的比例更高。光是這段內容有沒有用懸停不足以判斷風險,還要看背後是哪一種實作方式。就算某個真人讀者確實用滑鼠瀏覽,懸停內容也不保證每個人都碰得到,其中一群人是因為身體條件的限制,不是因為裝置或程式碼。
無障礙規範早就把懸停內容的可及性寫成了硬性條款
懸停內容不友善的對象,不只是觸控裝置使用者,也不只是搜尋引擎與 AI。就連用滑鼠、卻有視覺或動作限制的讀者,同樣可能被設計不良的懸停內容擋在外面。國際無障礙標準 WCAG 2.1 的 1.4.13 條款「懸停或聚焦時出現的內容」,把這個問題寫成了硬性規範,懸停內容如果消失太快、擋住視線、或無法被穩定觸及,會變成一道真實的使用障礙,不是無障礙團體吹毛求疵挑出來的假議題。
使用螢幕放大鏡時,游標移向懸停內容本身就是一段長路
W3C WAI 官方文件對這條規範的解釋提到,對使用螢幕放大鏡的讀者來說,視窗能顯示的頁面範圍會大幅縮小,一次只看得到頁面的一小塊。把游標從觸發元素移向懸停內容本身,對他們來說就要橫跨螢幕移動一段距離,不是滑鼠使用者習以為常的順手移過去。
如果懸停內容設計成游標一離開觸發元素就消失,這類讀者事實上永遠來不及把游標移到內容上面,等於看得到卻摸不到。這不是抽象的合規問題,是真人在真實螢幕上會遇到的具體困境。
國際標準要求懸停內容可以停留、可以關閉,不能自己消失
WCAG 1.4.13 明確要求懸停或聚焦觸發的內容要符合 3 個條件。可關閉(Dismissible):使用者不必移動游標或改變焦點,就有辦法把額外出現的內容關掉。可觸及(Hoverable):如果內容是懸停觸發的,游標必須能夠移到這段額外內容上面,內容不會因此消失。能持續顯示(Persistent):額外內容要一直顯示,直到觸發狀態解除、使用者主動關掉它、或這段資訊本身已經失效為止,不能設計成游標一離開就自動消失。
這 3 個條件其實都在講同一件事,懸停內容的存在時間,不該完全由使用者的游標精準度決定。連正式的國際標準都認定,懸停觸發的內容天生比較不穩定,不適合承載重要資訊。這個結論其實可以再往前推一步,變成一個判斷任何內容能不能收進懸停裡的具體標準。
內容重不重要決定了它能不能只靠懸停顯示
前面兩個支柱,講的都是懸停內容碰不到誰,觸控裝置碰不到、搜尋引擎與 AI 碰不到、部分無障礙讀者也碰不到。這些事實其實可以收束成一個具體、可操作的判準,而不是空泛地說懸停不好。

判準其實不複雜。這段內容如果拿掉懸停這層互動,讀者永遠看不到,會不會漏掉他非知道不可的東西?答得出「不會,頂多少了一點錦上添花的補充」,就適合放在懸停裡;答案是「會,讀者會因此做錯決定或漏看關鍵資訊」,這段內容就不該只靠懸停才看得到,要在預設狀態就可見。這不是這篇文章自創的標準,國際使用者體驗研究機構 Nielsen Norman Group 在 tooltip 相關研究中早就指出,tooltip 是使用者主動觸發、用來解釋介面元素的彈出訊息,作用是提供輔助說明,但不該用來承載關鍵資訊。tooltip 常被誤用的地方,正是把本來就該直接顯示的重要內容也塞了進去。
錦上添花的補充適合收在懸停裡,缺了也不影響任務完成
適合放進懸停裡的內容,長相通常很一致:圖示按鈕額外補充的名稱說明、專有名詞旁的簡短補充解釋、次要的輔助提示。這類內容的共同特徵是,就算讀者完全沒看到,也不影響他理解主要內容或完成手上的任務,頂多是少了一點加分的細節。
延續 Nielsen Norman Group 對 tooltip 適用情境的結論,這類內容的角色本來就是補充而不是必要,拿掉它,頁面的核心功能與訊息完全不受影響,這正是它可以被安心收進懸停裡的原因。
價格、步驟、警示這類核心資訊,一開始就要留在畫面上
不該只靠懸停顯示的內容,長相也很一致:價格與費用細節、操作步驟裡的關鍵欄位說明、錯誤或警示訊息、會影響決策的限制條件。這類內容一旦被讀者漏看,後果是做錯決定、操作失敗或產生誤解,不是少了一點加分細節那麼輕微。
呼應前面拆開的每一層,這類內容如果只放在懸停裡,等於同時把觸控讀者、搜尋引擎與 AI、無障礙讀者都排除在外,風險是疊加的,不是單一族群的小損失。核心資訊不分裝置與訪客類型,一律該在預設狀態就顯示,不放進任何需要互動才觸發的層裡。

觸控裝置沒有懸停,不代表這些內容就該直接消失
拿掉觸控裝置的懸停,不代表答案是把這些內容直接砍掉不顯示。真正的解法是分流處理:用 CSS 的 hover、pointer 媒體查詢判斷裝置能不能懸停,能懸停的裝置維持原本的懸停顯示,不能懸停的裝置改成點一下才展開、再點一下收合,並且要有明確的視覺提示,例如加減號、箭頭圖示,讓使用者知道這裡可以點。核心資訊則不分裝置,一律預設顯示,不放進任何互動觸發的層裡。
用 pointer 與 hover 媒體查詢分開處理滑鼠與觸控的預設畫面
CSS 可以用 @media (hover: hover) and (pointer: fine) 這類條件式,只對真的能懸停、指標又夠精準的裝置套用懸停顯示樣式;偵測到 pointer: coarse 的觸控裝置時,改用另一套預設就展開,或改成點擊觸發的樣式。
這不是要多做一份內容,同一份內容依裝置能力給不同的觸發方式,滑鼠使用者移過去就看得到,觸控裝置的使用者點一下也看得到,兩邊拿到的資訊沒有落差,差別只在怎麼觸發。
觸控裝置改成點一下才收合而不是整段拿掉
改成點擊觸發不等於內容就消失了,只是把懸停即顯示換成點擊才展開、再點一下才收合。這個切換要搭配清楚的視覺提示,例如加減號或箭頭圖示,讓觸控裝置的讀者知道這裡有東西可以點開,不會因為看不到懸停效果就以為這裡什麼都沒有。
沒有視覺提示的點擊觸發,等於把問題換了一個形式重新出現,讀者依然找不到內容,只是原因從裝置不支援懸停,變成看不出這裡可以點。提示做到位,這條路才真正把懸停內容還給觸控裝置的讀者。
桌機常見的懸停下拉選單,觸控介面要另外做成可點擊版本
導覽列的下拉選單是很多網站實際踩到的具體情境。桌機版通常是滑鼠移入主選單項目就展開子選單,這個互動在觸控裝置上完全不成立,因為點主選單項目這個動作,本身可能就直接觸發連結跳轉,子選單根本沒機會展開。
導覽選單是懸停互動裡風險最高的地方之一,因為它承載的是找不找得到其他頁面這種核心導覽功能,不是可有可無的補充。確保觸控介面另外有一套明確能用的展開方式,例如點擊主選單項目本身只展開子選單、不觸發跳轉,或用獨立的展開按鈕、漢堡選單,才不會讓過半的行動裝置讀者連網站其他頁面都找不到。
懸停顯示本身不是問題,把它當成唯一的顯示層才是問題。畫面想乾淨是合理的設計目標,只是這個目標不該用犧牲過半讀者、犧牲搜尋引擎與 AI 的可見度、犧牲部分無障礙讀者的可及性去換。下一次要把一段內容收進懸停之前,先問自己一句:「拿掉這層互動,讀者會不會漏看什麼非知道不可的東西?」答案是不會,懸停就是它該待的地方;答案是會,它就該留在畫面上,讓所有裝置、所有讀者、所有抓取程式都看得到。
