深色模板上的表單提示怎麼配色,讓錯誤與成功都看得懂

深色模板上的表單框線很好看,填錯之後卻只多了一行暗紅字。手機亮度低一點,提示幾乎消失;換成綠色也未必清楚。調整回饋時,先讓文字與符號在真正背景上可辨,再用顏色補充狀態。

這篇處理深色背景的錯誤、成功與焦點配色,不重新設計詢價欄位,也不把前端提示當作郵件已送達。你可以先挑一個現有欄位,依序檢視一般、錯誤、修正與鍵盤焦點四個狀態。

紅與綠都要配文字

只改框線顏色,訪客還得猜「紅色代表哪個地方錯了」。錯誤旁寫出原因,例如「請填有效的Email,例如 [email protected]」。成功或完成狀態則寫真實結果,不能因輸入格式正確,就顯示「已收到詢問」。

若要加符號,可搭配驚嘆號與勾號;它們提供另一種辨識線索,但不取代文字。符號只是重複文字的狀態時,可以對輔助科技設aria-hidden,避免一句提示先讀一次符號名稱,再讀相同意思。

也別只把錯誤和成功放在圖例裡,讓訪客回頭對照顏色。提示應放在對應欄位附近,讓他知道要改哪裡。多欄錯誤需要摘要時,摘要與欄位旁說明要一致,不要一邊寫必填、一邊寫格式錯誤。

深色表單的淺珊瑚錯誤提示,配上驚嘆號、具體原因與清楚鍵盤焦點
在實際深色面板上,錯誤文字、符號與按鈕焦點都能清楚辨識。

先用真正的文字背景算對比

本文示例的面板是 #20242c,錯誤文字採 #ffb4ab,成功文字採 #9de1c4。不要只拿它們與網頁最外層背景比較;提示實際位於面板上,就用面板色計算。

這兩組文字對面板的對比分別約9.16:1與10.37:1。對照較暗的 #7b4444 和 #38634f,同一背景只有約2.04:1與2.27:1;即使一個是紅、一個是綠,都不能只憑顏色名稱判斷一般文字夠不夠清楚。

WCAG的一般文字最低對比要求為4.5:1,大字有3:1的條件。多數表單提示是一般小字,因此先按4.5:1檢查,比套用大字例外更直接。剛好算到門檻時也要注意數值,不要把4.49四捨五入後當成合格。

.dark-form {
  background: #20242c;
  color: #f3f4f6;
}
.dark-form .feedback-error { color: #ffb4ab; }
.dark-form .feedback-success { color: #9de1c4; }

這是此背景的示例配色,不能直接當全站色票。面板若有透明度、漸層或圖片,實際背景可能不是你在CSS寫的那個色碼。先查computed顏色與下層背景,再計算真正的組合;不同位置都需要看。

對比計算也不代替實際閱讀。字太細、尺寸太小或擠在密集欄位裡,仍可能難讀。先保留適當字級與行距,再改善配色,不要因為錯誤訊息太長,就把它縮成很小的灰字。

框線與焦點,別只比正常文字

訪客需要辨識輸入框和目前焦點。與辨識控制項或狀態有關的非文字資訊,依WCAG相關要求需要足夠相鄰對比;例如自行設計的必要框線和焦點指示,不能只看文字已經清楚就略過。

示例輸入框的邊界用較亮灰色,鍵盤焦點用淡藍外框。錯誤狀態可以保留珊瑚色提示,但焦點仍有自己的可見外框,避免一聚焦就把錯誤文字消掉,或用同一條紅線同時表示兩件事。

.dark-form input {
  background: #15181e;
  color: #f3f4f6;
  border: 2px solid #8b95a7;
}
.dark-form input:focus-visible,
.dark-form button:focus-visible {
  outline: 3px solid #b9d0ff;
  outline-offset: 5px;
}

不要直接移除outline,只留微弱的陰影。外框可能碰到面板邊緣或被overflow裁掉,停在第一個與最後一個欄位各看一次。發生錯誤時,也試鍵盤回到該欄,確認焦點與錯誤能同時看懂。

讓文字回饋連到對應欄位

欄位名稱仍用label,說明與回饋可由aria-describedby關聯。錯誤時設定aria-invalid,修正成功後把狀態更新回來。顏色與屬性應描述同一件事,別畫面已經顯示成功,屬性仍停在invalid。

<label for="contact-email">聯絡Email</label>
<input id="contact-email" type="email"
  aria-describedby="email-feedback" aria-invalid="true">
<p id="email-feedback" class="feedback-error">
  <span aria-hidden="true">!</span>
  請填有效的Email,例如 [email protected]。
</p>

這段是錯誤狀態的HTML。實際驗證邏輯要根據表單功能更新屬性、文字與class;不要一直把aria-invalid寫死為true。若提示會動態改變,按實際互動安排通知方式,並用支援的輔助工具確認,不要為了讓它被聽見而讓整頁反覆播報。

成功狀態也要照實寫

在本文示例裡,按鈕只檢查Email格式,正確後顯示「格式可用,可以繼續填寫需求」。畫面用綠色與勾號輔助說明,沒有宣稱詢問已送出。接上正式表單後,要等真正處理結果再顯示對應訊息。

深色表單輸入有效Email後,綠色勾號與文字提示格式可用,按鈕仍可操作
成功配色說明當前狀態;這裡通過的是格式檢查,仍需繼續填寫。

發生提交失敗時,保留輸入內容,說明能否重試和是否需要其他聯絡方法。顏色設計可以讓失敗更容易看見,但無法替你修好後台接收或寄信功能。若要重新整理詢價欄位與送出回饋,可另看詢價表單說明與回饋。

最後用真實狀態看一次

不要只在設計稿裡擺紅字和綠字。開啟自己的測試頁面,先留白、填錯、修正,再用Tab經過輸入框與按鈕;觀察提示顏色、文字、屬性與焦點是否一起更新。把系統強制顏色或深淺主題切換也列入需要支援的環境。

若模板有透明面板或背景照片,挑最亮和最暗的位置檢視;不要只選一個對比最好的角落。視窗變窄後,提示可能換成兩行,也要確認沒有被固定高度截斷。文字放大時,錯誤原因和按鈕仍應可讀。

改動先限於這份表單的class,保留原色碼與樣式。別把全站所有紅字換成同一淺紅,因為其他區塊可能是白底。上線前確認實際DOM和不同狀態,必要時只回復這一份表單的配色。

文字和顏色的幾項對比合適,只表示這些組合有明確依據。完整無障礙還包含鍵盤、結構、名稱、錯誤關聯與輔助科技行為,不能憑這張表單截圖宣稱全站符合WCAG。

按鈕文字也要另外算。示例的淡藍按鈕用深色文字,不能直接沿用面板的白字;相同白字放在淺色按鈕上,結果與深色面板不同。錯誤訊息內若有可點連結,保持連結可辨識與可聚焦,別把所有字都染成錯誤色後失去入口。

文字提示可以靠圖示補充,但圖示本身若承擔狀態資訊,也要檢查與周圍背景的對比。把符號藏在陰影裡、縮得很細,或只在滑鼠移入才出現,都不能讓訪客穩定辨識。先讓文字與狀態保持可見,再決定裝飾要加到哪裡。

參考資料

原文鏈接:https://wntheme.com/dark-form-feedback-contrast/,轉載請註明出處。
0

評論0

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